diff options
author | Joshua Lock <josh@linux.intel.com> | 2011-07-20 16:44:06 -0700 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2011-07-21 22:08:11 +0100 |
commit | e2d2377257c974d954d68d37875eee84c13dead4 (patch) | |
tree | 15daf7a9cc993c595e3f6f4f128fa89a3dacddc2 /bitbake | |
parent | 2bdd51854fde31c9f911b705a2053f684d25ebe3 (diff) | |
download | poky-e2d2377257c974d954d68d37875eee84c13dead4.tar.gz |
ui/crumbs/tasklistmodel: ignore tasks and images when marking dependencies
When calculating what dependencies are affected by the removal of an item
we should ignore images and tasks as they are not constructs which make
sense in the GUI.
E.g: if we don't ignore tasks and remove opkg from an image based on
core-image-minimal the fact that opkg was brought in by task-core results
in task-core and all of the packages it brought in being removed and,
eventually, an empty image.
(Bitbake rev: 205b52bfc7f28af0c50fef1f741fae6af16fb0dc)
Signed-off-by: Joshua Lock <josh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r-- | bitbake/lib/bb/ui/crumbs/tasklistmodel.py | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/tasklistmodel.py b/bitbake/lib/bb/ui/crumbs/tasklistmodel.py index e28dbe713a..112fddebfd 100644 --- a/bitbake/lib/bb/ui/crumbs/tasklistmodel.py +++ b/bitbake/lib/bb/ui/crumbs/tasklistmodel.py | |||
@@ -306,9 +306,16 @@ class TaskListModel(gtk.ListStore): | |||
306 | # Remove all dependent packages, update binb | 306 | # Remove all dependent packages, update binb |
307 | while it: | 307 | while it: |
308 | path = self.get_path(it) | 308 | path = self.get_path(it) |
309 | it = self.iter_next(it) | ||
310 | |||
309 | inc = self[path][self.COL_INC] | 311 | inc = self[path][self.COL_INC] |
310 | deps = self[path][self.COL_DEPS] | 312 | deps = self[path][self.COL_DEPS] |
311 | binb = self[path][self.COL_BINB] | 313 | binb = self[path][self.COL_BINB] |
314 | itype = self[path][self.COL_TYPE] | ||
315 | |||
316 | # We ignore anything that isn't a package | ||
317 | if not itype == "package": | ||
318 | continue | ||
312 | 319 | ||
313 | # FIXME: need to ensure partial name matching doesn't happen | 320 | # FIXME: need to ensure partial name matching doesn't happen |
314 | if inc and deps.count(name): | 321 | if inc and deps.count(name): |
@@ -318,8 +325,6 @@ class TaskListModel(gtk.ListStore): | |||
318 | bib = self.find_alt_dependency(name) | 325 | bib = self.find_alt_dependency(name) |
319 | self[path][self.COL_BINB] = bib | 326 | self[path][self.COL_BINB] = bib |
320 | 327 | ||
321 | it = self.iter_next(it) | ||
322 | |||
323 | """ | 328 | """ |
324 | Remove items from contents if the have an empty COL_BINB (brought in by) | 329 | Remove items from contents if the have an empty COL_BINB (brought in by) |
325 | caused by all packages they are a dependency of being removed. | 330 | caused by all packages they are a dependency of being removed. |
@@ -488,10 +493,18 @@ class TaskListModel(gtk.ListStore): | |||
488 | it = self.contents.get_iter_first() | 493 | it = self.contents.get_iter_first() |
489 | 494 | ||
490 | while it: | 495 | while it: |
491 | if self.contents.get_value(it, self.COL_DEPS).count(pn) != 0: | 496 | name = self.contents.get_value(it, self.COL_NAME) |
492 | revdeps.append(self.contents.get_value(it, self.COL_NAME)) | 497 | itype = self.contents.get_value(it, self.COL_TYPE) |
498 | deps = self.contents.get_value(it, self.COL_DEPS) | ||
499 | |||
493 | it = self.contents.iter_next(it) | 500 | it = self.contents.iter_next(it) |
494 | 501 | ||
502 | if not itype == 'package': | ||
503 | continue | ||
504 | |||
505 | if deps.count(pn) != 0: | ||
506 | revdeps.append(name) | ||
507 | |||
495 | if pn in revdeps: | 508 | if pn in revdeps: |
496 | revdeps.remove(pn) | 509 | revdeps.remove(pn) |
497 | return revdeps | 510 | return revdeps |