From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 02FF51382C5 for ; Sat, 30 Jan 2021 16:10:21 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 3FE9EE0AE1; Sat, 30 Jan 2021 16:10:20 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 08280E0AE1 for ; Sat, 30 Jan 2021 16:10:20 +0000 (UTC) Date: Sat, 30 Jan 2021 11:10:13 -0500 From: Brian Dolbec To: gentoo-portage-dev@lists.gentoo.org Subject: Re: [gentoo-portage-dev] [PATCH] emerge: disable --autounmask-license by default Message-ID: <20210130111013.63d814c8@rogue1> In-Reply-To: <20210130114941.279378-1-zmedico@gentoo.org> References: <20210130114941.279378-1-zmedico@gentoo.org> X-Mailer: Claws Mail 3.17.8 (GTK+ 2.24.32; x86_64-pc-linux-gnu) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-portage-dev@lists.gentoo.org Reply-to: gentoo-portage-dev@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Archives-Salt: 9d0aef96-862e-40fd-ae5e-39b3c4eae493 X-Archives-Hash: 373148f04ae5f6a37556de5b38aa2222 On Sat, 30 Jan 2021 03:49:41 -0800 Zac Medico wrote: > Disable --autounmask-license by default, in order to limit user > exposure to risks associated with package.license changes. > The changes that this option suggests are only intended to be > accepted when a user has made a conscious decision to accept > the corresponding license(s). Creation of package.license > changes introduces a risk that users may erroneously accept the > changes due to some kind of accident or misunderstanding, > rather than due to conscious decisions about licenses. > These risks provide motivation to disable --autounmask-license > by default. The --autounmask-use option will remain as the > only autounmask option that is still enabled by default. > > The unit tests demonstrate interactions between --autounmask > and --autounmask-license options. The --autounmask option > enables --autounmask-license unless --autounmask-license=n > has been specified. If --autounmask=n is used to disable > autounmask, then --autounmask-license=y has no effect. > > Bug: https://bugs.gentoo.org/766773 > Signed-off-by: Zac Medico > --- makes sense, code looks good > lib/_emerge/create_depgraph_params.py | 8 +++--- > lib/portage/tests/resolver/test_autounmask.py | 25 > +++++++++++++++++-- man/emerge.1 | > 11 +++----- 3 files changed, 31 insertions(+), 13 deletions(-) > > diff --git a/lib/_emerge/create_depgraph_params.py > b/lib/_emerge/create_depgraph_params.py index 0d0e07b9c..25dd2a1b4 > 100644 --- a/lib/_emerge/create_depgraph_params.py > +++ b/lib/_emerge/create_depgraph_params.py > @@ -1,4 +1,4 @@ > -# Copyright 1999-2018 Gentoo Foundation > +# Copyright 1999-2021 Gentoo Authors > # Distributed under the terms of the GNU General Public License v2 > > import logging > @@ -45,7 +45,7 @@ def create_depgraph_params(myopts, myaction): > autounmask_keep_masks = myopts.get("--autounmask-keep-masks") > > autounmask = myopts.get("--autounmask") > - autounmask_license = myopts.get('--autounmask-license') > + autounmask_license = myopts.get('--autounmask-license', 'y' > if autounmask is True else 'n') autounmask_use = > myopts.get('--autounmask-use') if autounmask == 'n': > autounmask = False > @@ -53,7 +53,7 @@ def create_depgraph_params(myopts, myaction): > if autounmask is None: > if autounmask_use in (None, 'y'): > autounmask = True > - elif autounmask_license in (None, 'y'): > + if autounmask_license in ('y',): > autounmask = True > > # Do not enable package.accept_keywords or > package.mask @@ -67,7 +67,7 @@ def create_depgraph_params(myopts, > myaction): > myparams['autounmask'] = autounmask > myparams['autounmask_keep_use'] = True if autounmask_use == > 'n' else False > - myparams['autounmask_keep_license'] = True if > autounmask_license == 'n' else False > + myparams['autounmask_keep_license'] = False if > autounmask_license == 'y' else True > myparams['autounmask_keep_keywords'] = False if > autounmask_keep_keywords in (None, 'n') else True > myparams['autounmask_keep_masks'] = False if autounmask_keep_masks in > (None, 'n') else True diff --git > a/lib/portage/tests/resolver/test_autounmask.py > b/lib/portage/tests/resolver/test_autounmask.py index > a3bf0ff94..86ae4bbf6 100644 --- > a/lib/portage/tests/resolver/test_autounmask.py +++ > b/lib/portage/tests/resolver/test_autounmask.py @@ -1,4 +1,4 @@ -# > Copyright 2010-2019 Gentoo Authors +# Copyright 2010-2021 Gentoo > Authors # Distributed under the terms of the GNU General Public > License v2 from portage.tests import TestCase > @@ -440,13 +440,34 @@ class AutounmaskTestCase(TestCase): > mergelist=["dev-libs/A-1"], > license_changes={ > "dev-libs/A-1": set(["TEST"]) }), > - # Test default --autounmask-license > + # Test that --autounmask enables > --autounmask-license ResolverPlaygroundTestCase( > ["=dev-libs/A-1"], > + options={"--autounmask": > True}, success=False, > mergelist=["dev-libs/A-1"], > license_changes={ > "dev-libs/A-1": set(["TEST"]) }), > + # Test that --autounmask-license is > not enabled by default > + ResolverPlaygroundTestCase( > + ["=dev-libs/A-1"], > + success=False, > + ), > + > + # Test that --autounmask does not > override --autounmask-license=n > + ResolverPlaygroundTestCase( > + ["=dev-libs/A-1"], > + options={"--autounmask": > True, "--autounmask-license": "n"}, > + success=False, > + ), > + > + # Test that --autounmask=n overrides > --autounmask-license=y > + ResolverPlaygroundTestCase( > + ["=dev-libs/A-1"], > + options={"--autounmask": > "n", "--autounmask-license": "y"}, > + success=False, > + ), > + > ResolverPlaygroundTestCase( > ["=dev-libs/A-1"], > options={"--autounmask-license": > "n"}, diff --git a/man/emerge.1 b/man/emerge.1 > index 1a2a3fd3d..05b18155d 100644 > --- a/man/emerge.1 > +++ b/man/emerge.1 > @@ -1,4 +1,4 @@ > -.TH "EMERGE" "1" "Nov 2020" "Portage VERSION" "Portage" > +.TH "EMERGE" "1" "Jan 2021" "Portage VERSION" "Portage" > .SH "NAME" > emerge \- Command\-line interface to the Portage system > .SH "SYNOPSIS" > @@ -356,8 +356,8 @@ intended to be set in the \fBmake.conf\fR(5) > Automatically unmask packages and generate package.use > settings as necessary to satisfy dependencies. This option > is disabled by default, except for portions of behavior > -which are controlled by the \fB\-\-autounmask\-use\fR and > -\fB\-\-autounmask\-license\fR options (\fB\-\-autounmask=n\fR > +which are controlled by the \fB\-\-autounmask\-use\fR > +(\fB\-\-autounmask=n\fR > disables autounmask behavior entirely). If any configuration > changes are required, then they will be displayed > after the merge list and emerge will immediately > @@ -413,10 +413,7 @@ will be created. This leads to unsatisfied > dependencies if no other solution exists. > .TP > .BR "\-\-autounmask\-license < y | n >" > -Allow autounmask package.license changes. This option is enabled by > default -(either \fB\-\-autounmask=n\fR or > \fB\-\-autounmask\-license=n\fR disables -it). The > \fBEMERGE_DEFAULT_OPTS\fR variable may be used to -disable this > option by default in \fBmake.conf\fR(5). +Allow autounmask > package.license changes. .TP > .BR "\-\-autounmask\-use < y | n >" > Allow autounmask package.use changes. This option is enabled by > default