Ideas for library infrastructure

Simon Marlow
Tue, 29 Apr 2003 10:28:58 +0100

Andres Loeh writes:
> I do not quite understand your last paragraph: You say we should not=20
> specify installation locations but then say it should be=20
> "embodied" in the=20
> library infrastructure. How do you mean that?

Let me be more concrete.

The library writer provides:

   - library sources (.hs, .c, etc.)
   - documentation
   - meta-information about the library (the package spec
     for GHC, for example).

The library infrastructure provides:

   - a build system supporting 'make install' for Unix-like
     systems (inc. cygwin) with any Haskell system.
   - tools to help you build packages for various OSs: an=20
     RPM spec file, a Windows installer, etc.

That's it.  No need to specify installation locations, or any procedure =
that must be followed by libraries to install or remove
themselves.  It's all supplied by the library infrastructure.

There are a couple of other things that we might want to do to better =
support systems that don't have a good package management

   - a way to uninstall a library that was installed with
     'make install'.
   - a way to build generic binary distributions.

I view these as optional: 95% of the systems we're interested in =
supporting have good package management systems that we should make
use of.

An alternative, which some people have been suggesting, is to take on =
more of the tasks of a package manager (ala Python's
distutils).  That's fine, but IMHO we don't need to go that far.