All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/4] Bug fixes for hob
@ 2011-08-09  1:18 Joshua Lock
  2011-08-09  1:18 ` [PATCH 1/4] bb/ui/crumbs/tasklistmodel: prevent hang when removing item Joshua Lock
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Joshua Lock @ 2011-08-09  1:18 UTC (permalink / raw)
  To: bitbake-devel

Hi,

Here are some more bug fixes (and more on the way).

Thanks,
Joshua

The following changes since commit 5cacdc4f1641eda1b5707c96f7c40924a9db6174:

  bb/cooker: mark parsed conf files as potential cache invalidators (2011-08-04 15:40:51 -0700)

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

Jessica Zhang (1):
  bb/ui/hob: Restore toolchain relevant preference settings for build

Joshua Lock (3):
  bb/ui/crumbs/tasklistmodel: prevent hang when removing item
  bb/ui/hob: move some code around to avert a race
  bb/cooker: only emit ConfigFilePathFound for files which were parsed

 lib/bb/cooker.py                  |   32 ++++++++++++++++++++++++++++++--
 lib/bb/ui/crumbs/tasklistmodel.py |    4 +++-
 lib/bb/ui/hob.py                  |   17 ++++++++++-------
 3 files changed, 43 insertions(+), 10 deletions(-)

-- 
1.7.6




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

* [PATCH 1/4] bb/ui/crumbs/tasklistmodel: prevent hang when removing item
  2011-08-09  1:18 [PATCH 0/4] Bug fixes for hob Joshua Lock
@ 2011-08-09  1:18 ` Joshua Lock
  2011-08-09  1:18 ` [PATCH 2/4] bb/ui/hob: move some code around to avert a race Joshua Lock
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Joshua Lock @ 2011-08-09  1:18 UTC (permalink / raw)
  To: bitbake-devel

It's possible to trigger an infinite recursion when removing a package
where many of the dependencies share their dependencies. Prevent this by
keeping a list of removed item names and only removing the item when it's
not in the list.

Addresses [YOCTO #1319]

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

diff --git a/lib/bb/ui/crumbs/tasklistmodel.py b/lib/bb/ui/crumbs/tasklistmodel.py
index 8fb5683..3e09757 100644
--- a/lib/bb/ui/crumbs/tasklistmodel.py
+++ b/lib/bb/ui/crumbs/tasklistmodel.py
@@ -315,6 +315,7 @@ class TaskListModel(gtk.ListStore):
     """
     def mark(self, opath):
         usersel = {}
+        removed = []
         it = self.get_iter_first()
         name = self[opath][self.COL_NAME]
 
@@ -343,8 +344,9 @@ class TaskListModel(gtk.ListStore):
                 usersel[iname] = self[path][self.COL_IMG]
 
             # FIXME: need to ensure partial name matching doesn't happen
-            if inc and deps.count(name):
+            if inc and deps.count(name) and name not in removed:
                 # found a dependency, remove it
+                removed.append(name)
                 self.mark(path)
 
             if inc and binb.count(name):
-- 
1.7.6




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

* [PATCH 2/4] bb/ui/hob: move some code around to avert a race
  2011-08-09  1:18 [PATCH 0/4] Bug fixes for hob Joshua Lock
  2011-08-09  1:18 ` [PATCH 1/4] bb/ui/crumbs/tasklistmodel: prevent hang when removing item Joshua Lock
@ 2011-08-09  1:18 ` Joshua Lock
  2011-08-09  1:18 ` [PATCH 3/4] bb/cooker: only emit ConfigFilePathFound for files which were parsed Joshua Lock
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 7+ messages in thread
From: Joshua Lock @ 2011-08-09  1:18 UTC (permalink / raw)
  To: bitbake-devel

The data-generated and model-updated signals are different, the model
should only be accessed *after* the model-updated signal. Move code
setting the image combo's backing model to the model-updated callback to
ensure the combo is accurately set when changing the machine with an
image selected.

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

diff --git a/lib/bb/ui/hob.py b/lib/bb/ui/hob.py
index 5906251..e042765 100644
--- a/lib/bb/ui/hob.py
+++ b/lib/bb/ui/hob.py
@@ -183,13 +183,6 @@ class MainWindow (gtk.Window):
 
     def data_generated(self, handler):
         self.generating = False
-        self.image_combo.set_model(self.model.images_model())
-        # Without this the image combo is incorrectly sized on first load of the GUI
-        self.image_combo.set_active(0)
-        self.image_combo.set_active(-1)
-
-        if not self.image_combo_id:
-            self.image_combo_id = self.image_combo.connect("changed", self.image_changed_cb)
         self.enable_widgets()
 
     def machine_combo_changed_cb(self, combo, handler):
@@ -286,6 +279,14 @@ class MainWindow (gtk.Window):
         pkgsaz_model.set_default_sort_func(None)
         self.pkgsaz_tree.set_model(pkgsaz_model)
 
