X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/7b197262212f49b3b355b1124edf2ba9adb73411..503c7d594125f963b92047ad2d9d0644f39136c7:/apt-pkg/packagemanager.cc diff --git a/apt-pkg/packagemanager.cc b/apt-pkg/packagemanager.cc index 8f884eac6..7fdd0393f 100644 --- a/apt-pkg/packagemanager.cc +++ b/apt-pkg/packagemanager.cc @@ -1033,14 +1033,21 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall() return Failed; Reset(); - + if (Debug == true) clog << "Beginning to order" << endl; - std::string const planer = _config->Find("APT::Planer", "internal"); - if (planer != "internal") - if (EIPP::OrderInstall(planer.c_str(), Cache, 0, nullptr) == false) - return Failed; + 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) ? @@ -1050,7 +1057,7 @@ pkgPackageManager::OrderResult pkgPackageManager::OrderInstall() _error->Error("Internal ordering error"); return Failed; } - + if (Debug == true) clog << "Done ordering" << endl;