summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/python/files/depreorder-topsort.py')
-rw-r--r--dev-lang/python/files/depreorder-topsort.py65
1 files changed, 0 insertions, 65 deletions
diff --git a/dev-lang/python/files/depreorder-topsort.py b/dev-lang/python/files/depreorder-topsort.py
deleted file mode 100644
index 4c3cb7bc8..000000000
--- a/dev-lang/python/files/depreorder-topsort.py
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/usr/bin/python
-
-# tries to reorder the deps of a given list of packages so they
-# are merged in order - liquidx@g.o (09 Oct 03)
-
-import portage
-import sys, string
-
-fakedbapi = portage.fakedbapi()
-varapi = portage.db["/"]["vartree"].dbapi
-
-pkgs_to_reorder = sys.argv[1:]
-pkgs_ordered = []
-
-# key = catpkgver
-# value = dependencies
-dep_cache = {}
-
-
-# very simply, we extract the dependencies for each package
-for pkg in pkgs_to_reorder:
- try:
- deps, slot = varapi.aux_get(pkg, ["DEPEND", "SLOT"])
- except ValueError:
- sys.stderr.write("Error getting dependency information off " + pkg + "\n")
- continue
- try:
- realdeps = portage.dep_check(deps, fakedbapi)
- except TypeError:
- # we're probably running >=portage-2.0.50
- pkgsettings = portage.config(clone=portage.settings)
- realdeps = portage.dep_check(deps, fakedbapi, pkgsettings)
-
- vardeps = []
- # match() finds the versions of all those that are installed
- for dep in realdeps[1]:
- vardeps = vardeps + varapi.match(dep)
- dep_cache[pkg] = vardeps
-
-# topsort takes a graph (given as a dictionary with the nodes
-# as keys and the outgoing edges as values), and returns a
-# list of nodes that is topologically sorted
-def topsort (graph) :
- visited = dict([(node,False) for node in graph.keys()])
- result = []
-
- def dfs_single (node) :
- visited[node] = True
- for adj in graph[node]:
- # we ignore dependencies that are not nodes in the graph
- if adj in graph.keys() and not visited[adj]:
- dfs_single (adj)
- result.append(node)
-
- for node in graph.keys():
- if not visited[node]:
- dfs_single (node)
-
- return result
-
-pkgs_final_order = topsort(dep_cache)
-
-print string.join(pkgs_final_order, "\n")
-#print portage.dep_expand("=dev-python/sip-3.8", portage.portdb)
-#print portage.dep_check("X? ( >=dev-python/sip-3.8 )", fakedbapi)