+        self.image_combo.set_model(self.model.images_model())
+        # Without this the image combo is incorrectly sized on first load of the GUI
+        self.image_combo.set_active(0)
+        self.image_combo.set_active(-1)
+
+        if not self.image_combo_id:
+            self.image_combo_id = self.image_combo.connect("changed", self.image_changed_cb)
+
         # We want the contents to be alphabetised so create a TreeModelSort to
         # use in the view
         contents_model = gtk.TreeModelSort(self.model.contents_model())
-- 
1.7.6




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

* [PATCH 3/4] bb/cooker: only emit ConfigFilePathFound for files which were parsed
  2011-08-09  1:18 [PATCH 0/4] Bug fixes for hob Joshua Lock
  2011-08-09  1:18 ` [PATCH 1/4] bb/ui/crumbs/tasklistmodel: prevent hang when removing item Joshua Lock
  2011-08-09  1:18 ` [PATCH 2/4] bb/ui/hob: move some code around to avert a race Joshua Lock
@ 2011-08-09  1:18 ` Joshua Lock
  2011-08-09 14:19   ` Richard Purdie
  2011-08-09  1:18 ` [PATCH 4/4] bb/ui/hob: Restore toolchain relevant preference settings for build Joshua Lock
  2011-08-09 14:20 ` [PATCH 0/4] Bug fixes for hob Richard Purdie
  4 siblings, 1 reply; 7+ messages in thread
From: Joshua Lock @ 2011-08-09  1:18 UTC (permalink / raw)
  To: bitbake-devel

When the requested configuration file is found on disk check the
against the configuration files in __depends/__base_depends to ensure the
file was parsed before emitting the ConfigFilePathFound event.
If the requested file wasn't parsed just return (and don't emit).

