Sfoglia il codice sorgente

* apt-pkg/orderlist.cc:
- untouched packages are never missing
* apt-pkg/packagemanager.cc:
- packages that are not touched doesn't need to be unpacked

David Kalnischkies 16 anni fa
parent
commit
c0ba35fc91
3 ha cambiato i file con 8 aggiunte e 2 eliminazioni
  1. 2 1
      apt-pkg/orderlist.cc
  2. 2 1
      apt-pkg/packagemanager.cc
  3. 4 0
      debian/changelog

+ 2 - 1
apt-pkg/orderlist.cc

@@ -117,7 +117,8 @@ bool pkgOrderList::IsMissing(PkgIterator Pkg)
       return false;
 
    // Skip Packages that need configure only.
-   if (Pkg.State() == pkgCache::PkgIterator::NeedsConfigure && 
+   if ((Pkg.State() == pkgCache::PkgIterator::NeedsConfigure ||
+        Pkg.State() == pkgCache::PkgIterator::NeedsNothing) &&
        Cache[Pkg].Keep() == true)
       return false;
 

+ 2 - 1
apt-pkg/packagemanager.cc

@@ -602,7 +602,8 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg)
       // configured we don't need to unpack it again…
       PkgIterator const P = Pkg.Group().FindPkg("all");
       if (List->IsFlag(P,pkgOrderList::UnPacked) != true &&
-	  List->IsFlag(P,pkgOrderList::Configured) != true) {
+	  List->IsFlag(P,pkgOrderList::Configured) != true &&
+	  P.State() != pkgCache::PkgIterator::NeedsNothing) {
 	 if (SmartUnPack(P) == false)
 	    return false;
       }

+ 4 - 0
debian/changelog

@@ -3,6 +3,10 @@ apt (0.7.26~exp7) UNRELEASED; urgency=low
   * apt-pkg/cacheset.cc:
     - get the candidate either from an already built depcache
       or use the policy which is a bit faster than depcache generation
+  * apt-pkg/orderlist.cc:
+    - untouched packages are never missing
+  * apt-pkg/packagemanager.cc:
+    - packages that are not touched doesn't need to be unpacked
 
  -- David Kalnischkies <kalnischkies@gmail.com>  Thu, 10 Jun 2010 13:04:47 +0200