README.rst 3.3 KB
Newer Older
Keshav Kini's avatar
Keshav Kini committed
1
2
Gentoo Haskell project
**********************
3

4
5
6
Quickest start
==============

Alexander Berntsen's avatar
Alexander Berntsen committed
7
8
Haskell overlay consists of unstable software, so you'll
likely need to keyword everything in it::
9

10
11
12
13
14
15
    # 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:
16
    layman -a haskell
17
18
    # and unmask unstable versions for your arch:
    echo "*/*::gentoo-haskell ~$(portageq envvar ARCH)" >> /etc/portage/package.accept_keywords
19

20
21
22
23
24
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``::

    *
25
    @egencache --jobs="$(($(nproc) + 1))" --repo=gentoo-haskell --update --update-use-local-desc
26
27
28
29
30
31

It basically means:

- sync overlays in layman list before the main tree sync

- generate metadata for gentoo-haskell repo after main
Alexander Berntsen's avatar
Alexander Berntsen committed
32
  tree sync is done, using N+1 cores
33

34
35
36
Getting involved
================

Keshav Kini's avatar
Keshav Kini committed
37
38
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.
39

Keshav Kini's avatar
Keshav Kini committed
40
There are several ways to find tasks. One is looking in our `TODO list`_.
Alexander Berntsen's avatar
Alexander Berntsen committed
41
42
43
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.
44

Alexander Berntsen's avatar
Alexander Berntsen committed
45
To start contributing, you need a working copy of the Haskell overlay; a copy
Keshav Kini's avatar
Keshav Kini committed
46
that you can modify and send patches/pull requests from. You could use layman
Alexander Berntsen's avatar
Alexander Berntsen committed
47
to get a copy, but in this case we'd not recommend it. Assuming you have git
Keshav Kini's avatar
Keshav Kini committed
48
emerged, run this to get your own copy of the repo::
49
50
51

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

Alexander Berntsen's avatar
Alexander Berntsen committed
52
You need to be able to make patches, and send patches/pull requests on github.
Keshav Kini's avatar
Keshav Kini committed
53
54
55
56
57
58
If you are new to git try to read `some git basics`_ and drop in on
irc://freenode.net/gentoo-haskell to get help.

.. _TODO list: projects/doc/TODO.rst
.. _bug reports: http://tinyurl.com/2l3p48
.. _some git basics: http://progit.org/book/
59
60
61
62

Introduction to Haskell Ebuilds
===============================

Keshav Kini's avatar
Keshav Kini committed
63
We have two kinds of ebuilds: completely manually written ones, and ones mostly
Alexander Berntsen's avatar
Alexander Berntsen committed
64
generated from hackage using our custom tool, `hackport`_.
65

Alexander Berntsen's avatar
Alexander Berntsen committed
66
Ebuilds for complex applications and libraries that need a little more care,
67
68
like ghc, are written by hand.

Alexander Berntsen's avatar
Alexander Berntsen committed
69
70
71
72
73
74
The great majority, though, are `projects listed on the hackage site`. For all
those packages, we can generate ebuilds that often require very little
manual tweaking. The ebuild is generated from the dependencies, descriptions,
etc., described in the project's ``.cabal`` file. The progress of hackage and
its development decisions are important for gentoo haskell, which is why we
keep a close cooperation with them.
75
76

To get the hackport tool, either install ``app-portage/hackport-9999``
Keshav Kini's avatar
Keshav Kini committed
77
78
79
available from the haskell overlay, or get your copy of the repo using ::

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

Keshav Kini's avatar
Keshav Kini committed
81
82
See `HOWTO contribute`_ for info on technical aspects of how to work with the
overlay.
83

Keshav Kini's avatar
Keshav Kini committed
84
85
86
.. _hackport: http://github.com/gentoo-haskell/hackport
.. _projects listed on the hackage site:
    http://hackage.haskell.org/packages/archive/pkg-list.html
87
.. _HOWTO contribute: http://github.com/gentoo-haskell/gentoo-haskell/blob/master/projects/doc/HOWTO-contribute.rst