Contrib packages

Ian Lynagh igloo@earth.li
Wed, 7 May 2003 18:00:50 +0100


On Tue, May 06, 2003 at 03:01:44PM +0100, Alastair Reid wrote:

> Contrib builders apply some patches to customize it for a particular system 
> (debian, freebsd, etc.), compiles it, runs the testsuite, builds the 
> documentation and packages it up.  Contrib builders might also act as a 
> conduit for bug reports.

Perhaps unsurprisingly this is a pretty good description of a Debian
maintainer.

For Debian, I think a nice solution might be to have a package of the
library building software which includes a way for implementation and
library packages to register with it. Then, when a new library is
installed it would be rebuilt for any implementations installed and
registered, and when GHC is upgraded it would rebuild all the libraries
installed and registered. This nicely solves the problem of changing
binary formats. The only subtlety I can see is making sure things get
built in the right order when installing multiple packages at once.

To do this I think we would want to be able to tell the library building
system to "compile" the library foo in /source/path (which would live in
/source/path/foo) and to put the result in /dest/path (would go in
/dest/path/foo) for ghc5|nhc98|hugs. It would then automatically also
compile bar if foo depends on bar (via library meta-information). It
should be easy to generate Debian dependencies from this library
meta-information.

As I've described it the source would stay around, so "compiling" for
hugs could just be making a symlink. For other ways of doing it they may
need to be copied. This could be an option in the package building
system.


Thanks
Ian