Sto cercando di installare il pacchetto nano-hmac-0.2.0 (una dipendenza di un pacchetto che voglio) da Hackage con Cabal e GHC 6.12.1, ma non riesce con il seguente errore:Override -Werror durante l'installazione da Cabal
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.
abbastanza
Certo, il file .cabal del pacchetto ha la seguente riga in esso:
ghc-options: -Wall -Werror -O2 -fvia-C
mi piacerebbe essere in grado di sostituire l'opzione -Werror
in modo da poter installare il pacchetto senza modificare manualmente il file .cabal , ma non riesco a trovare un modo che funzioni. In particolare, ho cercato passando --ghc-options
alla Cabala di attaccare un -Wwarn
nella lista degli argomenti di GHC, in questo modo:
$ cabal install nano-hmac-0.2.0 -v2 --ghc-options='-Wwarn'
Questo non fare quello che voglio, però; l'output dettagliato verifica che -Wwarn
sta ottenendo aggiunto all'inizio della lista degli argomenti del GHC, ma il -Werror
dal file .cabal appare più tardi e sembra ignorarlo:
/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
Ho anche provato passando --constraint='base >= 4'
per Cabal per forzarlo utilizzare una versione più recente di base e evitare l'avviso del tutto, ma ottengo lo stesso errore, e ho ancora vedere quanto segue nella output dettagliato:
Dependency base ==3.0.3.2: using base-3.0.3.2
esiste un modo per sbarazzarsi di o ignorare la -Werror
proveniente dal file .cabal tramite il comando Cabal li ne, o sono bloccato modificando me stesso il file .cabal?
Cosa succede se si utilizza '--preference = 'base> = 4' invece di un vincolo? Inoltre dovresti controllare che il test a prova di vincita sia compilato rispetto a base-4 ('ghc-pkg descrike bytestring' dovrebbe mostrarlo). –
@John '--preference = 'base> = 4'' ha funzionato. Se pubblichi il tuo commento come risposta, accetterò. –