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

Re: Fwd: Re: mediawiki2latex-7.2



On Fri, Dec 27, 2013 at 06:14:40PM +0100, Dirk Hünniger wrote:
> mediawiki2latex-7.2 does only compile on amd64, it does not on any
> other platform. The issue seems to have to do with crypto
> certificate stuff (libghc-pem-dev,libghc-certificate-dev). The point
> is that mediawiki2latex actually does not need these crypto stuff.
> So its likely to do with some general policy that neither I nor
> Georges Khaznadar who is current uploader of the package understand
> well enough to resolve the issue.
[...]
> -------- Original Message --------
> Subject: 	Re: mediawiki2latex-7.2
> Date: 	Fri, 27 Dec 2013 17:38:14 +0100
> From: 	Georges Khaznadar <georges.khaznadar@free.fr>
> To: 	Dirk Hünniger <dirk.hunniger@googlemail.com>
> 
> 
> 
> Hello Dirk, I uploaded the package for the version 7.2 yesterday.
> Everything went fine. However I am facing an issue which takes its
> origin in the new policy of maintainers of GHC packages.

This isn't new at all, and it's not an issue you need to do anything
about other than waiting a bit.

Libraries built by GHC tend to have very tight ABI dependencies: even
rather small changes in their source frequently necessitate rebuilding
everything based on them.  The Haskell packaging helpers in Debian
simply reflect this by taking the ABI hashes exposed by the underlying
toolchain and stuffing them into Provides and Depends so that we know
when we need to rebuild things and don't do users a disservice by
presenting them with allegedly-installable but non-functional
combinations.  Joachim (in particular) routinely runs a script that
schedules binNMUs of packages which depend on libghc-* ABIs that are no
longer satisfiable.

It's not ideal, it involves rather a lot of rebuild cycles, but it's
pretty much the best available option given the behaviour of the
underlying toolchain, and you don't need to do anything to cope with it;
the next time Joachim runs his script it should notice that
libghc-certificate-dev is uninstallable and schedule a binNMU of
haskell-certificate on the affected architectures.  Once everything is
installable then mediawiki2latex will automatically be scheduled for
building.  Just leave it alone until then.

> I had written the build-dependency on the package libghc-pem-dev in
> mw2l's debian/control file, but I fear that the build tool takes the
> build-dependencies in alphabetical order; as it deals with the package
> named libghc-certificate-dev, the other name libghc-pem-dev is not yet
> registered, and the dependency on virtual libghc-pem-dev-0.1.2-62e18
> cannot be solved.

This analysis is quite wrong, I'm afraid.  Alphabetical order is
irrelevant.  The problem is simply that libghc-certificate-dev was built
against an old libghc-pem-dev ABI and now needs to be rebuilt against
the new one; the package dependencies encode this in such a way that it
can be handled largely automatically (or at least scriptably) in Debian.

> Unfortunately, the expression "${haskell:Depends}" is expanded into a list
> of virtual packages only, which is contrary to other general debian
> policies. One package should never depend on virtual-only packages, it
> should depend on alternatives which begin with virtual packages and
> provide at least one non-virtual package as a fallback.

No, this is a mythical policy (a rather widely believed myth, it seems,
but still a myth).  The policy manual only says:

     To specify which of a set of real packages should be the default to
     satisfy a particular dependency on a virtual package, list the real
     package as an alternative before the virtual one.

... but it does not indicate that this is something packages need to do,
only that the above is how they should do it if they need to.

As a matter of practice, packages generally ought to specify real
alternatives when the behaviour would otherwise be ambiguous.  But there
is no ambiguity here: either the ABI hash encoded in the
libghc-pem-dev-<ABI> virtual package is available, in which case there
is exactly one usable option, or libghc-pem-dev has moved on to some
newer ABI, in which case there are no usable options.  Specifying a real
alternative would achieve precisely nothing good, and would only
increase the size of the Packages file.

> I wish I had waited 10 days before uploading mediawiki2latex-7.2, so the
> previous version would have got a chance to enter Debian/Testing without a
> correction due to the Debian Haskell Group.

I would expect that this temporary problem will clear by around the time
mediawiki2latex 7.2-1 would have become eligible for testing anyway.
Please just be a little bit more patient.

> If we cannot get a suitable reply quickly, I think that I can try to
> patch the package haskell-devscripts, which most probably implements the
> expansion of ${haskell:depends}.

Please do not do this, since the changes you're implying would at best
achieve nothing and at worst be outright counterproductive (packages
might end up being installable but not work).

Regards,

-- 
Colin Watson                                       [cjwatson@debian.org]


Reply to: