From: Alexander Berntsen <alexander@plaimi.net>
To: gentoo-portage-dev@lists.gentoo.org
Subject: [gentoo-portage-dev] [PATCHES] Remove --autounmask, rename --autounmask-write to --autounmask
Date: Thu, 21 Nov 2013 10:21:02 +0100 [thread overview]
Message-ID: <528DD07E.3010603@plaimi.net> (raw)
[-- Attachment #1: Type: text/plain, Size: 994 bytes --]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
After talking to zmedico privately, and raising the issue and
discussing it with people in bug #481578[0], I implemented the
behaviour described in a comment[1] on said bug.
I sent this to zmedico almost two months ago, but it doesn't look like
he's coming back any time soon, so I'm sending it here and ask someone
to review and commit it (a role zmedico has typically played for me,
as well as being my "mentor" and guide and so on and so forth for
Portage hacking).
[0] <https://bugs.gentoo.org/show_bug.cgi?id=481578>
[1] <https://bugs.gentoo.org/show_bug.cgi?id=481578#c10>>
- --
Alexander
alexander@plaimi.net
http://plaimi.net/~alexander
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.22 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iF4EAREIAAYFAlKN0H0ACgkQRtClrXBQc7Vh/QD/WQRV+zK8Dgjmm2trFOG/tA1G
A3D5PjKWOz+r9uCvu+YBAJauUd/7KkiVyn6ozKfGKxJaRdqETGPbYaJc9rcXQc1b
=ZX2u
-----END PGP SIGNATURE-----
[-- Attachment #2: 0001-emerge-Deprecate-autounmask.patch --]
[-- Type: text/x-diff, Size: 5176 bytes --]
From 887d7c8e179f4f011047e42b547cf46261fb10c0 Mon Sep 17 00:00:00 2001
From: Alexander Berntsen <alexander@plaimi.net>
Date: Tue, 1 Oct 2013 11:40:55 +0200
Subject: [PATCH 1/3] emerge: Deprecate --autounmask
Remove the --autounmask option from emerge. Please note that removing
the option does not mean that the variable used for keeping track of
autounmasking is not removed from depgraph.py.
---
man/emerge.1 | 33 ++++++++++-----------------------
pym/_emerge/depgraph.py | 3 +--
pym/_emerge/main.py | 9 ---------
3 files changed, 11 insertions(+), 34 deletions(-)
diff --git a/man/emerge.1 b/man/emerge.1
index c59185f..58bdc94 100644
--- a/man/emerge.1
+++ b/man/emerge.1
@@ -322,38 +322,25 @@ invalid input. This helps prevent accidental
acceptance of the first choice. This option is
intended to be set in the \fBmake.conf\fR(5)
\fBEMERGE_DEFAULT_OPTS\fR variable.
-.TP
-.BR "\-\-autounmask [ y | n ]"
-Automatically unmask packages and generate package.use
-settings as necessary to satisfy dependencies. This
-option is enabled by default. If any configuration
-changes are required, then they will be displayed
-after the merge list and emerge will immediately
-abort. If the displayed configuration changes are
-satisfactory, you should copy and paste them into
-the specified configuration file(s), or enable the
\fB\-\-autounmask\-write\fR option. The
\fBEMERGE_DEFAULT_OPTS\fR variable may be used to
disable this option by default in \fBmake.conf\fR(5).
.TP
.BR "\-\-autounmask\-unrestricted\-atoms [ y | n ]"
-If \-\-autounmask is enabled, keyword and mask changes
-using the \'=\' operator will be written. With this
-option, \'>=\' operators will be used whenever possible.
-USE and license changes always use the latter behavior.
+Keyword and mask changes 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\-masks [ y | n ]"
-If \-\-autounmask is enabled, no package.unmask or ** keyword changes
-will be created. This leads to unsatisfied dependencies if
-no other solution exists.
+No package.unmask or ** keyword changes will be created if this is activated.
+This leads to unsatisfied dependencies if no other solution exists.
.TP
.BR "\-\-autounmask\-write [ y | n ]"
-If \-\-autounmask is enabled, changes are written
-to config files, respecting \fBCONFIG_PROTECT\fR and \fB\-\-ask\fR.
-If the corresponding package.* is a file, the changes are appended to
-it, if it is a directory, changes are written to the lexicographically
-last file. This way it is always ensured that the new changes take
-precedence over existing changes.
+Write required unmask changes to the relevant config files, respecting
+\fBCONFIG_PROTECT\fR and \fB\-\-ask\fR. If the corresponding package.* is a
+file, the changes are appended to it, if it is a directory, changes are written
+to the lexicographically last file. This way it is always ensured that the new
+changes take precedence over existing changes.
.TP
.BR \-\-backtrack=COUNT
Specifies an integer number of times to backtrack if
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 7b77edc..9fdfa43 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -427,7 +427,7 @@ class _dynamic_depgraph_config(object):
self._backtrack_infos = {}
self._buildpkgonly_deps_unsatisfied = False
- self._autounmask = depgraph._frozen_config.myopts.get('--autounmask') != 'n'
+ self._autounmask = True
self._success_without_autounmask = False
self._traverse_ignored_deps = False
self._complete_mode = False
@@ -7971,7 +7971,6 @@ def _backtrack_depgraph(settings, trees, myopts, myparams, myaction, myfiles, sp
"\n\nautounmask breakage detected\n\n",
noiselevel=-1, level=logging.DEBUG)
mydepgraph.display_problems()
- myopts["--autounmask"] = "n"
mydepgraph = depgraph(settings, trees, myopts, myparams, spinner,
frozen_config=frozen_config, allow_backtracking=False)
success, favorites = mydepgraph.select_files(myfiles)
diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index 89413a9..fc73ef7 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -123,7 +123,6 @@ def insert_optional_args(args):
default_arg_opts = {
'--ask' : y_or_n,
- '--autounmask' : y_or_n,
'--autounmask-keep-masks': y_or_n,
'--autounmask-unrestricted-atoms' : y_or_n,
'--autounmask-write' : y_or_n,
@@ -303,11 +302,6 @@ def parse_opts(tmpcmdline, silent=False):
"choices" : true_y_or_n
},
- "--autounmask": {
- "help" : "automatically unmask packages",
- "choices" : true_y_or_n
- },
-
"--autounmask-unrestricted-atoms": {
"help" : "write autounmask changes with >= atoms if possible",
"choices" : true_y_or_n
@@ -673,9 +667,6 @@ def parse_opts(tmpcmdline, silent=False):
else:
myoptions.ask = None
- if myoptions.autounmask in true_y:
- myoptions.autounmask = True
-
if myoptions.autounmask_unrestricted_atoms in true_y:
myoptions.autounmask_unrestricted_atoms = True
--
1.8.1.5
[-- Attachment #3: 0002-emerge-Rename-autounmask-write-to-autounmask.patch --]
[-- Type: text/x-diff, Size: 5538 bytes --]
From b425e5e375c4aa058e4b7efa41d15bd0487b6b12 Mon Sep 17 00:00:00 2001
From: Alexander Berntsen <alexander@plaimi.net>
Date: Tue, 1 Oct 2013 11:53:31 +0200
Subject: [PATCH 2/3] emerge: Rename --autounmask-write to --autounmask
Rename --autounmask-write to --autounmask. Please note that removing the
option does not mean that the variable used for keeping track of
autounmask writing is not removed from depgraph.py.
---
man/emerge.1 | 19 +++++++++++--------
pym/_emerge/depgraph.py | 4 ++--
pym/_emerge/main.py | 18 +++++++++---------
3 files changed, 22 insertions(+), 19 deletions(-)
diff --git a/man/emerge.1 b/man/emerge.1
index 58bdc94..e23d1b4 100644
--- a/man/emerge.1
+++ b/man/emerge.1
@@ -322,10 +322,20 @@ invalid input. This helps prevent accidental
acceptance of the first choice. This option is
intended to be set in the \fBmake.conf\fR(5)
\fBEMERGE_DEFAULT_OPTS\fR variable.
-\fB\-\-autounmask\-write\fR option. The
+\fB\-\-autounmask\fR option. The
\fBEMERGE_DEFAULT_OPTS\fR variable may be used to
disable this option by default in \fBmake.conf\fR(5).
.TP
+.BR "\-\-autounmask [ y | n ]"
+Write required unmask changes to the relevant config files, respecting
+\fBCONFIG_PROTECT\fR. If invoked together with \fB\-\-ask\fR, emerge will
+prompt you to write the changes. If invoked along with \fB\-\-pretend\fR,
+emerge will merely output the required changes and not make any of them by
+itself. If the corresponding package.* is a file, the changes are appended to
+it, if it is a directory, changes are written to the lexicographically last
+file. This way it is always ensured that the new changes take precedence over
+existing changes.
+.TP
.BR "\-\-autounmask\-unrestricted\-atoms [ y | n ]"
Keyword and mask changes using the \'=\' operator will be written. With this
option, \'>=\' operators will be used whenever possible. USE and license
@@ -335,13 +345,6 @@ changes always use the latter behavior.
No package.unmask or ** keyword changes will be created if this is activated.
This leads to unsatisfied dependencies if no other solution exists.
.TP
-.BR "\-\-autounmask\-write [ y | n ]"
-Write required unmask changes to the relevant config files, respecting
-\fBCONFIG_PROTECT\fR and \fB\-\-ask\fR. If the corresponding package.* is a
-file, the changes are appended to it, if it is a directory, changes are written
-to the lexicographically last file. This way it is always ensured that the new
-changes take precedence over existing changes.
-.TP
.BR \-\-backtrack=COUNT
Specifies an integer number of times to backtrack if
dependency calculation fails due to a conflict or an
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 9fdfa43..5b4b723 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -6806,7 +6806,7 @@ class depgraph(object):
(using CONFIG_PROTECT). The message includes the comments and the changes.
"""
- autounmask_write = self._frozen_config.myopts.get("--autounmask-write", "n") == True
+ autounmask_write = self._frozen_config.myopts.get("--autounmask", "n") == True
autounmask_unrestricted_atoms = \
self._frozen_config.myopts.get("--autounmask-unrestricted-atoms", "n") == True
quiet = "--quiet" in self._frozen_config.myopts
@@ -7168,7 +7168,7 @@ class depgraph(object):
chk_updated_cfg_files(root,
[os.path.join(os.sep, USER_CONFIG_PATH)])
elif not pretend and not autounmask_write and roots:
- writemsg("\nUse --autounmask-write to write changes to config files (honoring\n"
+ writemsg("\nUse --autounmask to write changes to config files (honoring\n"
"CONFIG_PROTECT). Carefully examine the list of proposed changes,\n"
"paying special attention to mask or keyword changes that may expose\n"
"experimental or unstable packages.\n",
diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index fc73ef7..247317d 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -123,9 +123,9 @@ def insert_optional_args(args):
default_arg_opts = {
'--ask' : y_or_n,
+ '--autounmask' : y_or_n,
'--autounmask-keep-masks': y_or_n,
'--autounmask-unrestricted-atoms' : y_or_n,
- '--autounmask-write' : y_or_n,
'--buildpkg' : y_or_n,
'--complete-graph' : y_or_n,
'--deep' : valid_integers,
@@ -302,6 +302,11 @@ def parse_opts(tmpcmdline, silent=False):
"choices" : true_y_or_n
},
+ "--autounmask": {
+ "help" : "automatically unmask packages",
+ "choices" : true_y_or_n
+ },
+
"--autounmask-unrestricted-atoms": {
"help" : "write autounmask changes with >= atoms if possible",
"choices" : true_y_or_n
@@ -312,11 +317,6 @@ def parse_opts(tmpcmdline, silent=False):
"choices" : true_y_or_n
},
- "--autounmask-write": {
- "help" : "write changes made by --autounmask to disk",
- "choices" : true_y_or_n
- },
-
"--accept-properties": {
"help":"temporarily override ACCEPT_PROPERTIES",
"action":"store"
@@ -667,15 +667,15 @@ def parse_opts(tmpcmdline, silent=False):
else:
myoptions.ask = None
+ if myoptions.autounmask in true_y:
+ myoptions.autounmask = True
+
if myoptions.autounmask_unrestricted_atoms in true_y:
myoptions.autounmask_unrestricted_atoms = True
if myoptions.autounmask_keep_masks in true_y:
myoptions.autounmask_keep_masks = True
- if myoptions.autounmask_write in true_y:
- myoptions.autounmask_write = True
-
if myoptions.buildpkg in true_y:
myoptions.buildpkg = True
--
1.8.1.5
[-- Attachment #4: 0003-emerge-Make-autounmask-y-if-ask-y.patch --]
[-- Type: text/x-diff, Size: 2451 bytes --]
From 9c03d52526f58eb53c9e76785352fbb53413898d Mon Sep 17 00:00:00 2001
From: Alexander Berntsen <alexander@plaimi.net>
Date: Tue, 1 Oct 2013 12:10:14 +0200
Subject: [PATCH 3/3] emerge: Make --autounmask=y if --ask=y
---
man/emerge.1 | 9 +++++----
pym/_emerge/depgraph.py | 5 +++--
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/man/emerge.1 b/man/emerge.1
index e23d1b4..52f8ed7 100644
--- a/man/emerge.1
+++ b/man/emerge.1
@@ -331,10 +331,11 @@ Write required unmask changes to the relevant config files, respecting
\fBCONFIG_PROTECT\fR. If invoked together with \fB\-\-ask\fR, emerge will
prompt you to write the changes. If invoked along with \fB\-\-pretend\fR,
emerge will merely output the required changes and not make any of them by
-itself. If the corresponding package.* is a file, the changes are appended to
-it, if it is a directory, changes are written to the lexicographically last
-file. This way it is always ensured that the new changes take precedence over
-existing changes.
+itself. This option is enabled by default if are running emerge with
+\fB\-\-ask\fR or \fB\-\-pretend\fR, and disabled by default elsewise. If the
+corresponding package.* is a file, the changes are appended to it, if it is a
+directory, changes are written to the lexicographically last file. This way it
+is always ensured that the new changes take precedence over existing changes.
.TP
.BR "\-\-autounmask\-unrestricted\-atoms [ y | n ]"
Keyword and mask changes using the \'=\' operator will be written. With this
diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
index 5b4b723..e8b680d 100644
--- a/pym/_emerge/depgraph.py
+++ b/pym/_emerge/depgraph.py
@@ -6806,12 +6806,13 @@ class depgraph(object):
(using CONFIG_PROTECT). The message includes the comments and the changes.
"""
- autounmask_write = self._frozen_config.myopts.get("--autounmask", "n") == True
+ ask = "--ask" in self._frozen_config.myopts
+ autounmask_write = ask or \
+ self._frozen_config.myopts.get("--autounmask", "n") == True
autounmask_unrestricted_atoms = \
self._frozen_config.myopts.get("--autounmask-unrestricted-atoms", "n") == True
quiet = "--quiet" in self._frozen_config.myopts
pretend = "--pretend" in self._frozen_config.myopts
- ask = "--ask" in self._frozen_config.myopts
enter_invalid = '--ask-enter-invalid' in self._frozen_config.myopts
def check_if_latest(pkg):
--
1.8.1.5
next reply other threads:[~2013-11-21 9:21 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-21 9:21 Alexander Berntsen [this message]
2013-11-21 11:19 ` [gentoo-portage-dev] Re: [PATCHES] Remove --autounmask, rename --autounmask-write to --autounmask Duncan
2013-11-21 12:03 ` Alexander Berntsen
2013-11-21 13:34 ` Duncan
2013-11-21 14:23 ` Alexander Berntsen
2013-11-22 5:37 ` Duncan
2013-11-22 8:29 ` Alexander Berntsen
2013-11-21 16:30 ` [gentoo-portage-dev] " Paul Varner
2013-11-21 16:46 ` Alexander Berntsen
2013-11-21 21:05 ` Paul Varner
2013-11-21 20:06 ` Zac's status (Was: Re: [gentoo-portage-dev] [PATCHES] Remove --autounmask, rename --autounmask-write to --autounmask) Pacho Ramos
2013-11-22 8:51 ` Alexander Berntsen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=528DD07E.3010603@plaimi.net \
--to=alexander@plaimi.net \
--cc=gentoo-portage-dev@lists.gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox