Если вы используете инструмент stack
, вам не следует трогать файл <packagename>.cabal
. stack
отвечает за его генерацию из package.yaml
. Несмотря на то, что обычной практикой является изменение <packagename>.cabal
, рабочий процесс разработки будет проще, если вы этого не сделаете.
Файлы, которые вас интересуют (и те, которые использует инструмент stack
)stack.yaml
и package.yaml
.
В stack.yaml
вы должны увидеть запись с именем resolver: lts-XX.XX
. Это означает, что ваша версия зависимостей управляется так, что они совпадают с указанными в lts
(он же snapshot
). Вы можете перейти к https://www.stackage.org/,, щелкнуть по вашей версии lts
и выполнить поиск пакета gtk2hs-buildtools
, чтобы получить правильную версию для вашего проекта (пример: lts-12.26
использует gtk2hs-buildtools-0.13.4.0
). В вашем package.yaml
, в разделе dependencies
введите запись - gtk2hs-buildtools
Начиная с lts-13.11
и выше gtk2hs-buildtools
недоступно в стеке, поэтому вам необходимо добавить ее как дополнительнуюнизинав stack.yaml
, в разделе extra-dep
добавьте следующую запись gtk2hs-buildtools-0.13.4.0
(или номер версии, которую вы хотите использовать). Затем добавьте package.yaml
и введите gtk2hs-buildtools
. Необходимо добавить запись в оба файла. Обратитесь к документации по стеку, чтобы понять, почему.
Просто для того, чтобы убедиться, что вы можете построить свой проект, ваши файлы должны выглядеть примерно так:
, если используется определитель выше или равен 13.11
stack.yaml
resolver: lts-13.11
extra-deps:
- gtk2hs-buildtools-0.13.4.0
package.yaml
dependencies:
- base
- gtk2hs-buildtools
при использовании резольвера ниже 13.11
stack.yaml
resolver: lts-12.26
extra-deps:
package.yaml
dependencies:
- base
- gtk2hs-buildtools