X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/7cf45682e5fcac541e495242bdc4885bbb8b2ef7..a9b724eedd0c9d8c36725c5b8f57d51ea9f7dcd1:/apt-private/private-upgrade.cc diff --git a/apt-private/private-upgrade.cc b/apt-private/private-upgrade.cc index df8fe8686..679140bfd 100644 --- a/apt-private/private-upgrade.cc +++ b/apt-private/private-upgrade.cc @@ -1,32 +1,33 @@ // Includes /*{{{*/ -#include +#include + +#include +#include +#include + +#include +#include +#include +#include + #include -#include "private-install.h" -#include "private-cachefile.h" -#include "private-upgrade.h" -#include "private-output.h" + +#include /*}}}*/ // this is actually performing the various upgrade operations static bool UpgradeHelper(CommandLine &CmdL, int UpgradeFlags) { CacheFile Cache; + std::vector VolatileCmdL; + Cache.GetSourceList()->AddVolatileFiles(CmdL, &VolatileCmdL); + if (Cache.OpenForInstall() == false || Cache.CheckDeps() == false) return false; - c0out << _("Calculating upgrade... ") << std::flush; - if (APT::Upgrade::Upgrade(Cache, UpgradeFlags) == false) - { - c0out << _("Failed") << std::endl; - ShowBroken(c1out,Cache,false); - return _error->Error(_("Internal error, Upgrade broke stuff")); - } - c0out << _("Done") << std::endl; - - // parse additional cmdline pkg manipulation switches - if(!DoCacheManipulationFromCommandLine(CmdL, Cache)) + if(!DoCacheManipulationFromCommandLine(CmdL, VolatileCmdL, Cache, UpgradeFlags)) return false; - + return InstallPackages(Cache,true); } @@ -35,7 +36,15 @@ 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) /*{{{*/ +{ + if (_config->FindB("APT::Get::Upgrade-Allow-New", false) == true) + return DoUpgradeWithAllowNewPackages(CmdL); + else + return DoUpgradeNoNewPackages(CmdL); } /*}}}*/ // DoUpgradeNoNewPackages - Upgrade all packages /*{{{*/ @@ -47,7 +56,7 @@ bool DoUpgradeNoNewPackages(CommandLine &CmdL) // Do the upgrade return UpgradeHelper(CmdL, APT::Upgrade::FORBID_REMOVE_PACKAGES| - APT::Upgrade::FORBID_NEW_INSTALL_PACKAGES); + APT::Upgrade::FORBID_INSTALL_NEW_PACKAGES); } /*}}}*/ // DoSafeUpgrade - Upgrade all packages with install but not remove /*{{{*/