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を自動生成してインストールするのがおすすめですね。