summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'pym/_emerge/depgraph.py')
-rw-r--r--pym/_emerge/depgraph.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index abe2cb1bd..b4fc5f297 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -5707,6 +5707,7 @@ class depgraph(object):
if self._dynamic_config._autounmask is not True:
return
+ autounmask_keep_keywords = self._frozen_config.myopts.get("--autounmask-keep-keywords", "n") != "n"
autounmask_keep_masks = self._frozen_config.myopts.get("--autounmask-keep-masks", "n") != "n"
autounmask_level = self._AutounmaskLevel()
@@ -5716,14 +5717,16 @@ class depgraph(object):
autounmask_level.allow_license_changes = True
yield autounmask_level
- autounmask_level.allow_unstable_keywords = True
- yield autounmask_level
-
- if not autounmask_keep_masks:
+ if not autounmask_keep_keywords:
+ autounmask_level.allow_unstable_keywords = True
+ yield autounmask_level
+ if not (autounmask_keep_keywords or autounmask_keep_masks):
+ autounmask_level.allow_unstable_keywords = True
autounmask_level.allow_missing_keywords = True
yield autounmask_level
+ if not autounmask_keep_masks:
# 4. USE + license + masks
# Try to respect keywords while discarding
# package.mask (see bug #463394).
@@ -5732,6 +5735,7 @@ class depgraph(object):
autounmask_level.allow_unmasks = True
yield autounmask_level
+ if not (autounmask_keep_keywords or autounmask_keep_masks):
autounmask_level.allow_unstable_keywords = True
for missing_keyword, unmask in ((False, True), (True, True)):