diff options
| author | Julian Andres Klode <julian.klode@canonical.com> | 2024-02-12 14:48:48 +0100 |
|---|---|---|
| committer | Julian Andres Klode <julian.klode@canonical.com> | 2024-02-13 14:27:27 +0100 |
| commit | a8352c2859a6f84b36fa5cd0af89231cb656b1ce (patch) | |
| tree | 69ba18aec6b6a49efd85ef746feb752afc90a780 /apt-pkg/algorithms.cc | |
| parent | 26e0e9b76fb06afe5250eeb8e5b3d069d4793432 (diff) | |
Add public phased update API
This moves the functions of the PhasedUpgrader class into
various other classes so they can be publicly exposed.
This introduces three new functions:
pkgDepCache::PhasingApplied() tells you whether phasing should
be applied to the package.
pkgProblemResolver::KeepPhasedUpdates() keeps back updates that
have phasing applied.
pkgCache::VerIterator::IsSecurityUpdate() determines whether this
version contains security fixes.
Diffstat (limited to 'apt-pkg/algorithms.cc')
| -rw-r--r-- | apt-pkg/algorithms.cc | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/apt-pkg/algorithms.cc b/apt-pkg/algorithms.cc index 3d4096a94..d841d6dd8 100644 --- a/apt-pkg/algorithms.cc +++ b/apt-pkg/algorithms.cc @@ -1246,6 +1246,26 @@ bool pkgProblemResolver::InstOrNewPolicyBroken(pkgCache::PkgIterator I) return false; } /*}}}*/ +// ProblemResolver::KeepPhasedUpdates - Keep back phased updates /*{{{*/ +// --------------------------------------------------------------------- +// Hold back upgrades to phased versions of already installed packages, unless +// they are security updates +bool pkgProblemResolver::KeepPhasedUpdates() +{ + for (pkgCache::PkgIterator I = Cache.PkgBegin(); I.end() == false; ++I) + { + if (not Cache.PhasingApplied(I)) + continue; + + Cache.MarkKeep(I, false, false); + Cache.MarkProtected(I); + Protect(I); + } + + return true; +} + + /*}}}*/ // ProblemResolver::ResolveByKeep - Resolve problems using keep /*{{{*/ // --------------------------------------------------------------------- /* This is the work horse of the soft upgrade routine. It is very gentle |
