From 97d9ee9570e9c9cb6f56bc7898d15417bd02bfc0 Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Sun, 18 Oct 2009 08:29:59 +0000 Subject: 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. svn path=/main/trunk/; revision=14665 --- 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 c516755f3..34fbe6459 100644 --- a/man/emerge.1 +++ b/man/emerge.1 @@ -501,6 +501,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 de60bd801..3d9df8890 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 bbeb2fb36..346d77712 100644 --- a/pym/_emerge/help.py +++ b/pym/_emerge/help.py @@ -538,6 +538,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 f8a8b6b46..535cb2ddd 100644 --- a/pym/_emerge/main.py +++ b/pym/_emerge/main.py @@ -391,6 +391,7 @@ def insert_optional_args(args): '--root-deps' : ('rdeps',), '--select' : ('n',), '--selective' : ('n',), + "--use-ebuild-visibility": ('n',), '--usepkg' : ('n',), '--usepkgonly' : ('n',), } @@ -628,6 +629,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", @@ -771,6 +778,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: -- cgit v1.2.3-1-g7c22