Refined patch, now with test cases included. This patch has been uploaded to Ubuntu for precise.
Thanks, -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer http://www.debian.org/ slanga...@ubuntu.com vor...@debian.org
# Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: steve.langa...@canonical.com-20120406015415-\ # h17oubbhvjuhq54b # target_branch: bzr+ssh://bzr.debian.org/bzr/apt/apt/debian-\ # experimental2/ # testament_sha1: 7cc97203e615b15604dc7027575137a3436fed2d # timestamp: 2012-04-05 21:20:18 -0700 # base_revision_id: michael.v...@ubuntu.com-20120313133323-\ # x3g9lv5d3gx3xczh # # Begin patch === modified file 'cmdline/apt-get.cc' --- cmdline/apt-get.cc 2012-02-18 20:20:57 +0000 +++ cmdline/apt-get.cc 2012-04-06 01:54:15 +0000 @@ -2900,7 +2900,7 @@ if ((BADVER(Ver)) == false) { string forbidden; - if (Ver->MultiArch == pkgCache::Version::None || Ver->MultiArch == pkgCache::Version::All) + if (Ver->MultiArch == pkgCache::Version::None) { if (colon == string::npos) { @@ -2915,7 +2915,7 @@ forbidden = "Multi-Arch: same"; // :native gets the buildArch } - else if ((Ver->MultiArch & pkgCache::Version::Foreign) == pkgCache::Version::Foreign) + else if ((Ver->MultiArch & pkgCache::Version::Foreign) == pkgCache::Version::Foreign || Ver->MultiArch == pkgCache::Version::All) { if (colon != string::npos) forbidden = "Multi-Arch: foreign"; === modified file 'debian/changelog' --- debian/changelog 2012-03-13 13:32:40 +0000 +++ debian/changelog 2012-04-06 01:54:15 +0000 @@ -13,6 +13,14 @@ as this could break an earlier dependency (LP: #940396) - recheck dependencies in SmartUnpack after a change, too + [ Steve Langasek ] + * For cross-build-dependencies, Architecture: all packages should be + treated as implicitly Multi-Arch: foreign, because either they *are* + M-A: foreign when used as a build-dependency, or they need to be updated + to not be Architecture: all; and since cross-build-deps are new + functionality in apt, we can safely make this change without breaking + existing systems. Closes: #666772. + -- David Kalnischkies <kalnischk...@gmail.com> Tue, 13 Mar 2012 12:38:35 +0100 apt (0.8.16~exp13) experimental; urgency=low === added file 'test/integration/test-bug-666772-multiarch-arch-all-build-deps' --- test/integration/test-bug-666772-multiarch-arch-all-build-deps 1970-01-01 00:00:00 +0000 +++ test/integration/test-bug-666772-multiarch-arch-all-build-deps 2012-04-06 01:54:15 +0000 @@ -0,0 +1,118 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture 'amd64' 'armhf' + +insertinstalledpackage 'build-essential' 'all' '11.5' + +insertpackage 'unstable' 'doxygen' 'all' '1.0' 'Depends: language-support, language-tool' +insertpackage 'unstable' 'libc6' 'amd64,armhf' '1.0' 'Multi-Arch: same' +insertpackage 'unstable' 'libc6-dev' 'amd64,armhf' '1.0' 'Depends: libc6 +Multi-Arch: same' +insertpackage 'unstable' 'language-support' 'amd64,armhf' '1.0' 'Multi-Arch: foreign' +insertpackage 'unstable' 'language-tool' 'amd64,armhf' '1.0' + +insertsource 'unstable' 'apt' 'any' '0.8.15' 'Build-Depends: doxygen, libc6-dev' + +setupaptarchive + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + doxygen language-support language-tool libc6 libc6-dev +0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. +Inst language-support (1.0 unstable [amd64]) +Inst language-tool (1.0 unstable [amd64]) +Inst doxygen (1.0 unstable [all]) +Inst libc6 (1.0 unstable [amd64]) +Inst libc6-dev (1.0 unstable [amd64]) +Conf language-support (1.0 unstable [amd64]) +Conf language-tool (1.0 unstable [amd64]) +Conf doxygen (1.0 unstable [all]) +Conf libc6 (1.0 unstable [amd64]) +Conf libc6-dev (1.0 unstable [amd64])' aptget build-dep apt -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + doxygen language-support language-tool libc6:armhf libc6-dev:armhf +0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. +Inst language-support (1.0 unstable [amd64]) +Inst language-tool (1.0 unstable [amd64]) +Inst doxygen (1.0 unstable [all]) +Inst libc6:armhf (1.0 unstable [armhf]) +Inst libc6-dev:armhf (1.0 unstable [armhf]) +Conf language-support (1.0 unstable [amd64]) +Conf language-tool (1.0 unstable [amd64]) +Conf doxygen (1.0 unstable [all]) +Conf libc6:armhf (1.0 unstable [armhf]) +Conf libc6-dev:armhf (1.0 unstable [armhf])' aptget build-dep apt -s -a armhf + +configarchitecture 'armhf' 'amd64' + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + doxygen language-support language-tool libc6 libc6-dev +0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. +Inst language-support (1.0 unstable [armhf]) +Inst language-tool (1.0 unstable [armhf]) +Inst doxygen (1.0 unstable [all]) +Inst libc6 (1.0 unstable [armhf]) +Inst libc6-dev (1.0 unstable [armhf]) +Conf language-support (1.0 unstable [armhf]) +Conf language-tool (1.0 unstable [armhf]) +Conf doxygen (1.0 unstable [all]) +Conf libc6 (1.0 unstable [armhf]) +Conf libc6-dev (1.0 unstable [armhf])' aptget build-dep apt -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + doxygen language-support language-tool libc6:amd64 libc6-dev:amd64 +0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded. +Inst language-support (1.0 unstable [armhf]) +Inst language-tool (1.0 unstable [armhf]) +Inst doxygen (1.0 unstable [all]) +Inst libc6:amd64 (1.0 unstable [amd64]) +Inst libc6-dev:amd64 (1.0 unstable [amd64]) +Conf language-support (1.0 unstable [armhf]) +Conf language-tool (1.0 unstable [armhf]) +Conf doxygen (1.0 unstable [all]) +Conf libc6:amd64 (1.0 unstable [amd64]) +Conf libc6-dev:amd64 (1.0 unstable [amd64])' aptget build-dep apt -s -a amd64 + +configarchitecture 'amd64' 'armhf' + +insertinstalledpackage 'language-support' 'armhf' '0.5' 'Multi-Arch: foreign' + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + doxygen language-tool libc6 libc6-dev +0 upgraded, 4 newly installed, 0 to remove and 1 not upgraded. +Inst language-tool (1.0 unstable [amd64]) +Inst doxygen (1.0 unstable [all]) +Inst libc6 (1.0 unstable [amd64]) +Inst libc6-dev (1.0 unstable [amd64]) +Conf language-tool (1.0 unstable [amd64]) +Conf doxygen (1.0 unstable [all]) +Conf libc6 (1.0 unstable [amd64]) +Conf libc6-dev (1.0 unstable [amd64])' aptget build-dep apt -s + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + doxygen language-tool libc6:armhf libc6-dev:armhf +0 upgraded, 4 newly installed, 0 to remove and 1 not upgraded. +Inst language-tool (1.0 unstable [amd64]) +Inst doxygen (1.0 unstable [all]) +Inst libc6:armhf (1.0 unstable [armhf]) +Inst libc6-dev:armhf (1.0 unstable [armhf]) +Conf language-tool (1.0 unstable [amd64]) +Conf doxygen (1.0 unstable [all]) +Conf libc6:armhf (1.0 unstable [armhf]) +Conf libc6-dev:armhf (1.0 unstable [armhf])' aptget build-dep apt -s -a armhf # Begin bundle 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
signature.asc
Description: Digital signature