aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/_emerge/actions.py')
-rw-r--r--lib/_emerge/actions.py22
1 files changed, 16 insertions, 6 deletions
diff --git a/lib/_emerge/actions.py b/lib/_emerge/actions.py
index f82069f9a..e697459c8 100644
--- a/lib/_emerge/actions.py
+++ b/lib/_emerge/actions.py
@@ -672,12 +672,6 @@ def action_build(
ldpath_mtimes,
autoclean=1,
)
- else:
- portage.writemsg_stdout(
- colorize("WARN", "WARNING:")
- + " AUTOCLEAN is disabled. This can cause serious"
- + " problems due to overlapping packages.\n"
- )
return retval
@@ -776,6 +770,15 @@ def action_depclean(
# relatively safe to ignore missing deps when only asked to remove
# specific packages.
+ # Force autoclean for depcleans (but not purges), as it was changed
+ # to default off to not run it on every unmerge.
+ # bug #792195
+ if action == "depclean":
+ settings.unlock()
+ settings["AUTOCLEAN"] = "yes"
+ settings.backup_changes("AUTOCLEAN")
+ settings.lock()
+
msg = []
if (
"preserve-libs" not in settings.features
@@ -3386,6 +3389,13 @@ def run_action(emerge_config):
# Reload the whole config from scratch.
load_emerge_config(emerge_config=emerge_config)
+ # Let's autoclean if we applied updates, rather than always doing it
+ # bug #792195
+ emerge_config.target_config.settings.unlock()
+ emerge_config.target_config.settings["AUTOCLEAN"] = "yes"
+ emerge_config.target_config.settings.backup_changes("AUTOCLEAN")
+ emerge_config.target_config.settings.lock()
+
xterm_titles = "notitles" not in emerge_config.target_config.settings.features
if xterm_titles:
xtermTitle("emerge")