[gnome-continuous-yocto/gnomeostree-3.28-rocko: 4434/8267] utils: Avoid need to relocate wrapper scripts



commit 2bb0b1d9b51309038fcaaa6e1a62990cd2e7e257
Author: Richard Purdie <richard purdie linuxfoundation org>
Date:   Mon Jan 30 23:08:11 2017 +0000

    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>

 meta/classes/utils.bbclass |   18 ++++++++++++++++--
 1 files changed, 16 insertions(+), 2 deletions(-)
---
diff --git a/meta/classes/utils.bbclass b/meta/classes/utils.bbclass
index 549e4b8..fe75f73 100644
--- a/meta/classes/utils.bbclass
+++ b/meta/classes/utils.bbclass
@@ -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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]