* apt-pkg/packagemanager.cc:
authorDavid Kalnischkies <kalnischkies@gmail.com>
Thu, 19 Jan 2012 21:48:27 +0000 (22:48 +0100)
committerDavid Kalnischkies <kalnischkies@gmail.com>
Thu, 19 Jan 2012 21:48:27 +0000 (22:48 +0100)
  - ignore breaks on not-installed versions while searching for
    breakage loops as we don't have to avoid them

apt-pkg/packagemanager.cc
debian/changelog

index 349adbe..dd08a48 100644 (file)
@@ -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)) {
index 838b14e..f846663 100644 (file)
@@ -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