Build system idea

Ian Lynagh igloo at
Thu Aug 28 19:21:10 EDT 2008

On Thu, Aug 28, 2008 at 03:16:16PM -0700, John Meacham wrote:
> On Thu, Aug 28, 2008 at 02:59:16PM +0100, Simon Marlow wrote:
> > To generate a distro package from an autoconf package either the package  
> > author has to include support for that distro, or a distro packager has 
> > to write specific support for that package.  There's no way to do generic 
> > autoconf->distro package generation, like there is with Cabal.
> In cabal you only get it because you convinced the cabal people to put
> in code to support your distro. Which isn't much different than asking
> the package manager too.

I don't understand this. Cabal doesn't have any distro-specific code.

> And besides, this ability has nothing to do with cabal's configuration
> management capabilities, simply its metadata format.

I don't understand this either.

You imply you like Cabal's metadata, which says "I depend on network
version 1", right?

But you don't like Cabal's configuration management? What is Cabal's
configuration management, then?

> and there are many automatic package managers for autoconf style
> packages.
> - one I use on pretty much all my systems. since it is
> distro independent.

OK, so here's an encap package for DBI:

This tarball contains an encapinfo file that says

    encap 2.1   # libencap-2.2.1
    platform sparc-solaris8
    date Mon Mar 11 19:38:02 CST 2002
    contact "Mark D. Roth" <roth at>
    prereq pkgspec >= perl-5.6.1

So this is not a package manager for autoconf-style packages, it is a
package manager for encap packages. Mark has had to download DBI, an
autoconf-style package, examine its source code, determine that perl >=
5.6.1 is necessary in order to use it, and construct this encap package
of DBI.

The point of Cabal's design is that we don't want to have to have a Mark
going round making encapinfo files; they come with the package.

In a sense, writing a Cabal package is like writing an encap package
directly, rather than first writing an autoconf-style package and then
encapifying it.


More information about the Glasgow-haskell-users mailing list