Kaydet (Commit) 41ba5a7c authored tarafından root's avatar root

fast emerge dependency analysis

üst bb781639
...@@ -94,6 +94,7 @@ class SourceDB(lazydb.LazyDB): ...@@ -94,6 +94,7 @@ class SourceDB(lazydb.LazyDB):
for src in self.list_sources(repo): for src in self.list_sources(repo):
for pkg in self.list_package_from_source(src): for pkg in self.list_package_from_source(src):
pkg_src[pkg] = src pkg_src[pkg] = src
self.pkg_src_nodes = pkg_src
return pkg_src return pkg_src
def list_sources(self, repo=None): def list_sources(self, repo=None):
......
...@@ -126,6 +126,7 @@ def plan_emerge(A): ...@@ -126,6 +126,7 @@ def plan_emerge(A):
install_list = set() install_list = set()
need_build = set() need_build = set()
skip_list = set()
while len(B) > 0: while len(B) > 0:
Bp = set() Bp = set()
for x in B: for x in B:
...@@ -139,10 +140,16 @@ def plan_emerge(A): ...@@ -139,10 +140,16 @@ def plan_emerge(A):
for i in A: for i in A:
if i in need_build: if i in need_build:
return return
elif i in skip_list:
return
else: else:
need_build.add(pkgtosrc(i)) need_build.add(pkgtosrc(i))
src = get_spec(pkgtosrc(i)).source src = get_spec(pkgtosrc(i)).source
find_build_dep(src.buildDependencies) for dep in src.buildDependencies:
if not installdb.has_package(dep.package):
find_build_dep([dep.package])
else:
skip_list.add(dep.package)
def process_dep(dep): def process_dep(dep):
if not dep.satisfied_by_installed(): if not dep.satisfied_by_installed():
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment