]> git.saurik.com Git - apt.git/commit
parse specific-arch dependencies correctly on single-arch systems
authorDavid Kalnischkies <david@kalnischkies.de>
Sun, 12 Apr 2015 17:16:01 +0000 (19:16 +0200)
committerDavid Kalnischkies <david@kalnischkies.de>
Sun, 12 Apr 2015 19:44:27 +0000 (21:44 +0200)
commit596ec43ce34421080a58b28299c1ed9cb0dbaa25
tree89297d3bc3942ee6560478dc9bab5e69aa4e85e5
parentd5cf8851753dde4f45bfd3b48fcdf34247a8752a
parse specific-arch dependencies correctly on single-arch systems

On single-arch the parsing was creating groupnames like 'apt:amd64' even
through it should be 'apt' and a package in it belonging to architecture
amd64. The result for foreign architectures was as expected: The
dependency isn't satisfiable, but for native architecture it means the
wrong package (ala apt:amd64:amd64) is linked so this is also not
satisfiable, which is very much not expected.

No longer excluding single-arch from this codepath allows the generation
of the correct links, which still link to non-exisiting packages for
foreign dependencies, but natives link to the expected native package
just as if no architecture was given.

For negative arch-specific dependencies ala Conflicts this matter was
worse as apt will believe there isn't a Conflict to resolve, tricking it
into calculating a solution dpkg will refuse.

Architecture specific positive dependencies are rare in jessie – the
only one in amd64 main is foreign –, negative dependencies do not even
exist. Neither class has a native specimen, so no package in jessie is
effected by this bug, but it might be interesting for stretch upgrades.
This also means the regression potential is very low.

Closes: 777760
apt-pkg/deb/deblistparser.cc
test/integration/test-multiarch-foreign
test/integration/test-specific-architecture-dependencies