#!/usr/bin/python # The author of this script is unknown # License: Public Domain # # This script is used to check in what components ("main", "restricted", # "universe" or "multiverse") the dependencies of a package are. import subprocess import sys packages={} def find_main(pack, version): global packages mad = subprocess.Popen(['apt-cache madison '+pack], shell=True, stdout=subprocess.PIPE) out = mad.stdout.read() if out.find("/main")!=-1 or out.find("http")==-1: packages[(pack)]="In main" return else: if not packages.has_key(pack): packages[(pack)]="Not in main" test = subprocess.Popen(['apt-cache show '+pack], shell=True, stdout=subprocess.PIPE) deps = [] for j in test.stdout.readlines(): if j.startswith("Depend"): deps = j.strip("\n").strip("Depends: ").split(",") depse = [] for p in deps: a = p.split("|") for k in a: depse.append(k) for i in depse: info=i.strip(") ").split("(") if len(info) == 2: version = info[1].strip(" ") name = info[0].strip(" ") if not packages.has_key(name): find_main(name, version) test = subprocess.Popen(['apt-cache showsrc '+pack], shell=True, stdout=subprocess.PIPE) deps = [] for j in test.stdout.readlines(): if j.startswith("Build-Depend"): deps = j.strip("\n").strip("Build-Depends: ").split(",") depse = [] for p in deps: a = p.split("|") for k in a: depse.append(k) for i in depse: info=i.strip(") ").split("(") if len(info) == 2: version = info[1].strip(" ") name = info[0].strip(" ") if not packages.has_key(name): find_main(name, version) pkg = sys.argv[1] find_main(pkg,0) for j in packages: if packages[(j)] == "Not in main": print j + ": "+packages[(j)]