From 077024f43c3c482b2eb1c70e2e1ba414c9ffcff8 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Mon, 19 Oct 2009 03:37:16 +0000 Subject: [PATCH] Add a --use-ebuild-visibility option, for using unbuilt ebuild metadata 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 | 4 ++++ pym/_emerge/depgraph.py | 4 +++- pym/_emerge/help.py | 6 ++++++ pym/_emerge/main.py | 12 ++++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/man/emerge.1 b/man/emerge.1 index e6aaf7bef..8e52b814b 100644 --- a/man/emerge.1 +++ b/man/emerge.1 @@ -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 diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py index 2236bff0e..d0151bfab 100644 --- a/pym/_emerge/depgraph.py +++ b/pym/_emerge/depgraph.py @@ -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): diff --git a/pym/_emerge/help.py b/pym/_emerge/help.py index 3f18b5429..bf8a7d526 100644 --- a/pym/_emerge/help.py +++ b/pym/_emerge/help.py @@ -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.") diff --git a/pym/_emerge/main.py b/pym/_emerge/main.py index 5007ecfef..c09eef800 100644 --- a/pym/_emerge/main.py +++ b/pym/_emerge/main.py @@ -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: -- 2.26.2