2007-03-27 21:59:13 +10:00
|
|
|
#!/usr/bin/python
|
2007-08-04 13:52:30 +02:00
|
|
|
# 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.
|
2007-03-27 21:59:13 +10:00
|
|
|
|
|
|
|
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)]
|
|
|
|
|
|
|
|
|