aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Chvatal <scarabeus@gentoo.org>2011-03-29 19:24:29 +0200
committerTomas Chvatal <scarabeus@gentoo.org>2011-03-29 19:24:29 +0200
commitd2d5ab9df7c6e8b5784e78f52747c7a7f13310cc (patch)
tree9e86ea64431c972134bd2070f7f64448a071a931 /scan-for-old-deps.py
parentindex: Add link to EAPI usage (diff)
downloadqa-scripts-d2d5ab9df7c6e8b5784e78f52747c7a7f13310cc.tar.gz
qa-scripts-d2d5ab9df7c6e8b5784e78f52747c7a7f13310cc.tar.bz2
qa-scripts-d2d5ab9df7c6e8b5784e78f52747c7a7f13310cc.zip
Add Zac's script for scanning old dependencies.
Diffstat (limited to 'scan-for-old-deps.py')
-rwxr-xr-xscan-for-old-deps.py41
1 files changed, 41 insertions, 0 deletions
diff --git a/scan-for-old-deps.py b/scan-for-old-deps.py
new file mode 100755
index 0000000..5981a8a
--- /dev/null
+++ b/scan-for-old-deps.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+
+import os
+import sys
+import portage
+
+if len(sys.argv) != 2 or not portage.isvalidatom(sys.argv[1]):
+ sys.stderr.write("usage: %s <atom>\n" % os.path.basename(sys.argv[0]))
+ sys.exit(1)
+
+input_atom = portage.dep.Atom(sys.argv[1])
+settings = portage.config(config_profile_path="",
+ local_config=False)
+settings["ACCEPT_KEYWORDS"] = "**"
+settings.backup_changes("ACCEPT_KEYWORDS")
+settings.lock()
+porttree = portage.portagetree(settings=settings)
+portdb = porttree.dbapi
+trees = {"/" : {"porttree":porttree}}
+dep_keys = ("DEPEND", "RDEPEND", "PDEPEND")
+
+for cp in portdb.cp_all():
+ for cpv in portdb.cp_list(cp):
+ metadata = dict(zip(dep_keys,
+ portdb.aux_get(cpv, dep_keys)))
+ dep_str = " ".join(metadata[k] for k in dep_keys)
+ success, atoms = portage.dep_check(dep_str,
+ None, settings, use="all",
+ trees=trees, myroot=settings["ROOT"])
+
+ if not success:
+ sys.stderr.write("%s %s\n" % (cpv, atoms))
+ else:
+ bad_atoms = []
+ for atom in atoms:
+ if not atom.blocker and atom.cp == input_atom.cp:
+ matches = portdb.xmatch("match-all", atom)
+ if not portage.dep.match_from_list(input_atom, matches):
+ bad_atoms.append(atom)
+ if bad_atoms:
+ sys.stdout.write("%s\t%s\n" % (cpv, " ".join(bad_atoms)))