From: AdrianF <adrian.freihofer@siemens.com>
To: openembedded-core@lists.openembedded.org
Cc: Adrian Freihofer <adrian.freihofer@siemens.com>
Subject: [PATCH 3/4] devtool: ide_sdk: pass BITBAKEDIR to oe-init-build-env
Date: Mon, 6 Oct 2025 00:00:33 +0200 [thread overview]
Message-ID: <20251005220047.4101591-4-adrian.freihofer@siemens.com> (raw)
In-Reply-To: <20251005220047.4101591-1-adrian.freihofer@siemens.com>
From: Adrian Freihofer <adrian.freihofer@siemens.com>
This fixes an issue where the generated install_and_deploy script is
unable to find the bitbake directory when run outside of the build
environment. This happens if the oe-selftest suite runs in a bitbake
environment that is bootstrapped by bitbake-setup.
oe-selftest -r devtool.DevtoolIdeSdkTests.test_devtool_ide_sdk_none_qemu
AssertionError: Command '.../build-st/workspace/ide-sdk/cmake-example/
scripts/install_and_deploy_cmake-example-cortexa57' returned non-zero exit status 1:
Error: The bitbake directory (/tmp/devtoolqakq7kzgeo/bitbake) does not exist!
Please ensure a copy of bitbake exists at this location or specify an
alternative path on the command line
. /tmp/devtoolqakq7kzgeo/core-copy/oe-init-build-env
/home/adrian/bitbake-builds/poky-master-poky-with-sstate-distro_poky-altcfg-machine_qemuarm64/build-st
failed
Another reason this issue occurs with oe-selftests is that devtool
tests assume the full poky git repository is available. The setUpModule
function clones layer repositories, which for poky includes bitbake.
However, when using separate git repositories for bitbake and
openembedded-core, the bitbake directory is not preserved during layer
copying. While copying layers to allow modification during tests makes
sense, copying bitbake is less beneficial. Referring to the original
bitbake location is preferable, but cleaning up the devtool tests is
not part of this change.
Signed-off-by: Adrian Freihofer <adrian.freihofer@siemens.com>
---
scripts/lib/devtool/ide_sdk.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/scripts/lib/devtool/ide_sdk.py b/scripts/lib/devtool/ide_sdk.py
index ccb6cfbc61..d9b54f7991 100755
--- a/scripts/lib/devtool/ide_sdk.py
+++ b/scripts/lib/devtool/ide_sdk.py
@@ -286,6 +286,7 @@ class RecipeModified:
self.b = None
self.base_libdir = None
self.bblayers = None
+ self.bitbakepath = None
self.bpn = None
self.d = None
self.debug_build = None
@@ -346,6 +347,7 @@ class RecipeModified:
self.b = recipe_d.getVar('B')
self.base_libdir = recipe_d.getVar('base_libdir')
self.bblayers = recipe_d.getVar('BBLAYERS').split()
+ self.bitbakepath = recipe_d.getVar('BITBAKEPATH')
self.bpn = recipe_d.getVar('BPN')
self.cxx = recipe_d.getVar('CXX')
self.d = recipe_d.getVar('D')
@@ -712,11 +714,11 @@ class RecipeModified:
"""Generate a script which does install and deploy"""
cmd_lines = ['#!/bin/sh']
- # . oe-init-build-env $BUILDDIR
+ # . oe-init-build-env $BUILDDIR $BITBAKEDIR
# Using 'set' to pass the build directory to oe-init-build-env in sh syntax
cmd_lines.append('cd "%s" || { echo "cd %s failed"; exit 1; }' % (
self.oe_init_dir, self.oe_init_dir))
- cmd_lines.append('set ' + self.topdir)
+ cmd_lines.append('set %s %s' % (self.topdir, self.bitbakepath.rstrip('/bin')))
cmd_lines.append('. "%s" || { echo ". %s %s failed"; exit 1; }' % (
self.oe_init_build_env, self.oe_init_build_env, self.topdir))
--
2.51.0
next prev parent reply other threads:[~2025-10-05 22:01 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-10-05 22:00 [PATCH 0/4] devtool ide-sdk improvements for bitbake-setup AdrianF
2025-10-05 22:00 ` [PATCH 1/4] devtool: ide_sdk: trivial alphabetical reorder AdrianF
2025-10-05 22:00 ` [PATCH 2/4] devtool: ide-sdk: use /bin/sh instead of /bin/bash AdrianF
2025-10-05 22:00 ` AdrianF [this message]
2025-10-05 22:00 ` [PATCH 4/4] oe-selftest: devtool: DevtoolIdeSdkTests debug logging AdrianF
2025-10-06 13:15 ` [OE-core] [PATCH 0/4] devtool ide-sdk improvements for bitbake-setup Mathieu Dubois-Briand
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=20251005220047.4101591-4-adrian.freihofer@siemens.com \
--to=adrian.freihofer@siemens.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