[gentoo-portage-dev] [PATCH] emerge: add --autounmask-keep-keywords option (bug 622480)
The option prevents --autounmask from making changes to package.accept_keywords. This option does not imply --autounmask-keep-masks, so --autounmask is still allowed to create package.unmask changes unless the --autounmask-keep-masks is also specified. X-Gentoo-bug: 622480 X-Gentoo-bug-url: https://bugs.gentoo.org/622480 --- man/emerge.1 | 7 +++ pym/_emerge/depgraph.py| 12 ++-- pym/_emerge/main.py| 9 +++ .../resolver/test_autounmask_keep_keywords.py | 68 ++ 4 files changed, 92 insertions(+), 4 deletions(-) create mode 100644 pym/portage/tests/resolver/test_autounmask_keep_keywords.py diff --git a/man/emerge.1 b/man/emerge.1 index ffb453efb..12a0db166 100644 --- a/man/emerge.1 +++ b/man/emerge.1 @@ -395,6 +395,13 @@ using the \'=\' operator will be written. With this option, \'>=\' operators will be used whenever possible. USE and license changes always use the latter behavior. .TP +.BR "\-\-autounmask\-keep\-keywords [ y | n ]" +If \-\-autounmask is enabled, no package.accept_keywords changes will +be created. This leads to unsatisfied dependencies if any keyword +changes are required. This option does not imply \-\-autounmask\-keep\-masks, +so \-\-autounmask is still allowed to create package.unmask changes unless +the \-\-autounmask\-keep\-masks is also specified. +.TP .BR "\-\-autounmask\-keep\-masks [ y | n ]" If \-\-autounmask is enabled, no package.unmask or ** keyword changes will be created. This leads to unsatisfied dependencies if 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)): diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py index 2132aa63c..d3a415b91 100644 --- a/pym/_emerge/main.py +++ b/pym/_emerge/main.py @@ -129,6 +129,7 @@ def insert_optional_args(args): '--autounmask' : y_or_n, '--autounmask-continue' : y_or_n, '--autounmask-only' : y_or_n, + '--autounmask-keep-keywords' : y_or_n, '--autounmask-keep-masks': y_or_n, '--autounmask-unrestricted-atoms' : y_or_n, '--autounmask-write' : y_or_n, @@ -348,6 +349,11 @@ def parse_opts(tmpcmdline, silent=False): "choices" : true_y_or_n }, + "--autounmask-keep-keywords": { + "help": "don't add package.accept_keywords entries", + "choices" : true_y_or_n + }, + "--autounmask-keep-masks": { "help": "don't add package.unmask entries", "choices" : true_y_or_n @@ -797,6 +803,9 @@ def parse_opts(tmpcmdline, silent=False): if myoptions.autounmask_unrestricted_atoms in true_y: myoptions.autounmask_unrestricted_atoms = True + if myoptions.autounmask_keep_keywords in true_y: + myoptions.autounmask_keep_keywords = True + if myoptions.autounmask_keep_masks in true_y: myoptions.autou
Re: [gentoo-portage-dev] [PATCH] emerge: add --autounmask-keep-keywords option (bug 622480)
On 12/08/17 19:08, Zac Medico wrote: > The option prevents --autounmask from making changes to > package.accept_keywords. This option does not imply > --autounmask-keep-masks, so --autounmask is still allowed > to create package.unmask changes unless the > --autounmask-keep-masks is also specified. > > X-Gentoo-bug: 622480 > X-Gentoo-bug-url: https://bugs.gentoo.org/622480 > --- > man/emerge.1 | 7 +++ > pym/_emerge/depgraph.py| 12 ++-- > pym/_emerge/main.py| 9 +++ > .../resolver/test_autounmask_keep_keywords.py | 68 > ++ > 4 files changed, 92 insertions(+), 4 deletions(-) > create mode 100644 > pym/portage/tests/resolver/test_autounmask_keep_keywords.py > > diff --git a/man/emerge.1 b/man/emerge.1 > index ffb453efb..12a0db166 100644 > --- a/man/emerge.1 > +++ b/man/emerge.1 > @@ -395,6 +395,13 @@ using the \'=\' operator will be written. With this > option, \'>=\' operators will be used whenever possible. > USE and license changes always use the latter behavior. > .TP > +.BR "\-\-autounmask\-keep\-keywords [ y | n ]" > +If \-\-autounmask is enabled, no package.accept_keywords changes will > +be created. This leads to unsatisfied dependencies if any keyword > +changes are required. This option does not imply \-\-autounmask\-keep\-masks, > +so \-\-autounmask is still allowed to create package.unmask changes unless > +the \-\-autounmask\-keep\-masks is also specified. > +.TP > .BR "\-\-autounmask\-keep\-masks [ y | n ]" > If \-\-autounmask is enabled, no package.unmask or ** keyword changes > will be created. This leads to unsatisfied dependencies if > 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)): > diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py > index 2132aa63c..d3a415b91 100644 > --- a/pym/_emerge/main.py > +++ b/pym/_emerge/main.py > @@ -129,6 +129,7 @@ def insert_optional_args(args): > '--autounmask' : y_or_n, > '--autounmask-continue' : y_or_n, > '--autounmask-only' : y_or_n, > + '--autounmask-keep-keywords' : y_or_n, > '--autounmask-keep-masks': y_or_n, > '--autounmask-unrestricted-atoms' : y_or_n, > '--autounmask-write' : y_or_n, > @@ -348,6 +349,11 @@ def parse_opts(tmpcmdline, silent=False): > "choices" : true_y_or_n > }, > > + "--autounmask-keep-keywords": { > + "help": "don't add package.accept_keywords entries", > + "choices" : true_y_or_n > + }, > + > "--autounmask-keep-masks": { > "help": "don't add package.unmask entries", > "choices" : true_y_or_n > @@ -797,6 +803,9 @@ def parse_opts(tmpcmdline, silent=False): > if myoptions.autounmask_unrestricted_atoms in true_y: > myoptions.autounmask_unrestricted_atoms = True > > + if myoptions.autounmask_keep_
Re: [gentoo-portage-dev] [PATCH] emerge: add --autounmask-keep-keywords option (bug 622480)
On 08/13/2017 04:37 PM, M. J. Everitt wrote: > On 12/08/17 19:08, Zac Medico wrote: >> The option prevents --autounmask from making changes to >> package.accept_keywords. This option does not imply >> --autounmask-keep-masks, so --autounmask is still allowed >> to create package.unmask changes unless the >> --autounmask-keep-masks is also specified. >> >> X-Gentoo-bug: 622480 >> X-Gentoo-bug-url: https://bugs.gentoo.org/622480 >> --- >> man/emerge.1 | 7 +++ >> pym/_emerge/depgraph.py| 12 ++-- >> pym/_emerge/main.py| 9 +++ >> .../resolver/test_autounmask_keep_keywords.py | 68 >> ++ >> 4 files changed, 92 insertions(+), 4 deletions(-) >> create mode 100644 >> pym/portage/tests/resolver/test_autounmask_keep_keywords.py >> >> diff --git a/man/emerge.1 b/man/emerge.1 >> index ffb453efb..12a0db166 100644 >> --- a/man/emerge.1 >> +++ b/man/emerge.1 >> @@ -395,6 +395,13 @@ using the \'=\' operator will be written. With this >> option, \'>=\' operators will be used whenever possible. >> USE and license changes always use the latter behavior. >> .TP >> +.BR "\-\-autounmask\-keep\-keywords [ y | n ]" >> +If \-\-autounmask is enabled, no package.accept_keywords changes will >> +be created. This leads to unsatisfied dependencies if any keyword >> +changes are required. This option does not imply >> \-\-autounmask\-keep\-masks, >> +so \-\-autounmask is still allowed to create package.unmask changes unless >> +the \-\-autounmask\-keep\-masks is also specified. >> +.TP > > OK, considering the proposal patch I put together for > -[autounmask]-use-only .. how does this/these [other] patch[es] compare? You'll get the same result as --autounmask-use-only if you use --autounmask-keep-keywords together with --autounmask-keep-masks. This way, we can also add --autounmask-keep-license and --autounmask-keep-use options if we want, and the meaning is very easy to explain. The meaning of --autounmask-use-only would have required more explanation, since it allowed license changes in addition to USE changes. -- Thanks, Zac
Re: [gentoo-portage-dev] [PATCH] emerge: add --autounmask-keep-keywords option (bug 622480)
On 14/08/17 01:19, Zac Medico wrote [excerpted]: > You'll get the same result as --autounmask-use-only if you use > --autounmask-keep-keywords together with --autounmask-keep-masks. > > This way, we can also add --autounmask-keep-license and > --autounmask-keep-use options if we want, and the meaning is very easy > to explain. The meaning of --autounmask-use-only would have required > more explanation, since it allowed license changes in addition to USE > changes. I guess that's the more flexible option, and logical to all users of all locales ;) Does portage ignore missing command-line options, if I set them in my make.conf in anticipation!?!?! Thanks for the clear explanation, extra coding, and look forward to the push to 'live' :) Michael. signature.asc Description: OpenPGP digital signature
Re: [gentoo-portage-dev] [PATCH] emerge: add --autounmask-keep-keywords option (bug 622480)
On 08/13/2017 05:23 PM, M. J. Everitt wrote: > On 14/08/17 01:19, Zac Medico wrote [excerpted]: >> You'll get the same result as --autounmask-use-only if you use >> --autounmask-keep-keywords together with --autounmask-keep-masks. >> >> This way, we can also add --autounmask-keep-license and >> --autounmask-keep-use options if we want, and the meaning is very easy >> to explain. The meaning of --autounmask-use-only would have required >> more explanation, since it allowed license changes in addition to USE >> changes. > I guess that's the more flexible option, and logical to all users of all > locales ;) > > Does portage ignore missing command-line options, if I set them in my > make.conf in anticipation!?!?! No, unrecognized options are a fatal error. That's intentional, because having your settings ignored can harmful in some situations. > Thanks for the clear explanation, extra coding, and look forward to the > push to 'live' :) It's released in portage-2.3.7, so you can try it now. -- Thanks, Zac