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

Bug#666772: apt cross-build-dep handling should be liberal with Arch: all packages



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/
slangasek@ubuntu.com                                     vorlon@debian.org
# Bazaar merge directive format 2 (Bazaar 0.90)
# revision_id: steve.langasek@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.vogt@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 <kalnischkies@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
IyBCYXphYXIgcmV2aXNpb24gYnVuZGxlIHY0CiMKQlpoOTFBWSZTWfQR5DIABcffgEAwfff//38n
HYq////0YAsOD5SVdEjSKAStsDTWgAA0A1sNVP1T1NNANMgPUBk0AAGhoDRphMTQSUQpjaRPJ6mk
2hPSD0JoAyA0GgAAc0yMhkwQ0YTBGmjRiBpkyMAAQSJCExGjSZpNGiJvRI81TymQaAB6Q2iBzTIy
GTBDRhMEaaNGIGmTIwABAqSQJpoCYgJkyFT9Gin6p71FPap6jaaTT1NPU09T1BpAMDBQU2WT2Fph
BQEdH2ccxQQFYC6VEnQRH7Qd5fRfEJ4+eLb0YBTmdTyFAgGDbbEtGVJiaD4MDT29u/Xnk92ewruh
bQeZy/aP5YssupJSFqGl1G43VUzXiXkJqY0DGNpip/QKYb9eUPSSmEiRKY5lUnQpBMkSkTa34fI4
KvWxcV5HONtNraHcLT7xV1X1E+eZN9PREiUTZ02kVQGulLNG70Os3Obzs6PNP1/+xwEmvte0/6vT
8H9073omTF3p4PNPk5Lhg0ZP3WdSeiYpxThgtXpT20l6cuu6q40zAmK0tGMxDNIJAxkmm8JzJDep
cFZcqsPfddKVKwsss1Jm3ylntMnN5no0dOiaP2TZPyfhWtLjk5Ojo1sE0OK9vTqShFIYtYrTSMtF
Qj2Vcfpqkc0evCU14KddetKbEuXSoa8w+AcDhdy6sdb6orycmnZYNlUpuzLrea0iEdyboRPpX0qr
88On4ITbSbsWqeJPBi2V1LNxMs3VbEdQxHhwkvIkK/OvEz3hr21ITBFUOnOJtt9eeCb3Vx5SD1mX
3psSk3vbYlkxTfr9wia3YdCihrWTMt23o/AYhSS2UivCGWiddXZ71i9YWRdbjnJFhJ2J0sc6j053
9eXq5ydzPmukLZXoy/PCd1YPkvXBvFXxODVfcZVnL8UweLqavG/Iv6OD86k1KWfESdUZfPPl4tnu
6Y4atLscubOBqZbuu3HzvA1+DPYildoRZXPLEU4BFYQ4ZYwyxRCtK/lEX7o6aDNTIQD1aGl3YITD
RM9PC5cFI8QQEckGWKVatuHdKnufUuynftbWytr2PHfububrtwTrznUnastnm2N0s1mKljE4yVGy
1+duq9bsxXb+/tYNjB6fxOc2rSnPRVbLRzVJdywOrqJfFkMIxKQazbdslzTzlh4lKWlpa3dzBgAt
ApCJYUYbD2XVSMcM86VmtOtm6akeX8I1cFxx7drpbbkzcK0YY5HFtWues36YWMPK7bZLUZ0RZiKX
PjF2Bg3QSCdpWVZTyPo4e05+RgC5mX6kjLBF5lPAZVjq2SUiKtSKNSJToXATHXSy+BX3ohULywuJ
5EXkhG7DZKZg4M2iNWVsTzlNtN8OUtLccfLD57uTLfLKb1up0abem1lra1nBwc5jgnmwK/4OwIGd
uc1b74UBtE+4LQ68mtTD0GwbYMGMuu6Nk7HZQvgJBfJDsdAecVeZ6zeB2HIOr61O7EbbN3MnDQ/C
tdvYuxexdAchDHwzhQ6eSgWIrgz4ppsfv8IF8wUIBL4llCuR5iquX9lgJSLheUoFmJko8lIVfwJi
0FYp0+J7syXum6BWKQhLieA0xptnpUENkKCBgyFBDZCcJnWELsFxZ2rvFNUPuF1i/fYxuYup9ENt
LrqkLgtJIDvKj1nLUd54kzEkfqd59v/YJJLI8w3Ej+RN4y28Ti5vtiflILakuHzmbBPnnB3Ldr6n
fZ/YnJJpd70xkwE1blTdq0aC7MfI9SRimkBUgLqCbPZsgX4Wmp+kPM9qwrP8MyOCXOZNs/sV0IvM
4nc9rvWz5P5/KH2T4/W1aTK5bxUVRQFQjAAiwQwlsSslcQ409eJJJUOFYdfAqpMUxjW/APqQZcuY
erSklkNBt7jGo2ubsYc4OL94MH9NHs+Tcwcvb3sYxpDSNHxwLx9mLFfVRGxI7+2ZmLYKHP1ly5KP
kqyklpJSX46dHSbfekM4xi+3j3taZSex8Xud06uXMmrRGg5pUX0RmckuT8KwQ861NU3euv9Nzn3T
wcqi9g3iSk/dg7l8/yS2KZJqeq5c1sk3Yr5BvTZIwmjXp3Ze9jpht5/J4fCyCkskoVwzqNOqDM8g
Uotor94o0PzDC8ZhyWRjtU47m5MyUmNNac/f4OzhWrVphqHm2xNvacN+ldPxs6872tNi9DepvR8I
nbib/KWi/BPyRiPyTUrRWn+qfCdswqgC8Dy7SQzR2WQwJ1KU1kXRNydox6v0+3GTgYUabLCtUkWV
DAKDIVYyEEYDHSVGEMUZIEi6VMnhAwS4eZk+GCR9vr209/SfabZlEx3RLKRFeRFh4J3/fkPMmmx/
c3Gkg3Tz7k0RUhYVJ/VPgsdLfc4J7kRTCGSzajLwR2DhgTrvUlp8xH8k4wX7C9dw/pJW535+L4nn
Nw9nVEXQ5px1NUW5tacqYpoTJwwGolz6fj7uzHDRFM/n9Trsn3NqXyc290duDDnsl2aO7TWzVIqI
39i7zNO9Lx7SaJSUqlrWWPSomQ2xfY++yT75HeT8VEV5M4jyElSkqZ2tMkmKMaRVIbnbZNkxSj9a
8KJN6bLb/0bEt8S2BPunk8UxZpHrueE2QjfU8O+66r0RceWrNMbzFc+j/CxLpSYKaRVSsly+2apL
kqFtJevwb1CwuS0THBVCpJLpIvkJaDVwvuvgwG5eP6kmaSSyTOKoqosWlsfTijBs09DYRinpJGtH
7JU/X7O4kwnZBptIp/DkuTRdSqe7nae0MJxajMcPoj4vhTxTJPcR3JdrsnC9dFknb5WlRZiYxLcN
liYmDeFwZZTvgrYik1JQQQQLgCkLHilKz1KsYmJiaYOEwYfLBvGobkxhs+Fxf67cU+u8siPzeeus
OrxNRqklCqqfBM2DJZhC6ng7zsaJ0zVi7pV/BlTS/o7/fZuiZdNw4Ok/zvOHObjc8ii6cDjTWcWw
krOxIWnYpNj5lTb89iyUmqSW897XvGvtTluc16cwxKJelsaUurLDhf07DsNLGU+aYpJNlSTXS7jJ
kY3jp06V2p/swkck3bE0XJS5NOVpsqcujNZj4NTN+O2ydpGpNJx1xllkmGKYWitXuuO1pJ0waH1d
kg/YTxHQFO4j+EamiTBRGXiQY00nASzirB1G+9VE7Azuk8F65z+vrkeUqHXTBKkdpRc4jkF/4zLh
FYmQKQ8/Wt69QcTFVaOyEHG8ENJjbkGgQFwT2ERGSRgiGY3rtoIVHo/Z/8XckU4UJD0EeQyA

Attachment: signature.asc
Description: Digital signature


Reply to: