* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2012-04-01 21:14 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2012-04-01 21:14 UTC (permalink / raw
To: gentoo-commits
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:
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2020-04-03 19:42 Matt Turner
0 siblings, 0 replies; 32+ messages in thread
From: Matt Turner @ 2020-04-03 19:42 UTC (permalink / raw
To: gentoo-commits
commit: 45069a2b9ae93325c6e94fd071abc90d877873ef
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 3 19:39:00 2020 +0000
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Fri Apr 3 19:40:00 2020 +0000
URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=45069a2b
scripts/gen_archlist.py: Drop ia64 from stable arches
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
scripts/gen_archlist.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/gen_archlist.py b/scripts/gen_archlist.py
index 8750b65b..6a2ec837 100755
--- a/scripts/gen_archlist.py
+++ b/scripts/gen_archlist.py
@@ -37,7 +37,7 @@ logger = logging.getLogger('gen_archlist')
#############
# GNOME_OVERLAY = PORTDB.getRepositoryPath('gnome')
portage.portdb.porttrees = [portage.settings['PORTDIR']]
-STABLE_ARCHES = ('amd64', 'arm', 'arm64', 'hppa', 'ia64',
+STABLE_ARCHES = ('amd64', 'arm', 'arm64', 'hppa',
'ppc', 'ppc64', 's390', 'sparc', 'x86')
UNSTABLE_ARCHES = ('~alpha', '~amd64', '~arm', '~arm64', '~hppa', '~ia64',
'~m68k', '~ppc', '~ppc64', '~s390', '~sparc',
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2020-04-03 19:42 Matt Turner
0 siblings, 0 replies; 32+ messages in thread
From: Matt Turner @ 2020-04-03 19:42 UTC (permalink / raw
To: gentoo-commits
commit: 03664e2efda313a016be91ea34a38ffca7772bf7
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 3 19:40:32 2020 +0000
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Fri Apr 3 19:40:32 2020 +0000
URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=03664e2e
scripts/gen_archlist.py: Change shebang to python3
Commit d78f89c5d2f0 (scripts/gen_archlist: Hack it to work with python3)
made the script at least work in python3 but intentionally left the
shebang as python2. Today, portage doesn't have python2_7 in
PYTHON_COMPAT, so regardless of the quality of the python3 support in
this script it's the only option.
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
scripts/gen_archlist.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/gen_archlist.py b/scripts/gen_archlist.py
index 6a2ec837..b3b6fb15 100755
--- a/scripts/gen_archlist.py
+++ b/scripts/gen_archlist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python2
+#!/usr/bin/env python3
# vim: set sw=4 sts=4 et :
# Author(s): Nirbheek Chauhan <nirbheek@gentoo.org>
#
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2020-03-28 8:31 Mart Raudsepp
0 siblings, 0 replies; 32+ messages in thread
From: Mart Raudsepp @ 2020-03-28 8:31 UTC (permalink / raw
To: gentoo-commits
commit: 2cd404b5ae2fabb6169f35735a72bbfce34f46cc
Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 28 08:31:22 2020 +0000
Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Sat Mar 28 08:31:40 2020 +0000
URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=2cd404b5
scripts/gen_archlist.py: Drop ~sh completely (discontinued)
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>
scripts/gen_archlist.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/gen_archlist.py b/scripts/gen_archlist.py
index e2b2a621..8750b65b 100755
--- a/scripts/gen_archlist.py
+++ b/scripts/gen_archlist.py
@@ -40,7 +40,7 @@ portage.portdb.porttrees = [portage.settings['PORTDIR']]
STABLE_ARCHES = ('amd64', 'arm', 'arm64', 'hppa', 'ia64',
'ppc', 'ppc64', 's390', 'sparc', 'x86')
UNSTABLE_ARCHES = ('~alpha', '~amd64', '~arm', '~arm64', '~hppa', '~ia64',
- '~m68k', '~ppc', '~ppc64', '~s390', '~sh', '~sparc',
+ '~m68k', '~ppc', '~ppc64', '~s390', '~sparc',
'~x86', '~x86-fbsd')
ALL_ARCHES = STABLE_ARCHES + UNSTABLE_ARCHES
SYSTEM_PACKAGES = []
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2020-03-10 22:05 Matt Turner
0 siblings, 0 replies; 32+ messages in thread
From: Matt Turner @ 2020-03-10 22:05 UTC (permalink / raw
To: gentoo-commits
commit: 1996134dee8de72911ddcebb55efdca395f7731f
Author: Matt Turner <mattst88 <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 4 21:51:02 2020 +0000
Commit: Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Wed Mar 4 21:52:25 2020 +0000
URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=1996134d
scripts/gen_archlist.py: Drop alpha from stable arches
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>
scripts/gen_archlist.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/gen_archlist.py b/scripts/gen_archlist.py
index 17fcd6f1..e2b2a621 100755
--- a/scripts/gen_archlist.py
+++ b/scripts/gen_archlist.py
@@ -37,7 +37,7 @@ logger = logging.getLogger('gen_archlist')
#############
# GNOME_OVERLAY = PORTDB.getRepositoryPath('gnome')
portage.portdb.porttrees = [portage.settings['PORTDIR']]
-STABLE_ARCHES = ('alpha', 'amd64', 'arm', 'arm64', 'hppa', 'ia64',
+STABLE_ARCHES = ('amd64', 'arm', 'arm64', 'hppa', 'ia64',
'ppc', 'ppc64', 's390', 'sparc', 'x86')
UNSTABLE_ARCHES = ('~alpha', '~amd64', '~arm', '~arm64', '~hppa', '~ia64',
'~m68k', '~ppc', '~ppc64', '~s390', '~sh', '~sparc',
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2019-02-07 11:58 Mart Raudsepp
0 siblings, 0 replies; 32+ messages in thread
From: Mart Raudsepp @ 2019-02-07 11:58 UTC (permalink / raw
To: gentoo-commits
commit: 09f3b3a5cd37a5880178137105132626361316e5
Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Thu Feb 7 11:55:45 2019 +0000
Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Thu Feb 7 11:58:07 2019 +0000
URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=09f3b3a5
scripts/gen_archlist.py: Add s390
s390 is somewhat doing stable again and keeping up with things,
so include it in package stabilization lists too now.
Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>
scripts/gen_archlist.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/gen_archlist.py b/scripts/gen_archlist.py
index 746255f9..17fcd6f1 100755
--- a/scripts/gen_archlist.py
+++ b/scripts/gen_archlist.py
@@ -38,7 +38,7 @@ logger = logging.getLogger('gen_archlist')
# GNOME_OVERLAY = PORTDB.getRepositoryPath('gnome')
portage.portdb.porttrees = [portage.settings['PORTDIR']]
STABLE_ARCHES = ('alpha', 'amd64', 'arm', 'arm64', 'hppa', 'ia64',
- 'ppc', 'ppc64', 'sparc', 'x86')
+ 'ppc', 'ppc64', 's390', 'sparc', 'x86')
UNSTABLE_ARCHES = ('~alpha', '~amd64', '~arm', '~arm64', '~hppa', '~ia64',
'~m68k', '~ppc', '~ppc64', '~s390', '~sh', '~sparc',
'~x86', '~x86-fbsd')
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2018-04-25 10:32 Mart Raudsepp
0 siblings, 0 replies; 32+ messages in thread
From: Mart Raudsepp @ 2018-04-25 10:32 UTC (permalink / raw
To: gentoo-commits
commit: d78f89c5d2f0c86812bbf60cdd77d9bece5ec830
Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 25 10:31:21 2018 +0000
Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Wed Apr 25 10:32:17 2018 +0000
URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=d78f89c5
scripts/gen_archlist: Hack it to work with python3
As this is just a workaround, not a properly handled port, keep the
shebang to python2 for now, but can at least run it via
python3 ./gen_archlist.py now when not having python2 portage.
scripts/gen_archlist.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/scripts/gen_archlist.py b/scripts/gen_archlist.py
index 2d713180..746255f9 100755
--- a/scripts/gen_archlist.py
+++ b/scripts/gen_archlist.py
@@ -437,7 +437,7 @@ def main():
' to be stabilized')
args = parser.parse_args()
- args.verbose = min(max(args.verbose, 0), 2)
+ args.verbose = min(max(args.verbose if args.verbose else 0, 0), 2)
logging.config.dictConfig({
'version': 1,
'disable_existing_loggers': True,
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2018-01-10 3:25 Mart Raudsepp
0 siblings, 0 replies; 32+ messages in thread
From: Mart Raudsepp @ 2018-01-10 3:25 UTC (permalink / raw
To: gentoo-commits
commit: db02b518fb0b9a0571578d8b4cb16efb5c7258d4
Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 10 03:24:59 2018 +0000
Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
CommitDate: Wed Jan 10 03:24:59 2018 +0000
URL: https://gitweb.gentoo.org/proj/gnome.git/commit/?id=db02b518
scripts/gen_archlist.py: Add arm64
scripts/gen_archlist.py | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/scripts/gen_archlist.py b/scripts/gen_archlist.py
index a9fdb87d..2d713180 100755
--- a/scripts/gen_archlist.py
+++ b/scripts/gen_archlist.py
@@ -37,11 +37,11 @@ logger = logging.getLogger('gen_archlist')
#############
# GNOME_OVERLAY = PORTDB.getRepositoryPath('gnome')
portage.portdb.porttrees = [portage.settings['PORTDIR']]
-STABLE_ARCHES = ('alpha', 'amd64', 'arm', 'hppa', 'ia64', 'ppc', 'ppc64',
- 'sparc', 'x86')
-UNSTABLE_ARCHES = ('~alpha', '~amd64', '~arm', '~hppa', '~ia64', '~m68k',
- '~ppc', '~ppc64', '~s390', '~sh', '~sparc', '~x86',
- '~x86-fbsd')
+STABLE_ARCHES = ('alpha', 'amd64', 'arm', 'arm64', 'hppa', 'ia64',
+ 'ppc', 'ppc64', 'sparc', 'x86')
+UNSTABLE_ARCHES = ('~alpha', '~amd64', '~arm', '~arm64', '~hppa', '~ia64',
+ '~m68k', '~ppc', '~ppc64', '~s390', '~sh', '~sparc',
+ '~x86', '~x86-fbsd')
ALL_ARCHES = STABLE_ARCHES + UNSTABLE_ARCHES
SYSTEM_PACKAGES = []
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2012-04-01 19:12 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2012-04-01 19:12 UTC (permalink / raw
To: gentoo-commits
commit: 47392a028ee246f124d03f4c25851111dff5e2d5
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Sun Apr 1 19:12:23 2012 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Sun Apr 1 19:12:29 2012 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=47392a02
scripts/gen_archlist.py: add the ability to append slot info
* As requested by pacho
---
scripts/gen_archlist.py | 15 +++++++++++++++
1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/scripts/gen_archlist.py b/scripts/gen_archlist.py
index ffef7eb..8f0e9a8 100755
--- a/scripts/gen_archlist.py
+++ b/scripts/gen_archlist.py
@@ -44,6 +44,7 @@ LINE_SEP = ''
DEBUG = False
EXTREME_DEBUG = False
CHECK_DEPS = False
+APPEND_SLOTS = False
# Check for stable keywords
STABLE = True
@@ -80,6 +81,9 @@ else:
if os.environ.has_key('CHECK_DEPS'):
CHECK_DEPS = os.environ['CHECK_DEPS']
+if os.environ.has_key('APPEND_SLOTS'):
+ APPEND_SLOTS = os.environ['APPEND_SLOTS']
+
if not STABLE:
print 'Currently broken for anything except STABLEREQ'
print 'Please set STABLE to True'
@@ -384,6 +388,15 @@ def consolidate_dupes(cpv_kws):
return deduped_cpv_kws
+def append_slots(cpv_kws):
+ "Append slots at the end of cpv atoms"
+ slotifyed_cpv_kws = []
+ for (cpv, kws) in cpv_kws:
+ slot = portage.portage.portdb.aux_get(cpv, ['SLOT'])[0]
+ cpv = "%s:%s" % (cpv, slot)
+ slotifyed_cpv_kws.append([cpv, kws])
+ return slotifyed_cpv_kws
+
# FIXME: This is broken
def prettify(cpv_kws):
"Takes a list of [cpv, [kws]] and prettifies it"
@@ -468,6 +481,8 @@ if __name__ == "__main__":
ALL_CPV_KWS.append(LINE_SEP)
ALL_CPV_KWS = consolidate_dupes(ALL_CPV_KWS)
+ if APPEND_SLOTS:
+ ALL_CPV_KWS = append_slots(ALL_CPV_KWS)
for i in prettify(ALL_CPV_KWS):
print i[0], flatten(i[1])
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-08-18 6:23 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-08-18 6:23 UTC (permalink / raw
To: gentoo-commits
commit: 6810cce38ceb2bc44b1edbde3148ecc062f5c350
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 18 04:19:17 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Thu Aug 18 04:19:17 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=6810cce3
obsolete_ebuilds.py: update to latest portage API
---
scripts/obsolete_ebuilds.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/scripts/obsolete_ebuilds.py b/scripts/obsolete_ebuilds.py
index 4413cf9..818c207 100755
--- a/scripts/obsolete_ebuilds.py
+++ b/scripts/obsolete_ebuilds.py
@@ -90,7 +90,7 @@ def get_obsolete(cp):
# Ignore PORTDIR package.masked cpvs
for cpv in cpvs:
try:
- metadata = {'SLOT': portdb.aux_get(cpv, ['SLOT'])}
+ metadata = {'SLOT': portdb.aux_get(cpv, ['SLOT'])[0]}
except KeyError:
# masked by corruption
continue
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-07-12 21:15 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-07-12 21:15 UTC (permalink / raw
To: gentoo-commits
commit: 65233c901564bdc33d220bd5210d6701bc18c61c
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 12 19:14:41 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Tue Jul 12 19:14:43 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=65233c90
scripts/gen_archlist.py: don't insert useless newlines when CHECK_DEPS
* If blocks of cpv-kw lists have just one item in them, don't separate them with
newline. This avoids tons of useless space in the output.
* This code is surprisingly fragile...
---
scripts/gen_archlist.py | 11 ++++++++++-
1 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/scripts/gen_archlist.py b/scripts/gen_archlist.py
index e53f9cc..ffef7eb 100755
--- a/scripts/gen_archlist.py
+++ b/scripts/gen_archlist.py
@@ -390,6 +390,7 @@ def prettify(cpv_kws):
max_len = 0
kws_all = []
pretty_list = []
+ cpv_block_size = 0
for each in cpv_kws:
# Ignore comments/whitespace carried over from original list
@@ -405,10 +406,18 @@ def prettify(cpv_kws):
kws_all.sort()
for each in cpv_kws:
- # Ignore comments/whitespace carried over from original list
+ # Handle comments/whitespace carried over from original list
if type(each) is not list:
+ # If the prev cpv block has just one line, don't print an extra \n
+ # XXX: This code relies on blocks of dep-cpvs being separated by \n
+ if CHECK_DEPS and cpv_block_size is 1:
+ cpv_block_size = 0
+ continue
pretty_list.append([each, []])
+ cpv_block_size = 0
continue
+ # The size of the current cpv list block
+ cpv_block_size += 1
# Pad the cpvs with space
each[0] += n_sep(max_len - len(each[0]))
for i in range(0, len(kws_all)):
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-05-21 18:38 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-05-21 18:38 UTC (permalink / raw
To: gentoo-commits
commit: 4d25e454daa3bd1925b10e73a9d18f63f355e376
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Sat May 21 18:38:02 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Sat May 21 18:38:02 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=4d25e454
slot_rindex.py: use newstyle exception handling
---
scripts/slot_rindex.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/scripts/slot_rindex.py b/scripts/slot_rindex.py
index 9816942..9098db8 100755
--- a/scripts/slot_rindex.py
+++ b/scripts/slot_rindex.py
@@ -153,7 +153,7 @@ def get_revdeps_rindex(key):
revdeps = set()
try:
rdeps_raw = urllib2.urlopen('/'.join([RINDEX, key])).read().split()
- except urllib2.HTTPError as e:
+ except urllib2.HTTPError, e:
if e.getcode() == 404:
return revdeps
raise
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-05-19 12:35 Gilles Dartiguelongue
0 siblings, 0 replies; 32+ messages in thread
From: Gilles Dartiguelongue @ 2011-05-19 12:35 UTC (permalink / raw
To: gentoo-commits
commit: 219443ba2b992b2a034348192a21bfb95cc97974
Author: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Thu May 19 12:35:01 2011 +0000
Commit: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Thu May 19 12:35:01 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=219443ba
scripts/slot_rindex2.py: use xmatch to match even masked packages
Also matches packages available on another arch only
---
scripts/slot_rindex2.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/scripts/slot_rindex2.py b/scripts/slot_rindex2.py
index c9e4547..121e278 100644
--- a/scripts/slot_rindex2.py
+++ b/scripts/slot_rindex2.py
@@ -26,7 +26,7 @@ def main():
#print(cp)
# Get versions
- cpvrs = portdb.dbapi.match(cp)
+ cpvrs = portdb.dbapi.xmatch('match-all', cp)
# Group by slots
slots = {}
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-04-13 9:57 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-04-13 9:57 UTC (permalink / raw
To: gentoo-commits
commit: 4aa6649d7c53a4eeb89abe245fbda096ff08ef45
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Wed Apr 13 09:50:08 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Wed Apr 13 09:51:28 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=4aa6649d
gst-plugins-bump.py: manifest after every ebuild change
---
scripts/gst-plugins-bump.py | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/scripts/gst-plugins-bump.py b/scripts/gst-plugins-bump.py
index 7a70489..3cd93cd 100755
--- a/scripts/gst-plugins-bump.py
+++ b/scripts/gst-plugins-bump.py
@@ -165,6 +165,7 @@ for cp in cp_all:
eoutput.ebegin("Running cvs add %s" % new_ebuild)
subprocess.check_call('cvs add %s' % new_ebuild, shell=True, stderr=subprocess.PIPE)
eoutput.eend(0)
+ subprocess.check_call('ebuild %s manifest' % new_ebuild, shell=True)
if REMOVE_OBSOLETE:
from obsolete_ebuilds import get_obsolete
print ">>> Removing obsolete ebuilds"
@@ -175,7 +176,7 @@ for cp in cp_all:
eoutput.eend(0)
if os.path.isdir('files'):
print portage.output.red(">>> Package has a files/ directory, please double-check obsolete files")
- subprocess.check_call('ebuild %s manifest' % new_ebuild, shell=True)
+ subprocess.check_call('ebuild %s manifest' % new_ebuild, shell=True)
print ">>> All done with %s!" % cp
gst_cpv_all.append(new_cpv)
print ""
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-04-09 6:29 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-04-09 6:29 UTC (permalink / raw
To: gentoo-commits
commit: c43e76d5cd698d08295e9efa1100d9b56cad903d
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 9 06:22:12 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Sat Apr 9 06:23:26 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=c43e76d5
slot_rindex.py: handle packages with no rdeps properly
---
scripts/slot_rindex.py | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/scripts/slot_rindex.py b/scripts/slot_rindex.py
index f66b599..9816942 100755
--- a/scripts/slot_rindex.py
+++ b/scripts/slot_rindex.py
@@ -151,7 +151,12 @@ def get_revdeps_rindex(key):
import urllib2
RINDEX = "http://tinderbox.dev.gentoo.org/misc/rindex"
revdeps = set()
- rdeps_raw = urllib2.urlopen('/'.join([RINDEX, key])).read().split()
+ try:
+ rdeps_raw = urllib2.urlopen('/'.join([RINDEX, key])).read().split()
+ except urllib2.HTTPError as e:
+ if e.getcode() == 404:
+ return revdeps
+ raise
for i in rdeps_raw:
cpv = i.split(':')[0]
if portage.isvalidatom('='+cpv):
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-28 16:15 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-28 16:15 UTC (permalink / raw
To: gentoo-commits
commit: c35f4ec82c12d0f13c78b97ce9ba53907a520a0a
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 28 16:14:39 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Mon Mar 28 16:14:41 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=c35f4ec8
slot_rindex.py: take care of =cat/pkg-ver* deps
Earlier, categorization was done purely on the basis of the :slot dep.
Now, =cat/pkg-ver* deps are also taken into account while generating the
slot-rdep mapping
---
scripts/slot_rindex.py | 27 ++++++++++++++++++++++++---
1 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/scripts/slot_rindex.py b/scripts/slot_rindex.py
index 3ca50dc..f66b599 100755
--- a/scripts/slot_rindex.py
+++ b/scripts/slot_rindex.py
@@ -122,6 +122,27 @@ def get_deps_both(cpv, depvars=DEPVARS):
dep_cps.add(portage.dep.dep_getkey(dep))
return (dep_cps, dep_strs)
+def get_dep_slot(dep):
+ """
+ If the dep atom contains a slot, return that
+ If the dep atom doesn't contain a slot, but is of the =cat/pkg-ver* type,
+ check which slots each satisfied cpv has, and return that if they're all the
+ same; return None if they're different
+ """
+ # FIXME: Use our own portdb so that we match atoms outside of PORTDIR too
+ slot = portage.dep.dep_getslot(dep)
+ if slot or not dep.startswith('='):
+ return slot
+ cp = portage.dep.dep_getkey(dep)
+ cpvrs = portage.dep.match_from_list(dep, portdb.xmatch('match-all', cp))
+ for cpvr in cpvrs:
+ my_slot = portdb.aux_get(cpvr, ['SLOT'])[0]
+ if slot and my_slot != slot:
+ # omg, one of the slots is different
+ return None
+ slot = my_slot
+ return slot
+
def get_revdeps_rindex(key):
"""
Given a key, returns a reverse-dependency list of that key using the tinderbox rindex
@@ -172,10 +193,10 @@ for rdep in revdeps:
(cps, deps) = get_deps_both(rdep)
if KEY not in cps:
continue
- for cpv in deps:
- if cpv.find(KEY) == -1:
+ for dep in deps:
+ if dep.find(KEY) == -1:
continue
- slot = portage.dep.dep_getslot(cpv)
+ slot = get_dep_slot(dep)
if not slot_rdeps.has_key(slot):
slot_rdeps[slot] = []
slot_rdeps[slot].append(rdep)
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-28 15:04 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-28 15:04 UTC (permalink / raw
To: gentoo-commits
commit: 3f1a22c12e3f6eb71f4df0a0f0bedfec0cde87a8
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 28 15:01:54 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Mon Mar 28 15:02:36 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=3f1a22c1
slot_rindex.py: add option to ignore obsolete ebuilds
---
scripts/slot_rindex.py | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/scripts/slot_rindex.py b/scripts/slot_rindex.py
index c77817f..3ca50dc 100755
--- a/scripts/slot_rindex.py
+++ b/scripts/slot_rindex.py
@@ -33,8 +33,11 @@ if len(sys.argv) < 2:
KEY = sys.argv[1]
PORTAGE_ONLY = False
+IGNORE_OBSOLETE = False
if os.environ.has_key('PORTAGE_ONLY'):
PORTAGE_ONLY = os.environ['PORTAGE_ONLY']
+if os.environ.has_key('IGNORE_OBSOLETE'):
+ IGNORE_OBSOLETE = os.environ['IGNORE_OBSOLETE']
########################
### Output Functions ###
@@ -162,6 +165,10 @@ else:
revdeps = get_revdeps_rindex(KEY)
for rdep in revdeps:
+ if IGNORE_OBSOLETE:
+ from obsolete_ebuilds import get_obsolete
+ if rdep in get_obsolete(portage.pkgsplit(rdep)[0]):
+ continue
(cps, deps) = get_deps_both(rdep)
if KEY not in cps:
continue
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-26 1:58 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-26 1:58 UTC (permalink / raw
To: gentoo-commits
commit: b243ed092dcdc3658ed75b9e1f0d73e7945e3031
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 26 01:40:29 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Sat Mar 26 01:52:13 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=b243ed09
slot_rindex.py: use os.environ to toggle PORTAGE_ONLY
---
scripts/slot_rindex.py | 17 +++++++++++++----
1 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/scripts/slot_rindex.py b/scripts/slot_rindex.py
index 3610813..c77817f 100755
--- a/scripts/slot_rindex.py
+++ b/scripts/slot_rindex.py
@@ -13,6 +13,7 @@
#
import sys
+import os
import os.path as osp
import portage
@@ -32,6 +33,8 @@ if len(sys.argv) < 2:
KEY = sys.argv[1]
PORTAGE_ONLY = False
+if os.environ.has_key('PORTAGE_ONLY'):
+ PORTAGE_ONLY = os.environ['PORTAGE_ONLY']
########################
### Output Functions ###
@@ -119,27 +122,33 @@ def get_deps_both(cpv, depvars=DEPVARS):
def get_revdeps_rindex(key):
"""
Given a key, returns a reverse-dependency list of that key using the tinderbox rindex
+ list will be a sorted list of unique cpvs
"""
import urllib2
RINDEX = "http://tinderbox.dev.gentoo.org/misc/rindex"
- revdeps = []
+ revdeps = set()
rdeps_raw = urllib2.urlopen('/'.join([RINDEX, key])).read().split()
for i in rdeps_raw:
cpv = i.split(':')[0]
if portage.isvalidatom('='+cpv):
- revdeps.append(cpv)
+ revdeps.add(cpv)
+ revdeps = list(revdeps)
+ revdeps.sort()
return revdeps
def get_revdeps_portage(key):
"""
Given a key, returns a reverse-dependency list of that key using portage API
+ list will be a sorted list of unique cpvs
"""
- revdeps = []
+ revdeps = set()
for cp in portdb.cp_all():
cpvrs = portdb.xmatch('match-all', cp)
for cpvr in cpvrs:
if key in get_deps_both(cpvr)[0]:
- revdeps.append(cpvr)
+ revdeps.add(cpvr)
+ revdeps = list(revdeps)
+ revdeps.sort()
return revdeps
###################
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-23 21:59 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-23 21:59 UTC (permalink / raw
To: gentoo-commits
commit: 5ea970fbdfa52f7e9f5a222ad99bfb228b57330f
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 23 21:55:21 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Wed Mar 23 21:59:03 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=5ea970fb
gir-rebuilder.py: add a --force option, use EOutput, fix small bugs
* Add --force to force rebuilding of all .girs
* Use EOutput and spinners to display status
* Fix a bug where an installed package was no longer in portage
* Use vartree dbapi for *all* API access
---
scripts/gir-rebuilder.py | 63 +++++++++++++++++++++++++++++----------------
1 files changed, 40 insertions(+), 23 deletions(-)
diff --git a/scripts/gir-rebuilder.py b/scripts/gir-rebuilder.py
index 6cecd59..db6458f 100755
--- a/scripts/gir-rebuilder.py
+++ b/scripts/gir-rebuilder.py
@@ -17,31 +17,37 @@ from xml.dom import minidom as dom
import portage
from portage.versions import vercmp
-from portage.output import colorize
+from portage.output import EOutput
+from _emerge.stdout_spinner import stdout_spinner
###############
## Variables ##
###############
quiet = False
+force = False
root = '/'
gir_dirs = ['/usr/share/gir-1.0']
girs = {}
girversion = ''
gi = 'gobject-introspection'
settings = portage.settings
+eoutput = EOutput()
+spinner = stdout_spinner()
###############
## Functions ##
###############
def usage():
- print """
-gir-rebuilder: Rebuilds gobject-introspection typelibs and girs in the following directories:
+ print """gir-rebuilder: Rebuilds gobject-introspection typelibs and girs in the following directories:
%s
-Usage: %s [ARGUMENTS TO EMERGE]
+Usage: %s [--force] [ARGUMENTS TO EMERGE]
Arguments:
- All arguments are passed to portage
+ --help This text
+ --force Force rebuilding of *all* girs and typelibs
+
+ All other arguments are passed to portage
""" % ('\n '.join(gir_dirs), sys.argv[0])
def get_version(gir):
@@ -51,26 +57,26 @@ def get_contents(cpv):
cpv = portage.catsplit(cpv)
return set(portage.dblink(cpv[0], cpv[1], root, settings).getcontents().keys())
-def print_colorize(color, text):
- print colorize(color, " * ") + text
-
################
## Parse Args ##
################
if '--help' in sys.argv:
usage()
exit(0)
+if '--force' in sys.argv:
+ force = True
+ sys.argv.remove('--force')
##############
## Set vars ##
##############
if os.environ.has_key('ROOT'):
root = os.environ['ROOT']
-portdb = portage.db[root]["vartree"].dbapi
+vardbapi = portage.vardbapi()
# Find the latest g-i
# XXX: Assumes there's only one slot for g-i
-print_colorize("green", "Finding current GIRepository version...")
-gi = portdb.match(gi)[0]
+eoutput.ebegin("Finding current GIRepository version")
+gi = vardbapi.match(gi)[0]
for each in get_contents(gi):
# Find GIRepository-$ver.gir, and get the internal version
if re.match('.*GIRepository[^/]+\.gir$', each):
@@ -79,12 +85,16 @@ for each in get_contents(gi):
else:
raise Exception("GIRepository .gir not found")
girversion = get_version(girepository)
-print_colorize("green", "Current GIRepository version is " + girversion)
+eoutput.eend(0)
+eoutput.einfo("Current GIRepository version is " + girversion)
##########
## Work ##
##########
-print_colorize("green", "Finding broken GIR files...")
+if force:
+ eoutput.ebegin("Finding GIR files")
+else:
+ eoutput.ebegin("Finding broken GIR files")
files_list = set()
for dir in gir_dirs:
# Walk the gir directories to find files
@@ -92,38 +102,45 @@ for dir in gir_dirs:
for f in files:
if not f.endswith('.gir'):
continue
+ if force:
+ files_list.add(osp.join(path, f))
+ continue
+ spinner.update()
# Get the .gir version
version = get_version(osp.join(path, f))
# If not the same version as GIRepository.gir, rebuild it
if vercmp(girversion, version) != 0:
- print_colorize("yellow", "GIR file to be rebuilt: " + \
+ eoutput.ewarn("GIR file to be rebuilt: " + \
osp.join(path, f))
files_list.add(osp.join(path, f))
+eoutput.eend(0)
# FIXME: Doesn't warn if it was unable to assign a file to a package
rebuild_list = set()
if files_list:
- print_colorize("green", "Assigning files to packages...")
+ eoutput.ebegin("Assigning files to packages")
files_assigned = set()
- for cpv in portage.db[root]["vartree"].dbapi.cpv_all():
+ for cpv in vardbapi.cpv_all():
+ spinner.update()
# If some of the files of this package are in the gir file list
files_owned = get_contents(cpv).intersection(files_list)
if files_owned:
- files_assigned.add(files_owned)
- slot = portage.portdb.aux_get(cpv, ['SLOT'])[0]
+ files_assigned.update(files_owned)
+ slot = vardbapi.aux_get(cpv, ['SLOT'])[0]
# We strip the version, but maintain the slot (same as revdep-rebuild)
rebuild_list.add(portage.pkgsplit(cpv)[0]+':'+slot)
files_unassigned = files_list.symmetric_difference(files_assigned)
if files_unassigned:
for file in files_unassigned:
- print_colorize("yellow", "Unable to assign file to package: " + \
+ eoutput.ewarn("Unable to assign file to package: " + \
osp.join(path, file))
+eoutput.eend(0)
if files_list and rebuild_list:
- print_colorize("green", "All done, starting rebuild...")
- command = "emerge -1 " + '\n'.join(sys.argv[1:]+list(rebuild_list))
+ eoutput.einfo("All done, starting rebuild")
+ command = "emerge --oneshot " + ' \\\n'.join(sys.argv[1:]+list(rebuild_list))
print command
# Run emerge
- subprocess.check_call(command, shell=True)
+ subprocess.call(command, shell=True)
else:
- print_colorize("green", "Everything seems to be in order, nothing to be rebuilt")
+ eoutput.einfo("Everything seems to be in order, nothing to be rebuilt")
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-23 21:59 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-23 21:59 UTC (permalink / raw
To: gentoo-commits
commit: 2af0175847b6b8d097e7e3dbbe11228c724eaaf4
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 23 12:54:16 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Wed Mar 23 21:59:03 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=2af01758
slot_rindex.py: add slower portage-only mode, reorganize code
* Set PORTAGE_ONLY to True to use the slower code
* It's about 5x slower on hot cache
---
scripts/slot_rindex.py | 123 ++++++++++++++++++++++++++++++++---------------
1 files changed, 84 insertions(+), 39 deletions(-)
diff --git a/scripts/slot_rindex.py b/scripts/slot_rindex.py
index bf5f834..3610813 100755
--- a/scripts/slot_rindex.py
+++ b/scripts/slot_rindex.py
@@ -11,26 +11,31 @@
# Currently prints out a list of revdeps which *don't* use a slot in the
# dependency atom containing the given library
#
-# TODO: Add a slower portage-only mode which calculates the required rindex
-#
import sys
-import urllib2
import os.path as osp
import portage
from portage.xml.metadata import MetaDataXML
+portdb = portage.portdb
+portdb.porttrees = [portage.settings['PORTDIR']]
+PORTDIR = portage.settings['PORTDIR']
+DEPVARS = ['RDEPEND', 'PDEPEND', 'DEPEND']
+
+#####################
+### Configuration ###
+#####################
if len(sys.argv) < 2:
print "Usage: %s <cat/pkg>" % sys.argv[0]
sys.exit(1)
-portage.portdb.porttrees = [portage.settings['PORTDIR']]
-PORTDIR = portage.settings['PORTDIR']
-RINDEX = "http://tinderbox.dev.gentoo.org/misc/rindex"
-DEPSTR = ['RDEPEND', 'PDEPEND', 'DEPEND']
KEY = sys.argv[1]
+PORTAGE_ONLY = False
+########################
+### Output Functions ###
+########################
def get_herds():
return osp.join(PORTDIR, 'metadata', 'herds.xml')
@@ -50,7 +55,9 @@ def rdeps_with_slot(slot_rdeps, slot=None):
if not slot_rdeps.has_key(slot):
# No rdeps using the given slot
return
+ print "-------------------------------"
print "All packages:"
+ print "-------------------------------"
for pkg in slot_rdeps[slot]:
pkg_md = MetaDataXML(get_md_path(pkg), get_herds())
for herd in pkg_md.herds():
@@ -69,54 +76,92 @@ def rdeps_with_slot(slot_rdeps, slot=None):
print '%s' % i.email,
print
+ print "-------------------------------"
print "Herd packages:"
+ print "-------------------------------"
for (herd, pkgs) in pkg_herds.iteritems():
print 'Herd: %s' % herd
for pkg in pkgs:
print '\t%s' % pkg
+ print "-------------------------------"
print "Maintainer packages:"
+ print "-------------------------------"
for (maint, pkgs) in pkg_maints.iteritems():
print 'Maintainer: %s' % maint
for pkg in pkgs:
print '\t%s' % pkg
+#############################
+### Portage API Functions ###
+#############################
+def get_deps_both(cpv, depvars=DEPVARS):
+ """
+ Parses the dependency variables listed in depvars for cpv
-vrdeps = urllib2.urlopen('/'.join([RINDEX, KEY])).read().split()
-rdeps = []
-for i in vrdeps:
- rdeps.append(i.split(':')[0])
-
-slot_rdeps = {}
-failed_rdeps = []
-for rdep in rdeps:
- rdep = rdep.split(':')[0]
- if not portage.isvalidatom('='+rdep):
- print 'Invalid atom: ' + rdep
- continue
+ returns (set(dep_cps), set(dep_strs))
+ """
+ dep_cps = set()
+ dep_strs = set()
+ raw_deps = []
try:
- temp = portage.portdb.aux_get(rdep, DEPSTR)[0].split()
+ raw_deps = portdb.aux_get(cpv, depvars)[0].split()
except KeyError:
- failed_rdeps.append(rdep)
+ return (dep_cps, dep_strs)
+ for dep in portage.dep.use_reduce(' '.join(raw_deps),
+ matchall=True, flat=True):
+ # Ignore blockers, etc
+ if portage.isvalidatom(dep):
+ dep_strs.add(dep)
+ dep_cps.add(portage.dep.dep_getkey(dep))
+ return (dep_cps, dep_strs)
+
+def get_revdeps_rindex(key):
+ """
+ Given a key, returns a reverse-dependency list of that key using the tinderbox rindex
+ """
+ import urllib2
+ RINDEX = "http://tinderbox.dev.gentoo.org/misc/rindex"
+ revdeps = []
+ rdeps_raw = urllib2.urlopen('/'.join([RINDEX, key])).read().split()
+ for i in rdeps_raw:
+ cpv = i.split(':')[0]
+ if portage.isvalidatom('='+cpv):
+ revdeps.append(cpv)
+ return revdeps
+
+def get_revdeps_portage(key):
+ """
+ Given a key, returns a reverse-dependency list of that key using portage API
+ """
+ revdeps = []
+ for cp in portdb.cp_all():
+ cpvrs = portdb.xmatch('match-all', cp)
+ for cpvr in cpvrs:
+ if key in get_deps_both(cpvr)[0]:
+ revdeps.append(cpvr)
+ return revdeps
+
+###################
+### Actual Work ###
+###################
+slot_rdeps = {}
+revdeps = []
+if PORTAGE_ONLY:
+ revdeps = get_revdeps_portage(KEY)
+else:
+ revdeps = get_revdeps_rindex(KEY)
+
+for rdep in revdeps:
+ (cps, deps) = get_deps_both(rdep)
+ if KEY not in cps:
continue
- for dep in temp:
- # Ignore ||, (, ), etc.
- if not portage.isvalidatom(dep):
+ for cpv in deps:
+ if cpv.find(KEY) == -1:
continue
- # Categorize the dep into the slot it uses
- if portage.dep.dep_getkey(dep) == KEY:
- slot = portage.dep.dep_getslot(dep)
- if not slot_rdeps.has_key(slot):
- # We use a set here because atoms often get repeated
- slot_rdeps[slot] = set()
- slot_rdeps[slot].add(rdep)
-
-# Convert back to list, and sort the atoms
-for slot in slot_rdeps.keys():
- slot_rdeps[slot] = list(slot_rdeps[slot])
- slot_rdeps[slot].sort()
-
-if failed_rdeps:
- print 'Failed: ' + str(failed_rdeps)
+ slot = portage.dep.dep_getslot(cpv)
+ if not slot_rdeps.has_key(slot):
+ slot_rdeps[slot] = []
+ slot_rdeps[slot].append(rdep)
rdeps_with_slot(slot_rdeps)
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-23 21:59 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-23 21:59 UTC (permalink / raw
To: gentoo-commits
commit: f060e709b2bef5594f458979f8e3a48d0b8cf94a
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 23 10:40:15 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Wed Mar 23 21:59:03 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=f060e709
scripts/obsolete_ebuilds.py: support '.' as an argument
---
scripts/obsolete_ebuilds.py | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/scripts/obsolete_ebuilds.py b/scripts/obsolete_ebuilds.py
index 558c2d4..4413cf9 100755
--- a/scripts/obsolete_ebuilds.py
+++ b/scripts/obsolete_ebuilds.py
@@ -8,6 +8,7 @@
# based on the current keywords
#
+import os
import sys
import portage
@@ -124,5 +125,7 @@ if __name__ == "__main__":
if len(sys.argv) < 2:
usage()
sys.exit(1)
+ if sys.argv[1] == '.':
+ sys.argv[1] = '/'.join((os.path.basename(os.path.dirname(os.getcwd())), os.path.basename(os.getcwd())))
for i in get_obsolete(sys.argv[1]):
print portage.catsplit(i)[-1]+'.ebuild',
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-23 19:21 Gilles Dartiguelongue
0 siblings, 0 replies; 32+ messages in thread
From: Gilles Dartiguelongue @ 2011-03-23 19:21 UTC (permalink / raw
To: gentoo-commits
commit: 00b129cfbdea7536a2823563531799d62cd20bb9
Author: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 23 19:20:55 2011 +0000
Commit: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Wed Mar 23 19:20:55 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=00b129cf
scripts/slot_rindex2.py: show atom used in ebuild
---
scripts/slot_rindex2.py | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/scripts/slot_rindex2.py b/scripts/slot_rindex2.py
index e3db2fc..c9e4547 100644
--- a/scripts/slot_rindex2.py
+++ b/scripts/slot_rindex2.py
@@ -55,15 +55,15 @@ def main():
mypkg_slot = "unset"
if mypkg_slot not in res_slots:
- res_slots[mypkg_slot] = [cpvr]
+ res_slots[mypkg_slot] = [(cpvr, depend)]
else:
- res_slots[mypkg_slot].append(cpvr)
+ res_slots[mypkg_slot].append((cpvr, depend))
#print(portage.dep.dep_getkey(depend) + ' uses ' + sys.argv[1] + ' slot ' + portage.dep.dep_getslot(depend))
for slot in sorted(res_slots):
print('%s:%s' % (sys.argv[1], slot))
for rescpv in res_slots[slot]:
- print(' ' + rescpv)
+ print(' %s (as %s)' % rescpv)
if __name__ == "__main__":
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-23 10:39 Gilles Dartiguelongue
0 siblings, 0 replies; 32+ messages in thread
From: Gilles Dartiguelongue @ 2011-03-23 10:39 UTC (permalink / raw
To: gentoo-commits
commit: 8bb3e59a8c562be082a926bc3bdb7deddd183f3f
Author: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 23 10:38:12 2011 +0000
Commit: Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Wed Mar 23 10:38:48 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=8bb3e59a
scripts: add slot_rindex2.py
---
scripts/slot_rindex2.py | 72 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 72 insertions(+), 0 deletions(-)
diff --git a/scripts/slot_rindex2.py b/scripts/slot_rindex2.py
new file mode 100644
index 0000000..e3db2fc
--- /dev/null
+++ b/scripts/slot_rindex2.py
@@ -0,0 +1,72 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+
+""" Checks what slots are used for a package in its reverse dependencies. """
+
+import portage
+
+import sys
+#from pprint import pprint
+
+def main():
+ trees = portage.create_trees()
+ trees["/"]["porttree"].settings = portage.settings
+ portdb = trees["/"]["porttree"]
+ portdb.dbapi.settings = portage.settings
+ portdb.dbapi.porttrees = [portage.portdb.porttree_root]
+
+ # does it make sense to remove _all_ useless stuff or just leave it as it is?
+ #portdb.dbapi._aux_cache_keys.clear()
+ #portdb.dbapi._aux_cache_keys.update(["EAPI", "KEYWORDS", "SLOT"])
+
+ res_slots = {}
+
+ # Loop through all package names
+ for cp in portdb.dbapi.cp_all():
+ #print(cp)
+
+ # Get versions
+ cpvrs = portdb.dbapi.match(cp)
+
+ # Group by slots
+ slots = {}
+ for cpvr in cpvrs:
+ slot = portdb.dbapi.aux_get(cpvr, ["SLOT"])[0]
+ if slot is None:
+ slot = 0
+ if not slot in slots:
+ slots[slot] = []
+ slots[slot].append(cpvr)
+
+ # XXX: Walk through slots (walk twice for ~arch and arch)
+ for slot in sorted(slots):
+ cpvr = portage.versions.best(slots[slot])
+ depends = portdb.dbapi.aux_get(cpvr, ['DEPEND', 'RDEPEND', 'PDEPEND'])
+ depends = set(portage.dep.use_reduce(' '.join(depends), matchall=True, flat=True))
+ depends = [dep for dep in depends if portage.dep.isvalidatom(dep)]
+
+ #print('DEPEND:')
+ #pprint(depends)
+
+ for depend in depends:
+ if portage.dep.dep_getkey(depend) == sys.argv[1]:
+ mypkg_slot = portage.dep.dep_getslot(depend)
+ if mypkg_slot is None:
+ mypkg_slot = "unset"
+
+ if mypkg_slot not in res_slots:
+ res_slots[mypkg_slot] = [cpvr]
+ else:
+ res_slots[mypkg_slot].append(cpvr)
+ #print(portage.dep.dep_getkey(depend) + ' uses ' + sys.argv[1] + ' slot ' + portage.dep.dep_getslot(depend))
+
+ for slot in sorted(res_slots):
+ print('%s:%s' % (sys.argv[1], slot))
+ for rescpv in res_slots[slot]:
+ print(' ' + rescpv)
+
+
+if __name__ == "__main__":
+ main()
+
+## vim:set sts=4 ts=4 sw=4 expandtab:
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-20 8:11 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-20 8:11 UTC (permalink / raw
To: gentoo-commits
commit: 4a42aeaf88adc0d5723b85f00c623fc5022e3379
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Sun Mar 20 07:50:41 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Sun Mar 20 07:50:41 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=4a42aeaf
scripts/gst-plugins-bump.py: make manifest the last operation
* So that cvs rm -f doesn't invalidate the manifest
---
scripts/gst-plugins-bump.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/scripts/gst-plugins-bump.py b/scripts/gst-plugins-bump.py
index f53bb66..7a70489 100755
--- a/scripts/gst-plugins-bump.py
+++ b/scripts/gst-plugins-bump.py
@@ -162,7 +162,6 @@ for cp in cp_all:
# 2 if something went wrong
if e.returncode == 2:
raise e
- subprocess.check_call('ebuild %s manifest' % new_ebuild, shell=True)
eoutput.ebegin("Running cvs add %s" % new_ebuild)
subprocess.check_call('cvs add %s' % new_ebuild, shell=True, stderr=subprocess.PIPE)
eoutput.eend(0)
@@ -176,6 +175,7 @@ for cp in cp_all:
eoutput.eend(0)
if os.path.isdir('files'):
print portage.output.red(">>> Package has a files/ directory, please double-check obsolete files")
+ subprocess.check_call('ebuild %s manifest' % new_ebuild, shell=True)
print ">>> All done with %s!" % cp
gst_cpv_all.append(new_cpv)
print ""
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-18 9:59 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-18 9:59 UTC (permalink / raw
To: gentoo-commits
commit: 5b8a707da43d5b4ee7b2642b21c7ec3d3ab60ffd
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 18 09:58:47 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Fri Mar 18 09:58:53 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=5b8a707d
gst-plugins-bump.py: misc small features/fixes
---
scripts/gst-plugins-bump.py | 15 ++++++++++-----
1 files changed, 10 insertions(+), 5 deletions(-)
diff --git a/scripts/gst-plugins-bump.py b/scripts/gst-plugins-bump.py
index e4f18b3..f53bb66 100755
--- a/scripts/gst-plugins-bump.py
+++ b/scripts/gst-plugins-bump.py
@@ -19,7 +19,7 @@ from portage.output import EOutput
def usage():
print "Usage: $0 <base|good|bad|ugly> <version> [core version] [base version]"
print ""
- print " If core/base version is unspecified or blank, it's assumed to be the same"
+ print " If core/base version is unspecified or blank, it will not be changed"
if len(sys.argv) < 3 or len(sys.argv) > 5:
usage()
@@ -51,7 +51,6 @@ portdb.porttrees = [PORTDIR]
GSTPREFIX = 'gst-plugins-'
GSTECLASS = GSTPREFIX + GSTLIB
GSTLIB = 'media-libs/' + GSTPREFIX + GSTLIB
-GSTPLUGIN_CPVS = []
GSTCAT = 'media-plugins'
GSTLIBS = {'media-libs/gstreamer': GSTCOREVER,
'media-libs/gst-plugins-base': GSTBASEVER,
@@ -133,6 +132,7 @@ def isgstplugin(cpv):
# We do this outside the loop so that we get notified while stuff gets cached
eoutput.ebegin("Getting a list of all gst-plugins")
cp_all = portdb.cp_all(categories=[GSTCAT])
+gst_cpv_all = []
eoutput.eend(0)
eoutput.ebegin("Getting the next gst-plugin")
# Does a first-time-expensive xmatch call
@@ -142,11 +142,11 @@ for cp in cp_all:
cpv = get_cpv(cp)
if not isgstplugin(cpv):
continue
+ new_cpv = get_cpv(cp, GSTLIBVER)
print ">>> Current package is %s" % cpv
- GSTPLUGIN_CPVS.append(cpv)
os.chdir(get_ebuild_dir(cpv))
old_ebuild = get_ebuild(cpv)
- new_ebuild = get_ebuild(get_cpv(cp, GSTLIBVER))
+ new_ebuild = get_ebuild(new_cpv)
eoutput.ebegin("Copying %s to %s" % (old_ebuild, new_ebuild))
shutil.copyfile(old_ebuild, new_ebuild)
eoutput.eend(0)
@@ -175,5 +175,10 @@ for cp in cp_all:
subprocess.check_call('cvs rm -f %s' % ebuild, shell=True, stderr=subprocess.PIPE)
eoutput.eend(0)
if os.path.isdir('files'):
- print portage.output.yellow(">>> Package has a files/ directory, please double-check obsolete files")
+ print portage.output.red(">>> Package has a files/ directory, please double-check obsolete files")
print ">>> All done with %s!" % cp
+ gst_cpv_all.append(new_cpv)
+print ""
+print "Here's a list for emerge :-)"
+for cpv in gst_cpv_all:
+ print '=%s' % cpv,
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-18 8:23 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-18 8:23 UTC (permalink / raw
To: gentoo-commits
commit: 5b082265220a2c7fc7b55061916f3d288100560b
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 18 07:28:40 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Fri Mar 18 07:28:40 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=5b082265
scripts/gst-plugins-bump: warn if filesdir exists
* Cosmetic change to obsolete_ebuilds.py
---
scripts/gst-plugins-bump.py | 2 ++
scripts/obsolete_ebuilds.py | 5 ++---
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/scripts/gst-plugins-bump.py b/scripts/gst-plugins-bump.py
index 1d6e5c1..e4f18b3 100755
--- a/scripts/gst-plugins-bump.py
+++ b/scripts/gst-plugins-bump.py
@@ -174,4 +174,6 @@ for cp in cp_all:
eoutput.ebegin("Running cvs rm -f %s" % ebuild)
subprocess.check_call('cvs rm -f %s' % ebuild, shell=True, stderr=subprocess.PIPE)
eoutput.eend(0)
+ if os.path.isdir('files'):
+ print portage.output.yellow(">>> Package has a files/ directory, please double-check obsolete files")
print ">>> All done with %s!" % cp
diff --git a/scripts/obsolete_ebuilds.py b/scripts/obsolete_ebuilds.py
index 23af29c..558c2d4 100755
--- a/scripts/obsolete_ebuilds.py
+++ b/scripts/obsolete_ebuilds.py
@@ -8,12 +8,12 @@
# based on the current keywords
#
+import sys
import portage
def usage():
- print "Usage: $0 <cpv>"
- print ""
+ print "Usage: %s <cpv>" % sys.argv[0]
###############
## Constants ##
@@ -121,7 +121,6 @@ def get_obsolete(cp):
return obsolete_cpvs
if __name__ == "__main__":
- import sys
if len(sys.argv) < 2:
usage()
sys.exit(1)
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-17 17:12 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-17 17:12 UTC (permalink / raw
To: gentoo-commits
commit: aa007a67109846a96f50fc06ca7bcba6d1f32055
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Thu Mar 17 17:04:13 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Thu Mar 17 17:04:13 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=aa007a67
scripts/slot_rindex.py: print nothing if there's no packages
---
scripts/slot_rindex.py | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/scripts/slot_rindex.py b/scripts/slot_rindex.py
index 0612372..bf5f834 100755
--- a/scripts/slot_rindex.py
+++ b/scripts/slot_rindex.py
@@ -45,12 +45,12 @@ def rdeps_with_slot(slot_rdeps, slot=None):
"""
Prints a list of rev-deps which depend on the specified package and slot
"""
- print "All packages:"
pkg_maints = {}
pkg_herds = {}
if not slot_rdeps.has_key(slot):
# No rdeps using the given slot
return
+ print "All packages:"
for pkg in slot_rdeps[slot]:
pkg_md = MetaDataXML(get_md_path(pkg), get_herds())
for herd in pkg_md.herds():
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-15 13:08 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-15 13:08 UTC (permalink / raw
To: gentoo-commits
commit: ae3fc2ce3c9c674bb9fa197a9028ff885bf75fae
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Tue Mar 15 13:08:38 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Tue Mar 15 13:08:38 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=ae3fc2ce
slot_rindex.py: add missing continue
---
scripts/slot_rindex.py | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/scripts/slot_rindex.py b/scripts/slot_rindex.py
index a8308ca..0612372 100755
--- a/scripts/slot_rindex.py
+++ b/scripts/slot_rindex.py
@@ -98,6 +98,7 @@ for rdep in rdeps:
temp = portage.portdb.aux_get(rdep, DEPSTR)[0].split()
except KeyError:
failed_rdeps.append(rdep)
+ continue
for dep in temp:
# Ignore ||, (, ), etc.
if not portage.isvalidatom(dep):
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-14 18:41 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-14 18:41 UTC (permalink / raw
To: gentoo-commits
commit: 05728bccfe889008593f9c5a5f599b0459ce0863
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Mon Mar 14 17:32:39 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Mon Mar 14 17:32:39 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=05728bcc
obsolete_ebuilds.py: find obsolete ebuilds considering each SLOT separately
---
scripts/gst-plugins-bump.py | 2 +-
scripts/obsolete_ebuilds.py | 37 ++++++++++++++++++++++++-------------
2 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/scripts/gst-plugins-bump.py b/scripts/gst-plugins-bump.py
index 4e2e490..1d6e5c1 100755
--- a/scripts/gst-plugins-bump.py
+++ b/scripts/gst-plugins-bump.py
@@ -138,7 +138,7 @@ eoutput.ebegin("Getting the next gst-plugin")
# Does a first-time-expensive xmatch call
cpv = get_cpv(cp_all[0])
eoutput.eend(0)
-for cp in portdb.cp_all(categories=[GSTCAT]):
+for cp in cp_all:
cpv = get_cpv(cp)
if not isgstplugin(cpv):
continue
diff --git a/scripts/obsolete_ebuilds.py b/scripts/obsolete_ebuilds.py
index d4cb6b5..23af29c 100755
--- a/scripts/obsolete_ebuilds.py
+++ b/scripts/obsolete_ebuilds.py
@@ -80,14 +80,14 @@ def get_obsolete(cp):
@param check_kws: Which keywords to check for obsolete ebuilds, both/stable/unstable
@type check_kws: String
"""
- all_cpvs = portdb.xmatch('match-all', cp)
- # Hashtable of unique {kws: cpv} pairs
- all_kws = set()
+ cpvs = portdb.xmatch('match-all', cp)
obsolete_cpvs = []
not_pmasked = []
+ slot_cpvs = {}
+
# This is copied from portage/dbapi/porttree.py:visible()
- # Ignore PORTDIR package.mask cpv
- for cpv in all_cpvs:
+ # Ignore PORTDIR package.masked cpvs
+ for cpv in cpvs:
try:
metadata = {'SLOT': portdb.aux_get(cpv, ['SLOT'])}
except KeyError:
@@ -97,16 +97,27 @@ def get_obsolete(cp):
continue
# We skip the profile check because we don't care about that
not_pmasked.append(cpv)
- # We want the latest cpvs first so that we never mark newer ebuilds as obsolete
+ # We start with the latest cpvs first so that we never mark newer ebuilds as obsolete
not_pmasked.reverse()
+
+ # Generate a slot-sorted hashtable for cpvs
for cpv in not_pmasked:
- kws = set(get_kws(cpv, arches=ALL_ARCHES))
- if cmp_kws(kws, all_kws):
- # Keywords list is unique or better, so add it to the list
- all_kws.update(kws)
- else:
- # Same or worse keywords (unstable and stable) => can be punted
- obsolete_cpvs.append(cpv)
+ slot = portdb.aux_get(cpv, ['SLOT'])[0]
+ if not slot_cpvs.has_key(slot):
+ slot_cpvs[slot] = []
+ slot_cpvs[slot].append(cpv)
+
+ # Consider each slot separately for obsolete-detection
+ for (slot, cpvs) in slot_cpvs.iteritems():
+ all_kws = set()
+ for cpv in cpvs:
+ kws = set(get_kws(cpv, arches=ALL_ARCHES))
+ if cmp_kws(kws, all_kws):
+ # Keywords list is unique or better, so add it to the list
+ all_kws.update(kws)
+ else:
+ # Same or worse keywords (unstable and stable) => can be punted
+ obsolete_cpvs.append(cpv)
return obsolete_cpvs
if __name__ == "__main__":
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-12 20:10 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-12 20:10 UTC (permalink / raw
To: gentoo-commits
commit: 9047508d670f1be0481b9e4b8c133b96214fb54c
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Sat Mar 12 20:07:50 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Sat Mar 12 20:10:31 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=9047508d
scripts/gst-plugins-bump.py: add a script to bump gst-plugins-* packages
* Automatic removal script coming soon
---
scripts/gst-plugins-bump.py | 157 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 157 insertions(+), 0 deletions(-)
diff --git a/scripts/gst-plugins-bump.py b/scripts/gst-plugins-bump.py
new file mode 100755
index 0000000..998f536
--- /dev/null
+++ b/scripts/gst-plugins-bump.py
@@ -0,0 +1,157 @@
+#!/usr/bin/env python2
+# vim: set sts=4 sw=4 et tw=0 :
+#
+# Author(s): Nirbheek Chauhan <nirbheek@gentoo.org>
+# License: MIT
+#
+# Bump gstreamer plugins to the version specified
+# You must have your cvs directory as PORTDIR
+#
+
+import os
+import shutil
+import subprocess
+import sys
+
+import portage
+from portage.output import colorize
+
+def usage():
+ print "Usage: $0 <base|good|bad|ugly> <version> [core version] [base version]"
+ print ""
+ print " If core/base version is unspecified or blank, it's assumed to be the same"
+
+if len(sys.argv) < 3 or len(sys.argv) > 5:
+ usage()
+ sys.exit(1)
+
+###################
+## Configuration ##
+###################
+GSTLIB = sys.argv[1]
+GSTLIBVER = sys.argv[2]
+GSTCOREVER = ''
+GSTBASEVER = ''
+if len(sys.argv) == 5:
+ GSTCOREVER = sys.argv[3]
+ GSTBASEVER = sys.argv[4]
+elif len(sys.argv) == 4:
+ GSTCOREVER = sys.argv[3]
+
+##################
+## Parse Config ##
+##################
+PORTDIR = portage.settings["PORTDIR"]
+portage.portdb.porttrees = [PORTDIR]
+GSTPREFIX = 'gst-plugins-'
+GSTECLASS = GSTPREFIX + GSTLIB
+GSTLIB = 'media-libs/' + GSTPREFIX + GSTLIB
+GSTPLUGIN_CPVS = []
+GSTCAT = 'media-plugins'
+GSTLIBS = {'media-libs/gstreamer': GSTCOREVER,
+ 'media-libs/gst-plugins-base': GSTBASEVER,
+ GSTLIB: GSTLIBVER,}
+
+###############
+## Functions ##
+###############
+def print_colorize(color, text):
+ print colorize(color, " * ") + text
+
+def get_p(pkg):
+ "pkg must contain at least the package name"
+ if not portage.isjustname(pkg):
+ return portage.catpkgsplit(pkg)[1]
+ return portage.catsplit(pkg)[-1]
+
+def get_v(cpv):
+ "cpv can be anything"
+ if portage.isjustname(cpv):
+ raise Exception('Input (%s) has no version!' % cpv)
+ pv = portage.pkgsplit(cpv)[-2:]
+ if pv[1] == 'r0':
+ return pv[0]
+ else:
+ return '%s-%s' % (pv[0], pv[1])
+
+def get_cp(cpv):
+ "cpv must contain package and category"
+ return portage.pkgsplit(cpv)[0]
+
+def get_pv(cpv, ver=None):
+ if not ver:
+ return portage.catsplit(cpv)[-1]
+ else:
+ return get_p(cpv) + '-' + ver
+
+def get_cpv(cp, ver=None):
+ if ver:
+ return '%s-%s' % (cp, ver)
+ else:
+ # Return the latest one instead
+ return portage.portdb.xmatch('match-all', cp)[-1]
+
+def get_ebuild_dir(cpv):
+ return os.path.join(PORTDIR, get_cp(cpv))
+
+def get_ebuild(cpv):
+ return os.path.join(get_pv(cpv)+'.ebuild')
+
+def edit_gstdeps(ebuild):
+ # Editing files is hard, let's just use sed
+ sed_cmd = ''
+ for dep in GSTLIBS.keys():
+ # Ignore if wanted-version is empty
+ if not GSTLIBS[dep]:
+ continue
+ # FIXME: This is an approximate regexp for matching versions
+ old_dep = '%s-[-0-9._rpe]\+' % dep
+ new_dep = '%s-%s' % (dep, GSTLIBS[dep])
+ # We need a space at the end for further appending
+ sed_cmd += '-e "s|%s|%s|g" ' % (old_dep, new_dep)
+ if not sed_cmd:
+ # Nothing to do...
+ return
+ # In-place edit
+ sed_cmd = 'sed %s -i %s' % (sed_cmd, ebuild)
+ subprocess.check_call(sed_cmd, shell=True)
+
+def isgstplugin(cpv):
+ if not cpv.startswith('%s/%s' % (GSTCAT, GSTPREFIX)):
+ return False
+ # Does it inherit GSTECLASS?
+ if not GSTECLASS in portage.portdb.aux_get(cpv, ['INHERITED'])[0].split():
+ return False
+ return True
+
+################
+## Begin Work ##
+################
+
+print_colorize("green", "Getting a list of all gst-plugins ...")
+for cp in portage.portdb.cp_all(categories=[GSTCAT]):
+ cpv = get_cpv(cp)
+ if not isgstplugin(cpv):
+ continue
+ print_colorize("green", "Current package is %s" % cpv)
+ GSTPLUGIN_CPVS.append(cpv)
+ os.chdir(get_ebuild_dir(cpv))
+ old_ebuild = get_ebuild(cpv)
+ new_ebuild = get_ebuild(get_cpv(cp, GSTLIBVER))
+ print_colorize("green", "Copying %s to %s ..." % (old_ebuild, new_ebuild))
+ shutil.copyfile(old_ebuild, new_ebuild)
+ print_colorize("green", "Editing gstreamer deps and keywords. A diff will follow ...")
+ edit_gstdeps(new_ebuild)
+ subprocess.check_call('ekeyword ~all %s' % new_ebuild, shell=True, stdout=subprocess.PIPE)
+ try:
+ subprocess.check_call('diff -u %s %s' % (old_ebuild, new_ebuild), shell=True)
+ except subprocess.CalledProcessError as e:
+ # diff returns:
+ # 0 if files don't differ
+ # 1 if they differ
+ # 2 if something went wrong
+ if e.returncode == 2:
+ raise e
+ subprocess.check_call('ebuild %s manifest' % new_ebuild, shell=True)
+ print_colorize("green", "Running cvs add ...")
+ subprocess.check_call('cvs add %s' % new_ebuild, shell=True)
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-03-04 15:40 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-03-04 15:40 UTC (permalink / raw
To: gentoo-commits
commit: 422cf4a4512baad41a5294f0e65dfd0e0112c99d
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 4 15:40:00 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Fri Mar 4 15:40:00 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=422cf4a4
Add scripts/slot_rindex.py
---
scripts/slot_rindex.py | 121 ++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 121 insertions(+), 0 deletions(-)
diff --git a/scripts/slot_rindex.py b/scripts/slot_rindex.py
new file mode 100755
index 0000000..a8308ca
--- /dev/null
+++ b/scripts/slot_rindex.py
@@ -0,0 +1,121 @@
+#!/usr/bin/env python2
+# vim: set sts=4 sw=4 et :
+#
+# Author(s): Nirbheek Chauhan
+# License: MIT
+#
+# A small script which sorts the revdeps of a given library according to
+# which slot of the given library they depend on. Uses the tinderbox rindex for
+# speed, because of which results may be out of date.
+#
+# Currently prints out a list of revdeps which *don't* use a slot in the
+# dependency atom containing the given library
+#
+# TODO: Add a slower portage-only mode which calculates the required rindex
+#
+
+import sys
+import urllib2
+import os.path as osp
+
+import portage
+from portage.xml.metadata import MetaDataXML
+
+if len(sys.argv) < 2:
+ print "Usage: %s <cat/pkg>" % sys.argv[0]
+ sys.exit(1)
+
+portage.portdb.porttrees = [portage.settings['PORTDIR']]
+PORTDIR = portage.settings['PORTDIR']
+RINDEX = "http://tinderbox.dev.gentoo.org/misc/rindex"
+DEPSTR = ['RDEPEND', 'PDEPEND', 'DEPEND']
+KEY = sys.argv[1]
+
+def get_herds():
+ return osp.join(PORTDIR, 'metadata', 'herds.xml')
+
+def get_md_path(cpv):
+ """
+ x11-libs/gtk+-2.22.0-r1 -> <portdir>/x11-libs/gtk+/metadata.xml
+ """
+ path = osp.join(*portage.catpkgsplit(cpv)[0:2])
+ return osp.join(PORTDIR, path, 'metadata.xml')
+
+def rdeps_with_slot(slot_rdeps, slot=None):
+ """
+ Prints a list of rev-deps which depend on the specified package and slot
+ """
+ print "All packages:"
+ pkg_maints = {}
+ pkg_herds = {}
+ if not slot_rdeps.has_key(slot):
+ # No rdeps using the given slot
+ return
+ for pkg in slot_rdeps[slot]:
+ pkg_md = MetaDataXML(get_md_path(pkg), get_herds())
+ for herd in pkg_md.herds():
+ if not pkg_herds.has_key(herd):
+ pkg_herds[herd] = []
+ pkg_herds[herd].append(pkg)
+ for maint in pkg_md.maintainers():
+ if not pkg_maints.has_key(maint.email):
+ pkg_maints[maint.email] = []
+ pkg_maints[maint.email].append(pkg)
+ print '\t%s\therds: ' % pkg,
+ for i in pkg_md.herds():
+ print '%s' % i,
+ print '\tmaintainers: ',
+ for i in pkg_md.maintainers():
+ print '%s' % i.email,
+ print
+
+ print "Herd packages:"
+ for (herd, pkgs) in pkg_herds.iteritems():
+ print 'Herd: %s' % herd
+ for pkg in pkgs:
+ print '\t%s' % pkg
+
+ print "Maintainer packages:"
+ for (maint, pkgs) in pkg_maints.iteritems():
+ print 'Maintainer: %s' % maint
+ for pkg in pkgs:
+ print '\t%s' % pkg
+
+
+vrdeps = urllib2.urlopen('/'.join([RINDEX, KEY])).read().split()
+rdeps = []
+for i in vrdeps:
+ rdeps.append(i.split(':')[0])
+
+slot_rdeps = {}
+failed_rdeps = []
+for rdep in rdeps:
+ rdep = rdep.split(':')[0]
+ if not portage.isvalidatom('='+rdep):
+ print 'Invalid atom: ' + rdep
+ continue
+ try:
+ temp = portage.portdb.aux_get(rdep, DEPSTR)[0].split()
+ except KeyError:
+ failed_rdeps.append(rdep)
+ for dep in temp:
+ # Ignore ||, (, ), etc.
+ if not portage.isvalidatom(dep):
+ continue
+ # Categorize the dep into the slot it uses
+ if portage.dep.dep_getkey(dep) == KEY:
+ slot = portage.dep.dep_getslot(dep)
+ if not slot_rdeps.has_key(slot):
+ # We use a set here because atoms often get repeated
+ slot_rdeps[slot] = set()
+ slot_rdeps[slot].add(rdep)
+
+# Convert back to list, and sort the atoms
+for slot in slot_rdeps.keys():
+ slot_rdeps[slot] = list(slot_rdeps[slot])
+ slot_rdeps[slot].sort()
+
+if failed_rdeps:
+ print 'Failed: ' + str(failed_rdeps)
+
+rdeps_with_slot(slot_rdeps)
^ permalink raw reply related [flat|nested] 32+ messages in thread
* [gentoo-commits] proj/gnome:master commit in: scripts/
@ 2011-02-18 4:40 Nirbheek Chauhan
0 siblings, 0 replies; 32+ messages in thread
From: Nirbheek Chauhan @ 2011-02-18 4:40 UTC (permalink / raw
To: gentoo-commits
commit: e8f8248dc43016a4ba518ad8bca716861f822065
Author: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
AuthorDate: Fri Feb 18 03:48:04 2011 +0000
Commit: Nirbheek Chauhan <nirbheek <AT> gentoo <DOT> org>
CommitDate: Fri Feb 18 03:48:28 2011 +0000
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=e8f8248d
scripts: fix shebang to use python2
---
scripts/bump-to-latest.py | 2 +-
scripts/find-keywordreq.py | 2 +-
scripts/gen_archlist.py | 2 +-
scripts/gir-rebuilder.py | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/scripts/bump-to-latest.py b/scripts/bump-to-latest.py
index 4eab4fd..acd4587 100755
--- a/scripts/bump-to-latest.py
+++ b/scripts/bump-to-latest.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
# vim: set sw=4 sts=4 et :
# Author(s): Nirbheek Chauhan <nirbheek@gentoo.org>
#
diff --git a/scripts/find-keywordreq.py b/scripts/find-keywordreq.py
index 7f319f6..6b991a4 100644
--- a/scripts/find-keywordreq.py
+++ b/scripts/find-keywordreq.py
@@ -1,4 +1,4 @@
-#!/usr/bin/python
+#!/usr/bin/env python2
""" Helper module to print a list of needed keywords provided a list of cpv.
diff --git a/scripts/gen_archlist.py b/scripts/gen_archlist.py
index 2b68785..5d9dee5 100755
--- a/scripts/gen_archlist.py
+++ b/scripts/gen_archlist.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
# vim: set sw=4 sts=4 et :
# Author(s): Nirbheek Chauhan <nirbheek@gentoo.org>
#
diff --git a/scripts/gir-rebuilder.py b/scripts/gir-rebuilder.py
index 7d4efd5..6cecd59 100755
--- a/scripts/gir-rebuilder.py
+++ b/scripts/gir-rebuilder.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2
# vim: set sts=4 sw=4 et tw=90 :
#
# Author(s): Nirbheek Chauhan <nirbheek@gentoo.org>
^ permalink raw reply related [flat|nested] 32+ messages in thread
end of thread, other threads:[~2020-04-03 19:42 UTC | newest]
Thread overview: 32+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-04-01 21:14 [gentoo-commits] proj/gnome:master commit in: scripts/ Nirbheek Chauhan
-- strict thread matches above, loose matches on Subject: below --
2020-04-03 19:42 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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox