All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Switch from recipe-level to package-level data in hob
@ 2011-08-13  1:10 Joshua Lock
  2011-08-13  1:10 ` [PATCH 1/5] bb/crumbs/tasklistmodel: filter nativesdk packages out of views Joshua Lock
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: Joshua Lock @ 2011-08-13  1:10 UTC (permalink / raw)
  To: bitbake-devel

We currently store recipe-level data in the tasklistmodel (include the
contents of foo recipe) whereas in reality we're likely want to do
package-level operations, as required by EXTRA_IMAGE_INSTALL.

This series enables package-level data in the model and optimises a few
methods to cope with the increased model size.

Regards,
Joshua

The following changes since commit b3ad7acebfad3063c3364f4492f53b25bf53cf81:

  lib/bb/ui/crumbs/hobprefs: fix erroneous save/reparse (2011-08-12 17:48:13 +0100)

are available in the git repository at:
  git://github.com/incandescant/bitbake hob
  https://github.com/incandescant/bitbake/tree/hob

Joshua Lock (5):
  bb/crumbs/tasklistmodel: filter nativesdk packages out of views
  bb/ui/crumbs/tasklistmodel: include package level information
  bb/ui/crumbs/tasklistmodel: optimise find_path_for_item
  bb/ui/crumbs/tasklistmodel: make package_model_filter a little safer
  bb/ui/crumbs/tasklistmodel: simplify conditional in include_item

 lib/bb/ui/crumbs/tasklistmodel.py |   56 ++++++++++++++++++------------------
 1 files changed, 28 insertions(+), 28 deletions(-)

-- 
1.7.6




^ permalink raw reply	[flat|nested] 7+ messages in thread

* [PATCH 1/5] bb/crumbs/tasklistmodel: filter nativesdk packages out of views
  2011-08-13  1:10 [PATCH 0/5] Switch from recipe-level to package-level data in hob Joshua Lock
@ 2011-08-13  1:10 ` Joshua Lock
  2011-08-13  1:10 ` [PATCH 2/5] bb/ui/crumbs/tasklistmodel: include package level information Joshua Lock
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Joshua Lock @ 2011-08-13  1:10 UTC (permalink / raw)
  To: bitbake-devel

Signed-off-by: Joshua Lock <josh@linux.intel.com>
---
 lib/bb/ui/crumbs/tasklistmodel.py |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/lib/bb/ui/crumbs/tasklistmodel.py b/lib/bb/ui/crumbs/tasklistmodel.py
index 7a463a6..c0b0495 100644
--- a/lib/bb/ui/crumbs/tasklistmodel.py
+++ b/lib/bb/ui/crumbs/tasklistmodel.py
@@ -132,7 +132,7 @@ class TaskListModel(gtk.ListStore):
         if not model.get_value(it, self.COL_INC) or model.get_value(it, self.COL_TYPE) == 'image':
             return False
         name = model.get_value(it, self.COL_NAME)
-        if name.endswith('-native') or name.endswith('-cross'):
+        if name.count('-native') or name.count('-cross'):
             return False
         else:
             return True
-- 
1.7.6




^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/5] bb/ui/crumbs/tasklistmodel: include package level information
  2011-08-13  1:10 [PATCH 0/5] Switch from recipe-level to package-level data in hob Joshua Lock
  2011-08-13  1:10 ` [PATCH 1/5] bb/crumbs/tasklistmodel: filter nativesdk packages out of views Joshua Lock
@ 2011-08-13  1:10 ` Joshua Lock
  2011-08-13  1:10 ` [PATCH 3/5] bb/ui/crumbs/tasklistmodel: optimise find_path_for_item Joshua Lock
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Joshua Lock @ 2011-08-13  1:10 UTC (permalink / raw)
  To: bitbake-devel

Until now the hob UI has only contained recipe (pn) level targets in the
data store, this patch switches to including package level information.

This is slightly slower in all model related cases (more entries) but gives
much more flexibility for image customisation.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
---
 lib/bb/ui/crumbs/tasklistmodel.py |   40 +++++++++++++++++-------------------
 1 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/lib/bb/ui/crumbs/tasklistmodel.py b/lib/bb/ui/crumbs/tasklistmodel.py
