From: Zac Medico Date: Tue, 2 Mar 2010 20:31:29 +0000 (-0000) Subject: Only enable --rebuilt-binaries automatically if --update and --deep are also X-Git-Tag: v2.1.8~123 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=7840f733b2006474cafa3b92681e25350a3b9a61;p=portage.git Only enable --rebuilt-binaries automatically if --update and --deep are also enabled. (trunk r15372) svn path=/main/branches/2.1.7/; revision=15599 --- diff --git a/man/emerge.1 b/man/emerge.1 index b0ea2d8d3..9a7526e45 100644 --- a/man/emerge.1 +++ b/man/emerge.1 @@ -474,8 +474,9 @@ display it on stdout. Replace installed packages with binary packages that have been rebuilt. Rebuilds are detected by comparison of BUILD_TIME package metadata. This option is enabled -automatically when using binary packages (see -\fB\-\-usepkg\fR and \fB\-\-getbinpkg\fR). +automatically when using binary packages +(\fB\-\-usepkg\fR or \fB\-\-getbinpkg\fR) together with +\fB\-\-update\fR and \fB\-\-deep\fR. .TP .BR "\-\-reinstall changed\-use" Tells emerge to include installed packages where USE flags have diff --git a/pym/_emerge/create_depgraph_params.py b/pym/_emerge/create_depgraph_params.py index 188dc6f96..37bda4922 100644 --- a/pym/_emerge/create_depgraph_params.py +++ b/pym/_emerge/create_depgraph_params.py @@ -15,6 +15,7 @@ def create_depgraph_params(myopts, myaction): # empty: pretend nothing is merged # complete: completely account for all known dependencies # remove: build graph for use in removing packages + # rebuilt_binaries: replace installed packages with rebuilt binaries myparams = {"recurse" : True} if myaction == "remove": @@ -37,6 +38,15 @@ def create_depgraph_params(myopts, myaction): myparams["deep"] = myopts["--deep"] if "--complete-graph" in myopts: myparams["complete"] = True + + rebuilt_binaries = myopts.get('--rebuilt-binaries') + if rebuilt_binaries is True or \ + rebuilt_binaries != 'n' and \ + '--usepkg' in myopts and \ + myopts.get('--deep') is True and \ + '--update' in myopts: + myparams['rebuilt_binaries'] = True + if myopts.get("--selective") == "n": # --selective=n can be used to remove selective # behavior that may have been implied by some diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 1986a0b22..cd71c9105 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -2396,9 +2396,7 @@ class depgraph(object): atom_set = InternalPackageSet(initial_atoms=(atom,)) existing_node = None myeb = None - usepkg = "--usepkg" in self._frozen_config.myopts - rebuilt_binaries = usepkg and \ - self._frozen_config.myopts.get('--rebuilt-binaries') != 'n' + rebuilt_binaries = 'rebuilt_binaries' in self._dynamic_config.myparams usepkgonly = "--usepkgonly" in self._frozen_config.myopts empty = "empty" in self._dynamic_config.myparams selective = "selective" in self._dynamic_config.myparams diff --git a/pym/_emerge/help.py b/pym/_emerge/help.py index c277599ca..57494be39 100644 --- a/pym/_emerge/help.py +++ b/pym/_emerge/help.py @@ -507,8 +507,9 @@ def help(myopts, havecolor=1): desc = "Replace installed packages with binary packages that have " + \ "been rebuilt. Rebuilds are detected by comparison of " + \ "BUILD_TIME package metadata. This option is enabled " + \ - "automatically when using binary packages (see " + \ - "--usepkg and --getbinpkg)." + "automatically when using binary packages " + \ + "(--usepkg or --getbinpkg) together with " + \ + "--update and --deep." for line in wrap(desc, desc_width): print(desc_indent + line) print() diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py index 7d1c2c7e2..f4d223b67 100644 --- a/pym/_emerge/main.py +++ b/pym/_emerge/main.py @@ -663,8 +663,7 @@ def parse_opts(tmpcmdline, silent=False): myoptions.keep_going = None if myoptions.rebuilt_binaries in ("True",): - # The depgraph will enable this by default unless 'n' is specified. - myoptions.rebuilt_binaries = None + myoptions.rebuilt_binaries = True if myoptions.root_deps == "True": myoptions.root_deps = True