Skip to content

Latest commit

 

History

History
87 lines (64 loc) · 3.28 KB

README.rst

File metadata and controls

87 lines (64 loc) · 3.28 KB

Gentoo Haskell project

Quickest start

Haskell overlay consists of unstable software, so you you likely need to keyword everything in it:

# install layman, if you don't have it yet:
emerge layman
layman -f
echo source /var/lib/layman/make.conf >> /etc/make.conf
#
# and the overlay configuration itself:
layman -a haskell
# and unmask unstable versions for your arch:
echo "*/*::gentoo-haskell ~$(portageq envvar ARCH)" >> /etc/portage/package.accept_keywords

And here is the trick to speed up metadata resolution a bit. If you happen to use eix-sync for rsyncs you might like the following /etc/eix-sync.conf:

*
@egencache --jobs="$(($(nproc) + 1))" --repo=gentoo-haskell --update

It basically means:

  • sync overlays in layman list before the main tree sync
  • generate metadata for gentoo-haskell repo after main tree sync is done using N+1 cores

Getting involved

Oh, hi! So you've got a couple of moments to kill and you're looking for something to do? You've come to the right place.

There are several ways to find tasks. One is looking in our TODO list. Another is to have a look at the bug reports piled up at the Gentoo Bugzilla. Anything from actually solving the problem to just verifying the report or providing more information is helpful.

To start contributing you need a working copy of the Haskell overlay, a copy that you can modify and send patches/pull requests from. You could use layman to get a copy, but in this case I'd not recommend it. Assuming you have git emerged, run this to get your own copy of the repo:

git clone https://github.com/gentoo-haskell/gentoo-haskell.git

You need to be able to create patches and send patches/pull requests on github. If you are new to git try to read some git basics and drop in on irc://freenode.net/gentoo-haskell to get help.

Introduction to Haskell Ebuilds

We have two kinds of ebuilds: completely manually written ones, and ones mostly generated from hackage using our custom tool hackport.

Ebuilds for complex applications and libraries that take a little more care, like ghc, are written by hand.

The great majority, though, are projects listed on the hackage site. For all those packages, we can generate ebuilds that often only require very little manual tweaking. The dependencies, descriptions, etc. written in the .cabal files is used to correctly generate the ebuilds. The progress of hackage and development decisions are important for gentoo haskell, which is why we keep a close cooperation with them.

To get the hackport tool, either install app-portage/hackport-9999 available from the haskell overlay, or get your copy of the repo using

git clone https://github.com/gentoo-haskell/hackport.git

See HOWTO contribute for info on technical aspects of how to work with the overlay.