[arch-haskell] Issues with cabal2arch/AUR packages

Mathew de Detrich deteego at gmail.com
Tue Mar 29 03:25:35 CEST 2011

On Tue, Mar 29, 2011 at 9:39 AM, Rémy Oudompheng
<remyoudompheng at gmail.com>wrote:

> On 2011/3/28 Mathew de Detrich <deteego at gmail.com> wrote:
> > Well basically the point would be that libraries would be installed
> through
> > cabal install however haskell binaries you would install through AUR, and
> > the PKGBUILD would (indirectly through some shell script) check for
> > dependencies, and if a library isn't installed it would temporarily
> install
> > it in /tmp where the PKGBUILD would link it with ghc to build the binary.
> This is usually called "building packages in a clean chroot" and is a
> non-issue here.
I am specifically talking about doing dependency tracking of haskell
binaries (or programs, whatever name you want to give them) through cabal
and not through archlinux's package system (which it is currently done with
the PKGBUILD depends)

> > Obviously as mentioned earlier, it's not really an isssue now, but when
> more
> > widely used haskell binaries are on AUR, if people installed packages
> > thorough cabal and not AUR, something along these lines will need to be
> done
> You don't make your point clear enough. You don't seem to want
> anything particular to be done. You want things to be undone. Since
> everything you ask for (GHC, haskell-platform) seems to be already
> there.
I guess I didn't communicate what I was trying to say clearly enough

Originally I tried to set up the haskell environment in the way that was
"expected" for an arch system, that is to use AUR packages for the libraries
(and if the packages aren't available on AUR you notify the mailing list,
and you can use tools like cabal2arch/bauerbill in the meantime)

This however caused a number of issues once you deal with haskell
installations that are non trivial, as I have described in this mailing list
among the earlier one. These issues include
- AUR doesn't always have fully updated versions of the hackagedb package
- archlinux package management (through AUR) doesn't support the same
granularity as cabal install, so using the archlinux-aur package management
as an overlay above cabal install causes these types of problems. These
include things like having to install an older version of package X without
having to completely uninstall X (and its dependencies) to install that
older version of X in order to build some haskell library/binary
- Breaks between haskell-platform releases are more painful then they should
be, due to the reliance on the cabal2arch tool

What I am trying to say is that this suggested archlinux environment (for
haskell) is very painful for the non trivial stuff (like if you rely on
packages that aren't completely maintained, or a package that depends on
another package with specific version ranges etc etc) and its *far* easier
to just use cabal install for libraries. Of course for this *nothing* needs
to be changed, except for the issue with non production haskell
binaries/programs (which should be installed through AUR or even in official

If we look at leksah for example (
https://aur.archlinux.org/packages.php?ID=43719), it depends on quite a few
cabal2arch converted hackageDB packages (and those packages will obviously
depend on more cabal2arch converted packages). Now this isn't an issue if
1. You have libraries installed through archlinux's AUR *and*
2. The dependencies happen to be the most up to date dependencies that are
available for Archlinux AUR

Point #1 is a concern for people that use cabal install for libraries, Point
#2 is a general issue that effects any haskell program that doesn't happen
to use the newest packages (either directly or indirectly). In the leksah
example, some of those packages it depends on are outdated, but you
obviously can't install those through AUR anymore, and then this whole
cabal2arch mess starts happening with manual dependency tracking that I was
talking about earlier (and what I refer to in regards to granularity).

Currently haskell binaries/programs expect their dependencies to be
installed via AUR packages, where as what I am saying (for the people that
have installed their libraries through cabal) that there should be a
PKGBUILD generator tool for haskell programs/binaries that scan
for dependencies through cabal/ghc-pkg (and not AUR). I also believe that
generally speaking, people should be encouraged to use cabal install instead
of AUR

> Rémy.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/arch-haskell/attachments/20110329/d99c166b/attachment-0001.htm>

More information about the arch-haskell mailing list