caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* [Caml-list] GODI available for download
@ 2003-07-30 21:41 Gerd Stolpmann
  2003-07-31 16:51 ` Fred Yankowski
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Gerd Stolpmann @ 2003-07-30 21:41 UTC (permalink / raw)
  To: caml-list

Hi list,

In the past days I have worked on GODI, an experimental source-based
O'Caml distribution, and I think it is now worth a try.

You can get the current bootstrap tarball here:

http://www.ocaml-programming.de/packages/godi-bootstrap-20030730.tar.gz

Currently, GODI is based on 3.06, but I will switch to 3.07beta the next
days (and drop a message, if so).

It has been tested on Linux and Solaris.

Read the README file, it contains further instructions (and is currently
the only source of documentation).

Gerd

------------------------------------------------------------
README
------------------------------------------------------------

GODI is an experimental distribution of the Objective Caml language
as packages that can be automatically built from their sources. GODI
does not include pre-compiled binaries, but it is possible to create
them, even in packaged form.

GODI is derived from the NetBSD pkgsrc system (which is derived from
the FreeBSD port system), and has a similar way of dealing with
sources, although not everything is identical.

Basically, GODI is a framework to download, compile, install, and
package O'Caml software. This software is not included in GODI, but
GODI knows from which Internet sites it can be downloaded. To do so,
GODI provides small archives with build instructions, the build.tgz
archives. These instructions (basically Makefiles) are dynamically
added to the GODI framework, and extend it with the information needed
to deal with a certain piece of software.

After the software has been installed, it is always archived as
so-called binary packages. The binary packages can be easily
transferred to other computers with the same operating system, where
they can be added to the local GODI installations without having to
rebuild them again.

GODI knows about software dependencies, and automatically builds
prerequisites first. Furthermore, GODI can upgrade hierarchies of
dependent libraries by rebuilding the libraries in the right order.

...

-- 
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany 
gerd@gerd-stolpmann.de          http://www.gerd-stolpmann.de
------------------------------------------------------------

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] GODI available for download
  2003-07-30 21:41 [Caml-list] GODI available for download Gerd Stolpmann
@ 2003-07-31 16:51 ` Fred Yankowski
  2003-08-01 21:24   ` Gerd Stolpmann
  2003-08-03 17:11   ` Sven Luther
  2003-08-02  3:28 ` Jacques Garrigue
  2003-08-02 11:54 ` [Caml-list] " Alain
  2 siblings, 2 replies; 15+ messages in thread
From: Fred Yankowski @ 2003-07-31 16:51 UTC (permalink / raw)
  To: Gerd Stolpmann; +Cc: caml-list

On Wed, Jul 30, 2003 at 11:41:27PM +0200, Gerd Stolpmann wrote:
> In the past days I have worked on GODI, an experimental source-based
> O'Caml distribution, and I think it is now worth a try.
> 
> You can get the current bootstrap tarball here:
> 
> http://www.ocaml-programming.de/packages/godi-bootstrap-20030730.tar.gz

I gave it a try on a Linux 2.4.20 / Debian 3.0 machine, where (as far
as I can recall) I have never installed ocaml.  Although I have lots
of experience with Debian package management, I've never BSD-style
package management tooks before.  So here's what ensued:

The godi-ocaml package built and installed easily.

To build godi-ocaml-graphics I had to first install the Debian
xdev-libs package to get the needed Xlib.h and Xutil.h files.  No big
deal.

Building godi-ocaml-labltk was a minor pain.  I had to install the
Debian tcl8.3-dev and tk8.3-dev packages to get the tcl.h and tk.h
files.  But building godi-ocaml-labtl would still fail to find those
headers.  I saw the note in the main README about "So if your tcl/tk
libraries are not found, you have to fix the problem in
godi-ocaml-src" and I eventually saw the note in the DESCR file for
godi-ocaml-src saying that tcl/tk should be installed first.

So then it was a bit of a mystery, how to rebuild godi-ocaml-src and
whatever depends on it.  Nothing much happened when I ran 'godi_build
godi-ocaml-src' again, so I ran 'godi_delete godi-ocaml-src' and tried
again, whereupon it rebuilt from source and finished OK.

Now, presumably, godi-caml and godi-caml-graphics need to be rebuilt
as well.  Doing "godi_build godi-ocaml" reports that the package is
already up-to-date.  Doing "godi_delete godi-ocaml" fails because the
godi-ocaml-graphics package depends on it, so I did "godi_delete -f
godi-ocaml" to force the delete.  That worked, mostly, but gave some
warnings about directories that could not be removed because they aren't
empty, because of files still there for godi-ocaml-graphics.  (OK,
that wasn't my brightest move, but I thought using -f would
recursively remove any packages that depend on godi-ocaml -- and that
did not happen).  Run "godi_delete godi-ocaml-graphics".  Now doing
"godi_build godi-ocaml" rebuilds from source ... but it fails near the
end because a lib/ocaml/std-lib/ directory already exists.  Remove
that and try again; now the build finishes OK.

