Kaynağa Gözat

* apt-pkg/cachefilter.cc:
- remove architecture-specific arch to tuple expansion-rules as they lead
to the same tuples for different architectures (e.g. linux-arm for arm,
armel and armhf) while the dpkg-architecture code uses triples which
are different (in the first part, which we omit in our tuples), so e.g.
build-dep restrictions for armel ended up effecting armhf as well

David Kalnischkies 14 yıl önce
ebeveyn
işleme
5f20ac7f11

+ 0 - 6
apt-pkg/cachefilter.cc

@@ -66,12 +66,6 @@ static std::string CompleteArch(std::string const &arch) {
 		complete = complete.substr(1, complete.size()-2);
 		complete = complete.substr(1, complete.size()-2);
 		return complete;
 		return complete;
 	}
 	}
-	else if (arch == "armel")		return "linux-arm";
-	else if (arch == "armhf")		return "linux-arm";
-	else if (arch == "lpia")		return "linux-i386";
-	else if (arch == "powerpcspe")		return "linux-powerpc";
-	else if (arch == "uclibc-linux-armel")	return "linux-arm";
-	else if (arch == "uclinux-armel")	return "uclinux-arm";
 	else if (arch == "any")			return "*-*";
 	else if (arch == "any")			return "*-*";
 	else					return "linux-" + arch;
 	else					return "linux-" + arch;
 }
 }

+ 6 - 0
debian/changelog

@@ -28,6 +28,12 @@ apt (0.9.7.2) UNRELEASED; urgency=low
   * apt-pkg/deb/deblistparser.cc:
   * apt-pkg/deb/deblistparser.cc:
     - negative dependencies need to apply to all architectures,
     - negative dependencies need to apply to all architectures,
       but those with a specific architecture only apply to this one
       but those with a specific architecture only apply to this one
+  * apt-pkg/cachefilter.cc:
+    - remove architecture-specific arch to tuple expansion-rules as they lead
+      to the same tuples for different architectures (e.g. linux-arm for arm,
+      armel and armhf) while the dpkg-architecture code uses triples which
+      are different (in the first part, which we omit in our tuples), so e.g.
+      build-dep restrictions for armel ended up effecting armhf as well
 
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 01 Jul 2012 08:20:57 +0200
  -- David Kalnischkies <kalnischkies@gmail.com>  Sun, 01 Jul 2012 08:20:57 +0200
 
 

+ 14 - 1
test/integration/test-architecture-specification-parsing

@@ -4,7 +4,7 @@ set -e
 TESTDIR=$(readlink -f $(dirname $0))
 TESTDIR=$(readlink -f $(dirname $0))
 . $TESTDIR/framework
 . $TESTDIR/framework
 setupenvironment
 setupenvironment
-configarchitecture 'amd64'
+configarchitecture 'amd64' 'armel'
 
 
 buildsimplenativepackage 'pkg-arch-foo' 'amd64' '1.0' 'stable' 'Build-Depends: foo [amd64 !amd64]
 buildsimplenativepackage 'pkg-arch-foo' 'amd64' '1.0' 'stable' 'Build-Depends: foo [amd64 !amd64]
 Depends: foo [amd64 !amd64]'
 Depends: foo [amd64 !amd64]'
@@ -14,6 +14,8 @@ buildsimplenativepackage 'pkg-arch-foo-unrelated-no' 'amd64' '1.0' 'stable' 'Bui
 Depends: foo [!kfreebsd-any amd64]'
 Depends: foo [!kfreebsd-any amd64]'
 buildsimplenativepackage 'pkg-arch-foo-unrelated-no2' 'amd64' '1.0' 'stable' 'Build-Depends: foo [amd64 !kfreebsd-any]
 buildsimplenativepackage 'pkg-arch-foo-unrelated-no2' 'amd64' '1.0' 'stable' 'Build-Depends: foo [amd64 !kfreebsd-any]
 Depends: foo [amd64 !kfreebsd-any]'
 Depends: foo [amd64 !kfreebsd-any]'
+buildsimplenativepackage 'no-depends' 'armel' '1.0' 'stable' 'Build-Depends: foo [armhf], bar [arm]
+Depends: foo [armhf], bar [arm]'
 
 
 buildsimplenativepackage 'foo' 'amd64' '1.0' 'stable'
 buildsimplenativepackage 'foo' 'amd64' '1.0' 'stable'
 
 
@@ -93,4 +95,15 @@ The following NEW packages will be installed:
 Inst foo (1.0 stable [amd64])
 Inst foo (1.0 stable [amd64])
 Conf foo (1.0 stable [amd64])' aptget build-dep pkg-arch-foo-unrelated-no2 -s
 Conf foo (1.0 stable [amd64])' aptget build-dep pkg-arch-foo-unrelated-no2 -s
 
 
+testequal 'Reading package lists...
+Building dependency tree...
+0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.' aptget build-dep no-depends -s
 
 
+# this is not really testing APT - more that dpkg is in line with us
+testequal 'Reading package lists...
+Building dependency tree...
+The following NEW packages will be installed:
+  no-depends:armel
+0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
+Inst no-depends:armel (1.0 stable [armel])
+Conf no-depends:armel (1.0 stable [armel])' aptget install no-depends -s

+ 1 - 1
test/integration/test-bug-632221-cross-dependency-satisfaction

@@ -21,7 +21,7 @@ insertpackage 'unstable' 'foreigner' 'amd64,armel' '1.0' 'Multi-Arch: foreign'
 insertpackage 'unstable' 'arm-stuff' 'armel' '1.0'
 insertpackage 'unstable' 'arm-stuff' 'armel' '1.0'
 insertpackage 'unstable' 'linux-stuff' 'amd64,armel' '1.0'
 insertpackage 'unstable' 'linux-stuff' 'amd64,armel' '1.0'
 
 
-insertsource 'unstable' 'apt' 'any' '0.8.15' 'Build-Depends: doxygen, libc6-dev, libc6-dev:native, cool:any, amdboot:amd64, foreigner, libfwibble-dev, arm-stuff [any-arm] | linux-stuff [ linux-any]'
+insertsource 'unstable' 'apt' 'any' '0.8.15' 'Build-Depends: doxygen, libc6-dev, libc6-dev:native, cool:any, amdboot:amd64, foreigner, libfwibble-dev, arm-stuff [any-armel] | linux-stuff [ linux-any]'
 
 
 insertsource 'unstable' 'forbidden-none' 'any' '1' 'Build-Depends: amdboot:any'
 insertsource 'unstable' 'forbidden-none' 'any' '1' 'Build-Depends: amdboot:any'
 insertsource 'unstable' 'forbidden-same' 'any' '1' 'Build-Depends: libc6:any'
 insertsource 'unstable' 'forbidden-same' 'any' '1' 'Build-Depends: libc6:any'

+ 3 - 0
test/integration/test-cachecontainer-architecture-specification

@@ -27,6 +27,9 @@ Inst libsame:armel (1 unstable [armel])
 Conf libsame:armel (1 unstable [armel])' aptget -s install libsame:armel
 Conf libsame:armel (1 unstable [armel])' aptget -s install libsame:armel
 testequal 'Reading package lists...
 testequal 'Reading package lists...
 Building dependency tree...
 Building dependency tree...
+E: Unable to locate package libsame' aptget -s install libsame:armhf
+testequal 'Reading package lists...
+Building dependency tree...
 The following NEW packages will be installed:
 The following NEW packages will be installed:
   libsame
   libsame
 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.