From c143787681689efd59d5c2567d5fd4ce1b5d8176 Mon Sep 17 00:00:00 2001 From: 4qwerty7 <4qwerty7@163.com> Date: Mon, 2 Jan 2023 15:51:04 +0800 Subject: [PATCH] Support no wine execution in WSL (#308) Closes #306 --- scripts/build.sh | 6 +++++- scripts/run.sh | 20 +++++++++++++------- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/scripts/build.sh b/scripts/build.sh index c009a13..4349425 100755 --- a/scripts/build.sh +++ b/scripts/build.sh @@ -647,7 +647,11 @@ cp "$WORK_DIR"/wsa/"$ARCH"/resources.pri "$WORK_DIR"/wsa/pri/en-us.pri \ EOF - wine64 ../wine/"$HOST_ARCH"/makepri.exe new /pr "$WORK_DIR"/wsa/pri /in MicrosoftCorporationII.WindowsSubsystemForAndroid /cf "$WORK_DIR"/wsa/priconfig.xml /of "$WORK_DIR"/wsa/"$ARCH"/resources.pri /o + if [ ! -f /proc/sys/fs/binfmt_misc/WSLInterop ] || which wine64 > /dev/null; then + wine64 ../wine/"$HOST_ARCH"/makepri.exe new /pr "$WORK_DIR"/wsa/pri /in MicrosoftCorporationII.WindowsSubsystemForAndroid /cf "$WORK_DIR"/wsa/priconfig.xml /of "$WORK_DIR"/wsa/"$ARCH"/resources.pri /o + else + ../wine/"$HOST_ARCH"/makepri.exe new /pr "$(wslpath -w "$WORK_DIR"/wsa/pri)" /in MicrosoftCorporationII.WindowsSubsystemForAndroid /cf "$(wslpath -w "$WORK_DIR"/wsa/priconfig.xml)" /of "$(wslpath -w "$WORK_DIR"/wsa/"$ARCH"/resources.pri)" /o + fi sed -i -zE "s//\n$(cat "$WORK_DIR"/wsa/xml/* | grep -Po ']*/>' | sed ':a;N;$!ba;s/\n/\\n/g' | sed 's/\$/\\$/g' | sed 's/\//\\\//g')\n<\/Resources>/g" "$WORK_DIR"/wsa/"$ARCH"/AppxManifest.xml echo -e "Merge Language Resources done\n" } || echo -e "Merge Language Resources failed\n" diff --git a/scripts/run.sh b/scripts/run.sh index 60aab8b..32fb5dd 100755 --- a/scripts/run.sh +++ b/scripts/run.sh @@ -44,8 +44,12 @@ check_dependencies() { command -v whiptail >/dev/null 2>&1 || command -v dialog >/dev/null 2>&1 || NEED_INSTALL+=("whiptail") command -v seinfo >/dev/null 2>&1 || NEED_INSTALL+=("setools") command -v lzip >/dev/null 2>&1 || NEED_INSTALL+=("lzip") - command -v wine64 >/dev/null 2>&1 || NEED_INSTALL+=("wine") - command -v winetricks >/dev/null 2>&1 || NEED_INSTALL+=("winetricks") + if [ ! -f /proc/sys/fs/binfmt_misc/WSLInterop ]; then + command -v wine64 >/dev/null 2>&1 || NEED_INSTALL+=("wine") + fi + if [ ! -f /proc/sys/fs/binfmt_misc/WSLInterop ] || which wine64 > /dev/null; then + command -v winetricks >/dev/null 2>&1 || NEED_INSTALL+=("winetricks") + fi command -v patchelf >/dev/null 2>&1 || NEED_INSTALL+=("patchelf") command -v resize2fs >/dev/null 2>&1 || NEED_INSTALL+=("e2fsprogs") command -v pip >/dev/null 2>&1 || NEED_INSTALL+=("python3-pip") @@ -122,10 +126,12 @@ if [ -n "${NEED_INSTALL[*]}" ]; then fi pip list --disable-pip-version-check | grep -E "^requests " >/dev/null 2>&1 || python3 -m pip install requests -winetricks list-installed | grep -E "^msxml6" >/dev/null 2>&1 || { - cp -r ../wine/.cache/* ~/.cache - winetricks msxml6 || abort -} +if [ ! -f /proc/sys/fs/binfmt_misc/WSLInterop ] || which wine64 > /dev/null; then + winetricks list-installed | grep -E "^msxml6" >/dev/null 2>&1 || { + cp -r ../wine/.cache/* ~/.cache + winetricks msxml6 || abort + } +fi WHIPTAIL=$(command -v whiptail 2>/dev/null) DIALOG=$(command -v dialog 2>/dev/null) DIALOG=${WHIPTAIL:-$DIALOG} @@ -186,7 +192,7 @@ if (YesNoBox '([title]="Install GApps" [text]="Do you want to install GApps?")') else GAPPS_BRAND="none" fi -if [ $GAPPS_BRAND = "OpenGApps" ]; then +if [ "$GAPPS_BRAND" = "OpenGApps" ]; then # TODO: Keep it pico since other variants of opengapps are unable to boot successfully if [ "$DEBUG" = "1" ]; then GAPPS_VARIANT=$(