From: Paul Eggleton <paul.eggleton@linux.intel.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH v3] devtool: Fix build-sdk when pn doesn't match filename
Date: Tue, 10 May 2016 10:46:27 +1200 [thread overview]
Message-ID: <1462833987-21427-1-git-send-email-paul.eggleton@linux.intel.com> (raw)
In-Reply-To: <1462152840-20223-1-git-send-email-paul.eggleton@linux.intel.com>
From: Randy Witt <randy.e.witt@linux.intel.com>
If an image with the filename foo.bb could be built using the name "bar"
instead, then build-sdk would fail to create the derivative sdk.
This was because the code assumed that the file name matched the target,
which is not necessarily the case.
Signed-off-by: Randy Witt <randy.e.witt@linux.intel.com>
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
Changes since v2:
* Ensure we create the config section in ConfigHandler.set() if it
doesn't already exist
scripts/devtool | 5 +++++
scripts/lib/devtool/build_image.py | 24 +++++++++++++++++++-----
2 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/scripts/devtool b/scripts/devtool
index 4780390..9ac6e79 100755
--- a/scripts/devtool
+++ b/scripts/devtool
@@ -86,6 +86,11 @@ class ConfigHandler(object):
with open(self.config_file, 'w') as f:
self.config_obj.write(f)
+ def set(self, section, option, value):
+ if not self.config_obj.has_section(section):
+ self.config_obj.add_section(section)
+ self.config_obj.set(section, option, value)
+
class Context:
def __init__(self, **kwargs):
self.__dict__.update(kwargs)
diff --git a/scripts/lib/devtool/build_image.py b/scripts/lib/devtool/build_image.py
index e51d766..1e5d09b 100644
--- a/scripts/lib/devtool/build_image.py
+++ b/scripts/lib/devtool/build_image.py
@@ -18,6 +18,7 @@
"""Devtool plugin containing the build-image subcommand."""
import os
+import errno
import logging
from bb.process import ExecutionError
@@ -72,13 +73,17 @@ def build_image(args, config, basepath, workspace):
return result
def build_image_task(config, basepath, workspace, image, add_packages=None, task=None, extra_append=None):
- appendfile = os.path.join(config.workspace_path, 'appends',
- '%s.bbappend' % image)
-
# remove <image>.bbappend to make sure setup_tinfoil doesn't
# break because of it
- if os.path.isfile(appendfile):
- os.unlink(appendfile)
+ target_basename = config.get('SDK', 'target_basename', '')
+ if target_basename:
+ appendfile = os.path.join(config.workspace_path, 'appends',
+ '%s.bbappend' % target_basename)
+ try:
+ os.unlink(appendfile)
+ except OSError as exc:
+ if exc.errno != errno.ENOENT:
+ raise
tinfoil = setup_tinfoil(basepath=basepath)
rd = parse_recipe(config, tinfoil, image, True)
@@ -88,6 +93,15 @@ def build_image_task(config, basepath, workspace, image, add_packages=None, task
if not bb.data.inherits_class('image', rd):
raise TargetNotImageError()
+ # Get the actual filename used and strip the .bb and full path
+ target_basename = rd.getVar('FILE', True)
+ target_basename = os.path.splitext(os.path.basename(target_basename))[0]
+ config.set('SDK', 'target_basename', target_basename)
+ config.write()
+
+ appendfile = os.path.join(config.workspace_path, 'appends',
+ '%s.bbappend' % target_basename)
+
outputdir = None
try:
if workspace or add_packages:
--
2.5.5
prev parent reply other threads:[~2016-05-09 22:47 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-02 0:13 [PATCH 0/2] extensible sdk fixes Randy Witt
2016-05-02 0:13 ` [PATCH 1/2] populate_sdk_ext: Change lockedsigs task mismatch to a warning Randy Witt
2016-05-02 0:13 ` [PATCH 2/2] devtool: Fix build-sdk when pn doesn't match filename Randy Witt
2016-05-02 1:34 ` [PATCH v2] " Paul Eggleton
2016-05-09 22:46 ` Paul Eggleton [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1462833987-21427-1-git-send-email-paul.eggleton@linux.intel.com \
--to=paul.eggleton@linux.intel.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox