summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorShane Wang <shane.wang@intel.com>2012-05-23 23:19:44 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-06-14 11:26:55 +0100
commit9e6d1101b46089c1c6749f985ecdc1cb0ef87ac8 (patch)
treeb14be923a5e2dca2096e91969dd8bc6ac80a1836 /bitbake
parent2bddf70a846320241ce9a94399e74a718519dcd8 (diff)
downloadpoky-9e6d1101b46089c1c6749f985ecdc1cb0ef87ac8.tar.gz
Hob: Adjust the progress bar and set 100% only when all is done.
After parsing recipes, Hob will populate recipes and packages, which is probably time exhaused. So, this patch is to adjust the progress bar and ensure 100% is set if and only if all populations are done. The patch also fixes "weird 18 second delay when parsing recipes" on build appliance. Because Hob is doing something, but the progress bar shows 100% and wait there. [Yocto #2341] (Bitbake rev: 2c4a21dc8a588c8cf05549ddd9734731a46bea10) Signed-off-by: Shane Wang <shane.wang@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rwxr-xr-xbitbake/lib/bb/ui/crumbs/builder.py12
-rw-r--r--bitbake/lib/bb/ui/crumbs/hobeventhandler.py8
2 files changed, 18 insertions, 2 deletions
diff --git a/bitbake/lib/bb/ui/crumbs/builder.py b/bitbake/lib/bb/ui/crumbs/builder.py
index 4b274a75a1..3f6878246c 100755
--- a/bitbake/lib/bb/ui/crumbs/builder.py
+++ b/bitbake/lib/bb/ui/crumbs/builder.py
@@ -354,6 +354,8 @@ class Builder(gtk.Window):
354 self.handler.connect("data-generated", self.handler_data_generated_cb) 354 self.handler.connect("data-generated", self.handler_data_generated_cb)
355 self.handler.connect("command-succeeded", self.handler_command_succeeded_cb) 355 self.handler.connect("command-succeeded", self.handler_command_succeeded_cb)
356 self.handler.connect("command-failed", self.handler_command_failed_cb) 356 self.handler.connect("command-failed", self.handler_command_failed_cb)
357 self.handler.connect("recipe-populated", self.handler_recipe_populated_cb)
358 self.handler.connect("package-populated", self.handler_package_populated_cb)
357 359
358 self.handler.set_config_filter(hob_conf_filter) 360 self.handler.set_config_filter(hob_conf_filter)
359 361
@@ -698,6 +700,12 @@ class Builder(gtk.Window):
698 def packagelist_changed_cb(self, package_model): 700 def packagelist_changed_cb(self, package_model):
699 self.package_details_page.refresh_selection() 701 self.package_details_page.refresh_selection()
700 702
703 def handler_recipe_populated_cb(self, handler):
704 self.image_configuration_page.update_progress_bar("Populated recipes", 0.99)
705
706 def handler_package_populated_cb(self, handler):
707 self.image_configuration_page.update_progress_bar("Populated packages", 1.0)
708
701 def handler_parsing_started_cb(self, handler, message): 709 def handler_parsing_started_cb(self, handler, message):
702 if self.current_step != self.RCPPKGINFO_POPULATING: 710 if self.current_step != self.RCPPKGINFO_POPULATING:
703 return 711 return
@@ -717,7 +725,7 @@ class Builder(gtk.Window):
717 725
718 fraction = message["current"] * 1.0/message["total"] 726 fraction = message["current"] * 1.0/message["total"]
719 if message["eventname"] == "TreeDataPreparationProgress": 727 if message["eventname"] == "TreeDataPreparationProgress":
720 fraction = 0.6 + 0.4 * fraction 728 fraction = 0.6 + 0.38 * fraction
721 else: 729 else:
722 fraction = 0.6 * fraction 730 fraction = 0.6 * fraction
723 self.image_configuration_page.update_progress_bar(message["title"], fraction) 731 self.image_configuration_page.update_progress_bar(message["title"], fraction)
@@ -727,7 +735,7 @@ class Builder(gtk.Window):
727 return 735 return
728 736
729 if message["eventname"] == "TreeDataPreparationCompleted": 737 if message["eventname"] == "TreeDataPreparationCompleted":
730 fraction = 1.0 738 fraction = 0.98
731 else: 739 else:
732 fraction = 0.6 740 fraction = 0.6
733 self.image_configuration_page.update_progress_bar(message["title"], fraction) 741 self.image_configuration_page.update_progress_bar(message["title"], fraction)
diff --git a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
index 624d7b55f3..424bcfa525 100644
--- a/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
+++ b/bitbake/lib/bb/ui/crumbs/hobeventhandler.py
@@ -57,6 +57,12 @@ class HobHandler(gobject.GObject):
57 "parsing-completed" : (gobject.SIGNAL_RUN_LAST, 57 "parsing-completed" : (gobject.SIGNAL_RUN_LAST,
58 gobject.TYPE_NONE, 58 gobject.TYPE_NONE,
59 (gobject.TYPE_PYOBJECT,)), 59 (gobject.TYPE_PYOBJECT,)),
60 "recipe-populated" : (gobject.SIGNAL_RUN_LAST,
61 gobject.TYPE_NONE,
62 ()),
63 "package-populated" : (gobject.SIGNAL_RUN_LAST,
64 gobject.TYPE_NONE,
65 ()),
60 } 66 }
61 67
62 (GENERATE_CONFIGURATION, GENERATE_RECIPES, GENERATE_PACKAGES, GENERATE_IMAGE, POPULATE_PACKAGEINFO, SANITY_CHECK) = range(6) 68 (GENERATE_CONFIGURATION, GENERATE_RECIPES, GENERATE_PACKAGES, GENERATE_IMAGE, POPULATE_PACKAGEINFO, SANITY_CHECK) = range(6)
@@ -158,6 +164,7 @@ class HobHandler(gobject.GObject):
158 164
159 if isinstance(event, bb.event.PackageInfo): 165 if isinstance(event, bb.event.PackageInfo):
160 self.package_model.populate(event._pkginfolist) 166 self.package_model.populate(event._pkginfolist)
167 self.emit("package-populated")
161 self.run_next_command() 168 self.run_next_command()
162 169
163 elif isinstance(event, bb.event.SanityCheckPassed): 170 elif isinstance(event, bb.event.SanityCheckPassed):
@@ -171,6 +178,7 @@ class HobHandler(gobject.GObject):
171 self.current_phase = "data generation" 178 self.current_phase = "data generation"
172 if event._model: 179 if event._model:
173 self.recipe_model.populate(event._model) 180 self.recipe_model.populate(event._model)
181 self.emit("recipe-populated")
174 elif isinstance(event, bb.event.ConfigFilesFound): 182 elif isinstance(event, bb.event.ConfigFilesFound):
175 self.current_phase = "configuration lookup" 183 self.current_phase = "configuration lookup"
176 var = event._variable 184 var = event._variable