
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 tests. 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 justified.
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 Duncan