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

Re: Build-Depends-Indep, please review

On Sat, Nov 20, 2010 at 01:29:12PM -0600, Boyd Stephen Smith Jr. wrote:
> In <20101120183255.GF12640@khazad-dum.debian.net>, Henrique de Moraes Holschuh 
> wrote:
> >On Fri, 19 Nov 2010, Boyd Stephen Smith Jr. wrote:
> >> >But hey, all the maintainer has to do is add 1, in words ONE, char to
> >> >debian/rules. Just change "build:" to "build%:" and dpkg-buildpackage
> >> >could use build-arch/indep targets instead of build. Aparently that is
> >> >too much to ask.
> >> 
> >> I volunteer to make /this/ fix to any package that is unmaintained or
> >> whose maintainer is unresponsive, *if* Debian will change policy to
> >> /require/ build- arch/indep and make dpkg-buildpackage use them instead
> >> of build sometime after the Squeeze release and before the Wheezy freeze.
> >
> >It can be done, but it must be done in at least two steps:
> >
> >1. Make it SHOULD, start fixing packages.  You don't have to wait for the
> >   SHOULD to start fixing packages, either.
> I'm not willing to manually test random packages for this breakage.  What's 
> the best way to get an automated process to report on the PTS or BTS the 
> existence of build-arch and build-indep?  Could it simply be a lintian test?
> Also, I thought it was already a SHOULD.
> >2. When almost everything is fixed, make it MUST.  Whatever doesn't get
> >   fixed after that, gets axed from the next stable.
> My time was volunteered (in my last posting) *after* it becomes a MUST, but 
> with some help I might be willing to put some time in as part of a DEP.

Two suggestions:

1) Use the lintian lab on lintian.debian.org
   (/srv/lintian.debian.org/laboratory) which contains all 15796 unpacked
   source packages.  Alternatively, download and unpack them all on your
   own machine []

   You can write a script to check for the presence of build-arch:
   and/or build-indep:
   Note: this won't pick out make pattern rules which don't have
   (directly) those named rules, so you might want to check for build%
   etc.  There are other special cases such as included Makefiles when
   packages use cdbs etc., so you will get false positives that need
   manual review.

   Example: find . -type f -name rules | grep 'debian/rules$' | while read rule; do egrep -H '^(build(.*%)?|build-(arch|indep)):' "$rule"; done
   gives you somewhere to start.

2) Directly patch dpkg-buildpackage and do a whole-archive rebuild.

   If you patch dpkg-buildpackage to require build-arch and build-indep
   in place of build, you can then build every source package and get
   success or failure.

   This can be done fairly trivially by scripting sbuild to build all
   sources with the new dpkg-buildpackage installed in the build chroot.
   There's also rebuildd for use with pbuilder/cowbuilder if you prefer

   This will take much longer, but should be 100% reliable bar FTBFS

If there was a reliable way of getting make to tell you if a target
rule exists or not, that would be much quicker than doing a full
rebuild.  Additionally, it could be added to lintian to warn people
about the requirement.

Totally agree with hmh about making it a SHOULD in Policy followed by


  .''`.  Roger Leigh
 : :' :  Debian GNU/Linux             http://people.debian.org/~rleigh/
 `. `'   Printing on GNU/Linux?       http://gutenprint.sourceforge.net/
   `-    GPG Public Key: 0x25BFB848   Please GPG sign your mail.

Attachment: signature.asc
Description: Digital signature

Reply to: