From ccb9ab922a26a9198e6f7062a0164763af7baeab Mon Sep 17 00:00:00 2001 From: Leonid Pliushch Date: Thu, 19 Sep 2019 23:57:17 +0300 Subject: [PATCH] termux-tools: use @TERMUX_PREFIX@ instead of path in sources Ensure that scripts always use correct prefix-specific path. --- packages/termux-tools/build.sh | 13 ++++++++----- packages/termux-tools/chsh | 4 ++-- packages/termux-tools/login | 10 +++++----- packages/termux-tools/termux-fix-shebang | 4 ++-- 4 files changed, 17 insertions(+), 14 deletions(-) diff --git a/packages/termux-tools/build.sh b/packages/termux-tools/build.sh index 3da810feb..c5bba8be8 100644 --- a/packages/termux-tools/build.sh +++ b/packages/termux-tools/build.sh @@ -31,10 +31,13 @@ termux_step_make_install() { chmod +x $WRAPPER_FILE done - cp -p $TERMUX_PKG_BUILDER_DIR/{dalvikvm,su,termux-fix-shebang,termux-reload-settings,termux-setup-storage,chsh,termux-open-url,termux-wake-lock,termux-wake-unlock,login,pkg,termux-open,termux-info} $TERMUX_PREFIX/bin/ - perl -p -i -e "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" $TERMUX_PREFIX/bin/dalvikvm + for script in chsh dalvikvm login pkg su termux-fix-shebang termux-info \ + termux-open termux-open-url termux-reload-settings termux-setup-storage \ + termux-wake-lock termux-wake-unlock; do + install -Dm700 $TERMUX_PKG_BUILDER_DIR/$script $TERMUX_PREFIX/bin/$script + perl -p -i -e "s%\@TERMUX_PREFIX\@%${TERMUX_PREFIX}%g" $TERMUX_PREFIX/bin/$script + done - cp $TERMUX_PKG_BUILDER_DIR/motd $TERMUX_PREFIX/etc/motd - cd $TERMUX_PREFIX/bin - ln -s -f termux-open xdg-open + install -Dm600 $TERMUX_PKG_BUILDER_DIR/motd $TERMUX_PREFIX/etc/motd + ln -sfr $TERMUX_PREFIX/bin/termux-open $TERMUX_PREFIX/bin/xdg-open } diff --git a/packages/termux-tools/chsh b/packages/termux-tools/chsh index 08bd02e5e..a1fe23cf2 100755 --- a/packages/termux-tools/chsh +++ b/packages/termux-tools/chsh @@ -13,7 +13,7 @@ set_shell () { exit 1 fi mkdir -p $HOME/.termux - NEW_SHELL=$PREFIX/bin/$1 + NEW_SHELL=@TERMUX_PREFIX@/bin/$1 if test -x $NEW_SHELL -a ! -d $NEW_SHELL; then ln -f -s $NEW_SHELL $HOME/.termux/shell else @@ -33,7 +33,7 @@ while true; do done DEFAULT_SHELL=bash -if [ ! -x $PREFIX/bin/$DEFAULT_SHELL ]; then DEFAULT_SHELL=ash; fi +if [ ! -x @TERMUX_PREFIX@/bin/$DEFAULT_SHELL ]; then DEFAULT_SHELL=ash; fi echo Changing the login shell echo Enter the new value, or press ENTER for the default diff --git a/packages/termux-tools/login b/packages/termux-tools/login index f0998a1f2..0da3b44b7 100755 --- a/packages/termux-tools/login +++ b/packages/termux-tools/login @@ -1,7 +1,7 @@ #!/bin/sh -if [ $# = 0 ] && [ -f $PREFIX/etc/motd ] && [ ! -f ~/.hushlogin ] && [ -z "$TERMUX_HUSHLOGIN" ]; then - cat $PREFIX/etc/motd +if [ $# = 0 ] && [ -f @TERMUX_PREFIX@/etc/motd ] && [ ! -f ~/.hushlogin ] && [ -z "$TERMUX_HUSHLOGIN" ]; then + cat @TERMUX_PREFIX@/etc/motd else # This variable shouldn't be kept set. unset TERMUX_HUSHLOGIN @@ -10,7 +10,7 @@ fi if [ -G ~/.termux/shell ]; then export SHELL="`realpath ~/.termux/shell`" else - for file in $PREFIX/bin/bash $PREFIX/bin/sh /system/bin/sh; do + for file in @TERMUX_PREFIX@/bin/bash @TERMUX_PREFIX@/bin/sh /system/bin/sh; do if [ -x $file ]; then export SHELL=$file break @@ -18,8 +18,8 @@ else done fi -if [ -f $PREFIX/lib/libtermux-exec.so ]; then - export LD_PRELOAD=$PREFIX/lib/libtermux-exec.so +if [ -f @TERMUX_PREFIX@/lib/libtermux-exec.so ]; then + export LD_PRELOAD=@TERMUX_PREFIX@/lib/libtermux-exec.so $SHELL -c "busybox true" > /dev/null 2>&1 || unset LD_PRELOAD fi diff --git a/packages/termux-tools/termux-fix-shebang b/packages/termux-tools/termux-fix-shebang index 84bbca4ff..25a5b48c9 100755 --- a/packages/termux-tools/termux-fix-shebang +++ b/packages/termux-tools/termux-fix-shebang @@ -3,10 +3,10 @@ if [ $# = 0 -o "$1" = "-h" ]; then echo 'usage: termux-fix-shebang ' echo 'Rewrite shebangs in specified files for running under Termux,' - echo 'which is done by rewriting #!*/bin/binary to #!$PREFIX/bin/binary.' + echo 'which is done by rewriting #!*/bin/binary to #!@TERMUX_PREFIX@/bin/binary.' exit 1 fi for file in "$@"; do - sed -i -E "1 s@^#\!(.*)/[sx]?bin/(.*)@#\!/data/data/com.termux/files/usr/bin/\2@" "$(realpath "${file}")" + sed -i -E "1 s@^#\!(.*)/[sx]?bin/(.*)@#\!@TERMUX_PREFIX@/bin/\2@" "$(realpath "${file}")" done