レポジトリの場所を示す
cabal initコマンドの対話的処理で「Project homepage/repo URL?」と尋ねられた際に、パッケージの開発に利用しているバージョン管理システムのレポジトリを指定しなかった場合には、source-repositoryという独立した項目に記述できます。
source-repository head type: darcs location: http://hub.darcs.net/shelarcy/regex-tdfa-text
source-repository this type: darcs location: http://darcs.haskell.org/cabal-branches/cabal-1.10/ tag: 1.10.1.0
まず、レポジトリが「開発中の最新バージョン」(head)なのか、「パッケージとしてリリースするバージョン」(this)なのかを示します。type:フィールドには、バージョン管理に利用しているシステムの種類(darcsやgitなど)を記述します。location:フィールドにはバージョン管理システムのレポジトリのURLを示します。
source-repositoryでthisを指定した場合には、tag:フィールドを使って、リリースするパッケージと同じ内容のソースコードを取得するのに必要なタグを記述する必要があります(参考リンク)。
複数のパッケージを一つのリポジトリでバージョン管理している場合には、subdir:フィールドでパッケージのディレクトリを指定します。
source-repository this type: git location: git://github.com/jodonoghue/wxHaskell.git tag: WXWIDGETS_2.9_BRANCH subdir: wx