index c0b0495..1f00f6c 100644
--- a/lib/bb/ui/crumbs/tasklistmodel.py
+++ b/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")
 
-- 
1.7.6




^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/5] bb/ui/crumbs/tasklistmodel: optimise find_path_for_item
  2011-08-13  1:10 [PATCH 0/5] Switch from recipe-level to package-level data in hob Joshua Lock
  2011-08-13  1:10 ` [PATCH 1/5] bb/crumbs/tasklistmodel: filter nativesdk packages out of views Joshua Lock
  2011-08-13  1:10 ` [PATCH 2/5] bb/ui/crumbs/tasklistmodel: include package level information Joshua Lock
@ 2011-08-13  1:10 ` Joshua Lock
  2011-08-13  1:10 ` [PATCH 4/5] bb/ui/crumbs/tasklistmodel: make package_model_filter a little safer Joshua Lock
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: Joshua Lock @ 2011-08-13  1:10 UTC (permalink / raw)
  To: bitbake-devel

If the item_name contains virtual/, -native or -cross it won't be present
in the model. Return None early in this circumstance rather than iterating
the entire model and still returning None.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
---
 lib/bb/ui/crumbs/tasklistmodel.py |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/lib/bb/ui/crumbs/tasklistmodel.py b/lib/bb/ui/crumbs/tasklistmodel.py
