On Sat, Dec 10, 2011 at 10:12 PM, <[email protected]> wrote:
> What I'd really like is a way to mix any version I want of the packages I
> install, especially experimental versions for the packages I want to test
> or
> contribute to.
> I stopped using GODI some time ago because I wanted master of ocaml and
> batteries but stable versions of everything else. So I ended up rolling my
> own makefile-based installation/upgrade tool which is both annoying and
> archaic.
>
> Here is a little trick that I did to get full control of which version of
each package gets installed.
In rocketboost, file 'godi-tools/mk/build/mk/bsd.prefs.mk' around line 700
change to use your private repository.
# The primary backup
site.
MASTER_SITE_BACKUP=
\
http://192.168.100.100/godi/distfiles/
# http://godi-backup2.camlcity.org/godi-backup/\
# http://www.ocaml-programming.de/godi-backup/\
# http://godi.0ok.org/godi-backup/
# Where to put distfiles that don't have any other master
site
MASTER_SITE_LOCAL=
\
${MASTER_SITE_BACKUP:=LOCAL_PORTS/}
GODI_BUILD_SITE?=
\
http://192.168.100.100/godi/${GODI_SECTION}
# http://www.ocaml-programming.de/godi-build/${GODI_SECTION}/
# This must only be one
URL.
GODI_BUILD_BACKUP_SITES=
\
http://192.168.100.100/godi/${GODI_SECTION}
# http://godi-backup2.camlcity.org/godi-build/${GODI_SECTION}/\
# http://godi.0ok.org/godi-build/${GODI_SECTION}/
GODI_BUILD_SITES=
\
${GODI_BUILD_SITE}
\
${GODI_BUILD_BACKUP_SITES}
ROCKETBOOST_BUILD_SITES?=
\
http://192.168.100.100/godi/
# http://www.ocaml-programming.de/godi-build/rocketboost/\
# http://godi-backup2.camlcity.org/godi-build/rocketboost/\
# http://godi.0ok.org/godi-build/rocketboost/
You also need to patch godi-tools package in the same way, so that the
bsd.prefs.mk that gets installed with it and is used after the bootstrap is
also pointing to the private repository.
At your server you keep the distfiles in the godi/distfiles/ folder. This
is similar to the http://www.ocaml-programming.de/godi-backup/ for the
official GODI. For the build files you keep them and 'available.new' under
a section directory e.g. 3.12 similar to
http://www.ocaml-programming.de/godi-build/3.12 or have a dev section or
whatever section you want.
With this in place you can manage your own GODI "universe". You can mix
whatever version of packages you want, by editing the available.new. Guess
you might have to delete the local copy of a package in
build/buildfiles/<package>.tar.gz and also <apps-|godi-<package> if you
decide to rollback to an old version of the package.
With this setup you should also have an official version of GODI that fetch
from the official places. This is not the installation you work with but
occasionally you can switch to it (by changing the PATH variable or a
sym-link), do an update and see what new packages are available. You copy
the new distfiels you want to your distfiles/ directory at your server and
the buildfiles to the section you want them in and update the available.new
for that section.
Having this on a server makes it possible for a team to work with the same
versions of the packages in an easy way.
Maybe it is possible to override the locations without patching the '
bsd.prefs.mk' files, but this was the way I ended up doing it, and I would
be glad to hear if there is some easier way.
Hopes this helps
> Is this in the planned feature list?
>
>
> --
> Caml-list mailing list. Subscription management and archives:
> https://sympa-roc.inria.fr/wws/info/caml-list
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>
>
--
Caml-list mailing list. Subscription management and archives:
https://sympa-roc.inria.fr/wws/info/caml-list
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs