summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2009-04-01 01:49:22 +0000
committerZac Medico <zmedico@gentoo.org>2009-04-01 01:49:22 +0000
commit1cc9b5f31812a4963c16d6b7b4304dbf5958e9bd (patch)
tree20f0a8f57bc976094b10efb677eb958004c83964
parent358a34b09b6f8213442564fbe087fa2a0f5d5a46 (diff)
downloadportage-1cc9b5f31812a4963c16d6b7b4304dbf5958e9bd.tar.gz
portage-1cc9b5f31812a4963c16d6b7b4304dbf5958e9bd.tar.bz2
portage-1cc9b5f31812a4963c16d6b7b4304dbf5958e9bd.zip
Combine the --rdeps-only and --root-deps options into a single --root-deps
option which takes an optional 'rdeps' argument. svn path=/main/trunk/; revision=13267
-rw-r--r--man/emerge.120
-rw-r--r--pym/_emerge/__init__.py27
-rw-r--r--pym/_emerge/help.py22
3 files changed, 40 insertions, 29 deletions
diff --git a/man/emerge.1 b/man/emerge.1
index 7a82a91bd..44a746039 100644
--- a/man/emerge.1
+++ b/man/emerge.1
@@ -414,13 +414,6 @@ b blocked by another package (automatically resolved conflict)
Results may vary, but the general outcome is a reduced or condensed
output from portage's displays.
.TP
-.BR "\-\-rdeps\-only"
-Discard all build\-time dependencies. This option is commonly used together
-with \fBROOT\fR and it should not be enabled under normal circumstances. For
-currently supported \fBEAPI\fR values, the dependencies specified in the
-\fBDEPEND\fR variable are discarded. However, behavior may change for new
-\fBEAPI\fRs when related extensions are added in the future.
-.TP
.BR "\-\-reinstall changed\-use"
Tells emerge to include installed packages where USE flags have
changed since installation. Unlike \fB\-\-newuse\fR, this option does
@@ -430,11 +423,14 @@ enabled are added or removed.
.BR \-\-root=DIR
Set the \fBROOT\fR environment variable.
.TP
-.BR "\-\-root\-deps"
-Install build\-time dependencies to \fBROOT\fR instead of /. This option
-should not be enabled under normal circumstances. For currently supported
-\fBEAPI\fR values, the dependencies specified in the \fBDEPEND\fR variable
-are used. However, behavior may change for new
+.BR "\-\-root\-deps[=rdeps]"
+If no argument is given then build\-time dependencies are installed to
+\fBROOT\fR instead of /. If the \fBrdeps\fR argument is given then discard
+all build\-time dependencies of packages for \fBROOT\fR. This option is
+only meaningful when used together with \fBROOT\fR and it should not
+be enabled under normal circumstances. For currently supported
+\fBEAPI\fR values, the build-time dependencies are specified in the
+\fBDEPEND\fR variable. However, behavior may change for new
\fBEAPI\fRs when related extensions are added in the future.
.TP
.BR "\-\-skipfirst"
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py
index 103689c80..63fc92262 100644
--- a/pym/_emerge/__init__.py
+++ b/pym/_emerge/__init__.py
@@ -207,7 +207,6 @@ options=[
"--nospinner", "--oneshot",
"--onlydeps", "--pretend",
"--quiet", "--resume",
-"--rdeps-only", "--root-deps",
"--searchdesc", "--selective",
"--skipfirst",
"--tree",
@@ -5277,9 +5276,11 @@ class depgraph(object):
bdeps_root = "/"
if self.target_root != "/":
- if "--root-deps" in self.myopts:
+ root_deps = self.myopts.get("--root-deps")
+ if root_deps is not None:
+ if root_deps is True:
bdeps_root = myroot
- if "--rdeps-only" in self.myopts:
+ elif root_deps == "rdeps":
bdeps_root = "/"
edepend["DEPEND"] = ""
@@ -14769,11 +14770,22 @@ def insert_optional_args(args):
new_args = []
jobs_opts = ("-j", "--jobs")
+ root_deps_opt = '--root-deps'
+ root_deps_choices = ('True', 'rdeps')
arg_stack = args[:]
arg_stack.reverse()
while arg_stack:
arg = arg_stack.pop()
+ if arg == root_deps_opt:
+ new_args.append(arg)
+ if arg_stack and arg_stack[-1] in root_deps_choices:
+ new_args.append(arg_stack.pop())
+ else:
+ # insert default argument
+ new_args.append('True')
+ continue
+
short_job_opt = bool("j" in arg and arg[:1] == "-" and arg[:2] != "--")
if not (short_job_opt or arg in jobs_opts):
new_args.append(arg)
@@ -14866,6 +14878,12 @@ def parse_opts(tmpcmdline, silent=False):
"help" : "specify the target root filesystem for merging packages",
"action" : "store"
},
+
+ "--root-deps": {
+ "help" : "modify interpretation of depedencies",
+ "type" : "choice",
+ "choices" :("True", "rdeps")
+ },
}
from optparse import OptionParser
@@ -14894,6 +14912,9 @@ def parse_opts(tmpcmdline, silent=False):
myoptions, myargs = parser.parse_args(args=tmpcmdline)
+ if myoptions.root_deps == "True":
+ myoptions.root_deps = True
+
if myoptions.jobs:
jobs = None
if myoptions.jobs == "True":
diff --git a/pym/_emerge/help.py b/pym/_emerge/help.py
index 15aa88a02..033c93a55 100644
--- a/pym/_emerge/help.py
+++ b/pym/_emerge/help.py
@@ -410,15 +410,6 @@ def help(myaction,myopts,havecolor=1):
print " Effects vary, but the general outcome is a reduced or condensed"
print " output from portage's displays."
print
- print " "+green("--rdeps-only")
- desc = "Discard all build-time dependencies. This option is commonly used together " + \
- "with ROOT and it should not be enabled under normal circumstances. For " + \
- "currently supported EAPI values, the dependencies specified in the " + \
- "DEPEND variable are discarded. However, behavior may change for new " + \
- "EAPIs when related extensions are added in the future."
- for line in wrap(desc, desc_width):
- print desc_indent + line
- print
print " "+green("--reinstall ") + turquoise("changed-use")
print " Tells emerge to include installed packages where USE flags have"
print " changed since installation. Unlike --newuse, this option does"
@@ -431,11 +422,14 @@ def help(myaction,myopts,havecolor=1):
for line in wrap(desc, desc_width):
print desc_indent + line
print
- print " "+green("--root-deps")
- desc = "Install build-time dependencies to ROOT instead of /. This option " + \
- "should not be enabled under normal circumstances. For currently supported " + \
- "EAPI values, the dependencies specified in the DEPEND variable " + \
- "are used. However, behavior may change for new " + \
+ print " "+green("--root-deps[=rdeps]")
+ desc = "If no argument is given then build-time dependencies are installed to " + \
+ "ROOT instead of /. If the rdeps argument is given then discard " + \
+ "all build-time dependencies of packages for ROOT. This option is " + \
+ "only meaningful when used together with ROOT and it should not " + \
+ "be enabled under normal circumstances. For currently supported " + \
+ "EAPI values, the build-time dependencies are specified in the " + \
+ "DEPEND variable. However, behavior may change for new " + \
"EAPIs when related extensions are added in the future."
for line in wrap(desc, desc_width):
print desc_indent + line