Build godi-ocaml-graphics again; OK.  And now building
godi-ocaml-labltk works just fine.  Minimal testing suggests that the
executables are working well.  ocamlbrowser runs OK.

So, that's how it went for someone who knows Linux system admin well,
but has no experience with BSD packaging tools and almost no
experience with ocaml distribution/packaging.  The "GODI" tools work
well, but I need a bit more information about their theory of
operation to understand how to recover when things go wrong.  I'd also
like to understand the role of the godi-ocaml-src package better, and
what sort of implicit dependencies other GODI ocaml packages have on
it.

Overall, it's an impressive first cut at an easy to use package
management system for Ocaml.

-- 
Fred Yankowski      fred@ontosys.com           tel: +1.630.879.1312
OntoSys, Inc	    PGP keyID: 7B449345        fax: +1.630.879.1370
www.ontosys.com     38W242 Deerpath Rd, Batavia, IL 60510-9461, USA

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] GODI available for download
  2003-07-31 16:51 ` Fred Yankowski
@ 2003-08-01 21:24   ` Gerd Stolpmann
  2003-08-03 17:11   ` Sven Luther
  1 sibling, 0 replies; 15+ messages in thread
From: Gerd Stolpmann @ 2003-08-01 21:24 UTC (permalink / raw)
  To: Fred Yankowski; +Cc: caml-list

Am Don, 2003-07-31 um 18.51 schrieb Fred Yankowski:
> On Wed, Jul 30, 2003 at 11:41:27PM +0200, Gerd Stolpmann wrote:
> > In the past days I have worked on GODI, an experimental source-based
> > O'Caml distribution, and I think it is now worth a try.
> > 
> > You can get the current bootstrap tarball here:
> > 
> > http://www.ocaml-programming.de/packages/godi-bootstrap-20030730.tar.gz
> 
> I gave it a try on a Linux 2.4.20 / Debian 3.0 machine, where (as far
> as I can recall) I have never installed ocaml.  Although I have lots
> of experience with Debian package management, I've never BSD-style
> package management tooks before.  So here's what ensued:

Thank you very much. I need more such user reports to make GODI as easy
and as reliable as possible.

> The godi-ocaml package built and installed easily.
> 
> To build godi-ocaml-graphics I had to first install the Debian
> xdev-libs package to get the needed Xlib.h and Xutil.h files.  No big
> deal.

Ok, I will add a hint to the README.

> Building godi-ocaml-labltk was a minor pain.  I had to install the
> Debian tcl8.3-dev and tk8.3-dev packages to get the tcl.h and tk.h
> files.  But building godi-ocaml-labtl would still fail to find those
> headers.  I saw the note in the main README about "So if your tcl/tk
> libraries are not found, you have to fix the problem in
> godi-ocaml-src" and I eventually saw the note in the DESCR file for
> godi-ocaml-src saying that tcl/tk should be installed first.

The reason for this strange dependency is that the O'Caml sources
contain both the base system and the labltk code, but that I wanted to
split it up for GODI. Not for everybody labltk is important, so it
should be possible to install only the base system without labltk.
However, because the base system and labltk are configured by the same
script, the question arose where to put this common configuration step.
This is the idea of godi-ocaml-src, it configures all of the O'Caml
system and saves the configuration such that the other packages
(godi-ocaml, godi-ocaml-graphics, and godi-ocaml-labltk) can find it and
use it.

Maybe I should rename it to godi-ocaml-config to make this role clearer.

> So then it was a bit of a mystery, how to rebuild godi-ocaml-src and
> whatever depends on it.  Nothing much happened when I ran 'godi_build
> godi-ocaml-src' again, 

Because it thinks it is up to date. godi_build -force godi-ocaml-src
would do it.

Again a useful addition to the README file.

> so I ran 'godi_delete godi-ocaml-src' and tried
> again, whereupon it rebuilt from source and finished OK.

So you were able to help yourself.

> Now, presumably, godi-caml and godi-caml-graphics need to be rebuilt
> as well.  Doing "godi_build godi-ocaml" reports that the package is
> already up-to-date.  Doing "godi_delete godi-ocaml" fails because the
> godi-ocaml-graphics package depends on it, so I did "godi_delete -f
> godi-ocaml" to force the delete.  

The -f option allows you to break the system, and it is normally not a
good idea. The -r option would have been right, because it deletes the
dependent packages, too.

> That worked, mostly, but gave some
> warnings about directories that could not be removed because they aren't
> empty, because of files still there for godi-ocaml-graphics.  (OK,
> that wasn't my brightest move, but I thought using -f would
> recursively remove any packages that depend on godi-ocaml -- and that
> did not happen).  

Yes, -r would do that.

> Run "godi_delete godi-ocaml-graphics".  Now doing
> "godi_build godi-ocaml" rebuilds from source ... but it fails near the
> end because a lib/ocaml/std-lib/ directory already exists.  Remove
> that and try again; now the build finishes OK.

This is one of the problems with GODI: you normally cannot install over
old files, because the installation routines are not intelligent enough.

> Build godi-ocaml-graphics again; OK.  And now building
> godi-ocaml-labltk works just fine.  Minimal testing suggests that the
> executables are working well.  ocamlbrowser runs OK.
> 
> So, that's how it went for someone who knows Linux system admin well,
> but has no experience with BSD packaging tools and almost no
> experience with ocaml distribution/packaging.  The "GODI" tools work
> well, but I need a bit more information about their theory of
> operation to understand how to recover when things go wrong.

Well, the documentation is not complete enough. In principle, it works
the same way as the NetBSD tools; maybe I should add an example how to
do the installation steps manually, and add a pointer to the NetBSD
docs.

>  I'd also
> like to understand the role of the godi-ocaml-src package better, and
> what sort of implicit dependencies other GODI ocaml packages have on
> it.

godi-ocaml-src unpacks the O'Caml sources, configures them, and creates
a tar.gz archive of them, so other packages can extract the already
configured source tree from it.

> Overall, it's an impressive first cut at an easy to use package
> management system for Ocaml.

I hope the remaining difficulties can be resolved, so it would be easy
for everybody.

Gerd
-- 
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany 
gerd@gerd-stolpmann.de          http://www.gerd-stolpmann.de
------------------------------------------------------------

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] GODI available for download
  2003-07-30 21:41 [Caml-list] GODI available for download Gerd Stolpmann
  2003-07-31 16:51 ` Fred Yankowski
