Hi, Looks like we have some rather big issue with how we generated our binary dependencies, as they are not sufficient to guarantee working dependencies. This is the situation: missingh does not build-depend on libghc6-regex-posix-dev, nor does it refer to it in its cabal file. The generated file installed-pkg-config does not mention it in its dependencies, so Marco’s otherwise great dh_haskell_deps scrip does not pick it up. But nevertheless, the package is refered to in the .hi files: $ ghc --show-iface ./dist-ghc6/build/Data/String/Utils.hi [..] interface MissingH-1.1.0.1:Data.String.Utils 6104 interface hash: e3134e87faf7a6bd5e68e0d49dd49a92 ABI hash: 7e9b519147564fcb613de026890cb2bf export-list hash: b3dad1adc8f0e9ac095d771340dd604e orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e where export MissingH-1.1.0.1:Data.String.Utils escapeRe lstrip rstrip splitWs strip export MissingH-1.1.0.1:Data.List.Utils endswith join replace split startswith module dependencies: Data.List.Utils package dependencies: ghc-prim integer base array-0.2.0.0 containers-0.2.0.1 bytestring-0.9.1.4 mtl-1.1.0.2 regex-base-0.93.1 regex-posix-0.93.2 regex-compat-0.92 [..] Now, the version of missingh in the archive until a few days ago was built against regex-compat (on which it does depend properly) when that was built against regex-posix-0.93.1. regex-posix-0.93.2 was then uploaded, and regex-compat had a binNMU to be installable again. Despite having the same upstream version, it’s ABI did change, breaking packages that depend on regex-compat. The manual fix for now is to binNMU these packages, to re-build against the newer regex-compat. The proper solution is, I guess, what I proposed a long while ago and which is done by the ocaml team: Use virtual packages that reflect the ABI hash (see above) to guarantee that packages work iff their dependencies are installed. Or is it a bug by ghc/Cabal that the installed installed-pkg-config does not refer to regex-posix-0.93.2? Now, according to http://hackage.haskell.org/trac/ghc/wiki/Status/Oct09, ghc6-6.12 will provide us with a ABI hash on the package level. I can probably afford to wait for that, and fix problems manually until then. We really should make sure we switch to such a system with the package recompilations for ghc6-6.12! Any objections? Any better ideas? Anyone willing to step up as the main driver for this issue (i.e. implementing it in haskell-devscripts in time)? We can probably borrow ideas and code from the OCAML team. Greetings, Joachim -- Joachim "nomeata" Breitner Debian Developer nomeata@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C JID: nomeata@joachim-breitner.de | http://people.debian.org/~nomeata
Attachment:
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil