Skip to contentSkip to conversation

Various hob fixes

PATCH Applied Joshua Lock 2 participants 5 messages Sep 20, 2011

lore
Share & tools
lore
#0 lore raw

cover Various hob fixes

This series contains 3 bug fixes.

The first has been submitted previously but hasn't been applied or commented on so I've rolled it into this pull request.

Patch one and two contain bug fixes for reported issues, patch three is a minor change but a noticable one should one stumble accross it.

Please review and consider for master and the Yocto 1.1 release.

Regards,
Joshua

The following changes since commit 3e7f8afeacf7c8c8de3e87778a3907e33d4a06b3:

fetch2/git: fix subpath destination directory (2011-09-19 12:33:38 +0100)

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

Joshua Lock (3):
ui/crumbs/hobprefs: re-enable reloading of data after prefs changes
hob: fix build again when building packages only
hob: enable package only builds even if an image has been built

 lib/bb/ui/crumbs/hobeventhandler.py |   13 +++++--------
 lib/bb/ui/crumbs/hobprefs.py        |    2 +-
 lib/bb/ui/hob.py                    |   12 ++++++++----
 3 files changed, 14 insertions(+), 13 deletions(-)
Signature · 1 line
1.7.6.2
#1 lore raw

PATCH 1/3 ui/crumbs/hobprefs: re-enable reloading of data after prefs changes

When disabling the toolchain w/ headers checkbox in an early commit I accidentally disabled too much code. This re-enables adding the custom response handler to the Preferences dialog which triggeres a reparse of the metadata when appropriate preference changes are made.