@ 2003-08-02  3:28 ` Jacques Garrigue
  2003-08-02  3:40   ` Alexander V. Voinov
                     ` (2 more replies)
  2003-08-02 11:54 ` [Caml-list] " Alain
  2 siblings, 3 replies; 15+ messages in thread
From: Jacques Garrigue @ 2003-08-02  3:28 UTC (permalink / raw)
  To: info; +Cc: caml-list

Hi Gerd,

I attempted to install godi on FreeBSD 5.1, but my first attempt
lamentably failed.
The error I got was
===> Creating sample godi.conf
===> Installing BSD compatible install script
===> Installing bmake
mkdir: /usr/opt/godi/man/man1: File exists
Failure!
This seems to come from a missing -p argument to mkdir in bootstrap.
I join a patch.

The fix was easy, but getting it to work difficult, as you have to
erase the godi directory, and use the cleanup script in the
distribution before recompiling everything (strange for such a small
detail).
Also, godi_build and godi_info were not installed, and I had to
install them by hand.
Next, building godi-ocaml and godi-ocaml-labltk. godi-ocaml went fine,
but godi-ocaml-labltk failed, because it needs some configuration
options (I see no way to pass them). Since I'm used to BSD packages, I
go to the godi-ocaml-labltk/work directory, and reconfigure by hand.
Build goes fine, but it uses ocamlopt rather than the faster
ocamlopt.opt.

I was also a bit wondering why it installs so many utilities, as they
are all there already on FreeBSD :-) But compatibility can be a pain.

I have two questions concerning godi itself:
 - is it a good idea to use a small tgz by package?
   we might en up with lots of them!
   personnally I would rather go for updating directly from a CVS
   repository, and eventually distribute a big tgz containing all
   instruction corresponding to a specific version of ocaml.
   but you may have your reasons.
 - what about windows? Do you think it is reasonnable to have a binary
   distribution of godi with all the necessary commands (not depending
   on cygwin)? Or a distribution on top of cygwin.
   Not depending on cygwin would be a big plus for occasional users.

Regards,

        Jacques Garrigue

--- bootstrap.orig	Thu Jul 31 23:34:07 2003
+++ bootstrap	Sat Aug  2 11:37:10 2003
@@ -339,7 +339,7 @@
 (cd bmake; $shprog ./configure --prefix=$prefix --with-default-sys-path=$prefix/share/mk $configargs && make -f makefile.boot bootstrap && env BINDIR=$prefix/bin $BSTRAP_ENV ./bmake -f Makefile install) 2>&1
 ln -s bmake $prefix/bin/godi_make
 # The manpage is not installed. Why?
-mkdir $prefix/man/man1
+$mkdirprog -p $prefix/man/man1
 cp bmake/make.1 $prefix/man/man1/godi_bmake.1
 
 # bootstrap lukemftp
@@ -415,7 +415,7 @@
 
 # Move pkgsrc in place
 pkgsrcdir=$prefix/build
-mkdir $pkgsrcdir
+$mkdirprog -p $pkgsrcdir
 cpio=$prefix/bin/godi_cpio
 
 (   cd pkgsrc

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] GODI available for download
  2003-08-02  3:28 ` Jacques Garrigue
@ 2003-08-02  3:40   ` Alexander V. Voinov
  2003-08-02  9:52   ` Jacques Garrigue
  2003-08-04  0:37   ` Gerd Stolpmann
  2 siblings, 0 replies; 15+ messages in thread
From: Alexander V. Voinov @ 2003-08-02  3:40 UTC (permalink / raw)
  To: Jacques Garrigue; +Cc: info, caml-list

Hi Jacques et al.

