[gnome-continuous-yocto/gnomeostree-3.28-rocko: 47/8267] bitbake: toaster: orm Add get_base_recipe_file to CustomImageRecipe
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-continuous-yocto/gnomeostree-3.28-rocko: 47/8267] bitbake: toaster: orm Add get_base_recipe_file to CustomImageRecipe
- Date: Sat, 16 Dec 2017 19:52:45 +0000 (UTC)
commit d3b5b0b4bb517db077d06d6339bb4b2987c031bf
Author: Michael Wood <michael g wood intel com>
Date: Tue Apr 26 17:18:06 2016 +0100
bitbake: toaster: orm Add get_base_recipe_file to CustomImageRecipe
This function returns the base recipe file path only if it currently
exists. This allows us to know whether we can proceed at this point with
generating a custom image recipe. It also enables us to call this
function from the templates to enable visual indication of this state.
Some whitespace fixes also added in generate_recipe_file_contents
(Bitbake rev: bc30d1b235b9ecacef5b2eaa851b9247d857f317)
Signed-off-by: Michael Wood <michael g wood intel com>
Signed-off-by: Elliot Smith <elliot smith intel com>
Signed-off-by: Richard Purdie <richard purdie linuxfoundation org>
bitbake/lib/toaster/orm/models.py | 60 ++++++++++++++++++++++--------------
1 files changed, 37 insertions(+), 23 deletions(-)
---
diff --git a/bitbake/lib/toaster/orm/models.py b/bitbake/lib/toaster/orm/models.py
index 0b83b99..6716ddf 100644
--- a/bitbake/lib/toaster/orm/models.py
+++ b/bitbake/lib/toaster/orm/models.py
@@ -1585,6 +1585,21 @@ class CustomImageRecipe(Recipe):
Q(recipe_includes=self)) &
~Q(recipe_excludes=self))
+ def get_base_recipe_file(self):
+ """Get the base recipe file path if it exists on the file system"""
+ path_schema_one = "%s/%s" % (self.base_recipe.layer_version.dirpath,
+ self.base_recipe.file_path)
+
+ path_schema_two = self.base_recipe.file_path
+
+ if os.path.exists(path_schema_one):
+ return path_schema_one
+
+ # The path may now be the full path if the recipe has been built
+ if os.path.exists(path_schema_two):
+ return path_schema_two
+
+ return None
def generate_recipe_file_contents(self):
"""Generate the contents for the recipe file."""
@@ -1599,17 +1614,16 @@ class CustomImageRecipe(Recipe):
# We add all the known packages to be built by this recipe apart
# from locale packages which are are controlled with IMAGE_LINGUAS.
for pkg in self.get_all_packages().exclude(
- name__icontains="locale"):
+ name__icontains="locale"):
packages_conf += pkg.name+' '
packages_conf += "\""
- try:
- base_recipe = open("%s/%s" %
- (self.base_recipe.layer_version.dirpath,
- self.base_recipe.file_path), 'r').read()
- except IOError:
- # The path may now be the full path if the recipe has been built
- base_recipe = open(self.base_recipe.file_path, 'r').read()
+
+ base_recipe_path = self.get_base_recipe_file()
+ if base_recipe_path:
+ base_recipe = open(base_recipe_path, 'r').read()
+ else:
+ raise IOError("Based on recipe file not found")
# Add a special case for when the recipe we have based a custom image
# recipe on requires another recipe.
@@ -1618,8 +1632,8 @@ class CustomImageRecipe(Recipe):
# "require recipes-core/images/core-image-minimal.bb"
req_search = re.search(r'(require\s+)(.+\.bb\s*$)',
- base_recipe,
- re.MULTILINE)
+ base_recipe,
+ re.MULTILINE)
if req_search:
require_filename = req_search.group(2).strip()
@@ -1629,19 +1643,19 @@ class CustomImageRecipe(Recipe):
new_require_line = "require %s" % corrected_location
- base_recipe = \
- base_recipe.replace(req_search.group(0), new_require_line)
-
-
- info = {"date" : timezone.now().strftime("%Y-%m-%d %H:%M:%S"),
- "base_recipe" : base_recipe,
- "recipe_name" : self.name,
- "base_recipe_name" : self.base_recipe.name,
- "license" : self.license,
- "summary" : self.summary,
- "description" : self.description,
- "packages_conf" : packages_conf.strip(),
- }
+ base_recipe = base_recipe.replace(req_search.group(0),
+ new_require_line)
+
+ info = {
+ "date": timezone.now().strftime("%Y-%m-%d %H:%M:%S"),
+ "base_recipe": base_recipe,
+ "recipe_name": self.name,
+ "base_recipe_name": self.base_recipe.name,
+ "license": self.license,
+ "summary": self.summary,
+ "description": self.description,
+ "packages_conf": packages_conf.strip()
+ }
recipe_contents = ("# Original recipe %(base_recipe_name)s \n"
"%(base_recipe)s\n\n"
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]