On Mon, 2017-07-10 at 14:04 -0700, Stephano Cetola wrote:
> Certain distros (Ubuntu) use a less desirable shell for /bin/sh
> (dash). In some edge cases, if we source oe-init-build-env from
> outside the OEROOT folder, the script will fail (as stated in the
> oe-init-build-env script). By adding a variable to force bash as the
> shell, we can call "bash -c" to ensure that a compatible shell is
> used.
>
> Currently, refkit is the only build that suffers from this edge case.
Thanks for the fix! I split the patch into two before merging, one for
the buildstep logic change and a follow-on to update the buildset-
config.controller. Hope you don't mind.
Joshua
> Signed-off-by: Stephano Cetola
> ---
> buildset-config.controller/nightly-refkit.conf|
> 3 ++-
> lib/python2.7/site-packages/autobuilder/buildsteps/BuildImages.py |
> 3 +++
> lib/python2.7/site-packages/autobuilder/buildsteps/RunPreamble.py |
> 3 +++
> 3 files changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/buildset-config.controller/nightly-refkit.conf
> b/buildset-config.controller/nightly-refkit.conf
> index 1d2487da6..cbc8508d7 100644
> --- a/buildset-config.controller/nightly-refkit.conf
> +++ b/buildset-config.controller/nightly-refkit.conf
> @@ -11,7 +11,7 @@ repos: [{'poky':
> 'submodules': True}}]
> steps: [{'SetDest':{}},
> {'CheckOutLayers': {'submodules': True}},
> -{'RunPreamble': {'altcmd': 'refkit/oe-init-build-env'}},
> +{'RunPreamble': {'forcebash': True, 'altcmd': 'refkit/oe-
> init-build-env'}},
> {'GetDistroVersion' : {'distro': 'refkit'}},
> {'CreateAutoConf': {'machine': 'intel-corei7-64',
> 'packages': 'ipk',
> 'distro': 'refkit', 'buildhistory' :
> False,
> @@ -44,6 +44,7 @@ steps: [{'SetDest':{}},
> {'ScrapeTargets': {'source': 'refkit/meta-
> refkit/conf/distro/include/refkit-ci.inc',
> 'targetsvar':
> 'REFKIT_CI_BUILD_TARGETS'}},
> {'BuildImages': {'images': '#SCRAPEDTARGETS',
> + 'forcebash': True,
> 'oeinit': 'refkit/oe-init-build-env',
> 'overrideenv':
> ['BITBAKEDIR=#YPDIR/bitbake', 'OEROOT=#YPDIR/meta']}},
> {'ScrapeTargets': {'source': 'refkit/meta-
> refkit/conf/distro/include/refkit-ci.inc',
> diff --git a/lib/python2.7/site-
> packages/autobuilder/buildsteps/BuildImages.py b/lib/python2.7/site-
> packages/autobuilder/buildsteps/BuildImages.py
> index 60ce07ff7..0406fd2e9 100644
> --- a/lib/python2.7/site-
> packages/autobuilder/buildsteps/BuildImages.py
> +++ b/lib/python2.7/site-
> packages/autobuilder/buildsteps/BuildImages.py
> @@ -23,6 +23,7 @@ class BuildImages(BitbakeShellCommand):
> haltOnFailure = False
> flunkOnFailure = True
> name = "BuildImages"
> +forcebash = False
> def __init__(self, factory, argdict=None, **kwargs):
> self.layerversion_yoctobsp=0
> self.machine=""
> @@ -163,6 +164,8 @@ class BuildImages(BitbakeShellCommand):
> if self.minnowExists is None or self.minnowExists ==
> "True":
> self.command = env + ". ./" + self.oeinit + ";
> bitbake " + bitbakeflags + self.images
> self.description = ["Building " +
> str(self.images)]
> +if self.forcebash:
> +self.command = ['bash', '-c', self.command]
> ShellCommand.start(self)
>
> def describe(self, done=False):
> diff --git a/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunPreamble.py b/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunPreamble.py
> index e9de3c76c..23c4ace2b 100644
> --- a/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunPreamble.py
> +++ b/lib/python2.7/site-
> packages/autobuilder/buildsteps/RunPreamble.py
> @@ -16,6 +16,7 @@ class RunPreamble(ShellCommand):
> haltOnFailure = False
> flunkOnFailure = True
> name = "RunPreamble"
> +forcebash = False
>
> def __init__(self, factory, argdict=None, **kwargs):
> self.factory = factory
> @@ -27,4 +28,6 @@ class RunPreamble(ShellCommand):
> self.command = ". ./oe-init-build-env"
> else:
> self.command = ". ./" + self.altcmd
> +if self.forcebash:
> +self.command = ['bash', '-c', self.command]
> ShellCommand.__init__(self, **kwargs)
> --
> 2.13.2
>
--
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto