From: Sebastian Luther <sebastianlut...@gmx.de> --- bin/repoman | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-)
diff --git a/bin/repoman b/bin/repoman index d1542e9..2a332a7 100755 --- a/bin/repoman +++ b/bin/repoman @@ -78,7 +78,7 @@ from portage.output import ConsoleStyleFile, StyleWriter from portage.util import writemsg_level from portage.util._argparse import ArgumentParser from portage.package.ebuild.digestgen import digestgen -from portage.eapi import eapi_has_iuse_defaults, eapi_has_required_use +from portage.eapi import eapi_has_iuse_defaults, eapi_has_required_use, eapi_has_slot_operator if sys.hexversion >= 0x3000000: basestring = str @@ -354,6 +354,7 @@ qahelp = { "portage.internal": "The ebuild uses an internal Portage function or variable", "repo.eapi.banned": "The ebuild uses an EAPI which is banned by the repository's metadata/layout.conf settings", "repo.eapi.deprecated": "The ebuild uses an EAPI which is deprecated by the repository's metadata/layout.conf settings", + "slot.operator.missing": "The ebuild depends on package with several slots and/or sub slots without specifying a slot operator", "virtual.oldstyle": "The ebuild PROVIDEs an old-style virtual (see GLEP 37)", "virtual.suspect": "Ebuild contains a package that usually should be pulled via virtual/, not directly.", "usage.obsolete": "The ebuild makes use of an obsolete construct", @@ -399,6 +400,7 @@ qawarnings = set(( "metadata.warning", "portage.internal", "repo.eapi.deprecated", +"slot.operator.missing", "usage.obsolete", "upstream.workaround", "LIVEVCS.stable", @@ -2070,6 +2072,14 @@ for x in effective_scanlist: " with a non-zero revision:" + \ " '%s'") % (mytype, atom)) + if not (atom.blocker or atom.slot or atom.slot_operator) and \ + eapi_has_slot_operator(eapi): + child_slots = set((child.slot, child.sub_slot) for child in portdb.xmatch("match-all", atom)) + if len(child_slots) > 1: + stats['slot.operator.missing'] += 1 + fails['slot.operator.missing'].append(relative_path + \ + ": '%s' missing slot or slot operator" % atom) + type_list.extend([mytype] * (len(badsyntax) - len(type_list))) for m, b in zip(type_list, badsyntax): -- 1.8.3.2