Fixes [YOCTO #1479]

---
 lib/bb/ui/crumbs/hobprefs.py |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
lib/bb/ui/crumbs/hobprefs.py +1 -1
index 8d148cd..5dfb0e6 100644
@@ -331,4 +331,4 @@ class HobPrefs(gtk.Dialog):
         # headerscheck.set_active(self.build_toolchain_headers)
         # headerscheck.connect("toggled", self.toggle_headers_cb)
         # hbox.pack_start(headerscheck, expand=False, fill=False, padding=6)
-        # self.connect("response", self.prefs_response_cb)
+        self.connect("response", self.prefs_response_cb)
Signature · 1 line
1.7.6.2
#2 lore raw

PATCH 2/3 hob: fix build again when building packages only

In reply to Joshua Lock

The different code paths for package vs image builds have lead to some bit rot in the package only build and an incompatability between package only builds and the build again mechanism.

This patch unifies the code paths and fixes build again for package only builds.

Fixes [YOCTO #1480]

---
 lib/bb/ui/crumbs/hobeventhandler.py |   13 +++++--------
 lib/bb/ui/hob.py                    |   11 +++++++----
 2 files changed, 12 insertions(+), 12 deletions(-)
lib/bb/ui/crumbs/hobeventhandler.py +5 -8
index 8bf599f..393b407 100644
@@ -71,7 +71,7 @@ class HobHandler(gobject.GObject):
         gobject.GObject.__init__(self)
 
         self.current_command = None
-        self.building = None
+        self.building = False
         self.build_toolchain = False
         self.build_toolchain_headers = False
         self.generating = False
@@ -128,10 +128,10 @@ class HobHandler(gobject.GObject):
             self.server.runCommand(["resetCooker"])
             self.server.runCommand(["reparseFiles"])
         elif self.current_command == self.BUILD_IMAGE:
-            self.building = "image"
             if self.generating:
                 self.emit("data-generated")
                 self.generating = False
+            self.building = True
             self.server.runCommand(["buildTargets", self.build_queue, "build"])
             self.build_queue = []
             self.current_command = None
@@ -247,11 +247,12 @@ class HobHandler(gobject.GObject):
         pmake = "-j %s" % threads
         self.server.runCommand(["setVariable", "BB_NUMBER_THREADS", pmake])
 
-    def build_image(self, image, configurator):
+    def build_targets(self, tgts, configurator, build_type="image"):
+        self.build_type = build_type
         targets = []
         nbbp = None
         nbbf = None
-        targets.append(image)
+        targets.extend(tgts)
         if self.build_toolchain and self.build_toolchain_headers:
             targets.append("meta-toolchain-sdk")
         elif self.build_toolchain:
@@ -284,10 +285,6 @@ class HobHandler(gobject.GObject):
         self.current_command = self.REPARSE_FILES
         self.run_next_command()
 
-    def build_packages(self, pkgs):
-        self.building = "packages"
-        self.server.runCommand(["buildTargets", pkgs, "build"])
-
     def cancel_build(self, force=False):
         if force:
             # Force the cooker to stop as quickly as possible
lib/bb/ui/hob.py +7 -4
index 51a995e..0f738ce 100644
@@ -459,6 +459,9 @@ class MainWindow (gtk.Window):
             image_name = recipepath.rstrip(".bb")
             path, sep, image_name = image_name.rpartition("/")
 
+            image = []
+            image.append(image_name)
+
             rep.writeRecipe(recipepath, self.model)
             # In the case where we saved the file for the purpose of building
             # it we should then delete it so that the users workspace doesn't
@@ -466,9 +469,9 @@ class MainWindow (gtk.Window):
             if not self.save_path:
                 self.files_to_clean.append(recipepath)
 
-            self.handler.build_image(image_name, self.configurator)
+            self.handler.build_targets(image, self.configurator)
         else:
-            self.handler.build_packages(self.model.get_selected_pn())
+            self.handler.build_targets(self.model.get_selected_pn(), self.configurator, "packages")
 
         # Disable parts of the menu which shouldn't be used whilst building
         self.set_menus_sensitive(False)
@@ -490,7 +493,7 @@ class MainWindow (gtk.Window):
 
     def build_complete_cb(self, running_build):
         # Have the handler process BB events again
-        self.handler.building = None
+        self.handler.building = False
         self.stopping = False
         self.back.connect("clicked", self.back_button_clicked_cb)
         self.back.set_sensitive(True)
@@ -504,7 +507,7 @@ class MainWindow (gtk.Window):
         self.files_to_clean = []
 
         lbl = "<b>Build completed</b>\n\nClick 'Edit Image' to start another build or 'View Messages' to view the messages output during the build."
-        if self.handler.building == "image" and self.build_succeeded:
+        if self.handler.build_type == "image" and self.build_succeeded:
             deploy = self.handler.get_image_deploy_dir()
             lbl = lbl + "\n<a href=\"file://%s\" title=\"%s\">Browse folder of built images</a>." % (deploy, deploy)
 
Signature · 1 line
1.7.6.2
#3 lore raw

PATCH 3/3 hob: enable package only builds even if an image has been built

In reply to Joshua Lock

Once an image build has been performed the selected_image variable would prevent the package only build choice being triggered - by setting the variable to None on reset we are able to perform package only builds after an image build.

---
 lib/bb/ui/hob.py |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
lib/bb/ui/hob.py +1 -0
index 0f738ce..e696314 100644
@@ -322,6 +322,7 @@ class MainWindow (gtk.Window):
         if response == gtk.RESPONSE_OK:
             self.reset_build()
             self.search.set_text("")
+            self.selected_image = None
         return
 
     def reset_build(self):
Signature · 1 line
1.7.6.2
#4 lore raw
In reply to Joshua Lock
Quoted 17 lines · Joshua Lock

This series contains 3 bug fixes.

The first has been submitted previously but hasn't been applied or commented on so I've rolled it into this pull request.

Patch one and two contain bug fixes for reported issues, patch three is a minor change but a noticable one should one stumble accross it.

Please review and consider for master and the Yocto 1.1 release.

Regards,
Joshua

The following changes since commit 3e7f8afeacf7c8c8de3e87778a3907e33d4a06b3:

fetch2/git: fix subpath destination directory (2011-09-19 12:33:38 +0100)

Quoted 8 lines

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

Joshua Lock (3):
ui/crumbs/hobprefs: re-enable reloading of data after prefs changes
hob: fix build again when building packages only
hob: enable package only builds even if an image has been built

Merged to master, thanks.

Richard