summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pym/_emerge/__init__.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 531a08d0f..ead6766ab 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -6548,12 +6548,18 @@ def action_depclean(settings, trees, ldpath_mtimes,
remaining_atoms = []
if action == "depclean":
- for atom in worldlist:
- if vardb.match(atom):
- remaining_atoms.append((atom, 'world', runtime))
for atom in syslist:
if vardb.match(atom):
remaining_atoms.append((atom, 'system', runtime))
+ if myfiles:
+ # Pull in everything that's installed since we don't want
+ # to clean any package if something depends on it.
+ remaining_atoms.extend(
+ ("="+atom, 'world', runtime) for cpv in vardb.cpv_all())
+ else:
+ for atom in worldlist:
+ if vardb.match(atom):
+ remaining_atoms.append((atom, 'world', runtime))
elif action == "prune":
for atom in syslist:
if vardb.match(atom):