summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apt-pkg/upgrade.cc11
-rw-r--r--apt-pkg/upgrade.h6
-rw-r--r--apt-private/private-install.cc12
-rw-r--r--apt-private/private-upgrade.cc2
-rw-r--r--cmdline/apt-get.cc2
-rw-r--r--cmdline/apt-internal-solver.cc4
6 files changed, 21 insertions, 16 deletions
diff --git a/apt-pkg/upgrade.cc b/apt-pkg/upgrade.cc
index 20a38ecee..ca670bdf5 100644
--- a/apt-pkg/upgrade.cc
+++ b/apt-pkg/upgrade.cc
@@ -282,7 +282,12 @@ bool pkgMinimizeUpgrade(pkgDepCache &Cache)
// APT::Upgrade::Upgrade - Upgrade using a specific strategy /*{{{*/
bool APT::Upgrade::Upgrade(pkgDepCache &Cache, int mode, OpProgress * const Progress)
{
- if (mode == 0)
+#if __GNUC__ >= 4
+ // the deprecated methods will become our privates, so that is fine
+ #pragma GCC diagnostic push
+ #pragma GCC diagnostic ignored "-Wdeprecated-declarations"
+#endif
+ if (mode == ALLOW_EVERYTHING)
return pkgDistUpgrade(Cache, Progress);
else if ((mode & ~FORBID_REMOVE_PACKAGES) == 0)
return pkgAllUpgradeWithNewPackages(Cache, Progress);
@@ -290,7 +295,9 @@ bool APT::Upgrade::Upgrade(pkgDepCache &Cache, int mode, OpProgress * const Prog
return pkgAllUpgradeNoNewPackages(Cache, Progress);
else
_error->Error("pkgAllUpgrade called with unsupported mode %i", mode);
-
+#if __GNUC__ >= 4
+ #pragma GCC diagnostic pop
+#endif
return false;
}
/*}}}*/
diff --git a/apt-pkg/upgrade.h b/apt-pkg/upgrade.h
index 894f0625e..a3f693d86 100644
--- a/apt-pkg/upgrade.h
+++ b/apt-pkg/upgrade.h
@@ -11,6 +11,7 @@
#define PKGLIB_UPGRADE_H
#include <stddef.h>
+#include <apt-pkg/macros.h>
class pkgDepCache;
class OpProgress;
@@ -19,6 +20,7 @@ namespace APT {
namespace Upgrade {
// FIXME: make this "enum class UpgradeMode {" once we enable c++11
enum UpgradeMode {
+ ALLOW_EVERYTHING = 0,
FORBID_REMOVE_PACKAGES = 1,
FORBID_INSTALL_NEW_PACKAGES = 2
};
@@ -27,8 +29,8 @@ namespace APT {
}
// please use APT::Upgrade::Upgrade() instead
-bool pkgDistUpgrade(pkgDepCache &Cache, OpProgress * const Progress = NULL);
-bool pkgAllUpgrade(pkgDepCache &Cache, OpProgress * const Progress = NULL);
+APT_DEPRECATED bool pkgDistUpgrade(pkgDepCache &Cache, OpProgress * const Progress = NULL);
+APT_DEPRECATED bool pkgAllUpgrade(pkgDepCache &Cache, OpProgress * const Progress = NULL);
bool pkgMinimizeUpgrade(pkgDepCache &Cache);
#endif
diff --git a/apt-private/private-install.cc b/apt-private/private-install.cc
index 656b97233..c172f5ee7 100644
--- a/apt-private/private-install.cc
+++ b/apt-private/private-install.cc
@@ -619,18 +619,14 @@ bool DoCacheManipulationFromCommandLine(CommandLine &CmdL, CacheFile &Cache,
if (Fix != NULL)
{
// Call the scored problem resolver
- bool resolver_fail = false;
OpTextProgress Progress(*_config);
bool const distUpgradeMode = strcmp(CmdL.FileList[0], "dist-upgrade") == 0 || strcmp(CmdL.FileList[0], "full-upgrade") == 0;
- if (UpgradeMode == 0)
- {
- if (distUpgradeMode == true)
- resolver_fail = APT::Upgrade::Upgrade(Cache, 0, &Progress);
- else
- resolver_fail = Fix->Resolve(true, &Progress);
- } else
+ bool resolver_fail = false;
+ if (distUpgradeMode == true || UpgradeMode != APT::Upgrade::ALLOW_EVERYTHING)
resolver_fail = APT::Upgrade::Upgrade(Cache, UpgradeMode, &Progress);
+ else
+ resolver_fail = Fix->Resolve(true, &Progress);
if (resolver_fail == false && Cache->BrokenCount() == 0)
return false;
diff --git a/apt-private/private-upgrade.cc b/apt-private/private-upgrade.cc
index 2a6dcc153..d13a6af49 100644
--- a/apt-private/private-upgrade.cc
+++ b/apt-private/private-upgrade.cc
@@ -33,7 +33,7 @@ static bool UpgradeHelper(CommandLine &CmdL, int UpgradeFlags)
/* Intelligent upgrader that will install and remove packages at will */
bool DoDistUpgrade(CommandLine &CmdL)
{
- return UpgradeHelper(CmdL, 0);
+ return UpgradeHelper(CmdL, APT::Upgrade::ALLOW_EVERYTHING);
}
/*}}}*/
bool DoUpgrade(CommandLine &CmdL) /*{{{*/
diff --git a/cmdline/apt-get.cc b/cmdline/apt-get.cc
index d6cd94f72..aed1beb4d 100644
--- a/cmdline/apt-get.cc
+++ b/cmdline/apt-get.cc
@@ -540,7 +540,7 @@ static bool DoDSelectUpgrade(CommandLine &)
}
// Now upgrade everything
- if (pkgAllUpgrade(Cache) == false)
+ if (APT::Upgrade::Upgrade(Cache, APT::Upgrade::FORBID_REMOVE_PACKAGES | APT::Upgrade::FORBID_INSTALL_NEW_PACKAGES) == false)
{
ShowBroken(c1out,Cache,false);
return _error->Error(_("Internal error, problem resolver broke stuff"));
diff --git a/cmdline/apt-internal-solver.cc b/cmdline/apt-internal-solver.cc
index c24a96cdf..0f2ec6283 100644
--- a/cmdline/apt-internal-solver.cc
+++ b/cmdline/apt-internal-solver.cc
@@ -175,10 +175,10 @@ int main(int argc,const char *argv[]) /*{{{*/
std::string failure;
if (upgrade == true) {
- if (pkgAllUpgrade(CacheFile) == false)
+ if (APT::Upgrade::Upgrade(CacheFile, APT::Upgrade::FORBID_REMOVE_PACKAGES | APT::Upgrade::FORBID_INSTALL_NEW_PACKAGES) == false)
failure = "ERR_UNSOLVABLE_UPGRADE";
} else if (distUpgrade == true) {
- if (pkgDistUpgrade(CacheFile) == false)
+ if (APT::Upgrade::Upgrade(CacheFile, APT::Upgrade::ALLOW_EVERYTHING) == false)
failure = "ERR_UNSOLVABLE_DIST_UPGRADE";
} else if (Fix.Resolve() == false)
failure = "ERR_UNSOLVABLE";