[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Our dependency system is insufficient



Hi,

I just stumbled over this:


$ ldd /usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-7.8.4/warp-tls-3.0.3/libHSwarp-tls-3.0.3-ghc7.8.4.so|grep semigr
	libHSsemigroups-0.15.3-ghc7.8.4.so => not found
	libHSsemigroups-0.16.2.2-ghc7.8.4.so => /usr/lib/haskell-packages/ghc/lib/x86_64-linux-ghc-7.8.4/semigroups-0.16.2.2/libHSsemigroups-0.16.2.2-ghc7.8.4.so (0x00007f61d8fdf000)

and clearly that breaks GHCi or TemplateHaskell using this library, and
e.g. building git-annex. 

This is a big problem!

How did it happen?  libghc-warp-tls-dev_3.0.3-3+b3, which is having
this problem, was built against semigroups-0.15.3. Later I uploaded
semigroups-0.16.2.2, and rebuilt everything that needed rebuilding,
according to their ABI hashes. One of these dependencies (not clear
which one) did then _not_ change its ABI, so warp-tls’s dependency on
it is still satisfied, and warp-tls was not rebuilt. Therefore, warp
-tls’s .so file still links against the old seimgroups library and
simultaneously, and indirectly, against the new one.

What is the fix? Tricky. Either the ABI hash is somehow made to be
affected by the names of the dynamic libraries included (and it may be
the that due to the changed system in 7.10, it is already solved
there), or (quick hammer solution) haskell-devscripts needs to be
recurse into the dependencies in cabal_depends() in Dh_Haskell.sh.

We could also wiggle our way out of this, until 7.10, by detecting the
problems manually for now, and see if the problem is fixed there. I’m
currently installing all our haskell packages into a schroot and see
what packages are affected.

Greetings,
Joachim


-- 
Joachim "nomeata" Breitner
Debian Developer
  nomeata@debian.org | ICQ# 74513189 | GPG-Keyid: F0FBF51F
  JID: nomeata@joachim-breitner.de | http://people.debian.org/~nomeata

Attachment: signature.asc
Description: This is a digitally signed message part


Reply to: