commit: 5789c1c2d923692f221a17dcfb6a13dcd188d6f1 Author: Göktürk Yüksek <gokturk <AT> binghamton <DOT> edu> AuthorDate: Sat Mar 5 06:39:11 2016 +0000 Commit: Brian Dolbec <dolsen <AT> gentoo <DOT> org> CommitDate: Sun Mar 6 02:08:34 2016 +0000 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=5789c1c2
bin/portageq: add a matcher to match the orphaned (maintainer-needed) packages Per GLEP 67, orphaned packages do not have a <maintainer> in metadata.xml. They can't be matched using '--maintainer-email=maintainer-needed <AT> gentoo.org' anymore. Add a new command line argument '--orphaned' to match the orphaned packages. Signed-off-by: Göktürk Yüksek <gokturk <AT> binghamton.edu> Signed-off-by: Brian Dolbec <dolsen <AT> gentoo.org> bin/portageq | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/bin/portageq b/bin/portageq index 925640b..803e26b 100755 --- a/bin/portageq +++ b/bin/portageq @@ -1028,6 +1028,12 @@ class HerdMatcher(object): herds = self._herds return any(x in herds for x in metadata_xml.herds()) +# Match if metadata.xml contains no maintainer (orphaned package) +def match_orphaned(metadata_xml): + if not metadata_xml.maintainers(): + return True + else: + return False def pquery(parser, opts, args): portdb = portage.db[portage.root]['porttree'].dbapi @@ -1090,6 +1096,8 @@ def pquery(parser, opts, args): for x in opts.herd: herds.extend(x.split(",")) xml_matchers.append(HerdMatcher(herds)) + if opts.orphaned: + xml_matchers.append(match_orphaned) if opts.repo is not None: repos = [portdb.repositories[opts.repo]] @@ -1248,6 +1256,11 @@ def add_pquery_arguments(parser): "longopt": "--maintainer-email", "action": "append", "help": "comma-separated list of maintainer email regexes to search for" + }, + { + "longopt": "--orphaned", + "action": "store_true", + "help": "match only orphaned (maintainer-needed) packages" } ) ),