]> git.saurik.com Git - apt.git/commitdiff
* apt-pkg/packagemanager.cc:
authorMichael Vogt <michael.vogt@ubuntu.com>
Tue, 6 Mar 2012 13:06:38 +0000 (14:06 +0100)
committerMichael Vogt <michael.vogt@ubuntu.com>
Tue, 6 Mar 2012 13:06:38 +0000 (14:06 +0100)
  - fix bug in predepends handling - ensure that packages that needs
    unpackaging are unpacked before they are configured (LP: #927993)

apt-pkg/packagemanager.cc
debian/changelog

index d8e9621a4a48bd5de4c2ddacfc261af6caed99a4..0e459573543732e4ec7815ee60bacaa7afd286d9 100644 (file)
@@ -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 */
index c01c087a7a38795cd79b4af77b9ecbd94de8a299..8e4c05d7cc0a41949063d37e8478fc92632045af 100644 (file)
@@ -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: