ebuild読み 03 dev-haskell/zip-archive

今日は dev-haskell/zip-archive-0.1.1.7 を読みます。

# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/dev-haskell/zip-archive/zip-archive-0.1.1.7.ebuild,v 1.1 2011/04/23 11:11:58 slyfox Exp $

# ebuild generated by hackport 0.2.11

この ebuildはhackportというツールによって自動生成されたことがコメントに書いてあります。hackportはHaskellのパッケージファイルcabalから自動的にebuildを生成するためのツールです。

EAPI="3"

CABAL_FEATURES="bin lib profile haddock hscolour"
inherit haskell-cabal

CABAL_FEATURESを設定して、haskell-cabalのeclassを読みこみます。 このパッケージが使用する機能をCABAL_FEATURESに設定します。

haddock ドキュメント生成
hscolour シンタックスハイライトされたソースコードの生成
alex lexer/scanner の生成
happy parser の生成
c2hs Cへのインタフェースの生成
profile プロファイルつきのビルドを有効にできる
bootstrap cabalパッケージ自身にのみ使われる
bin このパッケージはバイナリをインストールする
lib このパッケージはライブラリをインストールする
nocabaldep cabalに絶対に依存しないパッケージにのみ用いられる

このように設定しておけば、haskell-cabal.eclassの中で依存(DEPEND)やIUSEなどを適切に設定したり、cabalに渡す引数を設定してくれたりします。

DESCRIPTION="Library for creating and modifying zip archives."
HOMEPAGE="http://github.com/jgm/zip-archive"
SRC_URI="http://hackage.haskell.org/packages/archive/${PN}/${PV}/${P}.tar.gz"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~alpha ~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
IUSE=""

RDEPEND="dev-haskell/binary
		>=dev-haskell/digest-0.0.0.1
		dev-haskell/mtl
		>=dev-haskell/utf8-string-0.3.1
		dev-haskell/zlib
		>=dev-lang/ghc-6.10.1"
DEPEND="${RDEPEND}
		>=dev-haskell/cabal-1.2"

あとはいつも通りに依存関係を書いているだけですね。残りの処理は全てhaskell-cabal.eclassがやってくれます。

cabalはわりと変換が容易なので、hackportを使ってebuildを自動生成してインストールするのがおすすめですね。