Your message dated Fri, 08 Jun 2012 08:48:10 +0000
with message-id <e1scura-00028q...@franck.debian.org>
and subject line Bug#629480: fixed in dpkg 1.16.4
has caused the Debian Bug report #629480,
regarding dpkg: Add support for Build-Depends-Arch and Build-Conflicts-Arch
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
629480: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=629480
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: dpkg
Version: 1.16.0.3
Severity: normal
Tags: patch

dpkg currently supports

  Build-Depends (arch all and any)
  Build-Depends-Indep (arch all)

and the same Build-Conflicts.

This patch adds

  Build-Depends-Arch (arch any)

and Build-Conflicts-Arch.


This makes the support for build dependencies for arch all and any
packages symmetrical and more logical.  It also permits arch-any
dependencies to be omitted for arch-any-only builds.

This change will not break any existing packages: if the arch any
deps are in Build-Depends, they may be installed unnecessarily,
but they will still be installed.  This change just allows an
additional optimisation.


This change relates to the discussion of build-arch and build-indep
currently on -policy and -ctte.  While this isn't required for
implementing build-arch and build-indep, it does tidy up a slight
omission in the original implementation of build dependencies, and
would give the buildds additional options when arch-all autobuilding
is enabled (especially now it's available as a separate independent
arch).

If this change is suitable, I'll make the corresponding changes in
sbuild and wanna-build, and then in Policy.


Regards,
Roger

-- System Information:
Debian Release: 6.0.1
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)

Kernel: Linux 2.6.32.27-kvm-i386-20110114 (SMP w/1 CPU core)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
>From 150ab538bb7477b5adfe29383ef816d01d1de6ed Mon Sep 17 00:00:00 2001
From: Roger Leigh <rle...@debian.org>
Date: Tue, 7 Jun 2011 00:02:03 +0100
Subject: [PATCH] Add Build-Depends-Arch and Build-Conflicts-Arch

Signed-off-by: Roger Leigh <rle...@debian.org>
---
 man/deb-src-control.5          |   24 +++++++++++++++++++-----
 man/dpkg-checkbuilddeps.1      |    4 ++++
 scripts/Dpkg/Control/Fields.pm |   10 ++++++++++
 scripts/dpkg-checkbuilddeps.pl |   19 ++++++++++++++++---
 scripts/dpkg-source.pl         |    2 +-
 5 files changed, 50 insertions(+), 9 deletions(-)

diff --git a/man/deb-src-control.5 b/man/deb-src-control.5
index 94a0aa4..d780f66 100644
--- a/man/deb-src-control.5
+++ b/man/deb-src-control.5
@@ -115,7 +115,13 @@ or \fIbuild-indep\fP targets in place of \fIbuild\fP.
 .TP
 .BR Build\-Depends: " <package list>"
 A list of packages that need to be installed and configured to be able to build
-the source package.
+the source package (both architecture dependent and independent packages).
+
+.TP
+.BR Build\-Depends\-Arch: " <package list>"
+Same as Build\-Depends, but they are only needed when building the
+architecture dependent packages. The Build\-Depends are also installed
+in this case.
 
 .TP
 .BR Build\-Depends\-Indep: " <package list>"
@@ -125,8 +131,14 @@ in this case.
 
 .TP
 .BR Build\-Conflicts: " <package list>"
-A list of packages that should not be installed when the package is build, for
-example because they interfere with the used build system.
+A list of packages that should not be installed when the package is built, for
+example because they interfere with the used build system (both
+architecture dependent and independent packages).
+
+.TP
+.BR Build\-Conflicts\-Arch: " <package list>"
+Same as Build\-Conflicts, but only when building the architecture dependent
+packages.
 
 .TP
 .BR Build\-Conflicts\-Indep: " <package list>"
@@ -134,7 +146,8 @@ Same as Build\-Conflicts, but only when building the 
architecture independent
 packages.
 
 The syntax of the
-.B Build\-Depends
+.BR Build\-Depends ,
+.B Build\-Depends\-Arch
 and
 .B Build\-Depends\-Indep
 fields is a list of groups of alternative packages. Each group is a list
