2011-02-09 11 views
8

Estoy tratando de instalar el paquete de nano-hmac-0.2.0 (una dependencia de un paquete que quiero) de Hackage usando Cabal y GHC 6.12.1, pero falla con el siguiente error:Invalidar -Werror cuando se instala desde 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. 
lo suficientemente

Claro, .cabal archivo del paquete tiene la siguiente línea en él:

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

me gustaría ser capaz de anular la opción -Werror para que pueda instalar el paquete sin modificar manualmente el archivo .cabal , pero no puede encontrar una manera que funcione. En particular, he intentado pasar a --ghc-options Cabal para pegar una -Wwarn en lista de argumentos de GHC, así:

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

Esto no hace lo que yo quiero, sin embargo; la salida detallada verifica que -Wwarn se van añadiendo al principio de la lista de argumentos de GHC, pero el -Werror del archivo .cabal aparece más tarde y parece anularlo:

/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 

También probé pasar --constraint='base >= 4' a Cabal para forzarlo utilizar una versión más reciente de la base y evitar la advertencia del todo, pero me sale el mismo fallo, y todavía ver el siguiente en la salida detallada:

Dependency base ==3.0.3.2: using base-3.0.3.2 

¿hay una manera de eliminar o anular el -Werror procedente del archivo .cabal mediante el comando de Cabal ne, o estoy atascado modificando el archivo .cabal yo mismo?

+0

¿Qué sucede si utiliza '--preference = 'base> = 4' en lugar de una restricción? También debe verificar que la cadena de bytes esté compilada contra base-4 ('ghc-pkg describe bytestring' debería mostrar esto). –

+0

@John '--preference = 'base> = 4'' hizo el truco. Si publica su comentario como respuesta, lo acepto. –

Respuesta

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?

Indeed. No hay manera en general. Es posible que pueda anular las restricciones del paquete para que desaparezcan las advertencias, sin embargo, en general, debe modificar el archivo .cabal.

En estos días, Hackage evita que las personas suban paquetes con -Werror en su archivo .cabal, por lo que el problema desaparecerá con el tiempo.

Cuestiones relacionadas