diff --git a/bitbake/lib/bb/ui/crumbs/tasklistmodel.py b/bitbake/lib/bb/ui/crumbs/tasklistmodel.py index c0b0495d8c..1f00f6cfb2 100644 --- a/bitbake/lib/bb/ui/crumbs/tasklistmodel.py +++ b/bitbake/lib/bb/ui/crumbs/tasklistmodel.py @@ -226,32 +226,30 @@ class TaskListModel(gtk.ListStore): lic = event_model["pn"][item]["license"] group = event_model["pn"][item]["section"] filename = event_model["pn"][item]["filename"] - depends = event_model["depends"].get(item, "") - rdepends = event_model["rdepends-pn"].get(item, "") - if rdepends: - for rdep in rdepends: - if event_model["packages"].get(rdep, ""): - pn = event_model["packages"][rdep].get("pn", "") - if pn: - depends.append(pn) - - # uniquify the list of depends - depends = self.squish(depends) - # remove circular dependencies - if name in depends: - depends.remove(name) - deps = " ".join(depends) - if name.count('task-') > 0: atype = 'task' elif name.count('-image-') > 0: atype = 'image' - self.set(self.append(), self.COL_NAME, name, self.COL_DESC, summary, - self.COL_LIC, lic, self.COL_GROUP, group, - self.COL_DEPS, deps, self.COL_BINB, "", - self.COL_TYPE, atype, self.COL_INC, False, - self.COL_IMG, False, self.COL_PATH, filename) + depends = event_model["depends"].get(item, []) + rdepends = event_model["rdepends-pn"].get(item, []) + if ("%s-dev" % item) in rdepends: + rdepends.remove("%s-dev" % item) + packages = {} + for pkg in event_model["packages"]: + if event_model["packages"][pkg]["pn"] == name: + deps = [] + deps.extend(depends) + deps.extend(event_model["rdepends-pkg"].get(pkg, [])) + deps.extend(rdepends) + packages[pkg] = deps + + for p in packages: + self.set(self.append(), self.COL_NAME, p, self.COL_DESC, summary, + self.COL_LIC, lic, self.COL_GROUP, group, + self.COL_DEPS, " ".join(packages[p]), self.COL_BINB, "", + self.COL_TYPE, atype, self.COL_INC, False, + self.COL_IMG, False, self.COL_PATH, filename) self.emit("tasklist-populated")