On Tue, Apr 29 2014, Felipe Sateler wrote:

> On Mon, 28 Apr 2014 23:01:58 -0700, Manoj Srivastava wrote:
>
>
>> Felipe Sateler <fsate...@debian.org>
>>    csound (U)
>>    pulseaudio (U)
Add to that:
> Kari Pahula <k...@debian.org>
>    gecode
> Russ Allbery <r...@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 <sriva...@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

Reply via email to