UNPKG

arch-wiki-md-repo

Version:

All arch-wiki articles in markdown format, updated every two days.

145 lines (90 loc) 6.47 kB
The ArchHaskell group works on providing [Haskell](/index.php/Haskell "Haskell") packages to the wider Arch Linux community. The goal is to provide all of [Hackage](http://hackage.haskell.org) as binary packages for easy installation. ## Contents * [1 Resources](#Resources) * [2 Membership](#Membership) * [3 Available repositories](#Available_repositories) * [3.1 haskell-core](#haskell-core) * [3.2 haskell-happstack](#haskell-happstack) * [3.3 haskell-web](#haskell-web) * [4 Improving ArchHaskell](#Improving_ArchHaskell) * [4.1 Community](#Community) * [4.2 Overview](#Overview) * [4.3 haskell-core maintenance](#haskell-core_maintenance) * [4.4 Other repository maintenance](#Other_repository_maintenance) * [4.5 Creating another repository](#Creating_another_repository) * [4.6 List of satellite repositories](#List_of_satellite_repositories) * [5 Troubleshooting](#Troubleshooting) * [5.1 Switching to ArchHaskell repository](#Switching_to_ArchHaskell_repository) ## Resources The main resources for the ArchHaskell community to interact and discuss are: * #archlinux-haskell IRC channel @ freenode.org * arch-haskell@haskell.org [mailing list](http://haskell.org/mailman/listinfo/arch-haskell) and [archives](http://www.haskell.org/pipermail/arch-haskell) * [ArchHaskell group](https://github.com/archhaskell) on GitHub ## Membership Membership is not required at all in order to contribute. Just fork the relevant repository, make some changes, and file a pull request. There are currently two people with commit rights to the ArchHaskell repository at GitHub: * Leif Warner * ~~Magnus Therning~~ (in the process of leaving the group) ## Available repositories ### haskell-core **Note:** The *haskell-core* repository is currently not actively maintained. If you wish to help, please send a mail to the list or use the IRC channel. The *haskell-core* repository is the base repository of packages maintained by the ArchHaskell team. *haskell-core* can be accessed by adding the following entry to `/etc/pacman.conf` (above [community], to ensure the correct **ghc** package is picked): **Warning:** Placing *haskell-core* above *community* will cause packages from *haskell-core* to take precedence, and avoid dependency conflicts in case of duplicate packages. Overriding [official repositories](/index.php/Official_repositories "Official repositories") is however **not** supported. ``` [haskell-core] Server = http://xsounds.org/~haskell/core/$arch ``` The set of packages in the *haskell-core* repository is derived from the **habs** tree officially located [here](https://github.com/archhaskell/habs). A tool called [cblrepo](https://github.com/magthe/cblrepo) is used to keep the **habs** tree synchronized with the official Haskell packages from [Hackage](http://hackage.haskell.org/packages/hackage.html). The repositories provide both file listings (by using `repo-add --files`), package deltas (`repo-add --delta`), and both packages and the database are signed. The fingerprint of the key used for signing is: ``` pub 2048D/4209170B 2012-12-26 Key fingerprint = F310 4992 EBF2 4EB8 72B9 7B9C 32B0 B453 4209 170B uid ArchHaskell (Magnus Therning) <magnus@therning.org> sub 2048D/A418C0FE 2012-12-26 ``` If you use `SigLevel = Required TrustedOnly` in `/etc/pacman.conf` for *haskell-core*, then you need to do the following to add Magnus Therning's key: ``` # pacman-key -r 4209170B # pacman-key --lsign-key 4209170B ``` Force a refresh of all package lists: ``` # pacman -Syu ``` ### haskell-happstack The *haskell-happstack* repository contains packages for web development based on the [Happstack](http://happstack.com/) framework. It requires [#haskell-core](#haskell-core), and includes most of the Happstack packages in [HackageDB](http://hackage.haskell.org/), plus [Gitit](http://gitit.net/) (package name `haskell-gitit`) and [clckwrks](http://clckwrks.com/), all their dependencies not in *haskell-core* and some other not web related packages. To enable the repository, add the following entry to `/etc/pacman.conf`: ``` [haskell-happstack] Server = http://noaxiom.org/$repo/$arch ``` Add and sign the maintainer's key: ``` # pacman-key -r B0544167 # pacman-key --lsign-key B0544167 ``` Bug reports and feature requests in [GitHub](https://github.com/tensor5/haskell-happstack/issues). ### haskell-web **Note:** The *haskell-web* repository is not maintained anymore. If you wish to help, please send a mail to the list or use the IRC channel. The repository was built on *haskell-core*, providing several more packages, especially those useful for web applications. ``` [haskell-web] Server = http://archhaskell.mynerdside.com/$repo/$arch ``` ## Improving ArchHaskell ### Community See the [#Resources](#Resources) and get in touch via the mailing list or the IRC channel. ### Overview 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 repository is special, the *haskell-core* repository, which provides packages that are dependencies of all the other satellites. ### haskell-core maintenance Ensure: * *haskell-core* is an Arch repository hosted at kiwilight and xsounds. * *haskell-core* is in sync with the [habs](https://github.com/archhaskell/habs) cblrepo database. ### Other repository 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. ### Creating another repository ### List of satellite repositories ## Troubleshooting ### Switching to ArchHaskell repository There can be some problems switching to [ArchHaskell repository](#Available_repositories) when some Haskell packages are already installed from [official repositories](/index.php/Official_repositories "Official repositories"). The surest way is to remove all Haskell related packages, synchronize the [pacman](/index.php/Pacman "Pacman") packages database, and reinstall all the needed packages. Also for Xmonad users, be sure to install `haskell-xmonad` package instead of [xmonad](https://www.archlinux.org/packages/?name=xmonad).