From 3f16d57ee5f3cd23a4dd4ea989c64ce3e65aeeb1 Mon Sep 17 00:00:00 2001 From: Jaroslav Mracek Date: Tue, 3 Sep 2019 11:01:23 +0200 Subject: [PATCH] Mark job goal.upgrade with sltr as targeted It allows to keep installed packages in upgrade set. It also prevents from reinstalling of modified packages with same NEVRA. --- libdnf.spec | 2 +- libdnf/goal/Goal.cpp | 2 +- libdnf/goal/Goal.hpp | 6 ++++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/libdnf.spec b/libdnf.spec index e37ffe6..9e3964a 100644 --- a/libdnf.spec +++ b/libdnf.spec @@ -1,7 +1,7 @@ %global libsolv_version 0.7.4-1 %global libmodulemd_version 1.6.1 %global librepo_version 1.10.0 -%global dnf_conflict 4.2.5 +%global dnf_conflict 4.2.11 %global swig_version 3.0.12 %bcond_with valgrind diff --git a/libdnf/goal/Goal.cpp b/libdnf/goal/Goal.cpp index b69be19..a38cbb4 100644 --- a/libdnf/goal/Goal.cpp +++ b/libdnf/goal/Goal.cpp @@ -767,7 +767,7 @@ void Goal::upgrade(HySelector sltr) { pImpl->actions = static_cast(pImpl->actions | DNF_UPGRADE); - sltrToJob(sltr, &pImpl->staging, SOLVER_UPDATE); + sltrToJob(sltr, &pImpl->staging, SOLVER_UPDATE|SOLVER_TARGETED); } void diff --git a/libdnf/goal/Goal.hpp b/libdnf/goal/Goal.hpp index f33dfa2..d701317 100644 --- a/libdnf/goal/Goal.hpp +++ b/libdnf/goal/Goal.hpp @@ -86,8 +86,10 @@ public: /** * @brief If selector ill formed, it rises std::runtime_error() * - * @param sltr p_sltr: It should contain only upgrades with obsoletes otherwise it can try to - * reinstall installonly packages. + * @param sltr p_sltr: It contains upgrade-to packages and obsoletes. The presence of installed + * packages prevents reinstalling packages with the same NEVRA but changed contant. To honor repo + * priority all relevant packages must be present. To upgrade package foo from priority repo, all + * installed and available packages of the foo must be in selector plus obsoletes of foo. */ void upgrade(HySelector sltr); void userInstalled(DnfPackage *pkg); -- libgit2 0.28.2