Configurations proposal

Einar Karttunen ekarttun at
Sun Oct 29 11:26:09 EST 2006

On 29.10 14:56, Duncan Coutts wrote:
> We do have to bear in mind how hard it'll be for cabal-get to be able to
> do dependency analysis. The decisions we make about optional
> configurations has a big impact on this. It also has a big effect on how
> easy it is to make 'native' packages for distros which typically don't
> have extremely sophisticated dependency systems.

Why not simply use a single file like: cabal-get.conf that contains
flags for packages like:

syntax = line+
line   = PACKAGE-REGEXP ':' flags
flags  = <empty> | ['!'] flag flags

I don't think there is a sensible way for enabling random flags
without the user asking for them. Normally packages should just
be built with defaults.

> There's also the important issue of binary packages. We're all used to
> building from source which gives us a lot of flexibility, but most users
> expect binary packages. For example Debian and most other commercial
> distros and Windows of course. It is important that we be able to make
> sensible binary packages. If the configuration language encourages
> package authors to go too crazy and one would need 2^n different binary
> packages then I'd say that we've failed.

This is no different than from configure switches for autotools
packages - and they don't lead to 2^n different binaries - and
there is no technical measure preventing packagers to do evil
things depending on the flags with autotools.

> Remember that the main use case of configurations is just to cope with
> minor things like modules moving from one package to another or slight
> differences in the way things are implemented on different platforms or
> Haskell implementations.

Yes, and we should concentrate on making it simple and intuitive to do
right. Trying to ban the bad ways of doing things seems to complicate

- Einar Karttunen

More information about the cabal-devel mailing list