Переопределить - ошибка при установке из Cabal - PullRequest
8 голосов
/ 09 февраля 2011

Я пытаюсь установить пакет nano-hmac-0.2.0 (зависимость от пакета, который я хочу) из Hackage, используя Cabal и GHC 6.12.1, но он завершается неудачно со следующей ошибкой:

Data/Digest/OpenSSL/HMAC.hsc:1:0:
    Warning: Module `Prelude' is deprecated:
               You are using the old package `base' version 3.x.
               Future GHC versions will not support base version 3.x. You
               should update your code to use the new base version 4.x.

<no location info>: 
Failing due to -Werror.

Конечно, файл пакета .cabal содержит следующую строку:

  ghc-options:         -Wall -Werror -O2 -fvia-C

Я хотел бы иметь возможность переопределить параметр -Werror, поэтому яможет установить пакет без изменения файла .cabal вручную, но не может найти способ, который будет работать.В частности, я попытался передать --ghc-options Кабалу, чтобы вставить -Wwarn в список аргументов GHC, например:

$ cabal install nano-hmac-0.2.0 -v2 --ghc-options='-Wwarn'

Это не делает то, что я хочу;подробный вывод подтверждает, что -Wwarn добавляется в начало списка аргументов GHC, но -Werror из файла .cabal появляется позже и, кажется, переопределяет его:

/usr/bin/ghc -Wwarn --make -package-name nano-hmac-0.2.0 -hide-all-packages -fbuilding-cabal-package -i -idist/build -i. -idist/build/autogen -Idist/build/autogen -Idist/build -optP-include -optPdist/build/autogen/cabal_macros.h -odir dist/build -hidir dist/build -stubdir dist/build -package-id base-3.0.3.2-0092f5a086872e0cdaf979254933cd43 -package-id bytestring-0.9.1.5-125aff5b9d19ec30231ae2684b8c8577 -O -Wall -Werror -O2 -fvia-C -XForeignFunctionInterface -XBangPatterns -XCPP Data.Digest.OpenSSL.HMAC

Я также попытался передать--constraint='base >= 4' в Кабал, чтобы заставить его использовать более новую версию базы и полностью избежать предупреждения, но я получаю ту же ошибку, и я все еще вижу следующее в подробном выводе:

Dependency base ==3.0.3.2: using base-3.0.3.2

IsЕсть ли способ избавиться от -Werror из файла .cabal или переопределить его через командную строку Cabal, или я застрял, изменяя файл .cabal самостоятельно?

1 Ответ

6 голосов
/ 08 апреля 2011

Есть ли способ избавиться от -Werror из файла .cabal через командную строку Cabal или переопределить его, или я сам застрял, изменяя файл .cabal?

В самом деле.Там нет никакого способа в целом.Возможно, вы сможете переопределить ограничения пакетов, чтобы предупреждения исчезли, однако, как правило, вы должны изменить файл .cabal.

В наши дни Hackage не позволяет людям загружать пакеты с -Werror в их файл .cabalпоэтому проблема со временем исчезнет.

...