summaryrefslogtreecommitdiff
path: root/apt-pkg
diff options
context:
space:
mode:
authorJulian Andres Klode <julian.klode@canonical.com>2024-05-19 19:32:05 +0200
committerJulian Andres Klode <julian.klode@canonical.com>2024-05-24 12:48:09 +0200
commit4fc6affafafda1aee4cee86294ce7a2b799e2799 (patch)
tree24aecb97a2db98e8d425594dba77432ea19c0813 /apt-pkg
parent140d36fd16a3d4f1fce0c54474b946d0577f1fde (diff)
edsp: solver3: Show some progress
Ignore the Solving dependencies... line in the testing framework for compatibility with the existing test cases.
Diffstat (limited to 'apt-pkg')
-rw-r--r--apt-pkg/edsp.cc23
1 files changed, 16 insertions, 7 deletions
diff --git a/apt-pkg/edsp.cc b/apt-pkg/edsp.cc
index 589400870..0ffde46c0 100644
--- a/apt-pkg/edsp.cc
+++ b/apt-pkg/edsp.cc
@@ -770,13 +770,22 @@ bool EDSP::ResolveExternal(const char* const solver, pkgDepCache &Cache,
{
APT::Solver s(Cache.GetCache(), Cache.GetPolicy());
FileFd output;
- if (not s.FromDepCache(Cache))
- return false;
- if (not s.Solve())
- return false;
- if (not s.ToDepCache(Cache))
- return false;
- return true;
+ bool res = true;
+ if (Progress != NULL)
+ Progress->OverallProgress(0, 100, 1, _config->FindB("APT::Solver::Upgrade") ? _("Calculating upgrade") : _("Solving dependencies"));
+ if (res && not s.FromDepCache(Cache))
+ res = false;
+ if (Progress != NULL)
+ Progress->Progress(10);
+ if (res && not s.Solve())
+ res = false;
+ if (Progress != NULL)
+ Progress->Progress(90);
+ if (res && not s.ToDepCache(Cache))
+ res = false;
+ if (Progress != NULL)
+ Progress->Done();
+ return res;
}
if (strcmp(solver, "internal") == 0)
{