Skip to content

Commit 6ba2bfd

Browse files
committed
[UserInstalledPackages] filter out embedded packages at the end, so the probability of identifying dependencies is increased
1 parent 1fc1385 commit 6ba2bfd

1 file changed

Lines changed: 6 additions & 6 deletions

File tree

lib/python/Components/UserInstalledPackages.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ def __init__(self):
1111
self.embedded_packages_file = "/usr/lib/package.lst"
1212

1313
def run(self, callback=None):
14-
dependencies = []
14+
dependencies = set()
1515
plugins_out = []
1616
embedded_packages = False
1717
status = False
@@ -25,19 +25,19 @@ def run(self, callback=None):
2525
except Exception as e:
2626
print(f"[UserInstalledPackages] failed to read opkg status\n", e)
2727
if embedded_packages and status:
28-
packages, provides = self.parsestatus(status, embedded_packages)
28+
packages, provides = self.parsestatus(status)
2929
for package in packages:
3030
for depends in packages[package]["depends"]:
3131
d_package = provides.get(depends)
3232
if d_package and d_package in packages:
33-
dependencies.append(d_package)
34-
plugins_out = [p for p in packages if p not in dependencies]
33+
dependencies.add(d_package)
34+
plugins_out = [p for p in packages if p not in dependencies and p not in embedded_packages]
3535
callback(plugins_out)
3636

37-
def parsestatus(self, status, embedded_packages):
37+
def parsestatus(self, status):
3838
packages = {}
3939
provides = {}
40-
for package in [x for x in status.split("\n\n") if x.split("\n")[0].replace("Package: ", "").strip() not in embedded_packages]:
40+
for package in [x for x in status.split("\n\n")]:
4141
lines = package.splitlines()
4242
p_name = None
4343
p_depends = []

0 commit comments

Comments
 (0)