advance warning of Cabal-188.8.131.52 and package breakages
duncan.coutts at worc.ox.ac.uk
Mon Feb 16 19:24:55 EST 2009
I'll be releasing Cabal-184.108.40.206 soon. I've been testing with packages on
hackage for regressions. However even with the regressions fixed there
will be a small handful of packages that will break with the new
release. This is because they are already incorrect it's just that this
was previously hidden.
All these errors get picked up now because the new Cabal version checks
that header files and C libs can be found at configure time. This check
is generally a great help to users. Unfortunately in the case of these
packages it picks up issues that did not always previously cause build
failure (though could cause failure in some configurations).
So I'm sorry that these 6 package now break. They are all genuine
pre-existing errors though and fixing them seems a small price to pay
for a better user experience for the other 1000 packages on hackage.
I'm cc'ing the maintainers of the 6 packages. There is no need to
release immediately, in fact you may like to wait for the release and
test against it yourself to confirm whatever fixes you make.
These are the packages and their errors:
This lists zutil.u as an include file. This is just a spelling
error. It should be zutil.h of course. This does break with
ghc-6.8 using -fvia-C. The behaviour of ghc-6.10 masks this
This lists <openssl/evp.h> as an include file. There is of
course no such file. It should be openssl/evp.h instead. This
does break with ghc-6.8 using -fvia-C. The behaviour of ghc-6.10
masks this error.
This lists libxml/xmlIO.h as an include file. On my system at
least this is found under /usr/include/libxml2 not /usr/include.
The best solution here is probably to use pkg-config to find the
right include dir. Cabal supports this directly via:
Again this happens to work with ghc-6.10 because it does not
really use headers when compiling, but it breaks with older ghc
This specifies Linker.h as an include file. This is from the ghc
rts include files. However this file cannot be included on its
own. It does not compile. It needs some other rts headers to be
included first. This would have failed with ghc-6.8, only the
package does not work with 6.8. It does not fail wit 6.10
because 6.10 doesn't really #include headers at all.
This specifies an include file that does not exist at configure
time. It specifies a file under dist/ that would be generated by
running hsc2hs. This is already incorrect, but happens to work
with the default dist location and current layout. If this
package were uploaded today it would be rejected.
This specifies a include file that is not a file, but is
actually a directory. It looks like confusion.
More information about the Libraries