From 27942f546e6b08cdf9f2dbda2e24d237cde7f5f5 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Mon, 20 Apr 2015 17:47:05 +0100 Subject: devtool: force use of bash when running build within extensible SDK Ubuntu's default dash shell causes oe-init-build-env to behave a bit differently - (a) it can't pick up the OE root directory and (b) it can't see any build directory specified as a command-line argument (since dash doesn't pass through any arguments specified to sourced scripts). We could work around these but doing so requires some internal knowledge of the script; a much simpler fix is just to force running the command under bash since it's expected to be installed on every distro. Thanks to Chen Qi for this fix. Fixes [YOCTO #7614]. Signed-off-by: Paul Eggleton Signed-off-by: Richard Purdie --- scripts/lib/devtool/__init__.py | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'scripts/lib/devtool/__init__.py') diff --git a/scripts/lib/devtool/__init__.py b/scripts/lib/devtool/__init__.py index 3f8158e24a..78ae0aabc8 100644 --- a/scripts/lib/devtool/__init__.py +++ b/scripts/lib/devtool/__init__.py @@ -30,6 +30,11 @@ def exec_build_env_command(init_path, builddir, cmd, watch=False, **options): if not 'cwd' in options: options["cwd"] = builddir if init_path: + # As the OE init script makes use of BASH_SOURCE to determine OEROOT, + # and can't determine it when running under dash, we need to set + # the executable to bash to correctly set things up + if not 'executable' in options: + options['executable'] = 'bash' logger.debug('Executing command: "%s" using init path %s' % (cmd, init_path)) init_prefix = '. %s %s > /dev/null && ' % (init_path, builddir) else: -- cgit v1.2.3