2011-02-09 4 views
8

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

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 

есть ли способ, чтобы избавиться или переопределить -Werror, идущий из файла .cabal через команду Cabal li ne, или я застрял, модифицируя файл .cabal сам?

+0

Что делать, если вы используете '--preference = 'base> = 4' вместо ограничения? Также вы должны проверить, что bytestring скомпилирован против base-4 ('ghc-pkg описать bytestring' должен показать это). –

+0

@John '--preference = 'base> = 4'' сделал трюк. Если вы опубликуете свой комментарий в качестве ответа, я соглашусь. –

ответ

5

Is there a way to get rid of or override the -Werror coming from the .cabal file via the Cabal command line, or am I stuck modifying the .cabal file myself?

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^