[OE-core] [PATCH 1/2] scripts: change way we find native tools (pseudo)
Brian Avery
avery.brian at gmail.com
Fri Apr 7 02:48:07 UTC 2017
Hi Robert,
I was definitely looking at only the extract-rootfs issue and didn't
remember seeing your above patch. I agree that we need a broader solution
than the one I did. I tried applying yours but had some issues. Your patch
did fix the runqemu-extract-rootfs, but not when I had INHERIT+= " rm_work
". Also, I had trouble running the oe-run-native script. It seems like the
help is reversed from what order it is expecting? I may be missing
something, it's getting late; but I'll look at it tomoro and see if I can't
expand on your patch for a more generic solution. Issues from the run below.
ty,
b
an intel employee
$ bitbake bmap-tools-native -caddto_recipe_sysroot
$ oe-run-native bmap-tools-native bmaptool
Running bitbake -e bmaptool
ERROR: Nothing PROVIDES 'bmaptool'. Close matches:
bmap-tools
mtools
There was an error running bitbake to determine STAGING_DIR_NATIVE
Here is the output from bitbake -e bmaptool
WARNING: Host distribution "ubuntu-14.04" has not been validated with this
version of the build system; you may possibly experience unexpected
failures. It is recommended that you use a tested distribution. Loading
cache...done. Loaded 1299 entries from dependency cache. Summary: There was
1 WARNING message shown. Summary: There was 1 ERROR message shown,
returning a non-zero exit code.
$ oe-run-native bmaptool bmap-tools-native
Running bitbake -e bmap-tools-native
PSEUDO
…/tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/usr/bin/pseudo
is not found.
Error: Unable to find '' in
.../tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/usr/bin:.../tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/bin:.../tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/usr/sbin:.../tmp/work/x86_64-linux/bmap-tools-native/3.2-r0/recipe-sysroot-native/sbin
bavery at bavery-WS-DESK:...$ oe-run-native
oe-run-native: error: the following arguments are required: <native recipe>
<native tool>
Usage: oe-run-native native-recipe tool [parameters]
OpenEmbedded run-native - runs native tools
arguments:
native-recipe The recipe which provoides tool
tool Native tool to run
On Thu, Apr 6, 2017 at 3:26 AM, Robert Yang <liezhi.yang at windriver.com>
wrote:
> Hi Brian and RP,
>
> This patch can't fix the problem of scripts/oe-run-native, it only can
> run the native tools which is depended by meta-ide-support, for example:
>
> $ bitbake bmap-tools-native meta-ide-support
> $ oe-run-native bmaptool --help # exmaple from dev-manual-start.xml
>
> Error: Unable to find 'bmaptool' in native sysroot
>
> I think that we need consider the patch that I had sent before:
>
> git://git.openembedded.org/openembedded-core-contrib rbt/rssfix
> http://cgit.openembedded.org/openembedded-core-contrib/log/?h=rbt/rssfix
>
> Robert Yang (1):
> oe-find-native-sysroot: work with RSS
>
>
> Subject: [PATCH 1/1] oe-find-native-sysroot: work with RSS
>
> The generic STAGING_DIR_NATIVE is gone since RSS, so when find
> OECORE_NATIVE_SYSROOT, the user has to specify which recipe's
> STAGING_DIR_NATIVE will be used as OECORE_NATIVE_SYSROOT.
>
> * The usage is changed from ". oe-find-native-sysroot" to
> ". oe-find-native-sysroot <recipe>".
> * The oe-run-native's usage has changed from
> "oe-run-native tool" to "oe-run-native native-recipe tool".
>
> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
> ---
> scripts/oe-find-native-sysroot | 56 ++++++++++++++++++++++++++++--
> ------------
> scripts/oe-run-native | 15 +++++++----
> scripts/runqemu-export-rootfs | 2 +-
> scripts/runqemu-extract-sdk | 2 +-
> 4 files changed, 49 insertions(+), 26 deletions(-)
>
> diff --git a/scripts/oe-find-native-sysroot b/scripts/oe-find-native-sysro
> ot
> index 3f4c29da8a..59fe3f3118 100755
> --- a/scripts/oe-find-native-sysroot
> +++ b/scripts/oe-find-native-sysroot
> @@ -9,7 +9,7 @@
> # it, e.g:
> #
> # SYSROOT_SETUP_SCRIPT=`which oe-find-native-sysroot`
> -# . $SYSROOT_SETUP_SCRIPT
> +# . $SYSROOT_SETUP_SCRIPT <recipe>
> #
> # This script will terminate execution of your calling program unless
> # you set a variable $SKIP_STRICT_SYSROOT_CHECK to a non-empty string
> @@ -30,8 +30,8 @@
> # with this program; if not, write to the Free Software Foundation, Inc.,
> # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
>
> -if [ "$1" = '--help' -o "$1" = '-h' ] ; then
> - echo 'Usage: oe-find-native-sysroot [-h|--help]'
> +if [ "$1" = '--help' -o "$1" = '-h' -o $# -ne 1 ] ; then
> + echo 'Usage: oe-find-native-sysroot <recipe> [-h|--help]'
> echo ''
> echo 'OpenEmbedded find-native-sysroot - helper script to set'
> echo 'environment variables OECORE_NATIVE_SYSROOT and PSEUDO'
> @@ -39,11 +39,31 @@ if [ "$1" = '--help' -o "$1" = '-h' ] ; then
> echo 'executable binary'
> echo ''
> echo 'options:'
> + echo ' recipe its STAGING_DIR_NATIVE is used as native
> sysroot'
> echo ' -h, --help show this help message and exit'
> echo ''
> exit 2
> fi
>
> +# Global vars
> +BITBAKE_E=""
> +OECORE_NATIVE_SYSROOT=""
> +
> +set_oe_native_sysroot(){
> + echo "Running bitbake -e $1"
> + BITBAKE_E="`bitbake -e $1`"
> + OECORE_NATIVE_SYSROOT=`echo "$BITBAKE_E" | grep ^STAGING_DIR_NATIVE |
> cut -d '"' -f2`
> +
> + if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
> + # This indicates that there was an error running bitbake -e that
> + # the user needs to be informed of
> + echo "There was an error running bitbake to determine
> STAGING_DIR_NATIVE"
> + echo "Here is the output from bitbake -e $1"
> + echo "$BITBAKE_E"
> + exit 1
> + fi
> +}
> +
> if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
> BITBAKE=`which bitbake 2> /dev/null`
> if [ "x$BITBAKE" != "x" ]; then
> @@ -54,10 +74,10 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
> exit 1
> fi
> touch conf/sanity.conf
> - OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep
> ^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2`
> + set_oe_native_sysroot $1
> rm -f conf/sanity.conf
> else
> - OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep
> ^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2`
> + set_oe_native_sysroot $1
> fi
> else
> echo "Error: Unable to locate bitbake command."
> @@ -69,21 +89,11 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
> fi
> fi
>
> -if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
> - # This indicates that there was an error running bitbake -e that
> - # the user needs to be informed of
> - echo "There was an error running bitbake to determine
> RECIPE_SYSROOT_NATIVE"
> - echo "Here is the output from bitbake -e"
> - bitbake -e
> - exit 1
> -fi
> -
> -# Set up pseudo command
> -if [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/pseudo" ]; then
> - echo "Error: Unable to find pseudo binary in
> $OECORE_NATIVE_SYSROOT/usr/bin/"
> +if [ ! -e "$OECORE_NATIVE_SYSROOT/" ]; then
> + echo "Error: $OECORE_NATIVE_SYSROOT doesn't exist."
>
> if [ "x$OECORE_DISTRO_VERSION" = "x" ]; then
> - echo "Have you run 'bitbake meta-ide-support'?"
> + echo "Have you run 'bitbake $1 -caddto_recipe_sysroot'?"
> else
> echo "This shouldn't happen - something is wrong with your
> toolchain installation"
> fi
> @@ -92,4 +102,12 @@ if [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/pseudo" ];
> then
> exit 1
> fi
> fi
> -PSEUDO="$OECORE_NATIVE_SYSROOT/usr/bin/pseudo"
> +
> +# Set up pseudo command
> +pseudo="$OECORE_NATIVE_SYSROOT/usr/bin/pseudo"
> +if [ -e "$pseudo" ]; then
> + echo "PSEUDO=$pseudo"
> + PSEUDO="$pseudo"
> +else
> + echo "PSEUDO $pseudo is not found."
> +fi
> diff --git a/scripts/oe-run-native b/scripts/oe-run-native
> index f2453e705a..de3c02ed34 100755
> --- a/scripts/oe-run-native
> +++ b/scripts/oe-run-native
> @@ -22,34 +22,39 @@
> #
>
> if [ $# -lt 1 -o "$1" = '--help' -o "$1" = '-h' ] ; then
> - echo 'oe-run-native: error: the following arguments are required:
> <native tool>'
> - echo 'Usage: oe-run-native tool [parameters]'
> + echo 'oe-run-native: error: the following arguments are required:
> <native recipe> <native tool>'
> + echo 'Usage: oe-run-native native-recipe tool [parameters]'
> echo ''
> echo 'OpenEmbedded run-native - runs native tools'
> echo ''
> echo 'arguments:'
> + echo ' native-recipe The recipe which provoides tool'
> echo ' tool Native tool to run'
> echo ''
> exit 2
> fi
>
> +native_recipe="$1"
> +tool="$2"
> +shift
> +
> SYSROOT_SETUP_SCRIPT=`which oe-find-native-sysroot 2> /dev/null`
> if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then
> echo "Error: Unable to find oe-find-native-sysroot script"
> exit 1
> fi
> -. $SYSROOT_SETUP_SCRIPT
> +. $SYSROOT_SETUP_SCRIPT $native_recipe
>
> OLD_PATH=$PATH
>
> # look for a tool only in native sysroot
>
> PATH=$OECORE_NATIVE_SYSROOT/usr/bin:$OECORE_NATIVE_SYSROOT/
> bin:$OECORE_NATIVE_SYSROOT/usr/sbin:$OECORE_NATIVE_SYSROOT/sbin
> -tool=`/usr/bin/which $1 2>/dev/null`
> +tool=`/usr/bin/which $tool 2>/dev/null`
>
> if [ -n "$tool" ] ; then
> # add old path to allow usage of host tools
> PATH=$PATH:$OLD_PATH $@
> else
> - echo "Error: Unable to find '$1' in native sysroot"
> + echo "Error: Unable to find '$tool' in $PATH"
> exit 1
> fi
> diff --git a/scripts/runqemu-export-rootfs b/scripts/runqemu-export-rootfs
> index 7ebc07194d..c7992d8223 100755
> --- a/scripts/runqemu-export-rootfs
> +++ b/scripts/runqemu-export-rootfs
> @@ -44,7 +44,7 @@ if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then
> echo "Did you forget to source your build environment setup
> script?"
> exit 1
> fi
> -. $SYSROOT_SETUP_SCRIPT
> +. $SYSROOT_SETUP_SCRIPT meta-ide-support
>
> if [ ! -e "$OECORE_NATIVE_SYSROOT/usr/bin/unfsd" ]; then
> echo "Error: Unable to find unfsd binary in
> $OECORE_NATIVE_SYSROOT/usr/bin/"
> diff --git a/scripts/runqemu-extract-sdk b/scripts/runqemu-extract-sdk
> index 32ddd485b6..2a0dd50e0e 100755
> --- a/scripts/runqemu-extract-sdk
> +++ b/scripts/runqemu-extract-sdk
> @@ -35,7 +35,7 @@ if [ -z "$SYSROOT_SETUP_SCRIPT" ]; then
> echo "Did you forget to source your build system environment setup
> script?"
> exit 1
> fi
> -. $SYSROOT_SETUP_SCRIPT
> +. $SYSROOT_SETUP_SCRIPT meta-ide-support
> PSEUDO_OPTS="-P $OECORE_NATIVE_SYSROOT/usr"
>
> ROOTFS_TARBALL=$1
>
>
> // Robert
>
>
> On 04/05/2017 06:22 AM, brian avery wrote:
>
>> oe-find-native-sysroot: Recipe Specific Sysroots have eliminated the
>> large STAGING_DIR_NATIVE. Now, we will rely on the meta-ide-support
>> sysroot that is what was populating the large STAGING_DIR_NATIVE in
>> previous versions anyway. We now look for RECIPE_SYSROOT_NATIVE.
>>
>> [YOCTO #11119]
>>
>> Signed-off-by: brian avery <brian.avery at intel.com>
>> ---
>> scripts/oe-find-native-sysroot | 8 ++++----
>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/scripts/oe-find-native-sysroot
>> b/scripts/oe-find-native-sysroot
>> index 13a5c46..3f4c29d 100755
>> --- a/scripts/oe-find-native-sysroot
>> +++ b/scripts/oe-find-native-sysroot
>> @@ -2,7 +2,7 @@
>> #
>> # Find a native sysroot to use - either from an in-tree OE build or
>> # from a toolchain installation. It then ensures the variable
>> -# $OECORE_NATIVE_SYSROOT is set to the sysroot's base directory, and sets
>> +# $OECORE_NATIVE_SYSROOT is set to the sysroot's base directory, and sets
>> # $PSEUDO to the path of the pseudo binary.
>> #
>> # This script is intended to be run within other scripts by source'ing
>> @@ -54,10 +54,10 @@ if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
>> exit 1
>> fi
>> touch conf/sanity.conf
>> - OECORE_NATIVE_SYSROOT=`bitbake -e | grep ^STAGING_DIR_NATIVE
>> | cut -d '"' -f2`
>> + OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep
>> ^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2`
>> rm -f conf/sanity.conf
>> else
>> - OECORE_NATIVE_SYSROOT=`bitbake -e | grep ^STAGING_DIR_NATIVE
>> | cut -d '"' -f2`
>> + OECORE_NATIVE_SYSROOT=`bitbake -e meta-ide-support | grep
>> ^RECIPE_SYSROOT_NATIVE | cut -d '"' -f2`
>> fi
>> else
>> echo "Error: Unable to locate bitbake command."
>> @@ -72,7 +72,7 @@ fi
>> if [ "x$OECORE_NATIVE_SYSROOT" = "x" ]; then
>> # This indicates that there was an error running bitbake -e that
>> # the user needs to be informed of
>> - echo "There was an error running bitbake to determine
>> STAGING_DIR_NATIVE"
>> + echo "There was an error running bitbake to determine
>> RECIPE_SYSROOT_NATIVE"
>> echo "Here is the output from bitbake -e"
>> bitbake -e
>> exit 1
>>
>> --
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core at lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openembedded.org/pipermail/openembedded-core/attachments/20170406/fe62fd30/attachment-0002.html>
More information about the Openembedded-core
mailing list