
On Sun, 2009-11-29 at 19:38 -0800, Alexander Dunlap wrote:
Then the other bit you suggested foomonad >= 4.0 && < 4.1 && HAS_MTL would be needed to be able to express that you want a package that has been built with a particular optional instance provided. This is the bit that cannot be translated into packages in most distros. Yes you could pick the flags up front, but you have to pick a single assignment that satisfies everyone.
Well, that happens anyway with most packages since distros have to choose one set of flags that works. The proposal I was commenting on would just allow packages to depend on flags of other packages and so be explicit about this.
Ah but flags are not allowed to change the public exported API of a library. That's why we do not need to depend on packages with flags set. This is an important property because it means you do not need multiple instances of a package version, any set of flags will do. Note that one distro that does have this feature of being able to depend on packages built with a particular flag is Gentoo. I don't know of any binary distros that do this.
It seems to me that distros could even offer multiple options for the same package with different flags set.
Most distros cannot handle installing multiple instances of the same version of a package.
Well, what I've seen is having different packages, i.e. foo-quickcheck, foo-no-quickcheck as separate packages.
I think you'll find that distros do not like it, especially once there is more than one flag, since the number of combinations goes up exponentially. Duncan