diff options
-rw-r--r-- | pym/_emerge/__init__.py | 12 |
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): |