mirror of
https://gitee.com/spark-store-project/additional-base-lib
synced 2025-12-14 19:12:09 +08:00
pack script introduced and several bugs fix.
This commit is contained in:
48
scripts/ablrun
Executable file
48
scripts/ablrun
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "$*" = "" ]
|
||||
then
|
||||
echo "usage: $0 [command [arguments ...]]"
|
||||
echo " The script is part of additional-base-lib. The package provides a"
|
||||
echo " simple way to solve the compatible problem between application and"
|
||||
echo " glibc, powered by bubblewrap."
|
||||
echo " All the library files, which distributed with additional-base-lib,"
|
||||
echo " are taken from debian bookworm. The script itself create by enforcee"
|
||||
echo " from deepin forum <https://bbs.deepin.org/>. There's no lisence"
|
||||
echo " nor copyright restriction with The script. Feel free to deal with."
|
||||
echo
|
||||
echo " This script auto-detects normal executable and appimage, and then"
|
||||
echo " uses specified script to run either. If you experienced issues,"
|
||||
echo " you may want to use them directly."
|
||||
echo " for appimage, you need ablrun-appimage."
|
||||
echo " for normal executable, you need ablrun-normal."
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ `whoami` = "root" ]
|
||||
then
|
||||
exec ablrun-normal "$@"
|
||||
fi
|
||||
|
||||
if [ -e "$1" ]
|
||||
then
|
||||
ABL_FILENAME="$1"
|
||||
else
|
||||
ABL_FILENAME=`which $1`
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
echo "File not exists."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
ABL_FILETYPE=`xdg-mime query filetype "$ABL_FILENAME"`
|
||||
if [ "$ABL_FILETYPE" != "application/vnd.appimage" ]
|
||||
then
|
||||
if [ "$ABL_FILETYPE" != "application/x-iso9660-appimage" ]
|
||||
then
|
||||
exec ablrun-normal "$@"
|
||||
fi
|
||||
fi
|
||||
|
||||
exec ablrun-appimage "$@"
|
||||
38
scripts/ablrun-appimage
Executable file
38
scripts/ablrun-appimage
Executable file
@@ -0,0 +1,38 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "$*" = "" ]
|
||||
then
|
||||
echo "usage: $0 [appimage-file [arguments ...]]"
|
||||
echo " This is helper script to run appimages for additional-base-lib."
|
||||
echo
|
||||
echo " You have to ensure input file IS an appimage, for this script"
|
||||
echo " does not check. If you input other files, It will become"
|
||||
echo " unpredictable."
|
||||
exit
|
||||
fi
|
||||
|
||||
ABLIMAGE_PARAMETERS=("$@")
|
||||
|
||||
coproc "$1" --appimage-mount
|
||||
|
||||
ABLIMAGE_PID=$!
|
||||
|
||||
cleanup() {
|
||||
kill $ABLIMAGE_PID
|
||||
exit
|
||||
}
|
||||
trap cleanup SIGHUP
|
||||
trap cleanup SIGINT
|
||||
trap cleanup SIGTERM
|
||||
|
||||
if [ ! -e /proc/$! ]
|
||||
then
|
||||
echo "Child process failed."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
read -u ${COPROC[0]} ABLIMAGE_DIR
|
||||
|
||||
ablrun-normal "$ABLIMAGE_DIR/AppRun" ${ABLIMAGE_PARAMETERS[@]:1}
|
||||
|
||||
cleanup
|
||||
37
scripts/ablrun-normal.1
Executable file
37
scripts/ablrun-normal.1
Executable file
@@ -0,0 +1,37 @@
|
||||
#some contents is generated when build package
|
||||
|
||||
if [ "$*" = "" ]
|
||||
then
|
||||
echo "usage: $0 [command [arguments ...]]"
|
||||
echo " The script is part of additional-base-lib. The package provides a"
|
||||
echo " simple way to solve the compatible problem between application and"
|
||||
echo " glibc, powered by bubblewrap."
|
||||
echo " All the library files, which distributed with additional-base-lib,"
|
||||
echo " are taken from debian bookworm. The script itself create by enforcee"
|
||||
echo " from deepin forum <https://bbs.deepin.org/>. There's no lisence"
|
||||
echo " nor copyright restriction with The script. Feel free to deal with."
|
||||
echo
|
||||
echo " If you're going to run appimage with additional-base-lib, you may"
|
||||
echo " need ablrun-appimage."
|
||||
echo " There is a simpler script to handle both normal executable and"
|
||||
echo " appimage, called ablrun. usage: ablrun [command [arguments ...]]"
|
||||
exit
|
||||
fi
|
||||
|
||||
ABL_LD_SO_PATH=`readlink -e $ABL_TARGET_LD_SO_PATH`
|
||||
ABL_LIBC_SO_PATH=`readlink -e /lib/${ABL_ARCH_DIR}/libc.so.6`
|
||||
|
||||
if [ "$LD_LIBRARY_PATH" = "" ]
|
||||
then
|
||||
ABL_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu/additional-base-lib/"
|
||||
else
|
||||
ABL_LIBRARY_PATH="$LD_LIBRARY_PATH;/usr/lib/x86_64-linux-gnu/additional-base-lib"
|
||||
fi
|
||||
|
||||
exec bwrap \
|
||||
--dev-bind / / \
|
||||
--bind /usr/lib/${ABL_ARCH_DIR}/additional-base-lib/"$ABL_TARGET_LD_SO_PATH" "$ABL_LD_SO_PATH" \
|
||||
--bind /usr/lib/${ABL_ARCH_DIR}/additional-base-lib/libc.so.6 "$ABL_LIBC_SO_PATH" \
|
||||
--bind /usr/lib/${ABL_ARCH_DIR}/additional-base-lib/ldd /usr/bin/ldd \
|
||||
--setenv LD_LIBRARY_PATH "$ABL_LIBRARY_PATH" \
|
||||
-- "$@"
|
||||
Reference in New Issue
Block a user