@@ -145,7 +158,8 @@ optionally followed by a version number specification in 
parentheses and an
 architecture specification in square brackets.
 
 The syntax of the
-.B Build\-Conflicts
+.BR Build\-Conflicts ,
+.B Build\-Conflicts\-Arch
 and
 .B Build\-Conflicts\-Indep
 fields is a list of comma-separated package names, where the comma is read
diff --git a/man/dpkg-checkbuilddeps.1 b/man/dpkg-checkbuilddeps.1
index 1ac3bad..2afb5e6 100644
--- a/man/dpkg-checkbuilddeps.1
+++ b/man/dpkg-checkbuilddeps.1
@@ -21,6 +21,10 @@ may be specified on the command line.
 Change the location of the \fBdpkg\fR database. The default location is
 \fI/var/lib/dpkg\fP.
 .TP
+.B \-A
+Ignore \fIBuild\-Depends\-Arch\fR lines. Use when no arch-dep packages will
+be built.
+.TP
 .B \-B
 Ignore \fIBuild\-Depends\-Indep\fR lines. Use when no arch-indep packages will
 be built.
diff --git a/scripts/Dpkg/Control/Fields.pm b/scripts/Dpkg/Control/Fields.pm
index 0183281..8622684 100644
--- a/scripts/Dpkg/Control/Fields.pm
+++ b/scripts/Dpkg/Control/Fields.pm
@@ -63,6 +63,11 @@ our %FIELDS = (
         dependency => 'union',
         dep_order => 3,
     },