Jacques Garrigue wrote:

> I have two questions concerning godi itself:
>  - is it a good idea to use a small tgz by package?
>    we might en up with lots of them!
>    personnally I would rather go for updating directly from a CVS
>    repository, and eventually distribute a big tgz containing all
>    instruction corresponding to a specific version of ocaml.
>    but you may have your reasons.

If there is a way to [interactively] select components to install, with all 
dependences transitively added, a one big package may be better. (bandwidths are 
wide and our disks get larger, nowadays...)

>  - what about windows? Do you think it is reasonnable to have a binary
>    distribution of godi with all the necessary commands (not depending
>    on cygwin)? Or a distribution on top of cygwin.
>    Not depending on cygwin would be a big plus for occasional users.

It would be a big plus to have a binary installation, not depending on cygwin. 
Though my main development platform is u*x, I found that it is quite easy and 
straighforward to develop apps with MSVC and OCaml. (that is the chance that you 
deadly need cygwin to port your app to win32 is less than one would expect.)

Alexander



-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] GODI available for download
  2003-08-02  3:28 ` Jacques Garrigue
  2003-08-02  3:40   ` Alexander V. Voinov
@ 2003-08-02  9:52   ` Jacques Garrigue
  2003-08-05  2:30     ` prashanth
  2003-08-04  0:37   ` Gerd Stolpmann
  2 siblings, 1 reply; 15+ messages in thread
From: Jacques Garrigue @ 2003-08-02  9:52 UTC (permalink / raw)
  To: info; +Cc: caml-list

Some more considerations on my experience.

> Next, building godi-ocaml and godi-ocaml-labltk. godi-ocaml went fine,
> but godi-ocaml-labltk failed, because it needs some configuration
> options (I see no way to pass them). Since I'm used to BSD packages, I
> go to the godi-ocaml-labltk/work directory, and reconfigure by hand.

I realize now that this configuration problem is going to be very
complicated. BSD packages are OS-oriented: they assume a closed world,
where everything is controlled by the packaging system. So you don't
need to tell them where something is on the system, they already know
it.

With godi, the situation is different. For instance, tcl/tk headers
may be in many places, maybe even several versions of them, and the
user should be able to indicate where to find them. Same thing for
camlimages, lablgl, lablgtk, etc...
My feeling is that there has to be a way to give this information
by hand the first time you install a package, and these parameters
would be reused in following installations. When the package is
installed as a dependency, this may require some interaction from the
user.
Also, the possibility of finishing the work by hand must be left,
otherwise recovering from simple configurations bugs can become
unwieldly.

I'm afraid this is just one example of mismatch between an
OS-oriented packager and a language-oriented multi-platform packager.

Another one is the use of makefiles internally and in packages. While
makefiles are not intrinsically bad, they have one big default: they
depend heavily on the behaviour of external commands on the system. If
you have only platform this is not a problem: you just have to check
once that this works, but if you must handle multiple platforms, it is
very hard to be sure that the Makefile is portable.
I don't know how CPAN handles that, but this is going to be painful.
Using an ocaml only tool like ocamake may be an interesting option, at
least for simple packages.

Just some thoughts.
I certainly believe that godi is a big step in the right direction.

Jacques Garrigue

P.S. A small detail, but would it be hard to replace godi_ftp by
fetch? On my system godi_ftp is 351K whereas fetch is only 18K. I
suppose this is also reflected by the size of the sources.
I wonder also if there is a packaging system based on gmake rather
than bmake. It feels a bit strange to install bmake only for internal
purposes.

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Caml-list] Re: GODI available for download
  2003-07-30 21:41 [Caml-list] GODI available for download Gerd Stolpmann
  2003-07-31 16:51 ` Fred Yankowski
  2003-08-02  3:28 ` Jacques Garrigue
@ 2003-08-02 11:54 ` Alain
  2003-08-03 15:26   ` David Brown
  2 siblings, 1 reply; 15+ messages in thread
From: Alain @ 2003-08-02 11:54 UTC (permalink / raw)
  To: caml-list

Hi,

Have a try on MacOS X, quickly interrupted because the native
filesystem (HFS+) is not "a case-sensitive filesystem".

I will retry soon with on a computer with an UFS partition.
But this is annoying, most Darwin's users use HFS+.

regards,
Alain.

--
quote godi output:

===> Testing file system case sensitivity
"/Users/alain/Sources/godi" needs to be on a case-sensitive filesystem 
(see README.Darwin)
Failure!


-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] Re: GODI available for download
  2003-08-02 11:54 ` [Caml-list] " Alain
@ 2003-08-03 15:26   ` David Brown
  2003-08-04  0:49     ` Gerd Stolpmann
  0 siblings, 1 reply; 15+ messages in thread
From: David Brown @ 2003-08-03 15:26 UTC (permalink / raw)
  To: Alain; +Cc: caml-list

On Sat, Aug 02, 2003 at 01:54:34PM +0200, Alain wrote:

