From 049e5f5385c3a2c8a2e78f1093ca45c9cad3a85f Mon Sep 17 00:00:00 2001 From: Billiam Crashkopf Date: Fri, 3 Jan 2025 14:01:00 -0800 Subject: [PATCH] Change Linux build script to recognize more supported distributions This changes the way the Linux build script recognizes which distribution script might be compatible with the host OS. It does so by checking both the `ID` and `ID_LIKE` tags in `/etc/os-release` against available scripts in `linux.d`. First match is used. Note that ID_LIKE isn't a 100% compatability guarantee, but it gives the user a fighting chance that the script will work for their distribution, and should reduce the need for manual addition of more distribution targets. --- BuildLinux.sh | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/BuildLinux.sh b/BuildLinux.sh index 2009fbdd4..b51511eb7 100755 --- a/BuildLinux.sh +++ b/BuildLinux.sh @@ -84,17 +84,26 @@ fi DISTRIBUTION=$(awk -F= '/^ID=/ {print $2}' /etc/os-release) VERSION=$(awk -F= '/^VERSION_ID=/ {print $2}' /etc/os-release) -# treat ubuntu as debian -if [ "${DISTRIBUTION}" == "ubuntu" ] -then - DISTRIBUTION="debian" -fi -if [ ! -f ./linux.d/${DISTRIBUTION} ] +# OSLIKE is a space-delineated list of similar distributions +OSLIKE=$(awk -F= '/^ID_LIKE=/ {print $2}' /etc/os-release | tr -d '"') + +# Iterate over a list of candidate distribution targets, first match is used +for CANDIDATE in ${DISTRIBUTION} ${OSLIKE}; do + if [ -f ./linux.d/${CANDIDATE} ] + then + TARGET_DISTRO="${CANDIDATE}" + break + fi +done + +if [ -z ${TARGET_DISTRO} ] then echo "Your distribution does not appear to be currently supported by these build scripts" exit 1 fi -source ./linux.d/${DISTRIBUTION} + +echo "OS distribution is '${DISTRIBUTION}'. Using package dependencies for '${TARGET_DISTRO}'." +source ./linux.d/${TARGET_DISTRO} echo "FOUND_GTK3=${FOUND_GTK3}" if [[ -z "${FOUND_GTK3_DEV}" ]] @@ -196,4 +205,4 @@ echo "[9/9] Generating Linux app..." fi popd echo "done" -fi \ No newline at end of file +fi