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

Re: Counter proposal for the multiple ocaml installed



On Tue, Oct 22, 2002 at 11:04:17AM +0200, Jérôme Marant wrote:
> En réponse à Sven Luther <luther@dpt-info.u-strasbg.fr>:
> 
> 
> > If i introduce a new ocaml version, ocaml 3.07, without necessarily
> > removing the old one, then the new ocaml 3.07 packages can flow into
> > testing without breaking the old packages. The same goes for the
> 
> 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.

> 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.

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

> > 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).

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.

> > 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.
And btw, the README.Debian says explicitly that they should install into
/usr/local/lib/ocaml/3.06, not into /usr/local/lib/ocaml.

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.

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.

> > >   Without the date would be better.
> > 
> > But this would mean only one available cvs snapshot. But it would be
> > cleaner and easier all right.
> 
> Yes.
> 
> > > > Would this, if you compare it point to point to your proposal, not
> > > > sound
> > > > more clean and logical ?
> > > 
> > >   Under the conditions I mentioned, yes.
> > 
> > And what about my counter proposal to your conditions ?
> 
> For transitional purpose, I agree.

Ok, ...

Let's do it then.

> > >   Remember that Cameleon has not entered unstable yet.
> > 
> > What has that to do with it ?
> 
> It will not even be installable when entering unstable.

Well, i did not say to do it immediately.

> > > > Total change for libraries :
> > > > 
> > > >   o need to change dependencies by bumping it to 3.06.1
> > > 
> > > Huh?
> > 
> > So that the packages built for ocaml 3.06 with the old libdir will not
> > be installable alongside the new ocaml 3.06 with the new libdir.
> > 
> > Also consider, i could use the exact same scheme mentioned above for
> > the
> > old libdir -> new libdir transition. I simply upload ocaml-3.06, and
> > ocaml providing ocaml-3.06.1, and you will never even notice.
> 
> 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.

> > > >   o need to rebuild the package.
> > > 
> > > Of course.
> > 
> > Ideally, a debian/rules for libraries where you could change the
> > default
> > ocaml to use by one variable only will allow users to rebuild for
> > their
> > use (with the cvs snapshot for example) without needing to much
> > change.
> 
> OK.

Lot of work though.

> > > > Is this too much asking ?
> > > > 
> > > > That said, even if we don't have multiple versions of ocaml
> > installed,
> > > > then we still gain by doing this, in making things easier for the
> > > > people hand installing stuff.
> > > 
> > > I agree.
> > 
> > :)))
> 
> No, I'm not nitpicking. I want to be convinced before agreeing with
> anything :p

Ok, that is what we are having this discution now.

Friendly,

Sven Luther



Reply to: