Haskell package guidelines
Haskell is well supported on Arch Linux. GHC and a few core packages are available in the official repositories. For more serious Haskellers, the ArchHaskell community project provides many packages from Hackage, and the number is growing.
See the ArchHaskell community page for contact details and ways to help.
To use Haskell on Arch Linux, you have two mutually exclusive options:
- Use packages from the official Arch Linux repositories. These are a well maintained small subset of all Haskell packages. Just install them the way you would install anything else on Arch Linux. Examples of what is available: in the extra and community repositories. The packages here should satisfy people who just want to use the Haskell Platform. You may also combine this option with other packages from unofficial sources like the AUR.
- Use the ArchHaskell project's unofficial repositories. These contain a much larger subset of what's available on Hackage. As a community effort, we often need volunteers to help maintain and add more packages to these repositories. Read on for information about using them.
The [haskell] repository is the base repository of packages maintained by the ArchHaskell team.
[haskell] can be accessed by adding the following entry to
/etc/pacman.conf (above [extra]):
[haskell] Server = http://xsounds.org/~haskell/$arch
The set of packages in the [haskell] repository is derived from the habs tree officially located here. A tool called cblrepo is used to keep the habs tree synchronized with the official Haskell packages from Hackage.
Putting [haskell] above [extra] will ensure that the packages from [haskell] take precedence, in case of duplicate packages in the two repositories.
The [haskell-web] repository builds on [haskell], providing several more packages, especially those useful for web applications.
[haskell-web] Server = http://archhaskell.mynerdside.com/$repo/$arch
Add it after [haskell].
- Haskell packages in the AUR
- cabal-install directly
Unfortunately, many of the packages in the AUR are outdated due to a lack of resources. If you have the time, it is recommended to use cblrepo and create something like [haskell-web], which can then be added to the collection of haskell-providing repositories.
See the ArchHaskell community page and get in touch via the mailing list or the IRC channel.
The plan is to have one user-facing repository, [haskell], which merges the packages available in various satellite repositories (like [haskell-web]), thereby distributing the maintenance load. One satellite repo is special, the [haskell-core] repository, which provides packages that are dependencies of all the other satellites.
- [haskell-core] is an Arch repo hosted at (xsounds?).
- [haskell-core] is in sync with the habs cblrepo database.
- [haskell] is an Arch repo hosted at (unknown).
- Whenever all satellite repositories' databases are in sync with [haskell-core]'s, packages from all of them are put into [haskell].
Other repo maintenance
For example, for haskell-foo, ensure:
- haskell-foo is a cblrepo database, possibly using packages from [haskell-core] as DistroPkgs.
- Whenever [haskell-core] is updated, haskell-foo's database is updated to match within a reasonable time.