summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/packagemanager.cc8
-rw-r--r--debian/changelog5
2 files changed, 11 insertions, 2 deletions
diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc
index 349adbe40..dd08a48ad 100644
--- a/apt-pkg/packagemanager.cc
+++ b/apt-pkg/packagemanager.cc
@@ -682,7 +682,13 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
VerIterator Ver(Cache,*I);
PkgIterator BrokenPkg = Ver.ParentPkg();
VerIterator InstallVer(Cache,Cache[BrokenPkg].InstallVer);
-
+ if (BrokenPkg.CurrentVer() != Ver)
+ {
+ if (Debug)
+ std::clog << OutputInDepth(Depth) << " Ignore not-installed version " << Ver.VerStr() << " of " << Pkg.FullName() << " for " << End << std::endl;
+ continue;
+ }
+
// Check if it needs to be unpacked
if (List->IsFlag(BrokenPkg,pkgOrderList::InList) && Cache[BrokenPkg].Delete() == false &&
List->IsNow(BrokenPkg)) {
diff --git a/debian/changelog b/debian/changelog
index 838b14ef1..f846663e2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,8 +7,11 @@ apt (0.8.16~exp12) experimental; urgency=low
[ David Kalnischkies ]
* apt-pkg/cacheiterators.h:
- return the correct version arch for all+foreign, too
+ * apt-pkg/packagemanager.cc:
+ - ignore breaks on not-installed versions while searching for
+ breakage loops as we don't have to avoid them
- -- David Kalnischkies <kalnischkies@gmail.com> Thu, 19 Jan 2012 18:38:33 +0100
+ -- David Kalnischkies <kalnischkies@gmail.com> Thu, 19 Jan 2012 22:46:38 +0100
apt (0.8.16~exp11) experimental; urgency=low