index 1f00f6c..baf4ede 100644
--- a/lib/bb/ui/crumbs/tasklistmodel.py
+++ b/lib/bb/ui/crumbs/tasklistmodel.py
@@ -472,6 +472,11 @@ class TaskListModel(gtk.ListStore):
     Returns the path in the model or None
     """
     def find_path_for_item(self, item_name):
+        # We don't include virtual/* or *-native items in the model so save a
+        # heavy iteration loop by exiting early for these items
+        if item_name.startswith("virtual/") or item_name.count('-native') or item_name.count('-cross'):
+            return None
+
         it = self.get_iter_first()
         path = None
         while it:
-- 
1.7.6




^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/5] bb/ui/crumbs/tasklistmodel: make package_model_filter a little safer
  2011-08-13  1:10 [PATCH 0/5] Switch from recipe-level to package-level data in hob Joshua Lock
                   ` (2 preceding siblings ...)
  2011-08-13  1:10 ` [PATCH 3/5] bb/ui/crumbs/tasklistmodel: optimise find_path_for_item Joshua Lock
@ 2011-08-13  1:10 ` Joshua Lock
  2011-08-13  1:10 ` [PATCH 5/5] bb/ui/crumbs/tasklistmodel: simplify conditional in include_item Joshua Lock
  2011-08-15  8:33 ` [PATCH 0/5] Switch from recipe-level to package-level data in hob Richard Purdie
  5 siblings, 0 replies; 7+ messages in thread
From: Joshua Lock @ 2011-08-13  1:10 UTC (permalink / raw)
  To: bitbake-devel

Ignore names that include '-cross', rather than just 'cross'

Signed-off-by: Joshua Lock <josh@linux.intel.com>
---
 lib/bb/ui/crumbs/tasklistmodel.py |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/lib/bb/ui/crumbs/tasklistmodel.py b/lib/bb/ui/crumbs/tasklistmodel.py
index baf4ede..4da3e1e 100644
--- a/lib/bb/ui/crumbs/tasklistmodel.py
+++ b/lib/bb/ui/crumbs/tasklistmodel.py
@@ -196,7 +196,7 @@ class TaskListModel(gtk.ListStore):
             return False
         else:
             name = model.get_value(it, self.COL_NAME)
-            if name.count('-native') or name.count('cross'):
+            if name.count('-native') or name.count('-cross'):
                 return False
             return True
 
-- 
1.7.6




^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 5/5] bb/ui/crumbs/tasklistmodel: simplify conditional in include_item
  2011-08-13  1:10 [PATCH 0/5] Switch from recipe-level to package-level data in hob Joshua Lock
                   ` (3 preceding siblings ...)
  2011-08-13  1:10 ` [PATCH 4/5] bb/ui/crumbs/tasklistmodel: make package_model_filter a little safer Joshua Lock
@ 2011-08-13  1:10 ` Joshua Lock
  2011-08-15  8:33 ` [PATCH 0/5] Switch from recipe-level to package-level data in hob Richard Purdie
  5 siblings, 0 replies; 7+ messages in thread
From: Joshua Lock @ 2011-08-13  1:10 UTC (permalink / raw)
  To: bitbake-devel

No need to check if the name ends with -native or -cross as path will be
None in this instance.

Signed-off-by: Joshua Lock <josh@linux.intel.com>
---
 lib/bb/ui/crumbs/tasklistmodel.py |    7 ++-----
 1 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/lib/bb/ui/crumbs/tasklistmodel.py b/lib/bb/ui/crumbs/tasklistmodel.py
index 4da3e1e..203b628 100644
--- a/lib/bb/ui/crumbs/tasklistmodel.py
+++ b/lib/bb/ui/crumbs/tasklistmodel.py
@@ -457,11 +457,8 @@ class TaskListModel(gtk.ListStore):
                 # resultant image, so filter cross and native recipes
                 dep_included = self.contents_includes_name(dep)
                 path = self.find_path_for_item(dep)
-                if not dep_included and not dep.endswith("-native") and not dep.endswith("-cross"):
-                    if path:
-                        self.include_item(path, name, image_contents)
-                    else:
-                        pass
+                if not dep_included and path:
+                    self.include_item(path, name, image_contents)
                 # Set brought in by for any no longer orphan packages
                 elif dep_included and path:
                     if not self[path][self.COL_BINB]:
-- 
1.7.6




^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 0/5] Switch from recipe-level to package-level data in hob
  2011-08-13  1:10 [PATCH 0/5] Switch from recipe-level to package-level data in hob Joshua Lock
                   ` (4 preceding siblings ...)
  2011-08-13  1:10 ` [PATCH 5/5] bb/ui/crumbs/tasklistmodel: simplify conditional in include_item Joshua Lock
@ 2011-08-15  8:33 ` Richard Purdie
  5 siblings, 0 replies; 7+ messages in thread
From: Richard Purdie @ 2011-08-15  8:33 UTC (permalink / raw)
  To: Joshua Lock; +Cc: bitbake-devel

On Fri, 2011-08-12 at 18:10 -0700, Joshua Lock wrote:
> We currently store recipe-level data in the tasklistmodel (include the
> contents of foo recipe) whereas in reality we're likely want to do
> package-level operations, as required by EXTRA_IMAGE_INSTALL.
> 
> This series enables package-level data in the model and optimises a few
> methods to cope with the increased model size.
> 
> Regards,
> Joshua
> 
> The following changes since commit b3ad7acebfad3063c3364f4492f53b25bf53cf81:
> 
>   lib/bb/ui/crumbs/hobprefs: fix erroneous save/reparse (2011-08-12 17:48:13 +0100)
> 
> are available in the git repository at:
>   git://github.com/incandescant/bitbake hob
>   https://github.com/incandescant/bitbake/tree/hob
> 
> Joshua Lock (5):
>   bb/crumbs/tasklistmodel: filter nativesdk packages out of views
>   bb/ui/crumbs/tasklistmodel: include package level information
>   bb/ui/crumbs/tasklistmodel: optimise find_path_for_item
>   bb/ui/crumbs/tasklistmodel: make package_model_filter a little safer
>   bb/ui/crumbs/tasklistmodel: simplify conditional in include_item

Merged to master, thanks.

Richard




^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2011-08-15  8:38 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-13  1:10 [PATCH 0/5] Switch from recipe-level to package-level data in hob Joshua Lock
2011-08-13  1:10 ` [PATCH 1/5] bb/crumbs/tasklistmodel: filter nativesdk packages out of views Joshua Lock
2011-08-13  1:10 ` [PATCH 2/5] bb/ui/crumbs/tasklistmodel: include package level information Joshua Lock
2011-08-13  1:10 ` [PATCH 3/5] bb/ui/crumbs/tasklistmodel: optimise find_path_for_item Joshua Lock
2011-08-13  1:10 ` [PATCH 4/5] bb/ui/crumbs/tasklistmodel: make package_model_filter a little safer Joshua Lock
2011-08-13  1:10 ` [PATCH 5/5] bb/ui/crumbs/tasklistmodel: simplify conditional in include_item Joshua Lock
2011-08-15  8:33 ` [PATCH 0/5] Switch from recipe-level to package-level data in hob Richard Purdie

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.