]> git.saurik.com Git - apt.git/blobdiff - apt-pkg/packagemanager.cc
report warnings&errors consistently in edit-sources
[apt.git] / apt-pkg / packagemanager.cc
index 77a6b0e57547a84c8584e17614b403ae5dcad12c..7fdd0393f33473b22b980959db98de0fd279d7ad 100644 (file)
@@ -19,6 +19,7 @@
 #include <apt-pkg/orderlist.h>
 #include <apt-pkg/depcache.h>
 #include <apt-pkg/error.h>
+#include <apt-pkg/edsp.h>
 #include <apt-pkg/version.h>
 #include <apt-pkg/acquire-item.h>
 #include <apt-pkg/algorithms.h>
@@ -1032,10 +1033,22 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall()
       return Failed;
 
    Reset();
-   
+
    if (Debug == true)
       clog << "Beginning to order" << endl;
 
+   std::string const planner = _config->Find("APT::Planner", "internal");
+   unsigned int flags = 0;
+   if (_config->FindB("APT::Immediate-Configure", true) == false)
+      flags |= EIPP::Request::NO_IMMEDIATE_CONFIGURATION;
+   else if (_config->FindB("APT::Immediate-Configure-All", false))
+      flags |= EIPP::Request::IMMEDIATE_CONFIGURATION_ALL;
+   else if (_config->FindB("APT::Force-LoopBreak", false))
+      flags |= EIPP::Request::ALLOW_TEMPORARY_REMOVE_OF_ESSENTIALS;
+   auto const ret = EIPP::OrderInstall(planner.c_str(), this, flags, nullptr);
+   if (planner != "internal")
+      return ret ? Completed : Failed;
+
    bool const ordering =
        _config->FindB("PackageManager::UnpackAll",true) ?
                List->OrderUnpack(FileNames) : List->OrderCritical();
@@ -1044,7 +1057,7 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall()
       _error->Error("Internal ordering error");
       return Failed;
    }
-   
+
    if (Debug == true)
       clog << "Done ordering" << endl;