summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/orderlist.cc6
-rw-r--r--debian/changelog3
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