Skip to contentSkip to conversation

utils.bbclass: ensure $0 is correct in wrapper scripts

PATCH New Ross Burton 1 participant 1 message May 30, 2013

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 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.

---
 meta/classes/utils.bbclass |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)
meta/classes/utils.bbclass +5 -4
index be0a25a..cf8893f 100644
@@ -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
 }
Signature · 1 line
1.7.10.4