[Haskell-cafe] Can cabal be turned into a package manager?

Ivan Perez ivanperezdominguez at gmail.com
Sun Dec 16 12:24:16 CET 2012


Btw, one more great pearl of Gentoo's package manager: predependencies
and postdependencies.

These are packages (and/or programs) that must be installed in the
system prior to the package being installed, and after the package is
installed, respectively.

Most packages have almost the same predeps, deps and postdeps. A
Haskell compiler might be a (pre-)dependency for most packages, but
not necessarily a post-dependency. Gtk should have "gtk2hs-buildtools"
in its predependencies, but not in its postdependencies (once the
package is installed, gtk2hs-buildtools is not needed anymore). The
same is true for many packages that depend on happy, alex, etc. If
your program needs an auxiliary program to run, but needs not be
compiled against it, that's also the place for predeps/postdeps.

I used it for a long time (not anymore), and it works wonders. It
would be great to have something like this in cabal.

On 16 December 2012 12:10, Ivan Perez <ivanperezdominguez at gmail.com> wrote:
> On 12 December 2012 18:16, Bardur Arantsson <spam at scientician.net> wrote:
>> On 12/12/2012 06:01 PM, Janek S. wrote:
>>
>> Well, one big issue is that Linux distribution packagers have control of
>> the entire stack. A (hypothetical) Haskell package manager wouldn't.
>
> In Gentoo, there are many package overlays apart from the main
> repository. You can add as many as you want (local or remote).
>
>> Typical package managers also restrict you to exactly one version of any
>> given package. This can be a severe limitation for developers.
>
> Gentoo's emerge doesn't. It adds a concept called slots, which are
> different versions of the same package that can be installed in the
> same system without conflict. While this property is true for most
> versions of most packages in hackage, it is not necessarily true if
> those packages contain executables.



More information about the Haskell-Cafe mailing list