Specifying dependencies on Haskell code

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Tue May 6 07:13:03 EDT 2008

On Mon, 2008-05-05 at 03:50 -0700, David Roundy wrote:

> Maybe the problem is that noone seems to know what problem cabal is
> supposed to be solving.  What problem is that? Some say it's a
> configuration/build system.  Others say it's a packaging system.  I think
> it's the latter.

I'd say that Cabal is a build system but one that provides enough
information to enable package management. That's the reason for the
slight blurring/confusion with packaging systems. There is a much
clearer division with autoconf/automake because it is a build system
that does not provide enough information to enable package management.

Cabal interfaces with package management systems in a similar way
to ./configure && make && make install as one can see from the scripts
that the distros use to build packages from source.

Tools like cabal-rpm, hackport and dh_haskell use the information
provided by cabal packages to make distro packages semi-automatically
(It does not eliminate the QA job).

cabal-install is a package manager for those Cabal packages that are not
already packaged by the distros. It seems likely that there will always
be a significant number of such packages as there is with CPAN etc.

Hackage is an archive and distribution point for Cabal packages.


More information about the Libraries mailing list