diff --git a/interface/ri_dep.py b/interface/ri_dep.py
index 8b42694..04b3215 100644
--- a/interface/ri_dep.py
+++ b/interface/ri_dep.py
@@ -1,7 +1,7 @@
#!/usr/bin/python
import ri_data
-
+import ri_func_dep
from xml.dom import minidom
import os.path
@@ -61,8 +61,8 @@ def construct_depended():
Depended(dep)
Depended.dict[dep].depended_by.add(d.name)
-def get_extra_depending(pkg_list = []):
- l = ri_data.Group.get_install_pkgs() + pkg_list
+def get_extra_depending(fun_pkg_list = []):
+ l = ri_data.Group.get_install_pkgs() + fun_pkg_list
set1 = set(l)
set2 = set(set1)
@@ -70,12 +70,22 @@ def get_extra_depending(pkg_list = []):
for d in set1:
set2.update(Depending.dict[d].depending)
- global extra_pkgs
- extra_pkgs = set2.difference(set1)
res = {}
- for d in extra_pkgs:
+ for d in set2.difference(set1):
res[d] = Depended.dict[d].depended_by.intersection(set1)
return res
-extra_pkgs = []
+class dependency_init():
+ ''' init dependency package and funcation'''
+ func_dep_list = []
+ func_dep_dict={}
+ dep_dict={}
+ def __init__(self):
+ dependency_init.func_dep_dict = ri_func_dep.check_function_depending()
+ dependency_init.func_dep_list.extend(dependency_init.func_dep_dict.values())
+ construct_depending()
+ resolve_recursive_depending()
+ construct_depended()
+ dependency_init.dep_dict = get_extra_depending(dependency_init.func_dep_list)
+
diff --git a/interface/ri_oper.py b/interface/ri_oper.py
index 777186f..6db4c28 100644
--- a/interface/ri_oper.py
+++ b/interface/ri_oper.py
@@ -191,13 +191,17 @@ class InstallPkg(Operation):
self.return_value[3]=("Software package doesn't exist",u"软件包不存在")
def get_stdin(self):
- pkgname = ri_data.Group.get_install_pkgs() + ri_dep.extra_pkgs
+ pkgname = set(ri_data.Group.get_install_pkgs() + self.get_dependency_pkg())
self.steps += len(pkgname)
- return '\n'.join(pkgname) + '\n'
+ return '\n'.join(pkgname)+'\n'
def get_arguments(self):
return ["-s","/Rocky/packages"]
+ def get_dependency_pkg(self):
+ ri_dep.dependency_init()
+ return ri_dep.dependency_init.dep_dict.keys() + ri_dep.dependency_init.func_dep_list
+
class ConfigureFstab(Mount):
"""class for configure /etc/fstab"""
def __init__(self,scr):
diff --git a/interface/ri_tk_cmd.py b/interface/ri_tk_cmd.py
index 8f286c7..1c29253 100644
--- a/interface/ri_tk_cmd.py
+++ b/interface/ri_tk_cmd.py
@@ -204,27 +204,18 @@ def software_group_optional_quit():
vn = "software_group_%s" %(i.name)
i.install = display.var_dict[vn].get()
-def dependency_list_init():
+def dependency_fun_pkg_display():
''' init function for list in dependency step '''
- func_dep_list = []
+ ri_dep.dependency_init()
f_dep_text = ["function dependency list"]
- func_dep_dict = ri_func_dep.check_function_depending()
- for key in func_dep_dict.keys():
- func_dep_list.append(func_dep_dict[key])
- f = [ k.ljust(30) + ': ' + func_dep_dict[k] for k in func_dep_dict.keys() ]
+ f = [ k.ljust(30) + ': ' + ri_dep.dependency_init.func_dep_dict[k] for k in ri_dep.dependency_init.func_dep_dict.keys() ]
dep_text = ["package dependency list"]
- ri_dep.construct_depending()
- ri_dep.resolve_recursive_depending()
- ri_dep.construct_depended()
-
- dep_dict = ri_dep.get_extra_depending(func_dep_list)
- l = [ k.ljust(20) + ': ' + ' '.join(dep_dict[k]) for k in dep_dict.keys()]
+ l = [ k.ljust(20) + ': ' + ' '.join(ri_dep.dependency_init.dep_dict[k]) for k in ri_dep.dependency_init.dep_dict.keys()]
l = f_dep_text + f + dep_text + l
display.var_dict['dependency.list'].set(value=tuple(l))
-
-
+
def service_construct(w):
''' construct service widget based on actual data
w - Widget instance '''
diff --git a/xml/interface.xml b/xml/interface.xml
index 8118783..812f32a 100644
--- a/xml/interface.xml
+++ b/xml/interface.xml
@@ -715,7 +715,7 @@ row 4 | |
-
+