レポジトリの場所を示す

 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