Explorar el Código

* apt-pkg/packagemanager.cc:
- fix bug in predepends handling - ensure that packages that needs
unpackaging are unpacked before they are configured (LP: #927993)

Michael Vogt hace 14 años
padre
commit
e2625f67ef
Se han modificado 2 ficheros con 16 adiciones y 4 borrados
  1. 13 4
      apt-pkg/packagemanager.cc
  2. 3 0
      debian/changelog

+ 13 - 4
apt-pkg/packagemanager.cc

@@ -612,10 +612,19 @@ bool pkgPackageManager::SmartUnPack(PkgIterator Pkg, bool const Immediate, int c
 	       continue;
 	    }
 
-	    if (Debug)
-	       clog << OutputInDepth(Depth) << "Trying to SmartConfigure " << Pkg.Name() << endl;
-	    Bad = !SmartConfigure(Pkg, Depth + 1);
-	 }
+            // check if it needs unpack or if if configure is enough
+            if (!List->IsFlag(Pkg,pkgOrderList::UnPacked))
+            {
+               if (Debug)
+                  clog << OutputInDepth(Depth) << "Trying to SmartUnpack " << Pkg.Name() << endl;
+               // SmartUnpack with the ImmediateFlag to ensure its really ready
+               Bad = !SmartUnPack(Pkg, true, Depth + 1);
+            } else {
+               if (Debug)
+                  clog << OutputInDepth(Depth) << "Trying to SmartConfigure " << Pkg.Name() << endl;
+               Bad = !SmartConfigure(Pkg, Depth + 1);
+            }
+         }
 
 	 /* If this or element did not match then continue on to the
 	    next or element until a matching element is found */

+ 3 - 0
debian/changelog

@@ -36,6 +36,9 @@ apt (0.8.16~exp13) UNRELEASED; urgency=low
       (LP: #923807)
   * apt-pkg/contrib/fileutl.h:
     - fix compat with FileFd::OpenDescriptor() in ReadOnlyGzip mode
+  * apt-pkg/packagemanager.cc:
+    - fix bug in predepends handling - ensure that packages that needs
+      unpackaging are unpacked before they are configured (LP: #927993)
 
   [ Julian Andres Klode ]
   * apt-pkg/deb/deblistparser.cc: