summaryrefslogtreecommitdiff
path: root/apt-pkg/solver3.h
diff options
context:
space:
mode:
authorJulian Andres Klode <julian.klode@canonical.com>2025-02-05 20:11:35 +0100
committerJulian Andres Klode <julian.klode@canonical.com>2025-02-14 19:04:56 +0100
commitf870bd44522d195199987b0e073d495eed060495 (patch)
tree95712c5a45e6118e5a3d787b82a735a5c68bc4bf /apt-pkg/solver3.h
parent50f1335212909962b9bba8db74e8be005a55f4e1 (diff)
solver3: Defer version selection where possible
If a dependency can be satisfied by all versions of a package, add the package to the clause instead of the version object. This works only if there are no providers for the package: Providers are quite hard to enumerate over and make sure that all versions of a package satisfy the provider dependency. Implement arbitrary selection between packages and versions for the CompareProviders class: We pick the best version for each package and then pit them against each other.
Diffstat (limited to 'apt-pkg/solver3.h')
-rw-r--r--apt-pkg/solver3.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/apt-pkg/solver3.h b/apt-pkg/solver3.h
index 65cd9f017..e43e1065c 100644
--- a/apt-pkg/solver3.h
+++ b/apt-pkg/solver3.h
@@ -228,6 +228,8 @@ class Solver
bool StrictPinning{_config->FindB("APT::Solver::Strict-Pinning", true)};
// \brief If set, we install missing recommends and pick new best packages.
bool FixPolicyBroken{_config->FindB("APT::Get::Fix-Policy-Broken")};
+ // \brief If set, we use strict pinning.
+ bool DeferVersionSelection{_config->FindB("APT::Solver::Defer-Version-Selection", true)};
// \brief Discover a variable, translating the underlying dependencies to the SAT presentation
void Discover(Var var);