+    'Build-Conflicts-Arch' => {
+        allowed => ALL_SRC,
+        dependency => 'union',
+        dep_order => 4,
+    },
     'Build-Conflicts-Indep' => {
         allowed => ALL_SRC,
         dependency => 'union',
@@ -73,6 +78,11 @@ our %FIELDS = (
         dependency => 'normal',
         dep_order => 1,
     },
+    'Build-Depends-Arch' => {
+        allowed => ALL_SRC,
+        dependency => 'normal',
+        dep_order => 2,
+    },
     'Build-Depends-Indep' => {
         allowed => ALL_SRC,
         dependency => 'normal',
diff --git a/scripts/dpkg-checkbuilddeps.pl b/scripts/dpkg-checkbuilddeps.pl
index 31b7ee6..9750649 100755
--- a/scripts/dpkg-checkbuilddeps.pl
+++ b/scripts/dpkg-checkbuilddeps.pl
@@ -42,6 +42,7 @@ sub usage {
 "Usage: %s [<option>...] [<control-file>]")
        . "\n\n" . _g(
 "Options:
+  -A             all-only, ignore -Arch.
   -B             binary-only, ignore -Indep.
   -d build-deps  use given string as build dependencies instead of
                  retrieving them from control file
@@ -56,9 +57,11 @@ sub usage {
        . "\n", $progname;
 }
 
+my $all_only=0;
 my $binary_only=0;
 my ($bd_value, $bc_value);
-if (!GetOptions('B' => \$binary_only,
+if (!GetOptions('A' => \$all_only,
+               'B' => \$binary_only,
                 'help|h' => sub { usage(); exit(0); },
                 'version' => \&version,
                 'd=s' => \$bd_value,
@@ -78,10 +81,20 @@ my $facts = parse_status("$admindir/status");
 unless (defined($bd_value) or defined($bc_value)) {
     $bd_value = 'build-essential';
     $bd_value .= ", " . $fields->{"Build-Depends"} if defined 
$fields->{"Build-Depends"};
+    if (not $all_only and defined $fields->{"Build-Depends-Arch"}) {
+       $bd_value .= ", " . $fields->{"Build-Depends-Arch"};
+    }
     if (not $binary_only and defined $fields->{"Build-Depends-Indep"}) {
        $bd_value .= ", " . $fields->{"Build-Depends-Indep"};
     }
     $bc_value = $fields->{"Build-Conflicts"} if defined 
$fields->{"Build-Conflicts"};
+    if (not $all_only and defined $fields->{"Build-Conflicts-Arch"}) {
+       if ($bc_value) {
+           $bc_value .= ", " . $fields->{"Build-Conflicts-Arch"};
+       } else {
+           $bc_value = $fields->{"Build-Conflicts-Arch"};
+       }
+    }
     if (not $binary_only and defined $fields->{"Build-Conflicts-Indep"}) {
        if ($bc_value) {
            $bc_value .= ", " . $fields->{"Build-Conflicts-Indep"};
@@ -93,11 +106,11 @@ unless (defined($bd_value) or defined($bc_value)) {
 my (@unmet, @conflicts);
 
 if ($bd_value) {
-       push @unmet, build_depends('Build-Depends/Build-Depends-Indep)',
+       push @unmet, 
build_depends('Build-Depends/Build-Depends-Arch/Build-Depends-Indep)',
                deps_parse($bd_value, reduce_arch => 1), $facts);
 }
 if ($bc_value) {
-       push @conflicts, 
build_conflicts('Build-Conflicts/Build-Conflicts-Indep',
+       push @conflicts, 
build_conflicts('Build-Conflicts/Build-Conflicts-Arch/Build-Conflicts-Indep',
                deps_parse($bc_value, reduce_arch => 1, union => 1), $facts);
 }
 
diff --git a/scripts/dpkg-source.pl b/scripts/dpkg-source.pl
index 8d23806..f37532b 100755
--- a/scripts/dpkg-source.pl
+++ b/scripts/dpkg-source.pl
@@ -232,7 +232,7 @@ if ($options{'opmode'} =~ 
/^(-b|--print-format|--(before|after)-build)$/) {
            $fields->{$_} = $v;
        } elsif (m/^Uploaders$/i) {
            ($fields->{$_} = $v) =~ s/\s*[\r\n]\s*/ /g; # Merge in a single-line
-       } elsif (m/^Build-(Depends|Conflicts)(-Indep)?$/i) {
+       } elsif (m/^Build-(Depends|Conflicts)(-Arch|-Indep)?$/i) {
            my $dep;
            my $type = field_get_dep_type($_);
            $dep = deps_parse($v, union => $type eq 'union');
-- 
1.7.5.3


--- End Message ---
--- Begin Message ---
Source: dpkg
Source-Version: 1.16.4

We believe that the bug you reported is fixed in the latest version of
dpkg, which is due to be installed in the Debian FTP archive:

dpkg-dev_1.16.4_all.deb
  to main/d/dpkg/dpkg-dev_1.16.4_all.deb
dpkg_1.16.4.dsc
  to main/d/dpkg/dpkg_1.16.4.dsc
dpkg_1.16.4.tar.bz2
  to main/d/dpkg/dpkg_1.16.4.tar.bz2
dpkg_1.16.4_amd64.deb
  to main/d/dpkg/dpkg_1.16.4_amd64.deb
dselect_1.16.4_amd64.deb
  to main/d/dpkg/dselect_1.16.4_amd64.deb
libdpkg-dev_1.16.4_amd64.deb
  to main/d/dpkg/libdpkg-dev_1.16.4_amd64.deb
libdpkg-perl_1.16.4_all.deb
  to main/d/dpkg/libdpkg-perl_1.16.4_all.deb



A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 629...@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Guillem Jover <guil...@debian.org> (supplier of updated dpkg package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmas...@debian.org)


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Format: 1.8
Date: Thu, 07 Jun 2012 23:43:19 +0200
Source: dpkg
Binary: libdpkg-dev dpkg dpkg-dev libdpkg-perl dselect
Architecture: source amd64 all
Version: 1.16.4
Distribution: unstable
Urgency: low
Maintainer: Dpkg Developers <debian-d...@lists.debian.org>
Changed-By: Guillem Jover <guil...@debian.org>
Description: 
 dpkg       - Debian package management system
 dpkg-dev   - Debian package development tools
 dselect    - Debian package management front-end
 libdpkg-dev - Debian package management static library
 libdpkg-perl - Dpkg perl modules
Closes: 391818 580038 584141 629480 670897 671198 672408 673158 673305 673518 
674674 674711 675613 675918 675947 676061 676062 676107 676118 676122 676262 
676496
Changes: 
 dpkg (1.16.4) unstable; urgency=low
 .
   [ Guillem Jover ]
   * Deprecate compressing .deb files with lzma, by making dpkg-deb issue a
     warning, as the format has several deficiencies that have been addressed
     by upstream in xz. Although unpacking will be kept being supported to
     handle existing lzma compressed .deb files.
   * Add alternative changelog formats documentation from the policy manual
     to dpkg-parsechangelog(1). Closes: #584141
   * Add MiNT support to ostable and triplettable.
     Requested by Thorsten Glaser <t...@mirbsd.de>.
   * Add new frontend.txt file to dpkg-dev documenting some public interfaces
     for dpkg frontends. Closes: #670897
   * Clarify in dpkg(1) when --force-conf* options cause action.
     Suggested by Sven Joachim <svenj...@gmx.de>. Closes: #391818
   * Add “gcc | c-compiler” to libdpkg-perl Suggests, due to Dpkg::Arch usage.
     Closes: #671198
   * Do not mask PIE from dpkg-buildflags on m68k, it appears to work now.
     Requested by Thorsten Glaser <t...@mirbsd.de>.
   * Remove deprecated support for PGP style signing command interface from
     dpkg-buildpackage.
   * Remove obsolete --udeb dpkg-scanpackages option.
   * Add arm64 support to cputable. Closes: #672408
     Thanks Wookey <woo...@wookware.org>.
   * Check parsed integers for invalid or no digit errors in start-stop-daemon
     and update-alternatives.
   * Check all parsed integers for out of range errors; i.e. that no negative
     values are allowed if not appropriate, and that no overflows occur.
     Closes: #580038
   * Switch start-stop-daemon(8) man page examples from /var/run to /run.
   * Do not obscure Dpkg::Source::Package ‘require’ errors with custom
     error message. Thanks to Thomas Adam <thomas.a...@smoothwall.net> and
     Jonathan Nieder <jrnie...@gmail.com>.
   * Add new Dpkg::Substvars::set_as_used() member function.
   * Rename Dpkg::Substvars no_warn() member function to mark_as_used(), keep
     the old name aliased to the new one producing a deprecation warning.
   * Add support for Build-Depends-Arch and Build-Conflicts-Arch fields, and
     a new -A option to dpkg-checkbuilddeps. Closes: #629480
     Thanks to Roger Leigh <rle...@debian.org>.
   * Add support for “none” as a valid dpkg-deb compression strategy value.
     Closes: #674711
   * Clarify in dpkg(1) that the «dpkg -l» example only lists installed
     packages, and that to list available packages «dpkg-query --load-avail»
     has to be used instead. Closes: #673305
   * Clarify also in the dpkg(1) man page (already present in the dpkg.cfg(5)
     man page) the valid filenames for /etc/dpkg/dpkg.cfg.d/ fragment files.
     Closes: #674674
   * Fix start-stop-daemon to not follow symlinks when creating pidfiles.
     Thanks to Carsten Hey <cars...@debian.org>. Closes: #675918
   * Refactor the file locking logic into a new Dpkg::File module, and move
     the libfile-fcntllock-perl dependency from dpkg-dev to libdpkg-perl.
   * Demote the libfile-fcntllock-perl Depends to a Recommends by falling back
     to use flock based locking, because it being an XS module makes building
     a new perl package bumping the perl ABI impossible, as both packages
     become uninstallable. Thanks to Dominic Hargreaves <d...@earth.li>.
     Closes: #675947
   * Put an & before field_capitalize() calls in Dpkg::Control::Fields to
     fix a usege before declaration warning with perl 5.16. Closes: #676262
   * Do not warn in dpkg-divert on missing files list file for packages never
     installed before. Closes: #673518
   * Add support for liblzma to handle .xz and .lzma compressed files, and
     switch to it instead of using xz-utils. This removes the xz-utils
     Pre-Depends from dpkg. Thanks to Jonathan Nieder <jrnie...@gmail.com>.
   * Always activate all path components for file triggers, this fixes file
     trigger handling for conffiles and dpkg-trigger invokations.
     Closes: #675613, #676061, #676062, #676107, #676118, #676122
   * Do not reset Multi-Arch field in the update log when removing the package.
     Closes: #676496
   * Fix dpkg-split to honour the DPKG_ADMINDIR environment variable.
 .
   [ Updated man page translations ]
   * German (Helge Kreutzmann).
   * French (Christian Perrier). Fixes a mistranslation and some
     inconsistencies reported by Vincent Danjean( thanks). Closes: #673158
Checksums-Sha1: 
 5354fc290240a94e172dfe318415adf634f972b2 1375 dpkg_1.16.4.dsc
 58cf8a56152ca5bd548c5c23384c2f9b0ded0949 5615914 dpkg_1.16.4.tar.bz2
 f790fe2e8c24a32916625ba0a388a17c0fe5fa50 654406 libdpkg-dev_1.16.4_amd64.deb
 a019620211886c8e1a1e390708135a6706f1891e 2365582 dpkg_1.16.4_amd64.deb
 ae83972f9a141e92634567ad175f3a94885c358f 1090908 dselect_1.16.4_amd64.deb
 7b9af99a7030b9c4dbb86841f77217d4dd33cf33 1138800 dpkg-dev_1.16.4_all.deb
 624f4b2d7fe002afc6c7b89d6da3c6af893ad66e 852554 libdpkg-perl_1.16.4_all.deb
Checksums-Sha256: 
 2b171d26b43fbb32d14a1669e6bd029ce190e5cd4f93b4a3ea58f79e21e3ac0a 1375 
dpkg_1.16.4.dsc
 15a3745d1fafae1e152dbbd5c8d4d3902f1922f54feb85bd8ac3f68a022f222d 5615914 
dpkg_1.16.4.tar.bz2
 e7a966d2ecbad1fa1ced3d9a96a69b4b877f6b545082be8fcc5d49313de8d9fb 654406 
libdpkg-dev_1.16.4_amd64.deb
 88bde030e5ea1b676e3c2a655ad9fa56a2d190f255916a2a7c0e06365a5d69f9 2365582 
dpkg_1.16.4_amd64.deb
 7ab4e528bfe8d5afc565b87ab0dd9e258b25b801ff0203b654c1b8d32a0ca7a3 1090908 
dselect_1.16.4_amd64.deb
 e4bb87c780c2ae6c4d1f7340fcc9443ed0e80b978a8b885d496b1ece57373424 1138800 
dpkg-dev_1.16.4_all.deb
 e33215c244249c1c08a032d53c05b05fdf6a8202b5c47fe66f4bdb019fe74b3e 852554 
libdpkg-perl_1.16.4_all.deb
Files: 
 6d010ca5afa69303e9c77de3b0706d55 1375 admin required dpkg_1.16.4.dsc
 1c1b51add81404fa96e2fadab7d228b6 5615914 admin required dpkg_1.16.4.tar.bz2
 8acfb32fac40428b31dc0f05b71bb80e 654406 libdevel optional 
libdpkg-dev_1.16.4_amd64.deb
 278cec665f3548418907b1aa4a30c865 2365582 admin required dpkg_1.16.4_amd64.deb
 c6947e3a795de2587d7d03d571d5f045 1090908 admin optional 
dselect_1.16.4_amd64.deb
 2366e08425069dddd468b0f5d06c7152 1138800 utils optional dpkg-dev_1.16.4_all.deb
 2dd92fcfb65f8a5a52ef9ec57efb8d3b 852554 perl optional 
libdpkg-perl_1.16.4_all.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)

iEYEARECAAYFAk/RpN8ACgkQuW9ciZ2SjJtMXwCdEYHD3H6OBmpoypAXIXd59Ejq
xzMAn0BZQNJ2Pr0yjH1pquGhhLUChwOU
=V29p
-----END PGP SIGNATURE-----



--- End Message ---

Reply via email to