diff --git a/data_from_portwine/scripts/functions_helper b/data_from_portwine/scripts/functions_helper index 6fe872a5..c5659c47 100755 --- a/data_from_portwine/scripts/functions_helper +++ b/data_from_portwine/scripts/functions_helper @@ -748,6 +748,30 @@ check_flatpak () { } export -f check_flatpak +check_selinux () { + if [[ -n "$SELINUX_IN_USE" ]] + then [[ "$SELINUX_IN_USE" == 1 ]] && return 0 || return 1 + fi + if check_flatpak ; then + if grep -i ^"SELINUX=enforcing" /run/host/etc/selinux/config &>/dev/null ; then + export SELINUX_IN_USE=1 + return 0 + else + export SELINUX_IN_USE=0 + return 1 + fi + else + if grep -i ^"SELINUX=enforcing" /etc/selinux/config &>/dev/null ; then + export SELINUX_IN_USE=1 + return 0 + else + export SELINUX_IN_USE=0 + return 1 + fi + fi +} +export -f check_selinux + background_pid () { local arg1=$1 # --start или --end local arg2=$2 # Название команды diff --git a/data_from_portwine/scripts/start.sh b/data_from_portwine/scripts/start.sh index 69a6cd69..225c2493 100755 --- a/data_from_portwine/scripts/start.sh +++ b/data_from_portwine/scripts/start.sh @@ -331,10 +331,15 @@ if [[ $(basename "${portwine_exe}") =~ .[Pp][Pp][Aa][Cc][Kk]$ ]] ; then then TMP_ALL_PATH="" else TMP_ALL_PATH="LD_LIBRARY_PATH=\"${PW_LD_LIBRARY_PATH}\"" fi + if check_selinux + then NO_XATTRS_NEED="-no-xattrs" + else NO_XATTRS_NEED="" + fi PW_PREFIX_NAME=$(basename "$1" | awk -F'.' '{print $1}') cat << EOF > "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh #!/usr/bin/env bash ${TMP_ALL_PATH} unsquashfs -f -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" "$1" \ + ${TMP_ALL_PATH} unsquashfs $NO_XATTRS_NEED -f -d "${PORT_WINE_PATH}/data/prefixes/${PW_PREFIX_NAME}" "$1" \ || echo "ERROR" > "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack_error EOF chmod u+x "${PORT_WINE_TMP_PATH}"/pp_pfx_unpack.sh