From: Ross Burton Date: Thu, 30 May 2013 16:55:10 +0000 (+0100) Subject: utils.bbclass: ensure $0 is correct in wrapper scripts X-Git-Tag: 2015-4~6354 X-Git-Url: https://code.ossystems.io/gitweb?a=commitdiff_plain;h=e8d2a2a3646f964ec61ece62e14788cd7184dd01;p=openembedded-core.git utils.bbclass: ensure $0 is correct in wrapper scripts Some packages (eg mesa) will invoke a tool with --version and do string matches on the output (i.e. mesa does $LEX --version |grep "^flex "). This doesn't work with the combination of wrapper scripts and binaries that use $0 as they output "flex.real". Luckily bash's exec lets you set $0. As we want to use this we can't use env, but using export appears to work just as well. Signed-off-by: Ross Burton Signed-off-by: Richard Purdie --- diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass index be0a25a2b9..cf8893f5b4 100644 --- a/meta/classes/utils.bbclass +++ b/meta/classes/utils.bbclass @@ -261,9 +261,9 @@ create_cmdline_wrapper () { mv $cmd $cmd.real cmdname=`basename $cmd`.real cat <$cmd -#!/bin/sh +#!/bin/bash realpath=\`readlink -fn \$0\` -exec \`dirname \$realpath\`/$cmdname $@ "\$@" +exec -a $cmd \`dirname \$realpath\`/$cmdname $@ "\$@" END chmod +x $cmd } @@ -284,9 +284,10 @@ create_wrapper () { mv $cmd $cmd.real cmdname=`basename $cmd`.real cat <$cmd -#!/bin/sh +#!/bin/bash realpath=\`readlink -fn \$0\` -exec env $@ \`dirname \$realpath\`/$cmdname "\$@" +export $@ +exec -a $cmd \`dirname \$realpath\`/$cmdname "\$@" END chmod +x $cmd }