diff options
Diffstat (limited to 'apt-pkg/edsp.cc')
-rw-r--r-- | apt-pkg/edsp.cc | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/apt-pkg/edsp.cc b/apt-pkg/edsp.cc index 77928379f..e54f0d1df 100644 --- a/apt-pkg/edsp.cc +++ b/apt-pkg/edsp.cc @@ -288,14 +288,15 @@ bool EDSP::WriteRequest(pkgDepCache &Cache, FILE* output, bool const Upgrade, fprintf(output, "Dist-Upgrade: yes\n"); if (AutoRemove == true) fprintf(output, "Autoremove: yes\n"); - if (_config->FindB("APT::Solver::Strict-Pinning", true) == false) + auto const solver = _config->Find("APT::Solver", "internal"); + fprintf(output, "Solver: %s\n", solver.c_str()); + auto const solverconf = std::string("APT::Solver::") + solver + "::"; + if (_config->FindB(solverconf + "Strict-Pinning", _config->FindB("APT::Solver::Strict-Pinning", true)) == false) fprintf(output, "Strict-Pinning: no\n"); - string solverpref("APT::Solver::"); - solverpref.append(_config->Find("APT::Solver", "internal")).append("::Preferences"); - if (_config->Exists(solverpref) == true) - fprintf(output, "Preferences: %s\n", _config->Find(solverpref,"").c_str()); + auto const solverpref = _config->Find(solverconf + "Preferences", _config->Find("APT::Solver::Preferences", "")); + if (solverpref.empty() == false) + fprintf(output, "Preferences: %s\n", solverpref.c_str()); fprintf(output, "\n"); - return true; } /*}}}*/ @@ -468,6 +469,8 @@ bool EDSP::ReadRequest(int const input, std::list<std::string> &install, std::string const archs = line.c_str() + 15; _config->Set("APT::Architectures", SubstVar(archs, " ", ",")); } + else if (line.compare(0, 7, "Solver:") == 0) + ; // purely informational line else _error->Warning("Unknown line in EDSP Request stanza: %s", line.c_str()); |