summaryrefslogtreecommitdiffstats
path: root/pym/_emerge/actions.py
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2013-01-01 22:03:54 -0800
committerZac Medico <zmedico@gentoo.org>2013-01-02 02:45:14 -0800
commit373ef95f11e805c52be79c7563a73cc65062b615 (patch)
treea6507f7e7eeaa5628f6b0b15d4f3f440ede5ec59 /pym/_emerge/actions.py
parent5681942aabf65daa31c5e591f0d1d99e0d2bc70f (diff)
downloadportage-373ef95f11e805c52be79c7563a73cc65062b615.tar.gz
portage-373ef95f11e805c52be79c7563a73cc65062b615.tar.bz2
portage-373ef95f11e805c52be79c7563a73cc65062b615.zip
resume_depgraph: check for alternative installed
When pruning packages from the merge list, only prune them if the relevant dependency is not satisfied by an alternative package which is already installed. This should fix bug #448176, and now there's also reasons logged for why a particular package is dropped.
Diffstat (limited to 'pym/_emerge/actions.py')
-rw-r--r--pym/_emerge/actions.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/pym/_emerge/actions.py b/pym/_emerge/actions.py
index 6a3815a9c..19265d03e 100644
--- a/pym/_emerge/actions.py
+++ b/pym/_emerge/actions.py
@@ -286,8 +286,14 @@ def action_build(settings, trees, mtimedb,
"dropped due to\n" + \
"!!! masking or unsatisfied dependencies:\n\n",
noiselevel=-1)
- for task in dropped_tasks:
- portage.writemsg(" " + str(task) + "\n", noiselevel=-1)
+ for task, atoms in dropped_tasks.items():
+ if not atoms:
+ writemsg(" %s is masked or unavailable\n" %
+ (task,), noiselevel=-1)
+ else:
+ writemsg(" %s requires %s\n" %
+ (task, ", ".join(atoms)), noiselevel=-1)
+
portage.writemsg("\n", noiselevel=-1)
del dropped_tasks
else: