Roger Leigh <rle...@codelibre.net> writes: > On Sat, Nov 20, 2010 at 08:23:59PM +0000, Roger Leigh wrote: >> On Sat, Nov 20, 2010 at 01:29:12PM -0600, Boyd Stephen Smith Jr. wrote: >> > In <20101120183255.gf12...@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: >> >>r 1) Use the lintian lab on lintian.debian.org >> (/v/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. > > Output at http://people.debian.org/~rleigh/build-rule-check.bz2 > I haven't had time to analyse this, if someone else wants to, > that would be cool. > > Done on lintian.debian.org using the following: > > #!/bin/sh > > cd /srv/lintian.debian.org/laboratory/source > find . -type f -name rules | grep 'debfiles/rules$' | while read rule > do > egrep -H '^(build(.*%)?|build-(arch|indep)):' "$rule" > done > > > Regards, > Roger
Now why does it only list 8k sources if it matches the required "build:" target? Are 50% of all sources already dropping through that grep because they use dh ('%:') or include files? Anyway, grepping for sources that (probably) have build-arch/indep: % bzcat build-rule-check.bz2 | egrep '/rules:(build(.*%)+|build-(arch|indep)):' | cut -d":" -f1 | sort -u | wc -l 572 Lots of work to do. MfG Goswin -- To UNSUBSCRIBE, email to debian-mentors-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/87ipzqblav....@frosties.localnet