Difference between revisions of "ArchHaskell"

From ArchWiki
Jump to: navigation, search
(Membership: github.com/archhaskell and the wiki itself lists only two people)
(flagged broken section links (interactive))
(Tag: wiki-scripts)
 
(41 intermediate revisions by 16 users not shown)
Line 1: Line 1:
 
[[Category:Package development]]
 
[[Category:Package development]]
The ArchHaskell group works on providing Haskell packages to the wider Arch Linux community. The ultimate goal is to provide all of [http://hackage.haskell.org Hackage] as binary packages for easy installation. We are still a long way away :-)
+
The ArchHaskell group works on providing [[Haskell]] packages to the wider Arch Linux community. The goal is to provide all of [http://hackage.haskell.org Hackage] as binary packages for easy installation.
 
+
See also [[Haskell package guidelines]].
+
  
 
== Resources ==
 
== Resources ==
Line 8: Line 6:
 
The main resources for the [[ArchHaskell]] community to interact and discuss are:
 
The main resources for the [[ArchHaskell]] community to interact and discuss are:
  
* [http://www.gogloom.com/FreeNode/arch-haskell <nowiki>#arch-haskell</nowiki>] IRC channel @ freenode.org
+
* #archlinux-haskell IRC channel @ freenode.org
** Good for quick discussion and planning
+
* arch-haskell@haskell.org [http://haskell.org/mailman/listinfo/arch-haskell mailing list] and [http://www.haskell.org/pipermail/arch-haskell archives]
** Currently severely underpopulated
+
* [http://haskell.org/mailman/listinfo/arch-haskell arch-haskell@haskell.org] mailing list
+
** Broader announcements, and automated updates
+
** Currently very low traffic, but responses do come.
+
** Also, check the archives.
+
 
* [https://github.com/archhaskell ArchHaskell group] on GitHub
 
* [https://github.com/archhaskell ArchHaskell group] on GitHub
** Repositories for tools as well as the source for the binary packages (HABS).
 
  
 
== Membership ==
 
== Membership ==
  
Due to using GitHub for the source repositories, membership is not required at all in order to contribute. Just fork the relevant repository, make some changes, and file a pull request.
+
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:
 
There are currently two people with commit rights to the ArchHaskell repository at GitHub:
Line 26: Line 18:
 
* Magnus Therning
 
* Magnus Therning
 
* Leif Warner
 
* Leif Warner
 +
 +
== Available repositories ==
 +
 +
=== 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 [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]] is however '''not''' supported.}}
 +
 +
[haskell-core]
 +
<nowiki>Server = http://xsounds.org/~haskell/core/$arch</nowiki>
 +
 +
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].
 +
 +
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 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 [http://happstack.com/ Happstack] framework. It requires [[#haskell-core]], and includes most of the Happstack packages in [http://hackage.haskell.org/ HackageDB], plus [http://gitit.net/ Gitit] (package name {{ic|haskell-gitit}}) and [http://clckwrks.com/ clckwrks], all their dependencies not in ''haskell-core'' and some other not web related packages. To enable the repository, add the following entry to {{ic|/etc/pacman.conf}}:
 +
 +
[haskell-happstack]
 +
<nowiki>Server = http://noaxiom.org/$repo/$arch</nowiki>
 +
 +
Add and sign the maintainer's key:
 +
 +
# pacman-key -r B0544167
 +
# pacman-key --lsign-key B0544167
 +
 +
Bug reports and feature requests in [https://github.com/tensor5/haskell-happstack/issues GitHub].
 +
 +
=== 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]
 +
<nowiki>Server = http://archhaskell.mynerdside.com/$repo/$arch</nowiki>
 +
 +
== 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 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 [https://github.com/archhaskell/habs 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 ===
 +
 +
{{Expansion|TODO}}
 +
 +
=== List of satellite repositories ===
 +
 +
{{Expansion|TODO}}
 +
 +
== Troubleshooting ==
 +
 +
=== Switching to ArchHaskell repository ===
 +
 +
There can be some problems switching to [[#ArchHaskell repository|ArchHaskell repository]]{{Broken section link}} when some Haskell packages are already installed from [[official repositories]]. The surest way is to remove all Haskell related packages, synchronize the [[pacman]] packages database, and reinstall all the needed packages. Also for Xmonad users, be sure to install {{ic|haskell-xmonad}} package instead of {{Pkg|xmonad}}.

Latest revision as of 12:10, 6 August 2016

The ArchHaskell group works on providing Haskell packages to the wider Arch Linux community. The goal is to provide all of Hackage as binary packages for easy installation.

Resources

The main resources for the ArchHaskell community to interact and discuss are:

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:

  • Magnus Therning
  • Leif Warner

Available repositories

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 /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 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. A tool called cblrepo is used to keep the habs tree synchronized with the official Haskell packages from Hackage.

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 framework. It requires #haskell-core, and includes most of the Happstack packages in HackageDB, plus Gitit (package name haskell-gitit) and clckwrks, 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.

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 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 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 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

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

Reason: TODO (Discuss in Talk:ArchHaskell#)

List of satellite repositories

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

Reason: TODO (Discuss in Talk:ArchHaskell#)

Troubleshooting

Switching to ArchHaskell repository

There can be some problems switching to ArchHaskell repository[broken link: invalid section] when some Haskell packages are already installed from official repositories. The surest way is to remove all Haskell related packages, synchronize the pacman packages database, and reinstall all the needed packages. Also for Xmonad users, be sure to install haskell-xmonad package instead of xmonad.