diff options
-rw-r--r-- | apt-pkg/orderlist.cc | 6 | ||||
-rw-r--r-- | debian/changelog | 3 |
2 files changed, 9 insertions, 0 deletions
diff --git a/apt-pkg/orderlist.cc b/apt-pkg/orderlist.cc index ba43bc757..19661fc2d 100644 --- a/apt-pkg/orderlist.cc +++ b/apt-pkg/orderlist.cc @@ -1073,6 +1073,12 @@ bool pkgOrderList::CheckDep(DepIterator D) just needs one */ if (D.IsNegative() == false) { + // ignore provides by older versions of this package + if (((D.Reverse() == false && Pkg == D.ParentPkg()) || + (D.Reverse() == true && Pkg == D.TargetPkg())) && + Cache[Pkg].InstallVer != *I) + continue; + /* Try to find something that does not have the after flag set if at all possible */ if (IsFlag(Pkg,After) == true) diff --git a/debian/changelog b/debian/changelog index b6ce716b6..bbfe9022e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -75,6 +75,9 @@ apt (0.8.15) UNRELEASED; urgency=low * apt-pkg/packagemanager.cc: - ensure for Multi-Arch:same packages that they are unpacked in lock step even in immediate configuration (Closes: #618288) + * apt-pkg/orderlist.cc: + - ensure that an old version of a package with a provides can + never satisfy a dependency of a newer version of this package -- Michael Vogt <mvo@debian.org> Mon, 16 May 2011 14:57:52 +0200 |