> Have a try on MacOS X, quickly interrupted because the native
> filesystem (HFS+) is not "a case-sensitive filesystem".
> 
> I will retry soon with on a computer with an UFS partition.
> But this is annoying, most Darwin's users use HFS+.

I agree with this.  Requiring a case-sensitive filesystem will be a show
stopper for an increasing number of systems.

One question is, does GODI really require that?  HFS preserves the case
of filenames, and usually you can't tell it is case insensitive.  Only
if you try to create two filenames that differ only in case do you
notice the problem.

Dave

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] GODI available for download
  2003-07-31 16:51 ` Fred Yankowski
  2003-08-01 21:24   ` Gerd Stolpmann
@ 2003-08-03 17:11   ` Sven Luther
  2003-08-04 21:36     ` Fred Yankowski
  1 sibling, 1 reply; 15+ messages in thread
From: Sven Luther @ 2003-08-03 17:11 UTC (permalink / raw)
  To: Fred Yankowski; +Cc: Gerd Stolpmann, caml-list

On Thu, Jul 31, 2003 at 11:51:06AM -0500, Fred Yankowski wrote:
> On Wed, Jul 30, 2003 at 11:41:27PM +0200, Gerd Stolpmann wrote:
> > In the past days I have worked on GODI, an experimental source-based
> > O'Caml distribution, and I think it is now worth a try.
> > 
> > You can get the current bootstrap tarball here:
> > 
> > http://www.ocaml-programming.de/packages/godi-bootstrap-20030730.tar.gz
> 
> I gave it a try on a Linux 2.4.20 / Debian 3.0 machine, where (as far
> as I can recall) I have never installed ocaml.  Although I have lots
> of experience with Debian package management, I've never BSD-style
> package management tooks before.  So here's what ensued:
> 
> The godi-ocaml package built and installed easily.
> 
> To build godi-ocaml-graphics I had to first install the Debian
> xdev-libs package to get the needed Xlib.h and Xutil.h files.  No big
> deal.
> 
> Building godi-ocaml-labltk was a minor pain.  I had to install the
> Debian tcl8.3-dev and tk8.3-dev packages to get the tcl.h and tk.h

Notice that i build the ocaml debian packages with :

                -tklibs "-L/usr/lib -ltk8.3 -ltcl8.3"

Friendly,

Sven Luther

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] GODI available for download
  2003-08-02  3:28 ` Jacques Garrigue
  2003-08-02  3:40   ` Alexander V. Voinov
  2003-08-02  9:52   ` Jacques Garrigue
@ 2003-08-04  0:37   ` Gerd Stolpmann
  2 siblings, 0 replies; 15+ messages in thread
From: Gerd Stolpmann @ 2003-08-04  0:37 UTC (permalink / raw)
  To: Jacques Garrigue; +Cc: caml-list

Am Sam, 2003-08-02 um 05.28 schrieb Jacques Garrigue:
> Hi Gerd,
> 
> I attempted to install godi on FreeBSD 5.1, but my first attempt
> lamentably failed.
> The error I got was
> [...]
> I join a patch.

Thank you.

> The fix was easy, but getting it to work difficult, as you have to
> erase the godi directory, and use the cleanup script in the
> distribution before recompiling everything (strange for such a small
> detail).

The bootstrap script uses the binaries it creates; installations and
compilations are not separated, so you cannot restart at the failed
step. I am not really happy about that, but I hope that fixes will no
longer be necessary when the bootstrap process stabilizes.

> Also, godi_build and godi_info were not installed, and I had to
> install them by hand.

I guess because the script did run until its end (it is a "set -e"
script, so it stops after the first error).

> Next, building godi-ocaml and godi-ocaml-labltk. godi-ocaml went fine,
> but godi-ocaml-labltk failed, because it needs some configuration
> options (I see no way to pass them). 

The idea is to put all configuration options into godi.conf, and that
every driver Makefile pulls the options it needs from this file.

> Since I'm used to BSD packages, I
> go to the godi-ocaml-labltk/work directory, and reconfigure by hand.
> Build goes fine, but it uses ocamlopt rather than the faster
> ocamlopt.opt.
> 
> I was also a bit wondering why it installs so many utilities, as they
> are all there already on FreeBSD :-) But compatibility can be a pain.

I have simply copied them from the NetBSD bootstrap script. I do not
know whether we need all them (for the uninformed reader, we are talking
about BSD make, lukemftp, pax, digest, mtree, and the tools for the
binary packages). I guess mtree is not used at all because it requires
root privileges, so it should be possible to omit it. Regarding bmake, I
do not know how identical the NetBSD and FreeBSD versions are; it looks
like that they have been independently developed after the fork (the
FreeBSD man page lists fewer syntax elements than the NetBSD version).
You can try to make the godi_make symlink pointing to the FreeBSD
version. pax (which is a tool implementing the tar and cpio commands) is
standardized, but the danger is too big that non-POSIX versions like
GNU-tar are unintentionally used. The differences are small, but I do
not want to get bug reports because of deviating tar formats.

Regarding ftp we can try to let the script find out the native version
and use it.

