diff options
author | Tomas Chvatal <scarabeus@gentoo.org> | 2011-03-29 19:24:29 +0200 |
---|---|---|
committer | Tomas Chvatal <scarabeus@gentoo.org> | 2011-03-29 19:24:29 +0200 |
commit | d2d5ab9df7c6e8b5784e78f52747c7a7f13310cc (patch) | |
tree | 9e86ea64431c972134bd2070f7f64448a071a931 /scan-for-old-deps.py | |
parent | index: Add link to EAPI usage (diff) | |
download | qa-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-x | scan-for-old-deps.py | 41 |
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))) |