Specifying dependencies on Haskell code
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