> I have two questions concerning godi itself:
>  - is it a good idea to use a small tgz by package?
>    we might en up with lots of them!
>    personnally I would rather go for updating directly from a CVS
>    repository, and eventually distribute a big tgz containing all
>    instruction corresponding to a specific version of ocaml.
>    but you may have your reasons.

CVS is a good tool to get the current development version, i.e. for the
unstable branch (when it exists). For the casual user, it is too random
which version is the current one. There are further disadvantages, e.g.
you cannot use CVS behind firewalls (at least like firewalls that are
typically used in company LANs).

On the other hand, a big tgz has the disadvantage that you cannot "pin"
certain versions of libraries, so that they are excluded from updates.

The current solution wants to be a compromise that works for everybody.
That the checks are so slow is caused by bmake calls that find out the
version on the disk; this can be improved, e.g. by comparing the $Id$
tags once they are in place.

By the way, I am not using CVS to manage the sources but subversion.
There are several reasons: (1) I want to check it out, (2) it has
features that can be very helpful to track foreign sources, and (3) it
works even over HTTP.

>  - what about windows? Do you think it is reasonnable to have a binary
>    distribution of godi with all the necessary commands (not depending
>    on cygwin)? Or a distribution on top of cygwin.
>    Not depending on cygwin would be a big plus for occasional users.

For a binary distribution we basically need the package tools, and some
scripts around them. I do not know whether there are Windows ports. Of
course, these tools are typical Unix programs, i.e. lots of pipes,
forks, etc., so that a MinGW port would be some work (but certainly
doable).

The scripts around these tools could be written in O'Caml itself, as we
do not have the bootstrap problem for a binary distribution. (As a last
resort, we could also rewrite the package tools in O'Caml, which is not
too hard.)

Am Sam, 2003-08-02 um 11.52 schrieb Jacques Garrigue: 
> Some more considerations on my experience.
> 
> > Next, building godi-ocaml and godi-ocaml-labltk. godi-ocaml went fine,
> > but godi-ocaml-labltk failed, because it needs some configuration
> > options (I see no way to pass them). Since I'm used to BSD packages, I
> > go to the godi-ocaml-labltk/work directory, and reconfigure by hand.
> 
> I realize now that this configuration problem is going to be very
> complicated. BSD packages are OS-oriented: they assume a closed world,
> where everything is controlled by the packaging system. So you don't
> need to tell them where something is on the system, they already know
> it.
> 
> With godi, the situation is different. For instance, tcl/tk headers
> may be in many places, maybe even several versions of them, and the
> user should be able to indicate where to find them. Same thing for
> camlimages, lablgl, lablgtk, etc...
> My feeling is that there has to be a way to give this information
> by hand the first time you install a package, and these parameters
> would be reused in following installations. When the package is
> installed as a dependency, this may require some interaction from the
> user.

In the current version of GODI, the godi.conf file contains these
configuration options. Of course, this is a non-interactive solution,
but I have added now hints that are printed on the screen just before
the build starts (and the user must confirm). So the user is now
reminded that there are such options, and where they can be found.

In the future, I can imagine that we have a labltk program that assists
the user in configuring the system. This GUI would be the better
solution for "camlimages, lablgl, lablgtk, etc...", but of course not
for labltk itself.

I see only one way for labltk: implanting more knowledge about the
various operating systems, and more intelligence to find even unusual
locations for tcl/tk.

