breakage with Cabal-1.6
duncan.coutts at worc.ox.ac.uk
Thu Oct 9 21:06:14 EDT 2008
On Thu, 2008-10-09 at 11:55 -0700, Duncan Coutts wrote:
> I'm trying to do a Cabal-1.6 release, in time for ghc-6.10.
> Here's an interim update.
> There are 7 packages on hackage where the latest version has a Setup.hs
> script that works with Cabal-1.4 but does not compile with Cabal-1.6.
Actually it's 8. For some reason I missed lhs2tex. Cabal-1.4 had several
compat hacks added to enable lhs2tex to be made to work. Those hacks are
gone in Cabal-1.6.
> That's actually not too bad. It's been a lot worse in the past, and we
> have many more packages now.
I tried to build 685 packages from hackage with ghc-6.8 using
Cabal-188.8.131.52 and Cabal-184.108.40.206. Here are the numbers:
* Cabal-220.127.116.11: 547 built ok
* Cabal-18.104.22.168: 541 built ok
So there are (at least) 6 packages that worked with Cabal-22.214.171.124 and
now fail with Cabal-1.6.
I say "at least" because some failed for me with Cabal-1.4 but only
because I'm missing C libs. I don't have an accurate count of that
subset. But I don't think it's that large.
If we assume it's about 12 newly failing packages then that's under 2%.
If I remember correctly we had 8-10% breakage due to Cabal from the
1.1.6 to 1.2 transition with ghc-6.6 to 6.8. So it's rather better this
This set of course overlaps with the 8 for which the Setup.hs fails to
compile. The reason it's not simply an addition to the earlier 7 is
because some of those failed to configure with Cabal-1.4 even though the
Setup.hs compiled. In a couple cases that was due to C libs.
So here's a breakdown of the 6 that are new failures and a couple that
definitely fail with Cabal-1.6 and probably would have worked with
Cabal-1.4 if I'd had the C libs installed.
Failed due to Setup.hs not compiling:
These two also have Setup.hs scripts that no longer compile
hsql-odbc never built anyway because hsql does not compile with ghc-6.8.
HDBC-postgresql probably would have built for me with Cabal-1.4 if I'd
had the postegresql C libs installed. So it's part of the "at least"
category which failed with 1.4 only because I didn't have the C libs.
HsPerl5 fails with:
Reading parameters from ./HsPerl5.buildinfo
setup: HsPerl5.buildinfo:4: Parse of field 'ld-options' failed.
The problem here is parsing "-Wl,-E". It is a Cabal parsing bug. It
worked in old versions of Cabal but only because they incorrectly
interpreted "," as a separator. By luck this worked. Apparently passing
-Wl -E to gcc rather than -Wl,-E was not enough to cause visible
breakage. The current cabal parser for ld-options only looks for spaces
as separators but currently does not allow ',' inside tokens. I'll fix
this before the release.
More information about the Glasgow-haskell-users