[Haskell-cafe] Hackage being too strict?

Duncan Coutts duncan.coutts at worc.ox.ac.uk
Mon Apr 21 15:59:00 EDT 2008

On Mon, 2008-04-21 at 13:38 +0200, Hans van Thiel wrote:

> Configuring Emping-0.5.1...
> cabal-setup: At least the following dependencies are missing:
> gtk -any
> I'll have to leave it at that, since my local Cabal version does configure and build, 
> and I obviously can't use Hackage as a development tool, uploading new versions until 
> I get it right. Or, on second thought, does the above message just mean there's no 
> gtk on Hackage? 

That's right.

> Some general questions, suggestions:
> To improve the usability of Hackage, wouldn't it be better to hold new uploads in limbo
> until they pass all the checks, instead of publishing them anyway? 

Yes. Or the way we've been thinking about it is to define various
subsets of hackage of packages that pass various automatic and manual

Of course at the moment the package build is not sufficiently accurate
to determine if a package builds eg the gtk issue you found. The plan
there is to use the cabal-install client to gather build reports.

> The current a priori check, which said there were no fatal errors, while the
> a posteriori check failed, is misleading. Wouldn't it be better to warn potential 
> uploaders that this first check is not complete?

I'm not sure I see what you're getting at. We can't do a full build
check synchronously at upload time.

> I'd also like the warning about the -O2 optimization flag to go
> away...I'd guess this is a leftover from an earlier time in GHC.

It's not a leftover, it was added recently. The intention is that user
gets to set the optimisation level (cabal configure -O or -O2 or -O0).
It's not really great when packages override that choice. From
experience packaging haskell libraries for gentoo we found that most
packages that do set -O2 do so out of habit without any particular
justification and it significantly increases compile times and memory
use. It's not banned though as there are some cases where it's perfectly

> More importantly, if Cabal is sort of an rpm for Haskell programs, shouldn't 
> the uploader use version numbers of the libraries in the Cabal file? For example, 
> I believe in my case at least gtk2hs 0.9.12 is needed, while Ubuntu seems to have 
> only 0.9.11 (until a few months ago, at least). So, if an uploader knows such 
> dependencies, how to express them?

build-depends: gtk >= 0.9.12 && < 0.10


More information about the Haskell-Cafe mailing list