Browse Source

* 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
tags/debian/0.9.7.2
David Kalnischkies 9 years ago
parent
commit
5f20ac7f11
5 changed files with 24 additions and 8 deletions
  1. +0
    -6
      apt-pkg/cachefilter.cc
  2. +6
    -0
      debian/changelog
  3. +14
    -1
      test/integration/test-architecture-specification-parsing
  4. +1
    -1
      test/integration/test-bug-632221-cross-dependency-satisfaction
  5. +3
    -0
      test/integration/test-cachecontainer-architecture-specification

+ 0
- 6
apt-pkg/cachefilter.cc View File

@@ -66,12 +66,6 @@ static std::string CompleteArch(std::string const &arch) {
complete = complete.substr(1, complete.size()-2);
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 return "linux-" + arch;
}


+ 6
- 0
debian/changelog View File

@@ -28,6 +28,12 @@ apt (0.9.7.2) UNRELEASED; urgency=low
* apt-pkg/deb/deblistparser.cc:
- negative dependencies need to apply to all architectures,
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



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

@@ -4,7 +4,7 @@ set -e
TESTDIR=$(readlink -f $(dirname $0))
. $TESTDIR/framework
setupenvironment
configarchitecture 'amd64'
configarchitecture 'amd64' 'armel'

buildsimplenativepackage 'pkg-arch-foo' 'amd64' '1.0' 'stable' 'Build-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]'
buildsimplenativepackage 'pkg-arch-foo-unrelated-no2' 'amd64' '1.0' 'stable' 'Build-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'

@@ -93,4 +95,15 @@ The following NEW packages will be installed:
Inst foo (1.0 stable [amd64])
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 View File

@@ -21,7 +21,7 @@ insertpackage 'unstable' 'foreigner' 'amd64,armel' '1.0' 'Multi-Arch: foreign'
insertpackage 'unstable' 'arm-stuff' '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-same' 'any' '1' 'Build-Depends: libc6:any'


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

@@ -27,6 +27,9 @@ Inst libsame:armel (1 unstable [armel])
Conf libsame:armel (1 unstable [armel])' aptget -s install libsame:armel
testequal 'Reading package lists...
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:
libsame
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.


Loading…
Cancel
Save