There is not only the question of configuration options to find external
installations, but also the question which libraries one should better
include in GODI. Currently, I have only included GDBM (because an ndbm
implementation is necessary for a full O'Caml installation, and I wanted
to have something predictable), and PCRE (because PCRE4 is not yet
widely available, but the O'Caml bindings require it). Of course, the
question is where to draw the line. If we had a GUI for GODI, it could
even be justified to include tcl/tk if the user wishes so.

> Also, the possibility of finishing the work by hand must be left,
> otherwise recovering from simple configurations bugs can become
> unwieldly.

This is also necessary for the developers. Currently, the whole make
infrastructure works like NetBSD's, and I am not going to change this.

> I'm afraid this is just one example of mismatch between an
> OS-oriented packager and a language-oriented multi-platform packager.

I hope there will not be more. I have already resolved several other
mismatches: 

- The original scripts require root privileges for installation. Of course,
  we do not want that.

- The original package tools store the version conditions like
  "libraryXY>=3.5" in the binary packages. I have changed that to
  "libraryXY=3.5" because of OCaml's strict interface checksums.

- Some of the PLIST issues are resolved. There is a special
  PLIST.godi format that recognizes additional directives, so you
  can package whole directories, with filename globbing, and under
  a number of O'Caml-specific conditions.

- There can be several GODI installations on the same system (no
  conflict because there is only one /etc/mk.conf as in NetBSD)

Up to now, it was quite easy to change the build and packaging scripts
as needed (I guess there would be more trouble if I had used a closed
system like rpm).

> Another one is the use of makefiles internally and in packages. While
> makefiles are not intrinsically bad, they have one big default: they
> depend heavily on the behaviour of external commands on the system. If
> you have only platform this is not a problem: you just have to check
> once that this works, but if you must handle multiple platforms, it is
> very hard to be sure that the Makefile is portable.
> I don't know how CPAN handles that, but this is going to be painful.
> Using an ocaml only tool like ocamake may be an interesting option, at
> least for simple packages.

It is painful. I have already run into problems, e.g. /bin/sh on Solaris
is not even POSIX-compliant, and it starts subshells under much more
conditions than a standard shell. Fortunately, most of the tools are not
that problematic; an mkdir is an mkdir. And most of the O'Caml sources
come with Makefiles that have the same portability problems; in the long
run, I guess most of the bugs will occur in the upstream Makefiles.

(There is already such a problem in godi-wlex. The "patch" utility of
Solaris does not grok the wlex patch.)

In my opinion, the portability problem can only be _finally_ solved if
the upstream Makefiles are replaced by something better. Perl has its
Makefile.PL, which is a Perl script that writes the system-dependent
Makefile. However, Perl is not compiled, and the possible cases are
simpler to manage.

> Just some thoughts.
> I certainly believe that godi is a big step in the right direction.
> 
> Jacques Garrigue
> 
> P.S. A small detail, but would it be hard to replace godi_ftp by
> fetch? On my system godi_ftp is 351K whereas fetch is only 18K. I
> suppose this is also reflected by the size of the sources.

You can set FETCH_CMD in godi.conf; I don't know if the options are
compatible enough.

> I wonder also if there is a packaging system based on gmake rather
> than bmake. It feels a bit strange to install bmake only for internal
> purposes.

I consider bmake as just another scripting language. Of course, we could
port the whole bsd.pkg.mk to gmake, but does this make sense? It has
more than 4600 lines, and it makes heavy use of the BSD extensions.

If we are going to switch to another tool, it will be more attractive to
write a small make utility in O'Caml that can be scripted in O'Caml.
There is very ugly code in bsd.pkg.mk that would have a trivial and
elegant expression in O'Caml.

Gerd
-- 
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany 
gerd@gerd-stolpmann.de          http://www.gerd-stolpmann.de
------------------------------------------------------------

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] Re: GODI available for download
  2003-08-03 15:26   ` David Brown
@ 2003-08-04  0:49     ` Gerd Stolpmann
  2003-08-04  5:21       ` David Brown
  0 siblings, 1 reply; 15+ messages in thread
From: Gerd Stolpmann @ 2003-08-04  0:49 UTC (permalink / raw)
  To: David Brown; +Cc: Alain, caml-list

Am Son, 2003-08-03 um 17.26 schrieb David Brown:
> On Sat, Aug 02, 2003 at 01:54:34PM +0200, Alain wrote:
> 
> > Have a try on MacOS X, quickly interrupted because the native
> > filesystem (HFS+) is not "a case-sensitive filesystem".
> > 
> > I will retry soon with on a computer with an UFS partition.
> > But this is annoying, most Darwin's users use HFS+.
> 
> I agree with this.  Requiring a case-sensitive filesystem will be a show
> stopper for an increasing number of systems.

I don't know whether this number increases or decreases, I have just
copied this check from the original NetBSD script. I also do not know
whether a case-sensitive filesystem is strictly required, and in which
problem you will run with other systems. You can try it by passing the
option --ignore-case-check to the bootstrap script, this turns the check
off.

> One question is, does GODI really require that?  HFS preserves the case
> of filenames, and usually you can't tell it is case insensitive.  Only
> if you try to create two filenames that differ only in case do you
> notice the problem.

I can imagine that certain checks do not work properly, so maybe one or
the other error condition is not detected, or maybe filename
manipulations do not work always.

Gerd
-- 
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany 
gerd@gerd-stolpmann.de          http://www.gerd-stolpmann.de
------------------------------------------------------------

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] Re: GODI available for download
  2003-08-04  0:49     ` Gerd Stolpmann
@ 2003-08-04  5:21       ` David Brown
  0 siblings, 0 replies; 15+ messages in thread
From: David Brown @ 2003-08-04  5:21 UTC (permalink / raw)
  To: Gerd Stolpmann; +Cc: David Brown, Alain, caml-list

On Mon, Aug 04, 2003 at 02:49:32AM +0200, Gerd Stolpmann wrote:

> > One question is, does GODI really require that?  HFS preserves the case
> > of filenames, and usually you can't tell it is case insensitive.  Only
> > if you try to create two filenames that differ only in case do you
> > notice the problem.
> 
> I can imagine that certain checks do not work properly, so maybe one or
> the other error condition is not detected, or maybe filename
> manipulations do not work always.

In all of the programs I have worked with on case-preserving
case-insensitive, only a few have ever failed.

  - Old versions of perl generated both a 'makefile' and a 'Makefile'.
    This has long been corrected.
  - OpenCM creates directories 'A', and 'a'.  It actually works, since
    the filenames probably won't collide, but the resultant tree can't
    be moved to a case-sensitive filesystem.

I have heard of one other, and it was fairly trivial to fix.

I'm guessing that there is nothing in GODI that cares.

Dave

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] GODI available for download
  2003-08-03 17:11   ` Sven Luther
