diff options
-rw-r--r-- | man/emerge.1 | 20 | ||||
-rw-r--r-- | pym/_emerge/__init__.py | 27 | ||||
-rw-r--r-- | pym/_emerge/help.py | 22 |
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 |