Add a --use-ebuild-visibility option, for using unbuilt ebuild metadata
authorZac Medico <zmedico@gentoo.org>
Mon, 19 Oct 2009 03:37:16 +0000 (03:37 -0000)
committerZac Medico <zmedico@gentoo.org>
Mon, 19 Oct 2009 03:37:16 +0000 (03:37 -0000)
in visibility checks for built ebuilds. Thanks to Sebastian Mingramm (few)
for reporting the problem and testing the patch. (trunk r14665)

svn path=/main/branches/2.1.7/; revision=14685

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

index e6aaf7bef49275726d44e1a45a0e767efb90a2df..8e52b814b17b598bcf2ad17db367c5762bf47448 100644 (file)
@@ -494,6 +494,10 @@ Shows the dependency tree for the given target by indenting dependencies.
 This is only really useful in combination with \fB\-\-emptytree\fR or 
 \fB\-\-update\fR and \fB\-\-deep\fR.
 .TP
+.BR "\-\-use\-ebuild\-visibility[=n]"
+Use unbuilt ebuild metadata for visibility
+checks on built packages.
+.TP
 .BR "\-\-usepkg[=n] " (\fB\-k\fR) 
 Tells emerge to use binary packages (from $PKGDIR) if they are available, thus 
 possibly avoiding some time\-consuming compiles.  This option is useful for CD 
index 2236bff0e794dd3ffd5f3b6a9b09c30583d5308d..d0151bfabb7753e4377419bd3f7dccff776739a4 100644 (file)
@@ -2319,6 +2319,8 @@ class depgraph(object):
                reinstall = False
                noreplace = "--noreplace" in self._frozen_config.myopts
                avoid_update = "--update" not in self._frozen_config.myopts
+               use_ebuild_visibility = self._frozen_config.myopts.get(
+                       '--use-ebuild-visibility', 'n') != 'n'
                # Behavior of the "selective" parameter depends on
                # whether or not a package matches an argument atom.
                # If an installed package provides an old-style
@@ -2392,7 +2394,7 @@ class depgraph(object):
                                                                # instances (installed or binary).
                                                                # If --usepkgonly is enabled, assume that
                                                                # the ebuild status should be ignored.
-                                                               if usepkgonly:
+                                                               if not use_ebuild_visibility and usepkgonly:
                                                                        if installed and \
                                                                                pkgsettings._getMissingKeywords(
                                                                                pkg.cpv, pkg.metadata):
index 3f18b542924549e74795a902ee0cb1cc3d1f012c..bf8a7d52643628c2cf5c1d2d911fa79e44e5985c 100644 (file)
@@ -535,6 +535,12 @@ def help(myopts, havecolor=1):
                print("              a package's dependencies follow the package. Only really useful")
                print("              in combination with --emptytree, --update or --deep.")
                print()
+               print("       " + green("--use-ebuild-visibility") + "[=%s]" % turquoise("n"))
+               desc = "Use unbuilt ebuild metadata for visibility " + \
+                       "checks on built packages."
+               for line in wrap(desc, desc_width):
+                       print(desc_indent + line)
+               print()
                print("       "+green("--usepkg")+ "[=%s]" % turquoise("n") + " ("+green("-k")+" short option)")
                print("              Tell emerge to use binary packages (from $PKGDIR) if they are")
                print("              available, thus possibly avoiding some time-consuming compiles.")
index 5007ecfefae13c73018cfdc66f0e5f3280376763..c09eef8003f8102e2cc6bccd7ee7eb76e0194e7a 100644 (file)
@@ -313,6 +313,7 @@ def insert_optional_args(args):
                '--root-deps'  : ('rdeps',),
                '--select'               : ('n',),
                '--selective'            : ('n',),
+               "--use-ebuild-visibility": ('n',),
                '--usepkg'               : ('n',),
                '--usepkgonly'           : ('n',),
        }
@@ -550,6 +551,12 @@ def parse_opts(tmpcmdline, silent=False):
                        "choices" : ("True", "n")
                },
 
+               "--use-ebuild-visibility": {
+                       "help"     : "use unbuilt ebuild metadata for visibility checks on built packages",
+                       "type"     : "choice",
+                       "choices"  : ("True", "n")
+               },
+
                "--usepkg": {
                        "shortopt" : "-k",
                        "help"     : "use binary packages",
@@ -693,6 +700,11 @@ def parse_opts(tmpcmdline, silent=False):
 
                myoptions.load_average = load_average
 
+       if myoptions.use_ebuild_visibility in ("True",):
+               myoptions.use_ebuild_visibility = True
+       else:
+               myoptions.use_ebuild_visibility = None
+
        if myoptions.usepkg in ("True",):
                myoptions.usepkg = True
        else: