diff options
author | Julian Andres Klode <jak@debian.org> | 2020-03-06 12:57:38 +0000 |
---|---|---|
committer | Julian Andres Klode <jak@debian.org> | 2020-03-06 12:57:38 +0000 |
commit | 44d8409b9c8399577d7652649862be2591b1ff64 (patch) | |
tree | cf511b030725b1a7bb97f3c402ff5df773b84382 | |
parent | 9f36e3cf3fe158fd52c662b5c8c6f6cab327fa06 (diff) | |
parent | 1b81f6bd13bb31e59da3f53cfdc7caab43abf887 (diff) |
Merge branch 'pu/improve-locking-msgs' into 'master'
Pu/improve locking msgs
See merge request apt-team/apt!111
-rw-r--r-- | apt-pkg/contrib/fileutl.cc | 6 | ||||
-rw-r--r-- | apt-pkg/contrib/progress.cc | 16 | ||||
-rw-r--r-- | apt-pkg/contrib/progress.h | 1 | ||||
-rw-r--r-- | apt-pkg/deb/debsystem.cc | 7 | ||||
-rw-r--r-- | doc/examples/configure-index | 2 |
5 files changed, 25 insertions, 7 deletions
diff --git a/apt-pkg/contrib/fileutl.cc b/apt-pkg/contrib/fileutl.cc index db5463be2..045dbe17d 100644 --- a/apt-pkg/contrib/fileutl.cc +++ b/apt-pkg/contrib/fileutl.cc @@ -302,13 +302,15 @@ int GetLock(string File,bool Errors) if (Errors == true) { + // We only do the lookup in the if ((errno == EACCES || errno == EAGAIN)) + // case, so we do not need to show the errno strerrr here... if (fl.l_pid != -1) { auto name = GetProcessName(fl.l_pid); if (name.empty()) - _error->Errno("open", _("Could not get lock %s. It is held by process %d"), File.c_str(), fl.l_pid); + _error->Error(_("Could not get lock %s. It is held by process %d"), File.c_str(), fl.l_pid); else - _error->Errno("open", _("Could not get lock %s. It is held by process %d (%s)"), File.c_str(), fl.l_pid, name.c_str()); + _error->Error(_("Could not get lock %s. It is held by process %d (%s)"), File.c_str(), fl.l_pid, name.c_str()); } else _error->Errno("open", _("Could not get lock %s"), File.c_str()); diff --git a/apt-pkg/contrib/progress.cc b/apt-pkg/contrib/progress.cc index 971198270..03f88d4ce 100644 --- a/apt-pkg/contrib/progress.cc +++ b/apt-pkg/contrib/progress.cc @@ -91,7 +91,10 @@ void OpProgress::SubProgress(unsigned long long SubTotal,const string &Op, an update the display would be swamped and the system much slower. This provides an upper bound on the update rate. */ bool OpProgress::CheckChange(float Interval) -{ +{ + // For absolute progress, we assume every call is relevant. + if (_config->FindB("APT::Internal::OpProgress::Absolute", false)) + return true; // New major progress indication if (Op != LastOp) { @@ -199,9 +202,14 @@ void OpTextProgress::Update() Write(S); cout << endl; } - - // Print the spinner - snprintf(S,sizeof(S),_("%c%s... %u%%"),'\r',Op.c_str(),(unsigned int)Percent); + + // Print the spinner. Absolute progress shows us a time progress. + if (_config->FindB("APT::Internal::OpProgress::Absolute", false) && Total != -1llu) + snprintf(S, sizeof(S), _("%c%s... %llu/%llus"), '\r', Op.c_str(), Current, Total); + else if (_config->FindB("APT::Internal::OpProgress::Absolute", false)) + snprintf(S, sizeof(S), _("%c%s... %llus"), '\r', Op.c_str(), Current); + else + snprintf(S, sizeof(S), _("%c%s... %u%%"), '\r', Op.c_str(), (unsigned int)Percent); Write(S); OldOp = Op; diff --git a/apt-pkg/contrib/progress.h b/apt-pkg/contrib/progress.h index 4d118ee99..d6a698af3 100644 --- a/apt-pkg/contrib/progress.h +++ b/apt-pkg/contrib/progress.h @@ -28,6 +28,7 @@ class Configuration; class APT_PUBLIC OpProgress { + friend class OpTextProgress; unsigned long long Current; unsigned long long Total; unsigned long long Size; diff --git a/apt-pkg/deb/debsystem.cc b/apt-pkg/deb/debsystem.cc index da7ae2e42..6904879b6 100644 --- a/apt-pkg/deb/debsystem.cc +++ b/apt-pkg/deb/debsystem.cc @@ -79,6 +79,11 @@ debSystem::~debSystem() checking of the updates directory. */ static int GetLockMaybeWait(std::string const &file, OpProgress *Progress, int &timeoutSec) { + struct ScopedAbsoluteProgress + { + ScopedAbsoluteProgress() { _config->Set("APT::Internal::OpProgress::Absolute", true); } + ~ScopedAbsoluteProgress() { _config->Set("APT::Internal::OpProgress::Absolute", false); } + } _scopedAbsoluteProgress; int fd = -1; if (timeoutSec == 0 || Progress == nullptr) return GetLock(file); @@ -102,7 +107,7 @@ static int GetLockMaybeWait(std::string const &file, OpProgress *Progress, int & _error->PopMessage(poppedError); _error->RevertToStack(); - strprintf(completeError, _("Waiting for cache lock (%s)"), poppedError.c_str()); + strprintf(completeError, _("Waiting for cache lock: %s"), poppedError.c_str()); sleep(1); Progress->OverallProgress(i, timeoutSec, 0, completeError); } diff --git a/doc/examples/configure-index b/doc/examples/configure-index index 4e0bd57ae..bf9efc109 100644 --- a/doc/examples/configure-index +++ b/doc/examples/configure-index @@ -826,3 +826,5 @@ dir::filelistdir "<STRING>"; dir::dpkg::tupletable "<FILE>"; dir::dpkg::triplettable "<FILE>"; dir::dpkg::cputable "<FILE>"; + +APT::Internal::OpProgress::Absolute "<BOOL>"; |