
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