public inbox for gentoo-portage-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: SebastianLuther@gmx.de
To: gentoo-portage-dev@lists.gentoo.org
Subject: [gentoo-portage-dev] [PATCH 2/2] repoman: Add check for missing slot operators (bug 493742)
Date: Wed,  1 Jan 2014 23:14:11 +0100	[thread overview]
Message-ID: <1388614451-18197-2-git-send-email-SebastianLuther@gmx.de> (raw)
In-Reply-To: <1388614451-18197-1-git-send-email-SebastianLuther@gmx.de>

From: Sebastian Luther <SebastianLuther@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



  reply	other threads:[~2014-01-01 22:14 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-01 22:14 [gentoo-portage-dev] [PATCH 1/2] portdbapi.cp_list(): Don't write into xmatch's "match-all" cache SebastianLuther
2014-01-01 22:14 ` SebastianLuther [this message]
2014-01-01 23:30   ` [gentoo-portage-dev] [PATCH 2/2] repoman: Add check for missing slot operators (bug 493742) Brian Dolbec
2014-01-02  8:50   ` [gentoo-portage-dev] " Ryan Hill
2014-01-02  9:24   ` [gentoo-portage-dev] SebastianLuther
2014-01-02  9:24     ` [gentoo-portage-dev] [PATCH] repoman: Add check for missing slot operators (bug 493742) SebastianLuther
2014-01-01 22:46 ` [gentoo-portage-dev] [PATCH 1/2] portdbapi.cp_list(): Don't write into xmatch's "match-all" cache SebastianLuther
2014-01-01 23:29   ` Brian Dolbec

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1388614451-18197-2-git-send-email-SebastianLuther@gmx.de \
    --to=sebastianluther@gmx.de \
    --cc=gentoo-portage-dev@lists.gentoo.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox