Hi,

Am Mittwoch, den 15.05.2013, 11:53 +0200 schrieb Matthias Klose:
> Am 15.05.2013 11:29, schrieb Joachim Breitner:
> > I’m not sure what there is left to be done: The authors of GHC have 
> > indicated that it possibly unsafe to remove these dependencies¹, and the 
> > risk of broken packages at our users installation clearly outweigh the 
> > nuisance of having a bunch of buildds churn on the packages.
> > 
> > ¹ http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639015#57
> 
> So you burden Debian with extra work without knowing whether this extra work
> is needed or not.  You claim to throw broken packages at your users, but you
> really don't know.  It is not just buildd time, it's man power involved with
> such rebuilds, and getting it rebuilt on all architectures it did build 
> before.

what manpower? If its just scheduling binNMUs, then this is something we
have to do regularly for Haskell, and I offered help with that.
Otherwise, as far as I know, rebuilds in Debian are, once scheduled,
fully automated by now.


But I asked more GHC wizards about the issue and at least this one
expects no issues:

<nomeata> Hi. I need some advice with http://bugs.debian.org/639015. The
question is: Do haskell libraries need to be recompiled if the GHC (and
hence the RTS) are being built against a new ABI version of libffi?
<nomeata> There is some push to remove the dependency on libffi from the
indivudial libghc-foo-dev packages to reduce the number of rebuilds, but
I’m worried that it might byte us in the end.
<dcoutts> mm, interesting question
<dcoutts> nomeata: I would expect that the libffi api is not exposed
from the rts, so it should not propagate further
<dcoutts> but would want to check that
<dcoutts> nomeata: rebuilding ghc should give you core packages with all
the same ABI hashes as before
<nomeata> I was also wondering: Does GHC use the ffi in any way while
generating code? I could imagine that it uses libffi to get information
about c datatype sizes or ffi internas that are then baked in to the
code.
<dcoutts> nomeata: I don't see why individual haskell libraries would
need to depend on libffi directly
<dcoutts> nomeata: not that I'm aware of
<dcoutts> I think it's only runtime
<nomeata> ok, that would be good.
<dcoutts> nomeata: but I recommend you get a second opinion on all this
from Igloo
<nomeata> I got one from Simon Marlow which is more on the negative
side, although I am not sure that I explained the issue well:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=639015#57
<nomeata> (may I store this conversion in the bug tracker?)
<dcoutts> nomeata: I think Simon is assuming that ghc does not get
rebuilt
<dcoutts> but I think you're saying, rebuild ghc but don't rebuild other
libs
<dcoutts> effectively, you're expecting that the only thing that changes
in the new ghc build is the rts
<dcoutts> and all the libs that link to the rts would not change
<dcoutts> nomeata: yes you can record this conversation
<dcoutts> can/may

The next problem is that your patch at
http://launchpadlibrarian.net/78632067/haskell-devscripts_0.8.7%2Breally0.8.5_0.8.7%2Breally0.8.5ubuntu1.diff.gz
does quite do what it should do:
         $(nm -u $T_DIR/a.o | grep 'U ffi_' | wc -l)
is always going to be 0, independently of whether the package in
question does directly use a foreign function whose name starts with
ffi_, because a.o is just the compilation of a.hs, which is essentially
"main = return ()" and has no relation to the package in question.

One could simply and unconditionally remove the dependency on libffi
from the substvars file, or more cleanly using the -x parameter to
dpkg-shlibdeps. But I guess this will break if haskell bindings to
libffi are packages. We do not do that yet, but maybe we (or someone
else relying on haskell-devscripts) does, so this seems to be a hack
below Debian's standards.

The cleanest solution I can think of is to start building dynamic
libraries as well, as these can be checked by dpkg-shlibdeps for
symbols, so there is no need to build the „test binary“ that pulls in
the rts and dpkg-shlibdeps produces exact results.

But packaging dynamic haskell would be a pretty large can of new worms
and it is not clear when Debian will open it.

Conclusion: No good solution in sight, but hacks would be possible,
although obviously too late for libffi6. I’d still just rebuild the
package and stop worrying – does libffi really get ABI bumps that often?
If there is a GHC upgrade near the libffi bump then all haskell packages
have to be rebuild anyways.

Greetings,
Joachim

-- 
Joachim "nomeata" Breitner
Debian Developer
  [email protected] | ICQ# 74513189 | GPG-Keyid: 4743206C
  JID: [email protected] | http://people.debian.org/~nomeata

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

Reply via email to