mirror of
https://git.yoctoproject.org/poky
synced 2026-04-13 05:02:24 +02:00
utils: Avoid need to relocate wrapper scripts
Whilst the path to the executable is dynamically determined, the passed in environment variables or parameters are not relocatable and rely on the sstate remapping code. In the recipe specific sysroot case this has become more costly. This patch translates such paths into relocatable entries which means that a sed replacement at final installation isn't needed. (From OE-Core rev: 3e02a7cda0ba70e3f9886c5cce37d71361280b11) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
@@ -264,10 +264,17 @@ create_cmdline_wrapper () {
|
||||
|
||||
mv $cmd $cmd.real
|
||||
cmdname=`basename $cmd`
|
||||
dirname=`dirname $cmd`
|
||||
cmdoptions=$@
|
||||
if [ "${base_prefix}" != "" ]; then
|
||||
relpath=`python3 -c "import os; print(os.path.relpath('${D}${base_prefix}', '$dirname'))"`
|
||||
cmdoptions=`echo $@ | sed -e "s:${base_prefix}:\\$realdir/$relpath:g"`
|
||||
fi
|
||||
cat <<END >$cmd
|
||||
#!/bin/bash
|
||||
realpath=\`readlink -fn \$0\`
|
||||
exec -a \`dirname \$realpath\`/$cmdname \`dirname \$realpath\`/$cmdname.real $@ "\$@"
|
||||
realdir=\`dirname \$realpath\`
|
||||
exec -a \`dirname \$realpath\`/$cmdname \`dirname \$realpath\`/$cmdname.real $cmdoptions "\$@"
|
||||
END
|
||||
chmod +x $cmd
|
||||
}
|
||||
@@ -287,10 +294,17 @@ create_wrapper () {
|
||||
|
||||
mv $cmd $cmd.real
|
||||
cmdname=`basename $cmd`
|
||||
dirname=`dirname $cmd`
|
||||
exportstring=$@
|
||||
if [ "${base_prefix}" != "" ]; then
|
||||
relpath=`python3 -c "import os; print(os.path.relpath('${D}${base_prefix}', '$dirname'))"`
|
||||
exportstring=`echo $@ | sed -e "s:${base_prefix}:\\$realdir/$relpath:g"`
|
||||
fi
|
||||
cat <<END >$cmd
|
||||
#!/bin/bash
|
||||
realpath=\`readlink -fn \$0\`
|
||||
export $@
|
||||
realdir=\`dirname \$realpath\`
|
||||
export $exportstring
|
||||
exec -a \`dirname \$realpath\`/$cmdname \`dirname \$realpath\`/$cmdname.real "\$@"
|
||||
END
|
||||
chmod +x $cmd
|
||||
|
||||
Reference in New Issue
Block a user