|
|
|
@ -43,14 +43,19 @@ def flatten(l):
|
|
|
|
|
l[0:1] = l[0]
|
|
|
|
|
if l: yield l.pop(0)
|
|
|
|
|
|
|
|
|
|
# TODO: what about mapping to multiple packets?
|
|
|
|
|
deb2gen = dict()
|
|
|
|
|
gen2deb = dict()
|
|
|
|
|
with open("./deb2gen_mapping.list") as f:
|
|
|
|
|
for line in f:
|
|
|
|
|
d, g = line.strip().split('\t')
|
|
|
|
|
deb2gen[d] = g
|
|
|
|
|
gen2deb[g] = d
|
|
|
|
|
if deb2gen.get(d):
|
|
|
|
|
deb2gen[d].append(g)
|
|
|
|
|
else:
|
|
|
|
|
deb2gen[d] = [g]
|
|
|
|
|
if gen2deb.get(g):
|
|
|
|
|
gen2deb[g].append(d)
|
|
|
|
|
else:
|
|
|
|
|
gen2deb[g] = [d]
|
|
|
|
|
|
|
|
|
|
with open("./deb_source_pkgs.list") as f:
|
|
|
|
|
debian_names = [p[4:].strip() for p in f]
|
|
|
|
@ -80,10 +85,11 @@ for cat in os.listdir(portdir):
|
|
|
|
|
|
|
|
|
|
# only grab newest package
|
|
|
|
|
pkg, ver, rev = sorted(pkgs, key=cmp_to_key(pkgcmp), reverse=True)[0]
|
|
|
|
|
deb = gen2deb.get("%s/%s"%(cat, pkg))
|
|
|
|
|
deb = gen2deb.get("%s/%s"%(cat, pkg), [])
|
|
|
|
|
|
|
|
|
|
# assure that the package is relevant
|
|
|
|
|
if deb not in debian_names:
|
|
|
|
|
cont = [d for d in deb if d in debian_names]
|
|
|
|
|
if not cont:
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
|
|
pkgnames.append((cat, pkg, ver, rev))
|
|
|
|
@ -143,7 +149,7 @@ for i, (cat, pkg, ver, rev) in enumerate(pkgnames):
|
|
|
|
|
missing_gen_mappings.append(p)
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
|
|
ddeps.append(r)
|
|
|
|
|
ddeps.extend(r)
|
|
|
|
|
debian_deps["%s/%s"%(cat,pkg)] = list(set(ddeps))
|
|
|
|
|
count +=1
|
|
|
|
|
|
|
|
|
@ -175,7 +181,9 @@ for d in debian_names:
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
|
|
# get the droppable dependencies
|
|
|
|
|
deps = debian_deps.get(g)
|
|
|
|
|
deps = []
|
|
|
|
|
for r in g:
|
|
|
|
|
deps.extend(debian_deps.get(r, []))
|
|
|
|
|
|
|
|
|
|
if not deps:
|
|
|
|
|
continue
|
|
|
|
@ -188,10 +196,10 @@ for d in debian_names:
|
|
|
|
|
for r in deps:
|
|
|
|
|
# convert source package to binary packages
|
|
|
|
|
# only retain those binary packages that are a build dependency
|
|
|
|
|
bindeps.extend([p for p in src2bin[r] if p in pdeps])
|
|
|
|
|
bindeps.extend([p for p in src2bin.get(r, []) if p in pdeps])
|
|
|
|
|
|
|
|
|
|
if bindeps:
|
|
|
|
|
print d, bindeps
|
|
|
|
|
print "src:%s %s"%(d, " ".join(bindeps))
|
|
|
|
|
|
|
|
|
|
print list(set(missing_deb_mappings))
|
|
|
|
|
print list(set(missing_gen_mappings))
|
|
|
|
|