X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/6fc33863f31051a5fc2726a236ce8b64d33bc964..f17ac0977167d1e58316d3b3f7159f65d40a090a:/apt-pkg/algorithms.h?ds=sidebyside diff --git a/apt-pkg/algorithms.h b/apt-pkg/algorithms.h index d17a42447..0553b3eec 100644 --- a/apt-pkg/algorithms.h +++ b/apt-pkg/algorithms.h @@ -1,6 +1,6 @@ // -*- mode: cpp; mode: fold -*- // Description /*{{{*/ -// $Id: algorithms.h,v 1.3 1998/07/19 21:24:11 jgg Exp $ +// $Id: algorithms.h,v 1.6 1998/10/20 02:39:18 jgg Exp $ /* ###################################################################### Algorithms - A set of misc algorithms @@ -16,7 +16,15 @@ field in the status file. It is important to get proper crash recovery. pkgFixBroken corrects a broken system so that it is in a sane state. + + pkgAllUpgrade attempts to upgade as many packages as possible but + without installing new packages. + The problem resolver class contains a number of complex algorithms + to try to best-guess an upgrade state. It solves the problem of + maximizing the number of install state packages while having no broken + packages. + ##################################################################### */ /*}}}*/ // Header section: pkglib @@ -60,7 +68,8 @@ class pkgProblemResolver typedef pkgCache::Package Package; enum Flags {Protected = (1 << 0), PreInstalled = (1 << 1), - Upgradable = (1 << 2)}; + Upgradable = (1 << 2), ReInstateTried = (1 << 3), + ToRemove = (1 << 4)}; signed short *Scores; unsigned char *Flags; bool Debug; @@ -81,13 +90,23 @@ class pkgProblemResolver public: inline void Protect(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] |= Protected;}; + inline void Remove(pkgCache::PkgIterator Pkg) {Flags[Pkg->ID] |= ToRemove;}; + + // Try to intelligently resolve problems by installing and removing packages bool Resolve(bool BrokenFix = false); + // Try to resolve problems only by using keep + bool ResolveByKeep(); + + void InstallProtect(); + pkgProblemResolver(pkgDepCache &Cache); }; bool pkgDistUpgrade(pkgDepCache &Cache); bool pkgApplyStatus(pkgDepCache &Cache); bool pkgFixBroken(pkgDepCache &Cache); +bool pkgAllUpgrade(pkgDepCache &Cache); +bool pkgMinimizeUpgrade(pkgDepCache &Cache); #endif