From ae141932d8b434098e3f77c75c428ca8caff9a6e Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Tue, 2 Jul 2024 18:53:33 +0200 Subject: solver3: Only demote obsolete packages in choices for upgrades If we are not upgraded, we should continue to keep the installed package installed if possible. --- apt-pkg/solver3.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'apt-pkg/solver3.cc') diff --git a/apt-pkg/solver3.cc b/apt-pkg/solver3.cc index 29bd3a115..54f66ccd2 100644 --- a/apt-pkg/solver3.cc +++ b/apt-pkg/solver3.cc @@ -64,8 +64,9 @@ struct APT::Solver::CompareProviders3 /*{{{*/ // Try obsolete choices only after exhausting non-obsolete choices such that we install // packages replacing them and don't keep back upgrades depending on the replacement to // keep the obsolete package installed. - if (auto obsoleteA = Solver.Obsolete(A), obsoleteB = Solver.Obsolete(B); obsoleteA != obsoleteB) - return obsoleteB; + if (upgrade) + if (auto obsoleteA = Solver.Obsolete(A), obsoleteB = Solver.Obsolete(B); obsoleteA != obsoleteB) + return obsoleteB; // Prefer MA:same packages if other architectures for it are installed if ((AV->MultiArch & pkgCache::Version::Same) == pkgCache::Version::Same || (BV->MultiArch & pkgCache::Version::Same) == pkgCache::Version::Same) -- cgit v1.2.3-70-g09d2