Hackage compilation problem

Hi all, I am working on a new package to be released on Hackage (grammar-combinators, release not yet announced). It compiles fine on my system (debian testing, special purpose test user with a pristine ~/.cabal), but the Hackage build log shows the below error message (full version on http://hackage.haskell.org/packages/archive/grammar-combinators/0.1/logs/fai...). It seems this error is caused by a transitive dependency (the random package) requiring two versions of the time package (?), which does not show in that package's .cabal file. I cannot reproduce the problem locally and have no idea what might be causing them. I would much appreciate it if anyone with some more cabal/hackage experience could take a look and comment on the issue. Thanks in advance for any help or comment, Dominique Devriese (...) Warning: This package indirectly depends on multiple versions of the same package. This is highly likely to cause a compile failure. package polyparse-1.4 requires haskell98-1.0.1.1 package uu-parsinglib-2.5.5 requires haskell98-1.0.1.1 package haskell98-1.0.1.1 requires random-1.0.0.2 package haskell98-1.0.1.1 requires random-1.0.0.2 package random-1.0.0.2 requires time-1.1.4 package random-1.0.0.2 requires time-1.2.0.3 (...) /usr/local/bin/ghc --make -package-name grammar-combinators-0.1 -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 MaybeT-0.1.2-604a5b30a99ce43ac16f2d5b237f30f7 -package-id base-4.2.0.2-10bdacb430274706a59728e237e2bfb3 -package-id containers-0.3.0.0-ee442470d8dcc9e45f31677c400c5379 -package-id enumerable-0.0.3-31d1bc40fd7c52b3d83d685e52627d98 -package-id fgl-5.4.2.3-347eeff6011a7f9285c305b00fea7a97 -package-id graphviz-2999.10.0.1-50e6cb683e6a2c39de754bd71e19785e -package-id mtl-1.1.0.2-336254fecf8a77054f76cb33671a5177 -package-id multirec-0.4.1-e036b72652c0c1f66e2511984d48035d -package-id parsec-3.1.0-53d2f726d0bc8967e0f6d7424588dca7 -package-id template-haskell-2.4.0.1-bf08798b1934e4d6a3f903f58e0d5159 -package-id uu-parsinglib-2.5.5-40a637b80a29d05a831a175c3f9a060e -O -Wall Text.GrammarCombinators.Base.Domain (...) <command line>: cannot satisfy -package-id uu-parsinglib-2.5.5-40a637b80a29d05a831a175c3f9a060e: uu-parsinglib-2.5.5-40a637b80a29d05a831a175c3f9a060e is unusable due to missing or recursive dependencies: haskell98-1.0.1.1-ca51ba62fed9074ccb8001cd642eb101 (use -v for more information) (...)

On Sun, Sep 05, 2010 at 07:20:52PM +0200, Dominique Devriese wrote:
Hi all,
I am working on a new package to be released on Hackage (grammar-combinators, release not yet announced). It compiles fine on my system (debian testing, special purpose test user with a pristine ~/.cabal), but the Hackage build log shows the below error message (full version on http://hackage.haskell.org/packages/archive/grammar-combinators/0.1/logs/fai...).
It seems this error is caused by a transitive dependency (the random package) requiring two versions of the time package (?), which does not show in that package's .cabal file. I cannot reproduce the problem locally and have no idea what might be causing them. I would much appreciate it if anyone with some more cabal/hackage experience could take a look and comment on the issue.
Unfortunately Hackage uses a somewhat braindead build environment (I forget the exact details) and so you sometimes get spurious build errors like this. If it compiles fine on your system it is probably OK. If you want to be absolutely sure that your library will build properly for other people I recommend using Capri [1]. -Brent [1] http://www.haskell.org/haskellwiki/Capri

Brent,
2010/9/5 Brent Yorgey
On Sun, Sep 05, 2010 at 07:20:52PM +0200, Dominique Devriese wrote:
I am working on a new package to be released on Hackage (grammar-combinators, release not yet announced). It compiles fine on my system (debian testing, special purpose test user with a pristine ~/.cabal), but the Hackage build log shows the below error message (full version on http://hackage.haskell.org/packages/archive/grammar-combinators/0.1/logs/fai...).
Unfortunately Hackage uses a somewhat braindead build environment (I forget the exact details) and so you sometimes get spurious build errors like this. If it compiles fine on your system it is probably OK. If you want to be absolutely sure that your library will build properly for other people I recommend using Capri [1].
Thanks a lot. The package compiles fine with Capri, so I'm glad it's a Hackage-specific problem. However, it seems that the library's haddock documentation is not getting built because of the Hackage compile problem. Does anyone know if there is any way I could get Hackage to ignore the compile problem and just build the haddock documentation? Thanks Dominique

On 6 September 2010 05:32, Dominique Devriese
However, it seems that the library's haddock documentation is not getting built because of the Hackage compile problem. Does anyone know if there is any way I could get Hackage to ignore the compile problem and just build the haddock documentation?
If memory serves, Hackage 2.0 (part of this year's GSoC) allows this (well, you have to build the docs on your machine and upload them). -- Ivan Lazar Miljenovic Ivan.Miljenovic@gmail.com IvanMiljenovic.wordpress.com
participants (3)
-
Brent Yorgey
-
Dominique Devriese
-
Ivan Lazar Miljenovic