Only enable --rebuilt-binaries automatically if --update and --deep are also
authorZac Medico <zmedico@gentoo.org>
Thu, 18 Feb 2010 21:50:53 +0000 (21:50 -0000)
committerZac Medico <zmedico@gentoo.org>
Thu, 18 Feb 2010 21:50:53 +0000 (21:50 -0000)
enabled.

svn path=/main/trunk/; revision=15372

man/emerge.1
pym/_emerge/create_depgraph_params.py
pym/_emerge/depgraph.py
pym/_emerge/help.py
pym/_emerge/main.py

index 6c2727de8a1ead714c32b7f01fc8df2d6089cf90..3b2986cce3d294dab23313c999ded3064132d616 100644 (file)
@@ -481,8 +481,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
index 188dc6f967d6bc22102181d9d9cbdede467c343f..37bda4922c8f197ab4a097d64ac6d7e83ccf7185 100644 (file)
@@ -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
index 74cc4f0e3a828b10762de68df80146bcea009221..aec61bd5c3442b5226480979fc87303a5f7311f6 100644 (file)
@@ -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
index afdaa1cabebadd894f180f92b4a993a461144df7..7c6b334fce9468e30d356f462063587b3626ae31 100644 (file)
@@ -510,8 +510,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()
index a92ae035136fc7680aef9040e7c516dce1a80396..fa564b183816772288312a8e2c28e0dd347ee595 100644 (file)
@@ -741,8 +741,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