public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
From: "Nirbheek Chauhan" <nirbheek@gentoo.org>
To: gentoo-commits@lists.gentoo.org
Subject: [gentoo-commits] proj/gnome:master commit in: scripts/
Date: Sun,  1 Apr 2012 21:14:48 +0000 (UTC)	[thread overview]
Message-ID: <1333314831.74d3c3fe11a25f7413bd4f734a6fa5c839040178.nirbheek@gentoo> (raw)

commit:     74d3c3fe11a25f7413bd4f734a6fa5c839040178
Author:     Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Sun Apr  1 21:13:49 2012 +0000
Commit:     Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Sun Apr  1 21:13:51 2012 +0000
URL:        http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=74d3c3fe

scripts/gen_archlist.py: implement what pacho actually wanted

* If the input has no SLOT information, use the latest cpv in *all* slots

---
 scripts/gen_archlist.py |   58 +++++++++++++++++++++++++++++-----------------
 1 files changed, 36 insertions(+), 22 deletions(-)

diff --git a/scripts/gen_archlist.py b/scripts/gen_archlist.py
index 8f0e9a8..fa26b90 100755
--- a/scripts/gen_archlist.py
+++ b/scripts/gen_archlist.py
@@ -388,6 +388,16 @@ def consolidate_dupes(cpv_kws):
 
     return deduped_cpv_kws
 
+def get_per_slot_cpvs(cpvs):
+    "Classify the given cpvs into slots, and yield the best atom for each slot"
+    slots = set()
+    for cpv in cpvs:
+        slot = portage.portage.portdb.aux_get(cpv, ['SLOT'])[0]
+        if slot in slots:
+            continue
+        slots.add(slot)
+        yield cpv
+
 def append_slots(cpv_kws):
     "Append slots at the end of cpv atoms"
     slotifyed_cpv_kws = []
@@ -453,32 +463,36 @@ if __name__ == "__main__":
     array = []
 
     for i in open(CP_FILE).readlines():
-        cpv = i[:-1]
-        if cpv.startswith('#') or cpv.isspace() or not cpv:
-            ALL_CPV_KWS.append(cpv)
+        cp = i[:-1]
+        if cp.startswith('#') or cp.isspace() or not cp:
+            ALL_CPV_KWS.append(cp)
             continue
-        if cpv.find('#') is not -1:
+        if cp.find('#') is not -1:
             raise Exception('Inline comments are not supported')
-        if not portage.catpkgsplit(cpv):
-            # It's actually a cp
-            cpv = match_wanted_atoms(cpv, release=NEW_REL)
-            if not cpv or not cpv[0]:
+        if portage.catpkgsplit(cp):
+            # categ/pkg is already a categ/pkg-ver
+            atoms = [cp]
+        else:
+            # Get all the atoms matching the given cp
+            cpvs = match_wanted_atoms(cp, release=NEW_REL)
+
+        for cpv in get_per_slot_cpvs(cpvs):
+            if not cpv:
                 debug('%s: Invalid cpv' % cpv)
                 continue
-            cpv = cpv[0]
-        kws_missing = max_kws(cpv, release=OLD_REL)
-        if kws_missing == []:
-            # Current cpv has the max keywords => nothing to do
-            nothing_to_be_done(cpv)
-            continue
-        elif kws_missing == None:
-            debug ('No versions with stable keywords for %s' % cpv)
-            # No cpv with stable keywords => select latest
-            arches = make_unstable(ARCHES)
-            kws_missing = [kw[1:] for kw in get_kws(cpv, arches)]
-        ALL_CPV_KWS += fix_nesting(gen_cpv_kws(cpv, kws_missing, set()))
-        if CHECK_DEPS:
-            ALL_CPV_KWS.append(LINE_SEP)
+            kws_missing = max_kws(cpv, release=OLD_REL)
+            if kws_missing == []:
+                # Current cpv has the max keywords => nothing to do
+                nothing_to_be_done(cpv)
+                continue
+            elif kws_missing == None:
+                debug ('No versions with stable keywords for %s' % cpv)
+                # No cpv with stable keywords => select latest
+                arches = make_unstable(ARCHES)
+                kws_missing = [kw[1:] for kw in get_kws(cpv, arches)]
+            ALL_CPV_KWS += fix_nesting(gen_cpv_kws(cpv, kws_missing, set()))
+            if CHECK_DEPS:
+                ALL_CPV_KWS.append(LINE_SEP)
 
     ALL_CPV_KWS = consolidate_dupes(ALL_CPV_KWS)
     if APPEND_SLOTS:



             reply	other threads:[~2012-04-01 21:15 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-01 21:14 Nirbheek Chauhan [this message]
  -- strict thread matches above, loose matches on Subject: below --
2020-04-03 19:42 [gentoo-commits] proj/gnome:master commit in: scripts/ Matt Turner
2020-04-03 19:42 Matt Turner
2020-03-28  8:31 Mart Raudsepp
2020-03-10 22:05 Matt Turner
2019-02-07 11:58 Mart Raudsepp
2018-04-25 10:32 Mart Raudsepp
2018-01-10  3:25 Mart Raudsepp
2012-04-01 19:12 Nirbheek Chauhan
2011-08-18  6:23 Nirbheek Chauhan
2011-07-12 21:15 Nirbheek Chauhan
2011-05-21 18:38 Nirbheek Chauhan
2011-05-19 12:35 Gilles Dartiguelongue
2011-04-13  9:57 Nirbheek Chauhan
2011-04-09  6:29 Nirbheek Chauhan
2011-03-28 16:15 Nirbheek Chauhan
2011-03-28 15:04 Nirbheek Chauhan
2011-03-26  1:58 Nirbheek Chauhan
2011-03-23 21:59 Nirbheek Chauhan
2011-03-23 21:59 Nirbheek Chauhan
2011-03-23 21:59 Nirbheek Chauhan
2011-03-23 19:21 Gilles Dartiguelongue
2011-03-23 10:39 Gilles Dartiguelongue
2011-03-20  8:11 Nirbheek Chauhan
2011-03-18  9:59 Nirbheek Chauhan
2011-03-18  8:23 Nirbheek Chauhan
2011-03-17 17:12 Nirbheek Chauhan
2011-03-15 13:08 Nirbheek Chauhan
2011-03-14 18:41 Nirbheek Chauhan
2011-03-12 20:10 Nirbheek Chauhan
2011-03-04 15:40 Nirbheek Chauhan
2011-02-18  4:40 Nirbheek Chauhan

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=1333314831.74d3c3fe11a25f7413bd4f734a6fa5c839040178.nirbheek@gentoo \
    --to=nirbheek@gentoo.org \
    --cc=gentoo-commits@lists.gentoo.org \
    --cc=gentoo-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