Difference between revisions of "Haskell package guidelines"

From ArchWiki
Jump to: navigation, search
(Add pt interlanguage link)
(41 intermediate revisions by 19 users not shown)
Line 1: Line 1:
[[Category:Package development]]
[[Category:Package development]]
[[it:Haskell Package Guidelines]]
[[it:Haskell package guidelines]]
{{Package Guidelines}}
[[ja:Haskell パッケージガイドライン]]
[[pt:Haskell package guidelines]]
{{Expansion|Please help improve this article by creating reasonable [[Creating packages|package creation guidelines]] for [[Haskell]] packages.}}
[[Wikipedia:Haskell|Haskell]] is well supported on Arch Linux.
{{Package guidelines}}
GHC and a few core packages are available in the [[Official Repositories|official repositories]].
For more serious Haskellers, the [[ArchHaskell]] community project provides many packages from [http://hackage.haskell.org Hackage], and the number is growing.
See the [[ArchHaskell]] community page for contact details and ways to help.
This document aims to cover standards and guidelines for producing good [[Haskell]] [[Creating packages|packages]] on Arch.
== Haskell Packages ==
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 [https://www.archlinux.org/packages/?arch=x86_64&repo=Extra&q=haskell&last_update=&limit=50 extra] and [https://www.archlinux.org/packages/?arch=x86_64&repo=Community&q=haskell&last_update=&limit=50 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.
=== [haskell-core] ===
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 {{ic|/etc/pacman.conf}} (above [extra]):
Server = http://xsounds.org/~haskell/core/$arch
Server = http://www.kiwilight.com/haskell/core/$arch
The set of packages in the [haskell-core] repository is derived from the '''habs''' tree officially located [https://github.com/archhaskell/habs here]. A tool called [https://github.com/magthe/cblrepo cblrepo] is used to keep the '''habs''' tree synchronized with the official Haskell packages from [http://hackage.haskell.org/packages/hackage.html Hackage].
Putting [haskell-core] above [extra] will ensure that the packages from [haskell-core] take precedence, in case of duplicate packages in the two repositories.
The repositories provide both file listings (by using {{ic|repo-add --files}}), package deltas ({{ic|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 {{ic|SigLevel &#61; Required TrustedOnly}} in {{ic|/etc/pacman.conf}} for [haskell-core], then you need to do {{ic|sudo pacman-key --lsign-key 4209170B}} to add Magnus Therning's key.
=== [haskell-web] ===
The [haskell-web] repository builds on [haskell-core], providing several more packages, especially those useful for web applications.
Server = http://archhaskell.mynerdside.com/$repo/$arch
Add it after [haskell-core].
=== Last resorts ===
* [https://aur.archlinux.org/packages.php?O=0&K=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.
== Improving ArchHaskell ==
=== Community ===
See the [[ArchHaskell]] community page 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 repo is special, the [haskell-core] repository, which provides packages that are dependencies of all the other satellites.
=== [haskell-core] maintenance ===
* [haskell-core] is an Arch repo hosted at kiwilight and xsounds.
* [haskell-core] is in sync with the [https://github.com/archhaskell/habs habs] cblrepo database.
=== 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.
=== Creating another repo ===
=== List of satellite repos ===

Latest revision as of 20:32, 16 June 2018

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Please help improve this article by creating reasonable package creation guidelines for Haskell packages. (Discuss in Talk:Haskell package guidelines#)
Package creation guidelines

CLRCrossEclipseFree PascalGNOMEGoHaskellJavaKDEKernelLispMinGWNode.jsNonfreeOCamlPerlPHPPythonRubyVCSWebWine

This document aims to cover standards and guidelines for producing good Haskell packages on Arch.