[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: proposal: new ocaml dirs schema



On Mon, Oct 21, 2002 at 09:10:04AM +0200, Stefano Zacchiroli wrote:
> On Sat, Oct 19, 2002 at 01:11:03PM +0200, Sven Luther wrote:
> > > For example we can have a 'current debian ocaml version' of 3.06 and
> > > currently installed also ocaml-3.04 and ocaml-3.07, having 'ocaml'
> > > package provided by ocaml-3.06 and /usr/bin/ocaml ->
> > > /usr/bin/ocaml-3.06.
> > 
> > Mmm, i was thinking about the following :
> > latest debian version -> /usr/bin/ocaml
> > older debian version -> /usr/bin/ocaml-<older_version>
> > cvs build -> /usr/bin/ocaml-cvs-<date>
> > 
> > Or something such.
> 
> Uhm ... IMO is better a schema based on symlink (which is the python
> one):
> 
> - each ocaml version:
>    /usr/bin/ocaml-<version>
> 
> - an ocaml package which depends on the current debian ocaml version and
>   provides a symlink
>     /usr/bin/ocaml -> ocaml-<debian_ocaml_version>
> 
> With this schema you have not to reupload the old ocaml version each
> time a new version will be available.
> You just have to package the new version and reupload the ocaml package
> with the right dependency and the right symlink.

Yes, it has its merits, it is more work for me though.

The advantage of my idea, was simply that people only interrested in the
latest ocaml packages would not have any cruft one their system, the
only difference with the current situation would have been the move of
the ocamllib directory, and this would have been transparent to the user
thanks to the -where option to ocamlc.

And remember, we have to reupload anyway, because we have to change the
name of the packages.

Also, This only concerns packages which have binaries, like ocaml, but
not most libraries, which only need to install into ocamlc -where.

Another point in favor of your option is about the bytecode executables.
If we upload a 3.04 package today, then we have to rebuild all packages
which are using the virtual machine to be changed from using
/usr/bin/ocamlrun to /usr/bin/ocamlrun-3.04.

That said, if we use the symlink, we have also to make sure that ocamlc
will add the original file and not the symlink to the bytecode
executables. I believe this is done by copying a file generated at built
time, so it should not be a problem.

> > The constraint on our users is to do some creative makefile use (i can
> > provide a sample makefile part to include), but i guess simply having
> > something of the kind :
> > 
> > OCAML_VERSION=3.06
> > 
> > OCAMLC=/usr/bin/ocamlc-$(OCAML_VERSION)
> 
> With the symlink based approach, this is useless.

Erm, and if you want to use the older or the cvs version, then you have
to change the symlink each time. Remember, this was for the _old_
packages (i should have used 3.04 as example).

> > I thought, once we have discussed it a bit, we may well ask for comment
> > on the official ocaml mailing list also.
> 
> Agreed!

Ok ...

There is really no urgency to this though.

BTW, postgresql is buggy, and will not enter testing, so we will also
not.

Friendly,

Sven Luther



Reply to: