[oe-commits] Ross Burton : utils.bbclass: ensure $0 is correct in wrapper scripts
git at git.openembedded.org
git at git.openembedded.org
Fri May 31 09:06:31 UTC 2013
Module: openembedded-core.git
Branch: master-next
Commit: e8d2a2a3646f964ec61ece62e14788cd7184dd01
URL: http://git.openembedded.org/?p=openembedded-core.git&a=commit;h=e8d2a2a3646f964ec61ece62e14788cd7184dd01
Author: Ross Burton <ross.burton at intel.com>
Date: Thu May 30 17:55:10 2013 +0100
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 <ross.burton at intel.com>
Signed-off-by: Richard Purdie <richard.purdie at linuxfoundation.org>
---
meta/classes/utils.bbclass | 9 +++++----
1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass
index be0a25a..cf8893f 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 <<END >$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 <<END >$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
}
More information about the Openembedded-commits
mailing list