diff options
author | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2018-09-06 08:26:40 +0300 |
---|---|---|
committer | Brad Bishop <bradleyb@fuzziesquirrel.com> | 2018-09-11 23:48:09 +0300 |
commit | 5dd7cbb3457c90724fc442b15bab2082d82b560a (patch) | |
tree | 368ed59906a1874f33a3a4a44fbb2f544013dc0a /poky/bitbake/lib | |
parent | 3b32a97b1b171ca776a24454d22c1c59fc7bfa00 (diff) | |
download | openbmc-5dd7cbb3457c90724fc442b15bab2082d82b560a.tar.xz |
poky: sumo refresh 45ef387cc5..51872d3f99
Update poky to sumo HEAD.
Awais Belal (8):
bitbake: toaster: allow pokydirname to be evaluated when all layers are local
bitbake: toaster: use a more flexible way to find bitbake
bitbake: bitbake: toaster: allow TOASTER_DIR to be overridden from cmdline
bitbake: toaster/widgets.py: avoid divide by zero issues
bitbake: toastergui/newproject.html: fix release divs
bitbake: toaster/checksettings: allow CUSTOM_XML_ONLY setting through env
bitbake: toaster/models.py: allow local paths for custom recipe's base
bitbake: toaster/layerdetails.js: don't hide local layer info
Karsten Strand (1):
bitbake: bitbake: toaster: Fix comparison in recipe template
Change-Id: I8dbcad1d98ff8d3c660563781d887a2c91db5bf2
Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Diffstat (limited to 'poky/bitbake/lib')
7 files changed, 54 insertions, 15 deletions
diff --git a/poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py b/poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py index 16c7c80441..38503342cb 100644 --- a/poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py +++ b/poky/bitbake/lib/toaster/bldcontrol/localhostbecontroller.py @@ -217,9 +217,21 @@ class LocalhostBEController(BuildEnvironmentController): self.setCloneStatus(bitbake,'complete',clone_total,clone_count) logger.debug("localhostbecontroller: current layer list %s " % pformat(layerlist)) - if self.pokydirname is None and os.path.exists(os.path.join(self.be.sourcedir, "oe-init-build-env")): - logger.debug("localhostbecontroller: selected poky dir name %s" % self.be.sourcedir) - self.pokydirname = self.be.sourcedir + # Resolve self.pokydirname if not resolved yet, consider the scenario + # where all layers are local, that's the else clause + if self.pokydirname is None: + if os.path.exists(os.path.join(self.be.sourcedir, "oe-init-build-env")): + logger.debug("localhostbecontroller: selected poky dir name %s" % self.be.sourcedir) + self.pokydirname = self.be.sourcedir + else: + # Alternatively, scan local layers for relative "oe-init-build-env" location + for layer in layers: + if os.path.exists(os.path.join(layer.layer_version.layer.local_source_dir,"..","oe-init-build-env")): + logger.debug("localhostbecontroller, setting pokydirname to %s" % (layer.layer_version.layer.local_source_dir)) + self.pokydirname = os.path.join(layer.layer_version.layer.local_source_dir,"..") + break + else: + logger.error("pokydirname is not set, you will run into trouble!") # 5. create custom layer and add custom recipes to it for target in targets: @@ -339,6 +351,19 @@ class LocalhostBEController(BuildEnvironmentController): # clean the Toaster to build environment env_clean = 'unset BBPATH;' # clean BBPATH for <= YP-2.4.0 + # run bitbake server from the clone if available + # otherwise pick it from the PATH + bitbake = os.path.join(self.pokydirname, 'bitbake', 'bin', 'bitbake') + if not os.path.exists(bitbake): + logger.info("Bitbake not available under %s, will try to use it from PATH" % + self.pokydirname) + for path in os.environ["PATH"].split(os.pathsep): + if os.path.exists(os.path.join(path, 'bitbake')): + bitbake = os.path.join(path, 'bitbake') + break + else: + logger.error("Looks like Bitbake is not available, please fix your environment") + # run bitbake server from the clone bitbake = os.path.join(self.pokydirname, 'bitbake', 'bin', 'bitbake') toasterlayers = os.path.join(builddir,"conf/toaster-bblayers.conf") diff --git a/poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py b/poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py index 823c6f154a..14298d9daf 100644 --- a/poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py +++ b/poky/bitbake/lib/toaster/bldcontrol/management/commands/checksettings.py @@ -74,8 +74,9 @@ class Command(BaseCommand): print("Loading default settings") call_command("loaddata", "settings") template_conf = os.environ.get("TEMPLATECONF", "") + custom_xml_only = os.environ.get("CUSTOM_XML_ONLY") - if ToasterSetting.objects.filter(name='CUSTOM_XML_ONLY').count() > 0: + if ToasterSetting.objects.filter(name='CUSTOM_XML_ONLY').count() > 0 or (not custom_xml_only == None): # only use the custom settings pass elif "poky" in template_conf: diff --git a/poky/bitbake/lib/toaster/orm/models.py b/poky/bitbake/lib/toaster/orm/models.py index 3a7dff8ca6..4b77e8fda8 100644 --- a/poky/bitbake/lib/toaster/orm/models.py +++ b/poky/bitbake/lib/toaster/orm/models.py @@ -1663,6 +1663,9 @@ class CustomImageRecipe(Recipe): path_schema_two = self.base_recipe.file_path + path_schema_three = "%s/%s" % (self.base_recipe.layer_version.layer.local_source_dir, + self.base_recipe.file_path) + if os.path.exists(path_schema_one): return path_schema_one @@ -1670,6 +1673,10 @@ class CustomImageRecipe(Recipe): if os.path.exists(path_schema_two): return path_schema_two + # Or a local path if all layers are local + if os.path.exists(path_schema_three): + return path_schema_three + return None def generate_recipe_file_contents(self): diff --git a/poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js b/poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js index 9ead393cbf..933b65b4ca 100644 --- a/poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js +++ b/poky/bitbake/lib/toaster/toastergui/static/js/layerdetails.js @@ -359,7 +359,8 @@ function layerDetailsPageInit (ctx) { if ($(this).is("dt")) { var dd = $(this).next("dd"); if (!dd.children("form:visible")|| !dd.find(".current-value").html()){ - if (ctx.layerVersion.layer_source == ctx.layerSourceTypes.TYPE_IMPORTED){ + if (ctx.layerVersion.layer_source == ctx.layerSourceTypes.TYPE_IMPORTED || + ctx.layerVersion.layer_source == ctx.layerSourceTypes.TYPE_LOCAL) { /* There's no current value and the layer is editable * so show the "Not set" and hide the delete icon */ diff --git a/poky/bitbake/lib/toaster/toastergui/templates/newproject.html b/poky/bitbake/lib/toaster/toastergui/templates/newproject.html index acb614e9d3..bd03bb55d7 100644 --- a/poky/bitbake/lib/toaster/toastergui/templates/newproject.html +++ b/poky/bitbake/lib/toaster/toastergui/templates/newproject.html @@ -54,12 +54,12 @@ <span class="help-block">{{release.helptext|safe}}</span> </div> {% endfor %} + </div> + </div> {% else %} <input type="hidden" name="projectversion" value="{{releases.0.id}}"/> {% endif %} </div> - </div> - </fieldset> {% endif %} <div class="top-air"> <input type="submit" id="create-project-button" class="btn btn-primary btn-lg" value="Create project"/> diff --git a/poky/bitbake/lib/toaster/toastergui/templates/recipe.html b/poky/bitbake/lib/toaster/toastergui/templates/recipe.html index bf2cd7169a..3f76e656fe 100644 --- a/poky/bitbake/lib/toaster/toastergui/templates/recipe.html +++ b/poky/bitbake/lib/toaster/toastergui/templates/recipe.html @@ -176,7 +176,7 @@ <td>{{task.get_executed_display}}</td> <td>{{task.get_outcome_display}} - {% if task.outcome = task.OUTCOME_FAILED %} + {% if task.outcome == task.OUTCOME_FAILED %} <a href="{% url 'build_artifact' build.pk "tasklogfile" task.pk %}"> <span class="glyphicon glyphicon-download-alt get-help" title="Download task log diff --git a/poky/bitbake/lib/toaster/toastergui/widgets.py b/poky/bitbake/lib/toaster/toastergui/widgets.py index a1792d997f..feef7c5d95 100644 --- a/poky/bitbake/lib/toaster/toastergui/widgets.py +++ b/poky/bitbake/lib/toaster/toastergui/widgets.py @@ -511,13 +511,18 @@ class MostRecentBuildsView(View): buildrequest_id = build_obj.buildrequest.pk build['buildrequest_id'] = buildrequest_id - build['recipes_parsed_percentage'] = \ - int((build_obj.recipes_parsed / - build_obj.recipes_to_parse) * 100) - - build['repos_cloned_percentage'] = \ - int((build_obj.repos_cloned / - build_obj.repos_to_clone) * 100) + if build_obj.recipes_to_parse > 0: + build['recipes_parsed_percentage'] = \ + int((build_obj.recipes_parsed / + build_obj.recipes_to_parse) * 100) + else: + build['recipes_parsed_percentage'] = 0 + if build_obj.repos_to_clone > 0: + build['repos_cloned_percentage'] = \ + int((build_obj.repos_cloned / + build_obj.repos_to_clone) * 100) + else: + build['repos_cloned_percentage'] = 0 tasks_complete_percentage = 0 if build_obj.outcome in (Build.SUCCEEDED, Build.FAILED): |