On Tue, Apr 29 2014, Felipe Sateler wrote:
> On Mon, 28 Apr 2014 23:01:58 -0700, Manoj Srivastava wrote:
>
>
>> Felipe Sateler <fsateler@debian.org>
>> csound (U)
>> pulseaudio (U)
Add to that:
> Kari Pahula <kaol@debian.org>
> gecode
> Russ Allbery <rra@debian.org>
> krb5 (U)
Missing Build-Depends-Indep is a common pattern among the 60
or so remaining build failures.
> On both I'm getting this:
> dpkg-buildpackage: warning: debian/rules must be updated to support the
> 'build-arch' and 'build-indep' targets (at least 'build-arch' seems to be
> missing)
> Looks like the new make is not doing the expected thing when called as
> make -f debian/rules -qn build-arch
With the old make (3.8,1), it correctly
loads B-D-I and calls build-indep, with make 4.0-[12], it fails to
determine of the target exists, and calls ./debian/rules build
> (And by expected is return 2 when not found, any other return code
> otherwise).
Right. Since dpkg-buildpackage cannot ascertain that
'build-arch' and 'build-indep' targets exist, it calls build, and does
not load B-D-I first.
Most of the archive works, since B-D-I was not paid any
attention to on the buildds, and every package used to build with
./debian/rules build and all the dependencies used to be in
Build-Depends.
Since then, B-D-I has been fixed, and we see empirical evidence
that around 60 packages have made us of that.
I don't know why the behaviour has changed; but I have tested
it on apt and opusfile, and a couple of other packages.
I will cut a normal bug on dpkg, and a serious one on make, and
make the former block the latter while we figure otu what to do. The
options, as I see it are:
1) Do nothing. retain make-3.81 in Debian forever more. Needless to
say, this is not very attractive. Pro: There is no action to
take. Con: Almost every other distro is shipping a more recent
make. We will continue to diverge from everyone else, and already
the featires have diverged enough that people are having to add
special cases in the vuild system for the Debian family of
distributions.
2) Hack dpkg-buildpackage to always load B-D-I, and go back to just
calling ./debian/rules build. This is what we used to do. Pro: it
is pretty easy to do (umm, I would think, but I don't know the dpkg
code base so well anymore). This has the con of the inefficiency we
have tried to eliminate, in that all the build dependencies are
loaded for every build, even when not strictly needed.
3) We state that packages must provide build-arch and build-indep for
Jessie. This should trivially be true for every package using cdbs
or debhelper (or, heaven forbid, my old home brew build system),
and have dpkg-buildpackage call them without testing to see if they
exist. We would need to do another archive rebuild with the
modified dpkg-buildpackage to see how many packages do not
actually not implement these targets.
None of these are very pretty.
manoj
--
Just because he's dead is no reason to lay off work.
Manoj Srivastava <srivasta@acm.org> <http://www.golden-gryphon.com/>
4096R/C5779A1C E37E 5EC5 2A01 DA25 AD20 05B6 CF48 9438 C577 9A1C
Attachment:
signature.asc
Description: PGP signature