GHC-6.10.3のパッケージをjauntyでbuild
GHC 6.10系を使いたくなったのでkarmicから貰ってきたパッケージをjauntyでビルドしてみる。
まず、http://packages.ubuntu.com/ja/karmic/ghc6からソースをダウンロードして展開。
ghc6$ dget http://archive.ubuntu.com/ubuntu/pool/universe/g/ghc6/ghc6_6.10.3-3ubuntu1.dsc ghc6$ dpkg-source -x ghc6_6.10.3-3ubuntu1.dsc
ビルドに必要なパッケージ(ただしjauntyの6.8.2用)をインストールした。
ghc6$ sudo apt-get build-dep ghc6
そしてとりあえず何も考えずにビルド開始。
ghc6/ghc6-6.10.3$ debuild (snip) dpkg-checkbuilddeps: Unmet build dependencies: haddock (>= 2.4.2) dpkg-buildpackage: warning: Build dependencies/conflicts unsatisfied; aborting. dpkg-buildpackage: warning: (Use -d flag to override.) debuild: fatal error at line 1334: dpkg-buildpackage -rfakeroot -D -us -uc failed
ビルド時の依存関係で怒られてしまった。jauntyのhaddockは0.8-2.1なのでこちらもkarmicからバックポートしなければならないのだろうか。
http://packages.ubuntu.com/ja/source/karmic/haddock
ところが、haddockのビルドにはghc6-6.10.3を要求しており、依存関係が循環してしまっている。これはどうしたものだろうか。
haddockはドキュメント関連の物だから、ghc6-docを生成しないようにビルドすればいいのではないかと思い、ghc6のdebian/rulesを読むと
BUILD_HADDOCK_DOCS=$(shell test "$(ProjectVersion)" = "`haddock --ghc-version`" && echo YES || echo NO)
とあり、自動でhaddockを使用するかどうか切り替えていることがわかった。
結局の所、警告メッセージ通りに-dをつけて依存関係のチェックを無視してやるだけでビルドに成功した。