@ 2003-08-04 21:36     ` Fred Yankowski
  2003-08-05  1:56       ` Sven Luther
  0 siblings, 1 reply; 15+ messages in thread
From: Fred Yankowski @ 2003-08-04 21:36 UTC (permalink / raw)
  To: Sven Luther; +Cc: caml-list

On Sun, Aug 03, 2003 at 07:11:12PM +0200, Sven Luther wrote:
> Notice that i build the ocaml debian packages with :
> 
>                 -tklibs "-L/usr/lib -ltk8.3 -ltcl8.3"

OK, but what's your point?  I'm guessing that the above options mean
that the ocaml exectables built in your debian packages are linked
with the tcl and tk libraries.  Does that have any bearing on my
experiment with Gerd's proposed distribution tools?

Perhaps you're informing me that ocaml with tkinter is already
available in your Debian packages.  If so -- so noted.  I do prefer to
use Debian packages when they have what I need.  One trouble is that I
tend to be a late-adopter of new Debian releases, and Debian releases
are notoriously slow to pick up current upstream package versions as
it is; so I have to build more from source distributions than I would
like.  I wish it were easier to install the latest Debian packages in
older releases (a problem not particular to Ocaml).

-- 
Fred Yankowski      fred@ontosys.com           tel: +1.630.879.1312
OntoSys, Inc	    PGP keyID: 7B449345        fax: +1.630.879.1370
www.ontosys.com     38W242 Deerpath Rd, Batavia, IL 60510-9461, USA

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] GODI available for download
  2003-08-04 21:36     ` Fred Yankowski
@ 2003-08-05  1:56       ` Sven Luther
  0 siblings, 0 replies; 15+ messages in thread
From: Sven Luther @ 2003-08-05  1:56 UTC (permalink / raw)
  To: Fred Yankowski; +Cc: Sven Luther, caml-list

On Mon, Aug 04, 2003 at 04:36:55PM -0500, Fred Yankowski wrote:
> On Sun, Aug 03, 2003 at 07:11:12PM +0200, Sven Luther wrote:
> > Notice that i build the ocaml debian packages with :
> > 
> >                 -tklibs "-L/usr/lib -ltk8.3 -ltcl8.3"
> 
> OK, but what's your point?  I'm guessing that the above options mean
> that the ocaml exectables built in your debian packages are linked
> with the tcl and tk libraries.  Does that have any bearing on my
> experiment with Gerd's proposed distribution tools?

Just to say that in debian, the tcl/tk library are accessed not with
plain -ltk -ltcl, but that they have the version appended in order to
have multiple versions of tcl/tk. So maybe your troubles building Gerd's
stuff may be related to that, but then maybe not.

> Perhaps you're informing me that ocaml with tkinter is already

Err, i don't know about tkinter. the debian packages are mostly plain
upstream sources, with some collection of added fixes, mostly taken out
of CVS.

> available in your Debian packages.  If so -- so noted.  I do prefer to
> use Debian packages when they have what I need.  One trouble is that I
> tend to be a late-adopter of new Debian releases, and Debian releases
> are notoriously slow to pick up current upstream package versions as
> it is; so I have to build more from source distributions than I would
> like.  I wish it were easier to install the latest Debian packages in
> older releases (a problem not particular to Ocaml).

You are aware of Stefano's backport repository, which was reptedly
announced here, are you not ?

Friendly,

Sven Luther

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [Caml-list] GODI available for download
  2003-08-02  9:52   ` Jacques Garrigue
@ 2003-08-05  2:30     ` prashanth
  0 siblings, 0 replies; 15+ messages in thread
From: prashanth @ 2003-08-05  2:30 UTC (permalink / raw)
  To: Jacques Garrigue; +Cc: caml-list


On Sat, Aug 02, 2003 at 06:52:29PM +0900, Jacques Garrigue wrote:

> I wonder also if there is a packaging system based on gmake rather
> than bmake. It feels a bit strange to install bmake only for internal
> purposes.

There is GAR:

http://lnx-bbc.org/garchitecture.html

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2003-08-05  2:29 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-07-30 21:41 [Caml-list] GODI available for download Gerd Stolpmann
2003-07-31 16:51 ` Fred Yankowski
2003-08-01 21:24   ` Gerd Stolpmann
2003-08-03 17:11   ` Sven Luther
2003-08-04 21:36     ` Fred Yankowski
2003-08-05  1:56       ` Sven Luther
2003-08-02  3:28 ` Jacques Garrigue
2003-08-02  3:40   ` Alexander V. Voinov
2003-08-02  9:52   ` Jacques Garrigue
2003-08-05  2:30     ` prashanth
2003-08-04  0:37   ` Gerd Stolpmann
2003-08-02 11:54 ` [Caml-list] " Alain
2003-08-03 15:26   ` David Brown
2003-08-04  0:49     ` Gerd Stolpmann
2003-08-04  5:21       ` David Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).