summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-10-06 06:57:06 +0000
committerZac Medico <zmedico@gentoo.org>2009-10-06 06:57:06 +0000
commit23b2d39e7dd8de9bc78b4ad7fe35e820b27f9eba (patch)
tree6608bb3ff0970c695d9bde9159d2f8dec0ddf85d
parentdaff4f017cbe9d14f147d0f7d46eef9ac776be49 (diff)
downloadportage-23b2d39e7dd8de9bc78b4ad7fe35e820b27f9eba.tar.gz
portage-23b2d39e7dd8de9bc78b4ad7fe35e820b27f9eba.tar.bz2
portage-23b2d39e7dd8de9bc78b4ad7fe35e820b27f9eba.zip
Add a new --accept-properties option so that users can temporarily override
ACCEPT_PROPERTIES on the commandline, without relying on emerge's legacy behavior of allowing variables to leak in from the calling environment. A typical usage example for this option would be to use --accept-properties=-interactive to temporarily mask interactive packages. With default configuration, this would result in an effective ACCEPT_PROPERTIES value of "* -interactive". svn path=/main/trunk/; revision=14501
-rw-r--r--man/emerge.117
-rw-r--r--man/make.conf.54
-rw-r--r--pym/_emerge/help.py16
-rw-r--r--pym/_emerge/main.py6
4 files changed, 41 insertions, 2 deletions
diff --git a/man/emerge.1 b/man/emerge.1
index 1822048d1..efe583064 100644
--- a/man/emerge.1
+++ b/man/emerge.1
@@ -234,6 +234,20 @@ match multiple installed versions of slotted packages.
Displays the version number of \fBemerge\fR.
.SH "OPTIONS"
.TP
+.BR \-\-accept\-properties=ACCEPT_PROPERTIES
+This option temporarily overrides the \fBACCEPT_PROPERTIES\fR
+variable. The \fBACCEPT_PROPERTIES\fR variable is incremental,
+which means that the specified setting is appended to the
+existing value from your configuration. The special \fB-*\fR
+token can be used to discard the existing configuration
+value and start fresh. See the \fBMASKED PACKAGES\fR section
+and \fBmake.conf\fR(5) for more information about
+ACCEPT_PROPERTIES. A typical usage example for this option
+would be to use \fI\-\-accept\-properties=-interactive\fR to
+temporarily mask interactive packages. With default
+configuration, this would result in an effective
+\fBACCEPT_PROPERTIES\fR value of "* -interactive".
+.TP
.BR "\-\-alphabetical "
When displaying USE and other flag output, combines the enabled and
disabled lists into one list and sorts the whole list alphabetically.
@@ -667,7 +681,8 @@ packages based on properties restrictions. \fBemerge\fR examines the
\fBACCEPT_PROPERTIES\fR environment variable to allow or disallow the emerging
of a package masked by \fBPROPERTIES\fR. See \fBmake.conf\fR(5) for information
about \fBACCEPT_PROPERTIES\fR, and see \fBportage\fR(5) for information about
-\fI/etc/portage/package.properties\fR.
+\fI/etc/portage/package.properties\fR. Use the \fB\-\-accept\-properties\fR
+option to temporarily override \fBACCEPT_PROPERTIES\fR.
.SH "CONFIGURATION FILES"
Portage has a special feature called "config file protection". The purpose of
this feature is to prevent new package installs from clobbering existing
diff --git a/man/make.conf.5 b/man/make.conf.5
index 73861d859..c0b48e924 100644
--- a/man/make.conf.5
+++ b/man/make.conf.5
@@ -43,7 +43,9 @@ Defaults to the value of * -@EULA.
.TP
\fBACCEPT_PROPERTIES\fR = \fI[space delimited list of properties]\fR
This variable is used to mask packages based on PROPERTIES restrictions.
-See \fBebuild\fR(5) for more information about PROPERTIES.
+This varable can be temporarily overridden using the the
+\fB\-\-accept\-properties\fR option of \fBemerge\fR(1).
+See \fBebuild\fR(5) for more information about PROPERTIES.
.br
Defaults to the value of *.
.TP
diff --git a/pym/_emerge/help.py b/pym/_emerge/help.py
index f34691682..3cb5a9f54 100644
--- a/pym/_emerge/help.py
+++ b/pym/_emerge/help.py
@@ -232,6 +232,22 @@ def help(myopts, havecolor=1):
print(" "+bold("emerge info")+" for more advanced information.")
print()
print(turquoise("Options:"))
+ print(" "+green("--accept-properties=ACCEPT_PROPERTIES"))
+ desc = "This option temporarily overrides the ACCEPT_PROPERTIES " + \
+ "variable. The ACCEPT_PROPERTIES variable is incremental, " + \
+ "which means that the specified setting is appended to the " + \
+ "existing value from your configuration. The special -* " + \
+ "token can be used to discard the existing configuration " + \
+ "value and start fresh. See the MASKED PACKAGES section " + \
+ "and make.conf(5) for more information about " + \
+ "ACCEPT_PROPERTIES. A typical usage example for this option " + \
+ "would be to use --accept-properties=-interactive to " + \
+ "temporarily mask interactive packages. With default " + \
+ "configuration, this would result in an effective " + \
+ "ACCEPT_PROPERTIES value of \"* -interactive\"."
+ for line in wrap(desc, desc_width):
+ print(desc_indent + line)
+ print()
print(" "+green("--alphabetical"))
print(" When displaying USE and other flag output, combines the enabled")
print(" and disabled flags into a single list and sorts it alphabetically.")
diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py
index 777d10192..4635cdaf2 100644
--- a/pym/_emerge/main.py
+++ b/pym/_emerge/main.py
@@ -498,6 +498,10 @@ def parse_opts(tmpcmdline, silent=False):
longopt_aliases = {"--cols":"--columns", "--skip-first":"--skipfirst"}
argument_options = {
+ "--accept-properties": {
+ "help":"temporarily override ACCEPT_PROPERTIES",
+ "action":"store"
+ },
"--config-root": {
"help":"specify the location for portage configuration files",
"action":"store"
@@ -1047,6 +1051,8 @@ def emerge_main():
os.environ["PORTAGE_CONFIGROOT"] = myopts["--config-root"]
if "--root" in myopts:
os.environ["ROOT"] = myopts["--root"]
+ if "--accept-properties" in myopts:
+ os.environ["ACCEPT_PROPERTIES"] = myopts["--accept-properties"]
# Portage needs to ensure a sane umask for the files it creates.
os.umask(0o22)