From 73d3cc814ff6273f9010f4af5004f82ec8f7d329 Mon Sep 17 00:00:00 2001 From: "A. Murat Eren" Date: Wed, 14 Dec 2005 16:02:23 +0000 Subject: [PATCH] more and more.. --- tools/build-dep-resolver.py | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/tools/build-dep-resolver.py b/tools/build-dep-resolver.py index 093dccdb..354ef2d4 100644 --- a/tools/build-dep-resolver.py +++ b/tools/build-dep-resolver.py @@ -25,6 +25,22 @@ def getBuildDependencies(pspec): except: return [''] +def getRuntimeDependencies(pspec): + rdeps = [] + dom = mdom.parse(pspec) + try: + for p in Get(dom.documentElement, "Package"): + rdeps += [bdep.firstChild.wholeText for bdep in Get(Get(p, "RuntimeDependencies")[0], 'Dependency')] + except: + pass + + #remove duplicated entries.. + for d in rdeps: + for i in range(0, rdeps.count(d)-1): + rdeps.remove(d) + + return rdeps + def getPackageNames(pspec): packages = [] dom = mdom.parse(pspec) @@ -45,7 +61,7 @@ def buildDepResolver(pspeclist): clean = True for i in range(0, pspeccount): pspec = pspeclist[i] - for p in depmap.get(pspec): + for p in bdepmap.get(pspec): for j in range(i+1, pspeccount): if p in namemap.get(pspeclist[j]): pspeclist.insert(j+1, pspeclist.pop(i)) @@ -55,14 +71,15 @@ def buildDepResolver(pspeclist): else: return pspeclist + pspeclist = findPspecs() -depmap, namemap, pspeccount = {}, {}, len(pspeclist) -for pspec in pspeclist: depmap[pspec] = getBuildDependencies(pspec) -for pspec in pspeclist: namemap[pspec] = getPackageNames(pspec) +bdepmap, rdepmap, namemap, pspeccount = {}, {}, {}, len(pspeclist) +for pspec in pspeclist: bdepmap[pspec] = getBuildDependencies(pspec) +for pspec in pspeclist: rdepmap[pspec] = getRuntimeDependencies(pspec) +for pspec in pspeclist: namemap[pspec] = getPackageNames(pspec) while not buildDepResolver(pspeclist): pass - print pspeclist