Gentoo Archives: gentoo-commits

From: Tomas Chvatal <scarabeus@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/qa-scripts:master commit in: /
Date: Tue, 29 Mar 2011 17:27:00
Message-Id: d2d5ab9df7c6e8b5784e78f52747c7a7f13310cc.scarabeus@gentoo
1 commit: d2d5ab9df7c6e8b5784e78f52747c7a7f13310cc
2 Author: Tomas Chvatal <scarabeus <AT> gentoo <DOT> org>
3 AuthorDate: Tue Mar 29 17:24:29 2011 +0000
4 Commit: Tomas Chvatal <scarabeus <AT> gentoo <DOT> org>
5 CommitDate: Tue Mar 29 17:24:29 2011 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/qa-scripts.git;a=commit;h=d2d5ab9d
7
8 Add Zac's script for scanning old dependencies.
9
10 ---
11 scan-for-old-deps.py | 41 +++++++++++++++++++++++++++++++++++++++++
12 1 files changed, 41 insertions(+), 0 deletions(-)
13
14 diff --git a/scan-for-old-deps.py b/scan-for-old-deps.py
15 new file mode 100755
16 index 0000000..5981a8a
17 --- /dev/null
18 +++ b/scan-for-old-deps.py
19 @@ -0,0 +1,41 @@
20 +#!/usr/bin/env python
21 +
22 +import os
23 +import sys
24 +import portage
25 +
26 +if len(sys.argv) != 2 or not portage.isvalidatom(sys.argv[1]):
27 + sys.stderr.write("usage: %s <atom>\n" % os.path.basename(sys.argv[0]))
28 + sys.exit(1)
29 +
30 +input_atom = portage.dep.Atom(sys.argv[1])
31 +settings = portage.config(config_profile_path="",
32 + local_config=False)
33 +settings["ACCEPT_KEYWORDS"] = "**"
34 +settings.backup_changes("ACCEPT_KEYWORDS")
35 +settings.lock()
36 +porttree = portage.portagetree(settings=settings)
37 +portdb = porttree.dbapi
38 +trees = {"/" : {"porttree":porttree}}
39 +dep_keys = ("DEPEND", "RDEPEND", "PDEPEND")
40 +
41 +for cp in portdb.cp_all():
42 + for cpv in portdb.cp_list(cp):
43 + metadata = dict(zip(dep_keys,
44 + portdb.aux_get(cpv, dep_keys)))
45 + dep_str = " ".join(metadata[k] for k in dep_keys)
46 + success, atoms = portage.dep_check(dep_str,
47 + None, settings, use="all",
48 + trees=trees, myroot=settings["ROOT"])
49 +
50 + if not success:
51 + sys.stderr.write("%s %s\n" % (cpv, atoms))
52 + else:
53 + bad_atoms = []
54 + for atom in atoms:
55 + if not atom.blocker and atom.cp == input_atom.cp:
56 + matches = portdb.xmatch("match-all", atom)
57 + if not portage.dep.match_from_list(input_atom, matches):
58 + bad_atoms.append(atom)
59 + if bad_atoms:
60 + sys.stdout.write("%s\t%s\n" % (cpv, " ".join(bad_atoms)))