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))) |