Re: Build-Depends-Indep, please review

2010-11-22 Thread Goswin von Brederlow
Roger Leigh rle...@codelibre.net writes:

 On Sun, Nov 21, 2010 at 07:09:44PM +0100, Goswin von Brederlow wrote:
  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?

 That's what I think, and a cursory look at a few gives the same
 impression.  Which is surprisingly good--there's only a single
 tool to update to get support added for a huge chunk of the
 archive (well, there's cdbs as well of course, so it's two main
 ones).

I would think dh already supports them. So we might actuay have 50%
coverage of binay-arch/indep already or verry close to it.

Maybe we can actualy change policy post squeeze because the majority of
sources supports it.

 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.

 Agreed!  But, should be an achievable goal for squeeze+1 if we start
 on it early.

 Regards,
 Roger

Totaly.

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/87r5edibvo@frosties.localnet



Re: Build-Depends-Indep, please review

2010-11-22 Thread Roger Leigh
On Mon, Nov 22, 2010 at 05:03:39PM +0100, Goswin von Brederlow wrote:
 Roger Leigh rle...@codelibre.net writes:
 
  On Sun, Nov 21, 2010 at 07:09:44PM +0100, Goswin von Brederlow wrote:
  
  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?
 
  That's what I think, and a cursory look at a few gives the same
  impression.  Which is surprisingly good--there's only a single
  tool to update to get support added for a huge chunk of the
  archive (well, there's cdbs as well of course, so it's two main
  ones).
 
 I would think dh already supports them. So we might actuay have 50%
 coverage of binay-arch/indep already or verry close to it.
 
 Maybe we can actualy change policy post squeeze because the majority of
 sources supports it.

I checked, and dh currently doesn't support build-arch and build-indep
at all internally (you need to add the rules yourself).  I've made a
patch to add proper support which I'll submit once I've tested it.

