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

Re: Build-Depends-Indep, please review



Roger Leigh <rleigh@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.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:
>> 
>>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


Reply to: