Re: [gentoo-portage-dev] [PATCH] emerge: add --autounmask-keep-keywords option (bug 622480)

2017-08-13 Thread Zac Medico
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



Re: [gentoo-portage-dev] [PATCH] emerge: add --autounmask-keep-keywords option (bug 622480)

2017-08-13 Thread M. J. Everitt
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)

2017-08-13 Thread Zac Medico
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)

2017-08-13 Thread M. J. Everitt
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