I've submitted a proposed change to Policy to require the use
of these targets (#604397), but we need at least 50% coverage first.
But, we'll get that as soon as dh and cdbs support it.

We also need a lintian check to warn if these targets are missing;
but I'm not at all familiar with hacking on lintian.


Regards,
Roger

-- 
  .''`.  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.


signature.asc
Description: Digital signature


Re: Build-Depends-Indep, please review

2010-11-22 Thread Roger Leigh
On Mon, Nov 22, 2010 at 04:39:20PM +, Roger Leigh wrote:
 I checked, and dh currently doesn't support build-arch and build-indep
 at all internally (you need to add the rules yourself).  I've made a
 patch to add proper support which I'll submit once I've tested it.

FWIW, the current progress on this is attached.  No guarantees--it's
totally untested.


Regards,
Roger

-- 
  .''`.  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.
diff --git a/dh b/dh
index d2771ab..794ff4f 100755
--- a/dh
+++ b/dh
@@ -16,13 +16,15 @@ Bdh Isequence [B--with Iaddon[B,Iaddon ...]] [B--list] [B--until
 =head1 DESCRIPTION
 
 Bdh runs a sequence of debhelper commands. The supported Isequences
-correspond to the targets of a Fdebian/rules file: Bbuild, Bclean,
-Binstall, Bbinary-arch, Bbinary-indep, and Bbinary.
+correspond to the targets of a Fdebian/rules file: Bbuild-arch,
+Bbuild-indep, Bbuild, Bclean, Binstall, Bbinary-arch,
+Bbinary-indep, and Bbinary.
 
-Commands in the Bbinary-indep sequence are passed the B-i option to ensure
-they only work on binary independent packages, and commands in the
-Bbinary-arch sequences are passed the B-a option to ensure they only work
-on architecture dependent packages.
+Commands in the Bbuild-indep and Bbinary-indep sequences are passed
+the B-i option to ensure they only work on binary independent packages,
+and commands in the Bbuild-arch and Bbinary-arch sequences are
+passed the B-a option to ensure they only work on architecture
+dependent packages.
 
 If Fdebian/rules contains a target with a name like Boverride_Idh_command,
 then when it would normally run Idh_command, Bdh will instead call that
@@ -322,6 +324,8 @@ $sequences{build} = [qw{
 	dh_auto_build
 	dh_auto_test
 }],
+$sequences{'build-indep'} = [...@{$sequences{build}}];
+$sequences{'build-arch'} = [...@{$sequences{build}}];
 $sequences{clean} = [qw{
 	dh_testdir
 	dh_auto_clean
@@ -367,19 +371,25 @@ $sequences{install} = [...@{$sequences{build}}, qw{
 	dh_compress
 	dh_fixperms
 }];
+$sequences{install-indep} = [...@{$sequences{build-indep}}, @i];
+$sequences{install-arch} = [...@{$sequences{build-arch}}, @i];
 my @b=qw{
 	dh_installdeb
 	dh_gencontrol
 	dh_md5sums
 	dh_builddeb
 };
-$sequences{'binary-indep'} = [...@{$sequences{install}}, @b];
+$sequences{'binary-indep'} = [...@{$sequences{install-indep}}, @b];
 $sequences{binary} = [...@{$sequences{install}}, qw{
 	dh_strip
 	dh_makeshlibs
 	dh_shlibdeps
 }, @b];
-$sequences{'binary-arch'} = [...@{$sequences{binary}}];
+$sequences{'binary-arch'} = [...@{$sequences{install-arch}}, qw{
+	dh_strip
+	dh_makeshlibs
+	dh_shlibdeps
+}];
 
 # Additional command options
 my %command_opts;
@@ -514,14 +524,18 @@ my @packag...@{$dh{dopackages}};
 # Get the options to pass to commands in the sequence.
 # Filter out options intended only for this program.
 my @options;
-if ($sequence eq 'binary-arch') {
+if ($sequence eq 'build-arch' ||
+$sequence eq 'install-arch' ||
+$sequence eq 'binary-arch') {
 	push @options, -a;
 	# as an optimisation, remove from the list any packages
 	# that are not arch dependent
 	my %arch_packages = map { $_ = 1 } getpackages(arch);
 	@packages = grep { $arch_packages{$_} } @packages;
 }
-elsif ($sequence eq 'binary-indep') {
+elsif ($sequence eq 'build-indep' ||
+   $sequence eq 'install-indep' ||
+   $sequence eq 'binary-indep') {
 	push @options, -i;
 	# ditto optimisation for arch indep
 	my %indep_packages = map { $_ = 1 } getpackages(indep);


signature.asc
Description: Digital signature


Re: Build-Depends-Indep, please review

2010-11-22 Thread Roger Leigh
On Mon, Nov 22, 2010 at 04:42:03PM +, Roger Leigh wrote:
 On Mon, Nov 22, 2010 at 04:39:20PM +, Roger Leigh wrote:
  I checked, and dh currently doesn't support build-arch and build-indep
  at all internally (you need to add the rules yourself).  I've made a
  patch to add proper support which I'll submit once I've tested it.
 
 FWIW, the current progress on this is attached.  No guarantees--it's
 totally untested.

Final tested patch in #604563.


-- 
  .''`.  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.


signature.asc
Description: Digital signature


Re: Build-Depends-Indep, please review

2010-11-21 Thread Goswin von Brederlow
Roger Leigh rle...@codelibre.net writes:

 On Sat, Nov 20, 2010 at 08:23:59PM +, 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



Re: Build-Depends-Indep, please review

2010-11-21 Thread Roger Leigh
On Sun, Nov 21, 2010 at 07:09:44PM +0100, Goswin von Brederlow wrote:
  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?

That's what I think, and a cursory look at a few gives the same
impression.  Which is surprisingly good--there's only a single
tool to update to get support added for a huge chunk of the
archive (well, there's cdbs as well of course, so it's two main
ones).

 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.

Agreed!  But, should be an achievable goal for squeeze+1 if we start
on it early.


Regards,
Roger

-- 
  .''`.  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.


signature.asc
Description: Digital signature


Re: Build-Depends-Indep, please review

2010-11-20 Thread Henrique de Moraes Holschuh
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.

2. When almost everything is fixed, make it MUST.  Whatever doesn't get
   fixed after that, gets axed from the next stable.

-- 
  One disk to rule them all, One disk to find them. One disk to bring
  them all and in the darkness grind them. In the Land of Redmond
  where the shadows lie. -- The Silicon Valley Tarot
  Henrique Holschuh


-- 
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/20101120183255.gf12...@khazad-dum.debian.net



Re: Build-Depends-Indep, please review

2010-11-20 Thread Boyd Stephen Smith Jr.
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.
-- 
Boyd Stephen Smith Jr.   ,= ,-_-. =.
b...@iguanasuicide.net   ((_/)o o(\_))
ICQ: 514984 YM/AIM: DaTwinkDaddy `-'(. .)`-'
http://iguanasuicide.net/\_/


signature.asc
Description: This is a digitally signed message part.


Re: Build-Depends-Indep, please review

2010-11-20 Thread Goswin von Brederlow
Boyd Stephen Smith Jr. b...@iguanasuicide.net writes:

 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?

Setup an autobuilder, patch dpkg-buildpackage to call build-arch/indep,
rebuild all packages, read all failed build logs.


You could set up a lintian test that checks for a targets compatible
with build-arch/indep to get a fairly goo result. I.e. '%' is compatible,
'build%' is and so on. You will get some false positives and false
negatives but for a lintian test that should be ok. Unfortunately it
isn't good enough for dpkg-buildpackage use.

If you have the knowledge to write lintian tests then please do.

 Also, I thought it was already a SHOULD.

It is more a CAN. The targets are declared optional without a statement
one SHOULD have them even if they only depend on 'build'.

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.

And that is the problem. You will only do the work if you MUST. And you
only MUST if the work is almost done.

The same goes for maintainers accepting patches. There are a lot of
sources, maybe even the majority, where build-arch/indep is of no
use. And there maintainers are adverse to adding a patch for
build-arch/indep that is totaly useless (for their source).


Why not loosen your requirement a bit? For example would you volunteer
to NMU packages if build-arch/indep targets become a release goal for
wheeze?

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/87tyjb3g00@frosties.localnet



Re: Build-Depends-Indep, please review

2010-11-20 Thread Roger Leigh
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:

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
   that.

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

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
MUST.


Regards,
Roger

-- 
  .''`.  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.


signature.asc
Description: Digital signature


Re: Build-Depends-Indep, please review

2010-11-20 Thread Roger Leigh
On Sat, Nov 20, 2010 at 08:23:59PM +, 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

-- 
  .''`.  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.


signature.asc
Description: Digital signature


Re: Build-Depends-Indep, please review

2010-11-19 Thread Goswin von Brederlow
David Kalnischkies kalnischk...@gmail.com writes:

 On Thu, Nov 18, 2010 at 19:25, أحمد المحمودي 
 aelmahmo...@sabily.org wrote:
 On Thu, Nov 18, 2010 at 07:07:07PM +0100, Goswin von Brederlow wrote:
 And as discussed before policy disagrees with reality in this.

 Would you please elaborate ?

 Goswin likely refers to this thread: Buildd  binary-indep
 http://lists.debian.org/debian-devel/2010/09/msg00590.html
 Message-id: 20100924204433.ga4...@apache.rbscorp.ru


 Best regards

 David Kalnischkies

And in short:

Buildds install only Build-Depends but not Build-Depends-Indep but still
call the build target. In reality the build target must work with
only Build-Depends installed contrary to what policy says.

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/87y68pl3sm@frosties.localnet



Re: Build-Depends-Indep, please review

2010-11-19 Thread Roger Leigh
On Fri, Nov 19, 2010 at 04:40:57PM +0100, Goswin von Brederlow wrote:
 David Kalnischkies kalnischk...@gmail.com writes:
 
  On Thu, Nov 18, 2010 at 19:25, أحمد المحمودي 
  aelmahmo...@sabily.org wrote:
  On Thu, Nov 18, 2010 at 07:07:07PM +0100, Goswin von Brederlow wrote:
  And as discussed before policy disagrees with reality in this.
 
  Would you please elaborate ?
 
  Goswin likely refers to this thread: Buildd  binary-indep
  http://lists.debian.org/debian-devel/2010/09/msg00590.html
  Message-id: 20100924204433.ga4...@apache.rbscorp.ru
 
 
  Best regards
 
  David Kalnischkies
 
 And in short:
 
 Buildds install only Build-Depends but not Build-Depends-Indep but still
 call the build target. In reality the build target must work with
 only Build-Depends installed contrary to what policy says.

I do hope this mess can be sorted out after squeeze is released.
Mandating build-arch and build-indep would be a good thing, IMHO.
It's not the buildd software that can change this though--the
actual sticking point is dpkg-buildpackage, which is used by sbuild.

sbuild is actually perfectly capable of installing Build-Depends-Indep
and removing Build-Conflicts-Indep when invoked with the -A (build
arch-all) option, but there are no buildds building arch-indep packages
yet.  If we ever throw away uploaded binaries and build everything on
buildds, this would then be useful.


Regards,
Roger

-- 
  .''`.  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.


signature.asc
Description: Digital signature


Re: Build-Depends-Indep, please review

2010-11-19 Thread Goswin von Brederlow
Roger Leigh rle...@codelibre.net writes:

 On Fri, Nov 19, 2010 at 04:40:57PM +0100, Goswin von Brederlow wrote:
 David Kalnischkies kalnischk...@gmail.com writes:
 
  On Thu, Nov 18, 2010 at 19:25, أحمد المحمودي 
  aelmahmo...@sabily.org wrote:
  On Thu, Nov 18, 2010 at 07:07:07PM +0100, Goswin von Brederlow wrote:
  And as discussed before policy disagrees with reality in this.
 
  Would you please elaborate ?
 
  Goswin likely refers to this thread: Buildd  binary-indep
  http://lists.debian.org/debian-devel/2010/09/msg00590.html
  Message-id: 20100924204433.ga4...@apache.rbscorp.ru
 
 
  Best regards
 
  David Kalnischkies
 
 And in short:
 
 Buildds install only Build-Depends but not Build-Depends-Indep but still
 call the build target. In reality the build target must work with
 only Build-Depends installed contrary to what policy says.

 I do hope this mess can be sorted out after squeeze is released.
 Mandating build-arch and build-indep would be a good thing, IMHO.
 It's not the buildd software that can change this though--the
 actual sticking point is dpkg-buildpackage, which is used by sbuild.

 sbuild is actually perfectly capable of installing Build-Depends-Indep
 and removing Build-Conflicts-Indep when invoked with the -A (build
 arch-all) option, but there are no buildds building arch-indep packages
 yet.  If we ever throw away uploaded binaries and build everything on
 buildds, this would then be useful.


 Regards,
 Roger

Don't count on it. This has been going on for years and years.

The simple solution is to just declare the build-indep/arch targets
required (maybe going via SHOULD to MUST) and then have
dpkg-buildpackage just use them when sources have changed (or just use
them and break things).

Unfortunately this would make a lot of packages instantly RC buggy so
people are afraid of doing that. And without mandating the targets and
making Build-Depends-Indep actually usefull there is no incentive for
maintainers to change the source.

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.

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/87y68p6tcx@frosties.localnet



Re: Build-Depends-Indep, please review

2010-11-19 Thread Boyd Stephen Smith Jr.
In 87y68p6tcx@frosties.localnet, Goswin von Brederlow wrote:
Roger Leigh rle...@codelibre.net writes:
 On Fri, Nov 19, 2010 at 04:40:57PM +0100, Goswin von Brederlow wrote:
 David Kalnischkies kalnischk...@gmail.com writes:
  On Thu, Nov 18, 2010 at 19:25, أحمد المحمودي 
aelmahmo...@sabily.org wrote:
  On Thu, Nov 18, 2010 at 07:07:07PM +0100, Goswin von Brederlow wrote:
  And as discussed before policy disagrees with reality in this.
  
  Would you please elaborate ?
  
  Goswin likely refers to this thread: Buildd  binary-indep
  http://lists.debian.org/debian-devel/2010/09/msg00590.html
  Message-id: 20100924204433.ga4...@apache.rbscorp.ru
 
 Buildds install only Build-Depends but not Build-Depends-Indep but still
 call the build target. In reality the build target must work with
 only Build-Depends installed contrary to what policy says.
 
 I do hope this mess can be sorted out after squeeze is released.
 Mandating build-arch and build-indep would be a good thing, IMHO.
 
Don't count on it. This has been going on for years and years.

The simple solution is to just declare the build-indep/arch targets
required (maybe going via SHOULD to MUST) and then have
dpkg-buildpackage just use them when sources have changed (or just use
them and break things).

Unfortunately this would make a lot of packages instantly RC buggy so
people are afraid of doing that. And without mandating the targets and
making Build-Depends-Indep actually usefull there is no incentive for
maintainers to change the source.

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.
-- 
Boyd Stephen Smith Jr.   ,= ,-_-. =.
b...@iguanasuicide.net   ((_/)o o(\_))
ICQ: 514984 YM/AIM: DaTwinkDaddy `-'(. .)`-'
http://iguanasuicide.net/\_/


signature.asc
Description: This is a digitally signed message part.


Re: Build-Depends-Indep, please review

2010-11-19 Thread Charles Plessy
Le Fri, Nov 19, 2010 at 01:30:00PM -0600, Boyd Stephen Smith Jr. a écrit :
 
 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.

Nice to see enthousiasm ! Perhaps such project would make a good Debian
enhancement proposal (DEP, http://dep.debian.net/ )

Have a nice week-end,

-- 
Charles Plessy
Tsurumi, Kanagawa, Japan


-- 
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/20101120005134.gh8...@merveille.plessy.net



Re: Build-Depends-Indep, please review

2010-11-18 Thread Goswin von Brederlow
Didier 'OdyX' Raboud did...@raboud.com writes:

 anatoly techtonik wrote:

 On Fri, Nov 5, 2010 at 10:02 AM, أحمد المحمودي 
 aelmahmo...@sabily.org
 wrote:
 Hello,

 I thought Build-Depends-Indep is for build-deps that are not needed by
 clean target.
 
 What is the meaning of name Build-Depends-Indep then? Dependencies
 that are required to build package, but from which clean rule is
 independent?

 No. Build-Depends-Indep lists the Build Dependencies needed to build the 
 architecture-INDEPendant packages.

 In short: your package must build the arch:any packages correctly when only 
 the Build-Depends are installed. It must be able to build also the arch:all 
 when the Build-Depends-Indep are also installed. This allows to have 
 minimal Build-Depends, while extending them with B-D-Indep (usually 
 documentation building tools) for the arch:all packages.

 All that is in Policy 7.7.

 Cheers, 

 OdyX

And as discussed before policy disagrees with reality in this.

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/8762vu1p6c@frosties.localnet



Re: Build-Depends-Indep, please review

2010-11-18 Thread Goswin von Brederlow
anatoly techtonik techto...@gmail.com writes:

 Hello,

 I've described situation around Build-Depends-Indep at
 http://wiki.debian.org/Build-Depends-Indep
 I hope it will be useful for people who are looking for description of
 this field. However, I am not expert in packaging, and some
 information is obviously missing. If you can fill the blanks, that
 would be awesome.

 Please, CC.

| As a result, it became possible to execute debian/rules with
| 'build-indep' and 'build-arch' targets correspondingly.

No, you can not, at least not in general. That is exactly the
problem. The build-indep and build-arch targets are optional and can't
be detected reliably. So dpkg-buildpackage has to call the build target
even if it only wants to build indep or arch packages. It is only
possible after you manually verified the package does have those
targets, which makes them rather useless.


The more usefull case is calling the binary-indep or binary-arch
targets, which then only depend on build-indep or build-arch
respectively. But since that then builds as (fake)root autobuilders
don't do that without having called build first.

| In practice I can't think of any real world example where this
| scenario can be used. The only useful application may be with
| autobuilders that build a lot of packages from scratch, i.e. in empty
| environment on different systems.

All autobuilders do exactly that. They only build the arch packages and
start from a clean chroot. Installing packages into the build chroot for
each build is a huge drain, esspecially for things like fonts that
get reindexed every time (those 'this might take a while' messages).


| Some people argue that 'build' not necessary calls 'build-indep' or
| 'build-arch', because policy says that it should call, not must
| call. I doubt that there are cases when 'build' doesn't call these -
| in this scenario some packages won't be built at all, just because
| autobuilders can't call anything, but 'build'.

I believe there are several cases. And autobuilders can build them just
fine. The secret is to have the binary-% targets depend on build-%
instead of build. The build targets itself can potentially do
nothing. That way build-indep and build-arch are called as needed
although at a later time and as (fake)root. It certainly isn't nice to
do this but it is the only way to make Build-Depends-Indep usefull.

Note: A less ugly case is having build depend on build-arch but not
build-indep. That way autobuilders build as normal user and only the
indep packges are build as (fake)root.

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/871v6i1olw@frosties.localnet



Re: Build-Depends-Indep, please review

2010-11-18 Thread أحمد المحمودي
On Thu, Nov 18, 2010 at 07:07:07PM +0100, Goswin von Brederlow wrote:
 
 And as discussed before policy disagrees with reality in this.
 
---end quoted text---

Would you please elaborate ?

-- 
 ‎أحمد المحمودي (Ahmed El-Mahmoudy)
  Digital design engineer
 GPG KeyID: 0xEDDDA1B7
 GPG Fingerprint: 8206 A196 2084 7E6D 0DF8  B176 BC19 6A94 EDDD A1B7


signature.asc
Description: Digital signature


Re: Build-Depends-Indep, please review

2010-11-18 Thread David Kalnischkies
On Thu, Nov 18, 2010 at 19:25, أحمد المحمودي aelmahmo...@sabily.org wrote:
 On Thu, Nov 18, 2010 at 07:07:07PM +0100, Goswin von Brederlow wrote:
 And as discussed before policy disagrees with reality in this.

 Would you please elaborate ?

Goswin likely refers to this thread: Buildd  binary-indep
http://lists.debian.org/debian-devel/2010/09/msg00590.html
Message-id: 20100924204433.ga4...@apache.rbscorp.ru


Best regards

David Kalnischkies


--
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/aanlktinkz2xpcgv=du�pcneuq4me5lrwx4p34ic...@mail.gmail.com



Re: Build-Depends-Indep, please review

2010-11-17 Thread anatoly techtonik
On Fri, Nov 5, 2010 at 10:02 AM, أحمد المحمودي aelmahmo...@sabily.org wrote:
 Hello,

  I thought Build-Depends-Indep is for build-deps that are not needed by
  clean target.

What is the meaning of name Build-Depends-Indep then? Dependencies
that are required to build package, but from which clean rule is
independent?
--
anatoly t.


--
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/aanlktikp9erdujqur8xsmhz1ueuma7r-puu4hn72t...@mail.gmail.com



Re: Build-Depends-Indep, please review

2010-11-17 Thread Didier 'OdyX' Raboud
anatoly techtonik wrote:

 On Fri, Nov 5, 2010 at 10:02 AM, أحمد المحمودي aelmahmo...@sabily.org
 wrote:
 Hello,

 I thought Build-Depends-Indep is for build-deps that are not needed by
 clean target.
 
 What is the meaning of name Build-Depends-Indep then? Dependencies
 that are required to build package, but from which clean rule is
 independent?

No. Build-Depends-Indep lists the Build Dependencies needed to build the 
architecture-INDEPendant packages.

In short: your package must build the arch:any packages correctly when only 
the Build-Depends are installed. It must be able to build also the arch:all 
when the Build-Depends-Indep are also installed. This allows to have 
minimal Build-Depends, while extending them with B-D-Indep (usually 
documentation building tools) for the arch:all packages.

All that is in Policy 7.7.

Cheers, 

OdyX


-- 
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/ic14fk$h2...@dough.gmane.org



Re: Build-Depends-Indep, please review

2010-11-05 Thread أحمد المحمودي
Hello,

  I thought Build-Depends-Indep is for build-deps that are not needed by 
  clean target.

-- 
 ‎أحمد المحمودي (Ahmed El-Mahmoudy)
  Digital design engineer
 GPG KeyID: 0xEDDDA1B7
 GPG Fingerprint: 8206 A196 2084 7E6D 0DF8  B176 BC19 6A94 EDDD A1B7


signature.asc
Description: Digital signature


Build-Depends-Indep, please review

2010-11-04 Thread anatoly techtonik
Hello,

I've described situation around Build-Depends-Indep at
http://wiki.debian.org/Build-Depends-Indep
I hope it will be useful for people who are looking for description of
this field. However, I am not expert in packaging, and some
information is obviously missing. If you can fill the blanks, that
would be awesome.

Please, CC.
--
anatoly t.


-- 
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/aanlktin3m3dqz6m=3stmph=xmneuvtfc2vr0unfhb...@mail.gmail.com