bb/ui/crumbs/tasklistmodel: remove useless items from dependency list
authorJoshua Lock <josh@linux.intel.com>
Thu, 18 Aug 2011 03:25:12 +0000 (20:25 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 23 Aug 2011 17:00:32 +0000 (10:00 -0700)
Ensure the dependency list is uniquified, doesn't include self references
and further doesn't include -dev references.

(Bitbake rev: 70aebebc3867d52e460355667e711c7c6dcd50ce)

Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
bitbake/lib/bb/ui/crumbs/tasklistmodel.py

index fa16609..b0f5d7a 100644 (file)
@@ -239,10 +239,11 @@ class TaskListModel(gtk.ListStore):
             elif ('-image-' in name):
                 atype = 'image'
 
+            # Create a combined list of build and runtime dependencies and
+            # then remove any duplicate entries and any entries for -dev
+            # packages
             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:
@@ -250,6 +251,13 @@ class TaskListModel(gtk.ListStore):
                     deps.extend(depends)
                     deps.extend(event_model["rdepends-pkg"].get(pkg, []))
                     deps.extend(rdepends)
+                    deps = self.squish(deps)
+                    # rdepends-pn includes pn-dev
+                    if ("%s-dev" % item) in deps:
+                        deps.remove("%s-dev" % item)
+                    # rdepends-on includes pn
+                    if pkg in deps:
+                        deps.remove(pkg)
                     packages[pkg] = deps
 
             for p in packages: