Распространение программы Haskell на Homebrew

Я пишу программу на Haskell на моем Mac (исполняемый файл командной строки, а не приложение ). Я использую GitHub для размещения репозитория git и домашней страницы. Я сделал файлы .cabalи Setup.hs, так как Cabal упрощает сборку, тестирование и создание документации. Я мог бы также загрузить на Hackage, я не знаю.

Когда я помечаю версию 1.0, я хочу создать формулу Homebrew для загрузки архива с GitHub и его сборки. Я хочу, чтобы единственной зависимостью был GHC .

Я буду использоватьrunhaskell Setupconfigure/ build/install(с префиксом как /usr/local/Cellar/… )вместо команды cabal, чтобы избежать зависимости от установки cabal -.

Это все нормально, пока я не начну использовать пакеты от Hackage, например. пламя -строитель и эзон. Как мне с этим справиться?

Я не хочу заставлять не -пользователей Haskell загружать всю платформу Haskell. В идеале люди должны иметь возможность просто позволить Homebrew установить GHC до того, как он соберет мою программу, а затем, если они того пожелают, удалить GHC после. Если я сделаю платформу Haskell зависимостью и сначала установлю свои зависимости Haskell с помощью установки cabal -или аналогичной,

  1. Папка ~/.cabal/с пакетами останется, даже если впоследствии они
    brew uninstall haskell-platform
  2. С таким же успехом я мог бы проходить только через Hackage и делать его cabal installлюдьми, т. е. ограничивать возможности по большей части Haskellers.

Я считаю Cabal (-install )+ Hackage полезным инструментом для разработки и для пользователей Haskell, но не подходящим для этого.

Должен ли я просто загрузить исходный код пакетов, которые я использую, и включить его в свое дерево исходных текстов, а также добавить его в команду сборки? Или я должен использовать опцию --package-db(, найденную здесь)? Или моя формула могла бы загрузить tar-архив для пакета на лету и также собрать его?

Посмотрел немного на cabal2arch(Arch wiki , репозиторий GitHub)но я не уверен, как он обрабатывает зависимости, или он просто делает то, что я не хочу делать.

6
задан mk12 22 July 2012 в 21:08
поделиться