Fixes [YOCTO #1246]

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

diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
index 6022192..337a817 100644
--- a/lib/bb/cooker.py
+++ b/lib/bb/cooker.py
@@ -609,9 +609,37 @@ class BBCooker:
                 collectlog.warn("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern))
 
     def findConfigFilePath(self, configfile):
+        """
+        Find the location on disk of configfile and if it exists and was parsed by BitBake
+        emit the ConfigFilePathFound event with the path to the file.
+        """
         path = self._findConfigFile(configfile)
-        if path:
-            bb.event.fire(bb.event.ConfigFilePathFound(path), self.configuration.data)
+        if not path:
+            return
+
+        # Generate a list of parsed configuration files by searching the files
+        # listed in the __depends variable with a .conf suffix.
+        # NOTE: We can't know if we've been called before the variable has been
+        # renamed so if depends isn't set try __base_depends (the variable name
+        # after rename).
+        conffiles = []
+        dep_files = bb.data.getVar('__depends', self.configuration.data) or None
+        if not dep_files:
+            dep_files = bb.data.getVar('__base_depends', self.configuration.data) or set()
+
+        for f in dep_files:
+            if f[0].endswith(".conf"):
+                conffiles.append(f[0])
+
+        _, conf, conffile = path.rpartition("conf/")
+        match = os.path.join(conf, conffile)
+        # Try and find matches for conf/conffilename.conf as we don't always
+        # have the full path to the file.
+        for cfg in conffiles:
+            if cfg.endswith(match):
+                bb.event.fire(bb.event.ConfigFilePathFound(path),
+                              self.configuration.data)
+                break
 
     def findFilesMatchingInDir(self, filepattern, directory):
         """
-- 
1.7.6




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

* [PATCH 4/4] bb/ui/hob: Restore toolchain relevant preference settings for build
  2011-08-09  1:18 [PATCH 0/4] Bug fixes for hob Joshua Lock
                   ` (2 preceding siblings ...)
  2011-08-09  1:18 ` [PATCH 3/4] bb/cooker: only emit ConfigFilePathFound for files which were parsed Joshua Lock
@ 2011-08-09  1:18 ` Joshua Lock
  2011-08-09 14:20 ` [PATCH 0/4] Bug fixes for hob Richard Purdie
  4 siblings, 0 replies; 7+ messages in thread
From: Joshua Lock @ 2011-08-09  1:18 UTC (permalink / raw)
  To: bitbake-devel

From: Jessica Zhang <jessica.zhang@intel.com>

Fixes [#YOCTO 1354]

Signed-off-by: Jessica Zhang <jessica.zhang@intel.com>
Signed-off-by: Joshua Lock <josh@linux.intel.com>
---
 lib/bb/ui/hob.py |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/lib/bb/ui/hob.py b/lib/bb/ui/hob.py
index e042765..b0a98cb 100644
--- a/lib/bb/ui/hob.py
+++ b/lib/bb/ui/hob.py
@@ -980,7 +980,9 @@ def main (server, eventHandler):
         gplv3disabled = True
 
     build_toolchain = bool(server.runCommand(["getVariable", "HOB_BUILD_TOOLCHAIN"]))
+    handler.toggle_toolchain(build_toolchain)
     build_headers = bool(server.runCommand(["getVariable", "HOB_BUILD_TOOLCHAIN_HEADERS"]))
+    handler.toggle_toolchain_headers(build_headers)
 
     prefs = HobPrefs(configurator, handler, sdk_mach, distro, pclass, cpu_cnt,
                      pmake, bbthread, selected_image_types, all_image_types,
-- 
1.7.6




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

* Re: [PATCH 3/4] bb/cooker: only emit ConfigFilePathFound for files which were parsed
  2011-08-09  1:18 ` [PATCH 3/4] bb/cooker: only emit ConfigFilePathFound for files which were parsed Joshua Lock
@ 2011-08-09 14:19   ` Richard Purdie
  0 siblings, 0 replies; 7+ messages in thread
From: Richard Purdie @ 2011-08-09 14:19 UTC (permalink / raw)
  To: Joshua Lock; +Cc: bitbake-devel

On Mon, 2011-08-08 at 18:18 -0700, Joshua Lock wrote:
> When the requested configuration file is found on disk check the
> against the configuration files in __depends/__base_depends to ensure the
> file was parsed before emitting the ConfigFilePathFound event.
> If the requested file wasn't parsed just return (and don't emit).
> 
> Fixes [YOCTO #1246]
> 
> Signed-off-by: Joshua Lock <josh@linux.intel.com>
> ---
>  lib/bb/cooker.py |   32 ++++++++++++++++++++++++++++++--
>  1 files changed, 30 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/bb/cooker.py b/lib/bb/cooker.py
> index 6022192..337a817 100644
> --- a/lib/bb/cooker.py
> +++ b/lib/bb/cooker.py
> @@ -609,9 +609,37 @@ class BBCooker:
>                  collectlog.warn("No bb files matched BBFILE_PATTERN_%s '%s'" % (collection, pattern))
>  
>      def findConfigFilePath(self, configfile):
> +        """
> +        Find the location on disk of configfile and if it exists and was parsed by BitBake
> +        emit the ConfigFilePathFound event with the path to the file.
> +        """
>          path = self._findConfigFile(configfile)
> -        if path:
> -            bb.event.fire(bb.event.ConfigFilePathFound(path), self.configuration.data)
> +        if not path:
> +            return
> +
> +        # Generate a list of parsed configuration files by searching the files
> +        # listed in the __depends variable with a .conf suffix.
> +        # NOTE: We can't know if we've been called before the variable has been
> +        # renamed so if depends isn't set try __base_depends (the variable name
> +        # after rename).
> +        conffiles = []
> +        dep_files = bb.data.getVar('__depends', self.configuration.data) or None
> +        if not dep_files:
> +            dep_files = bb.data.getVar('__base_depends', self.configuration.data) or set()

Nearly. You need to look at the combined array of __depends and
__base_depends values here...

Cheers,

Richard






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

* Re: [PATCH 0/4] Bug fixes for hob
  2011-08-09  1:18 [PATCH 0/4] Bug fixes for hob Joshua Lock
                   ` (3 preceding siblings ...)
  2011-08-09  1:18 ` [PATCH 4/4] bb/ui/hob: Restore toolchain relevant preference settings for build Joshua Lock
@ 2011-08-09 14:20 ` Richard Purdie
  4 siblings, 0 replies; 7+ messages in thread
From: Richard Purdie @ 2011-08-09 14:20 UTC (permalink / raw)
  To: Joshua Lock; +Cc: bitbake-devel

On Mon, 2011-08-08 at 18:18 -0700, Joshua Lock wrote:
> Here are some more bug fixes (and more on the way).
> 
> Thanks,
> Joshua
> 
> The following changes since commit 5cacdc4f1641eda1b5707c96f7c40924a9db6174:
> 
>   bb/cooker: mark parsed conf files as potential cache invalidators (2011-08-04 15:40:51 -0700)
> 
> are available in the git repository at:
>   git://github.com/incandescant/bitbake hob
>   https://github.com/incandescant/bitbake/tree/hob
> 
> Jessica Zhang (1):
>   bb/ui/hob: Restore toolchain relevant preference settings for build
> 
> Joshua Lock (3):
>   bb/ui/crumbs/tasklistmodel: prevent hang when removing item
>   bb/ui/hob: move some code around to avert a race

I've merged these three to master.

>   bb/cooker: only emit ConfigFilePathFound for files which were parsed

This needs a little tweak.

Cheers,

Richard




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

end of thread, other threads:[~2011-08-09 14:25 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-08-09  1:18 [PATCH 0/4] Bug fixes for hob Joshua Lock
2011-08-09  1:18 ` [PATCH 1/4] bb/ui/crumbs/tasklistmodel: prevent hang when removing item Joshua Lock
2011-08-09  1:18 ` [PATCH 2/4] bb/ui/hob: move some code around to avert a race Joshua Lock
2011-08-09  1:18 ` [PATCH 3/4] bb/cooker: only emit ConfigFilePathFound for files which were parsed Joshua Lock
2011-08-09 14:19   ` Richard Purdie
2011-08-09  1:18 ` [PATCH 4/4] bb/ui/hob: Restore toolchain relevant preference settings for build Joshua Lock
2011-08-09 14:20 ` [PATCH 0/4] Bug fixes for 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.