Version française
Home     About     Download     Resources     Contact us    
Browse thread
[OSR] Ports-like package management system
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Nicolas Pouillard <nicolas.pouillard@g...>
Subject: Re: [Caml-list] [OSR] Ports-like package management system
Excerpts from daniel.buenzli's message of Wed Jan 30 12:15:01 +0100 2008:
> 
> Le 30 janv. 08 à 09:49, Nicolas Pouillard a écrit :
> 
> > You  have a local branch of the whole port hierarchy, that's why  
> > we're talking
> > about DVCS.
> 
> Ok I understand now. So the port hierarchy is centralized and  
> versioned that's exactly what I don't like because it is not flexible  
> enough, you have to  wait for things to update (e.g. like waiting for  
> the 3.10 branch in godi) because package description files support  
> only one version.

Not  necessarily,  in  Gentoo,  there  is  all  installable  versions  in  the
directory of the project.

Here is the OCaml package in Gentoo:

$ find /usr/portage/dev-lang/ocaml
/usr/portage/dev-lang/ocaml
/usr/portage/dev-lang/ocaml/Manifest
/usr/portage/dev-lang/ocaml/files
/usr/portage/dev-lang/ocaml/files/ocaml-rebuild.sh
/usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-exec-stack-fixes.patch
/usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-Makefile.patch
/usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-configure.patch
/usr/portage/dev-lang/ocaml/files/ocaml-3.10.0-exec-stack-fixes.patch
/usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-execheap.patch
/usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-automagic.patch
/usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-hppa-optimize-for-size-ocamlp4.patch
/usr/portage/dev-lang/ocaml/files/ocaml-3.09.3-call_ld_with_proper_flags.patch
/usr/portage/dev-lang/ocaml/files/ocaml-3.10.0-automagic.patch
/usr/portage/dev-lang/ocaml/files/ocaml-3.10.0-configure.patch
/usr/portage/dev-lang/ocaml/files/ocaml-3.10.0-call-ld-with-proper-ldflags.patch
/usr/portage/dev-lang/ocaml/ocaml-3.08.4.ebuild
/usr/portage/dev-lang/ocaml/ocaml-3.09.2.ebuild
/usr/portage/dev-lang/ocaml/ChangeLog
/usr/portage/dev-lang/ocaml/metadata.xml
/usr/portage/dev-lang/ocaml/ocaml-3.09.3-r1.ebuild
/usr/portage/dev-lang/ocaml/ocaml-3.09.3.ebuild
/usr/portage/dev-lang/ocaml/ocaml-3.10.0.ebuild
/usr/portage/dev-lang/ocaml/ocaml-3.09.3-r2.ebuild
/usr/portage/dev-lang/ocaml/ocaml-3.10.1.ebuild

You  can  see  that  there  is  multiple  versions,  but  not  necessarily all
versions. There regularly garbage-collect some versions.

> I don't like the idea of one version per description file, it is not  
> flexible enough and having the port hierarchy under vcs doesn't help  
> to select a particular version of a port.

As you can see, that's wrong in the case of portage.

> The way I see it is
> 
> - a package is a list of versions
> - a version is a list of files that build themselves with ocamlbuild  
> and a specification of dependencies.
> 
> Now the tool I seek allows me to specify package dependencies in  
> ocamlbuild and take care of their install.

Yes and such a list of package, can be hosted in a hierarchy in a VCS.

> > That's  not  a  baroque  case,  I  mean  if  you are responsible of  
> > libFoo and
> > progBar,  you  perhaps  want to quickly package progBar using the  
> > last version
> > of libFoo.
> 
> If you don't have a centralized port hierarchy, you don't get these  
> problems because you manage your own package description file. In that  
> case just add a new version to your package description file and  
> publish it. Decentralize the system let anyone publish their own  
> package descriptions on their website, use the web.

In this system anyone can publish it's variant of the ports hierarchy.

-- 
Nicolas Pouillard aka Ertai