diff options
author | David Kalnischkies <kalnischkies@gmail.com> | 2011-08-17 11:13:50 +0200 |
---|---|---|
committer | David Kalnischkies <kalnischkies@gmail.com> | 2011-08-17 11:13:50 +0200 |
commit | 32d9baeab02d2399eb8bd2dfa53bb4f679eebd88 (patch) | |
tree | 08b5d70c4582c2669a14260b6418c6ccf4460ebb | |
parent | 213b88053da331adf07b89ce35c8eb9cff914be4 (diff) |
* apt-pkg/packagemanager.cc, apt-pkg/pkgcache.cc:
- ignore "self"-conflicts for all architectures of a package
instead of just for the architecture of the package locked at
in the ordering of installations too (Closes: #802901)
-rw-r--r-- | apt-pkg/packagemanager.cc | 3 | ||||
-rw-r--r-- | apt-pkg/pkgcache.cc | 2 | ||||
-rw-r--r-- | debian/changelog | 10 | ||||
-rwxr-xr-x | test/integration/test-ubuntu-bug-802901-multiarch-early-remove | 24 |
4 files changed, 37 insertions, 2 deletions
diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc index 060cd3248..6601d9f6b 100644 --- a/apt-pkg/packagemanager.cc +++ b/apt-pkg/packagemanager.cc @@ -598,7 +598,8 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate) for (PrvIterator P = instVer.ProvidesList(); P.end() == false; ++P) - CheckRConflicts(Pkg,P.ParentPkg().RevDependsList(),P.ProvideVersion()); + if (Pkg->Group != P.OwnerPkg()->Group) + CheckRConflicts(Pkg,P.ParentPkg().RevDependsList(),P.ProvideVersion()); List->Flag(Pkg,pkgOrderList::UnPacked,pkgOrderList::States); diff --git a/apt-pkg/pkgcache.cc b/apt-pkg/pkgcache.cc index ed24d9ea8..6db025bd0 100644 --- a/apt-pkg/pkgcache.cc +++ b/apt-pkg/pkgcache.cc @@ -632,7 +632,7 @@ pkgCache::Version **pkgCache::DepIterator::AllTargets() const continue; if (IsNegative() == true && - ParentPkg() == I.OwnerPkg()) + ParentPkg()->Group == I.OwnerPkg()->Group) continue; Size++; diff --git a/debian/changelog b/debian/changelog index d44d0aaa2..de8f64de4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +apt (0.8.15.5.6+nmu1) UNRELEASED; urgency=low + + [ David Kalnischkies ] + * apt-pkg/packagemanager.cc, apt-pkg/pkgcache.cc: + - ignore "self"-conflicts for all architectures of a package + instead of just for the architecture of the package locked at + in the ordering of installations too (Closes: #802901) + + -- David Kalnischkies <kalnischkies@gmail.com> Wed, 17 Aug 2011 11:08:02 +0200 + apt (0.8.15.5.6) UNRELEASED; urgency=low [ Michael Vogt ] diff --git a/test/integration/test-ubuntu-bug-802901-multiarch-early-remove b/test/integration/test-ubuntu-bug-802901-multiarch-early-remove new file mode 100755 index 000000000..bdb4e5e4f --- /dev/null +++ b/test/integration/test-ubuntu-bug-802901-multiarch-early-remove @@ -0,0 +1,24 @@ +#!/bin/sh +set -e + +TESTDIR=$(readlink -f $(dirname $0)) +. $TESTDIR/framework +setupenvironment +configarchitecture 'amd64' 'i386' + +insertinstalledpackage 'libgl1-mesa-glx' 'amd64' '2.0' 'Multi-Arch: same +Provides: libgl1 +Conflicts: libgl1' +insertpackage 'unstable' 'libgl1-mesa-glx' 'i386,amd64' '2.0' 'Multi-Arch: same +Provides: libgl1 +Conflicts: libgl1' + +setupaptarchive + +testequal 'Reading package lists... +Building dependency tree... +The following NEW packages will be installed: + libgl1-mesa-glx:i386 +0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. +Inst libgl1-mesa-glx:i386 (2.0 unstable [i386]) +Conf libgl1-mesa-glx:i386 (2.0 unstable [i386])' aptget install libgl1-mesa-glx:i386 -s |