From 2a884c612b10b27f4be2cc6dd689bfe448d9361a Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Sun, 17 Aug 2014 12:30:21 +0200 Subject: fix progress output for (dist-)upgrade calculation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Previously, we had a start and a done of the calculation printed by higher-level code, but this got intermixed by progress reporting from an external solver or the output of autoremove codeā€¦ The higherlevel code is now only responsible for instantiating a progress object of its choosing (if it wants progress after all) and the rest will be handled by the upgrade code. Either it is used to show the progress of the external solver or the internal solver will give some hints about its overall progress. The later isn't really a proper progress as it will jump forward after each substep, but that is at least a bit better than before without any progress indication. Fixes also the 'strange' non-display of this progress line in -q=1, while all others are shown, which is reflected by all testcase changes. --- apt-private/private-install.cc | 11 +++++++---- apt-private/private-upgrade.cc | 2 -- 2 files changed, 7 insertions(+), 6 deletions(-) (limited to 'apt-private') diff --git a/apt-private/private-install.cc b/apt-private/private-install.cc index 55893bda0..656b97233 100644 --- a/apt-private/private-install.cc +++ b/apt-private/private-install.cc @@ -620,14 +620,17 @@ bool DoCacheManipulationFromCommandLine(CommandLine &CmdL, CacheFile &Cache, { // 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 (strcmp(CmdL.FileList[0], "dist-upgrade") == 0 || strcmp(CmdL.FileList[0], "full-upgrade") == 0) - resolver_fail = APT::Upgrade::Upgrade(Cache, 0); + if (distUpgradeMode == true) + resolver_fail = APT::Upgrade::Upgrade(Cache, 0, &Progress); else - resolver_fail = Fix->Resolve(true); + resolver_fail = Fix->Resolve(true, &Progress); } else - resolver_fail = APT::Upgrade::Upgrade(Cache, UpgradeMode); + resolver_fail = APT::Upgrade::Upgrade(Cache, UpgradeMode, &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 31f067576..2a6dcc153 100644 --- a/apt-private/private-upgrade.cc +++ b/apt-private/private-upgrade.cc @@ -22,10 +22,8 @@ static bool UpgradeHelper(CommandLine &CmdL, int UpgradeFlags) if (Cache.OpenForInstall() == false || Cache.CheckDeps() == false) return false; - c0out << _("Calculating upgrade... ") << std::flush; if(!DoCacheManipulationFromCommandLine(CmdL, Cache, UpgradeFlags)) return false; - c0out << _("Done") << std::endl; return InstallPackages(Cache,true); } -- cgit v1.2.3