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

Re: Counter proposal for the multiple ocaml installed



En réponse à Sven Luther <luther@dpt-info.u-strasbg.fr>:

> > So if I read correctly in your mind, the transition would happen
> > like this:
> > - ocaml 3.06 is in debian
> > - you upload ocaml3.07 (version within the name). This package
> > provides ocaml-3.07 and ocaml-base-3.07
> > - we recompile packages against ocaml-3.07 and ocaml-base-3.07
> > - when completed, we bump ocaml to 3.07 and remove ocaml3.07
>     Err, we remove 3.06, but i suppose this just was a typo.

  No, there was no typo. ocaml 3.06 is meant to be pushed out
  of the archive once ocaml 3.07 replaces it.
  ocaml3.07 (note the package name with the version within)
  is the package that we upload when 3.06 is still in the archive.

> > I made assumption with respect to what you said, am I correct?
> 
> Well, yes, this is the main idea. But then, we can also keep 3.06, but
> not rebuild the libs for it.

  It is not possible as I described: the idea is to perform the
  final step once the transition is complete.

> There is nothing stopping use from having many versions of ocam
> linstalled at the same time, the only problem is with the libraries.

  Yes, and such problem is not worth it. I don't want to add a
  version number in my packages any times a new ocaml comes out.
  A new stable version of Ocaml should become the standard one
  as quick as possible, otherwise some people will find good
  reasons to keep old versions (like Georges Mariano with ioxml).

> > > libraries and bytecode executbales, which little by little will
> flow
> > > into testing. This ease the transition from one release to the
> next,
> > > without a brutal change as we have now, which results in having to
> > > wait
> > > for a fixed postgreSQL for ocaml 3.06 to enter testing, and we are
> now
> > > many month after the ocaml 3.06 release. The possibility to easily
> > 
> > But the postgres problem happens at the end of the transition
> > so we cannot avoid the problem anyway.
> 
> Well, the difference is that ocaml is _not_ dependant on postgresql in
> any way. In fact, if i were to ask the ftp-master to remove stefano's
> library depending on postgreSQL from the archive, the same day all the
> ocaml stuff will enter testing (unless i am missing something).

I think testing works like this. It is a side effect.

> So if we had the new translation scheme, ocaml 3.06 would have entered
> testing, as well as most of the libs, and only the problematic
> libraries
> would be delayed.

So programs using such libs must not be recompiled against
the new ocaml until the transition of such libs succeeded.

> > > provide a CVS snapshot (which is a good thing, like a mail from
> > > jacques
> > > in the caml list this morning shows you) is just an added benefit.
> The
> > > second added benefit, is that user having installed stuff into the
> > > ocaml
> > > 3.06 libdir will not have their setup broken by a ocaml 3.07
> upload.
> > 
> > User must not do manual install in /usr/lib/ocaml;
> /usr/local/lib/ocaml
> > is there for that propose. 
> 
> Yes, the problem is that : 
> 
>   1) ocaml does not yet support OCAMLPATH, nor the ability to simply
>   use two different directories for the standard libraries.
> 
>   This can be solved by having every user use a -I directive, but then
>   the -I +dir shortcut is broken also.
> 
>   2) Most current ocaml libs try to install into `ocamlc -where`, and
>   you have to override it manually, most user will not bother with it,
>   and there are libraries out there where the Makefile does not make
>   such a change easy.
> 
> Result is that unless we have this nicely working, many if not most
> users will install in /usr/lib/ocaml, and we have to cope with that.

Users have to read the README.Debian where it is written that
they must absolutely not install modules in /usr/lib/ocaml, if
they do it, it is at their own risk.

> And btw, the README.Debian says explicitly that they should install
> into
> /usr/local/lib/ocaml/3.06, not into /usr/local/lib/ocaml.

Yes.

> We can only count on this, or even enforce this when :
> 
> ocaml is patched to support multiple installdirs, with a working
> OCAMLPATH or something such. We can then even have multiple such path,
> i
> would suggest :
> 
> OCAMLPATH = ~/ocaml/3.06; /usr/local/lib/ocaml/3.06;
> /usr/lib/ocaml/3.06
> 
> In this order.

What is ~/ocaml/3.06 ?

> And for installs, findlib should be able to handle this properly, but
> i
> would patch ocamlc so that it provides :
> 
> ocamlc -where => /usr/local/lib/ocaml/3.06
> ocamlc -distwhere => /usr/lib/ocaml/3.06
> 
> And maybe even have ocamlc -where to be able to distinguish between
> running as root (or having rights to /usr/local/lib/ocaml/3.06) and
> running as user, or maybe adding an :
> 
> ocamlc -persowhere => ~/ocaml/3.06
> 
> switch.
> 
> But this is something that needs to be discussed with upstream, i hope
> it will be solved for 3.07.

I have no clue about this.
> > Maybe ocaml-3.06-7 would be better and would reflect more the
> > Debian version of the transition?
> 
> Yes, or even ocaml-3.06.newdir or something such.

Cheers,

--
Jérôme Marant <jerome@marant.org>
              <jerome.marant@free.fr>

http://marant.org



Reply to: