diff --git a/buildscripts/build_aitool_linux.sh b/buildscripts/build_aitool_linux.sh
index d53ba4fe4..905d36ce1 100755
--- a/buildscripts/build_aitool_linux.sh
+++ b/buildscripts/build_aitool_linux.sh
@@ -5,7 +5,7 @@
 
 set -euo pipefail
 
-"$(dirname "$0")"/download/download_aitool.sh
+"$(dirname "$(realpath "$0")")/download/download_aitool.sh"
 
 cmake . -DCMAKE_BUILD_TYPE=RelWithDebInfo -DBUILD_TESTING=ON \
 -DAPPIMAGEKIT_PACKAGE_DEBS=ON
diff --git a/buildscripts/build_ffmpeg.sh b/buildscripts/build_ffmpeg.sh
index 1ff234562..92a922e71 100755
--- a/buildscripts/build_ffmpeg.sh
+++ b/buildscripts/build_ffmpeg.sh
@@ -28,7 +28,7 @@ if [ "$ARCH" != "win32" ] && [ "$ARCH" != "win64" ]; then
     exit 1
 fi
 
-"$(dirname "$0")"/download/download_ffmpeg.sh
+"$(dirname "$(realpath "$0")")/download/download_ffmpeg.sh"
 
 if [ "${ARCH}" == "win64" ]; then
     FFMPEG_ARCH="x86_64"
diff --git a/buildscripts/build_gdb_windows.sh b/buildscripts/build_gdb_windows.sh
index 313ab73b9..af5e100e3 100755
--- a/buildscripts/build_gdb_windows.sh
+++ b/buildscripts/build_gdb_windows.sh
@@ -32,7 +32,7 @@ else
     HOST="i686-w64-mingw32"
 fi
 
-"$(dirname $0)"/download/download_gdb.sh
+"$(dirname "$(realpath "$0")")/download/download_gdb.sh"
 
 CFLAGS="-O2 -g0" ./configure --host="${HOST}" \
                                 --prefix="/windows" \
diff --git a/buildscripts/build_gmp_windows.sh b/buildscripts/build_gmp_windows.sh
index 21a4894af..1f9d100ab 100755
--- a/buildscripts/build_gmp_windows.sh
+++ b/buildscripts/build_gmp_windows.sh
@@ -32,7 +32,7 @@ else
     HOST="i686-w64-mingw32"
 fi
 
-"$(dirname $0)"/download/download_gmp.sh
+"$(dirname "$(realpath "$0")")/download/download_gmp.sh"
 
 # https://gmplib.org/list-archives/gmp-discuss/2020-July/006519.html
 CC_FOR_BUILD=gcc CFLAGS="-O2 -g0" ./configure --host="${HOST}" \
diff --git a/buildscripts/build_ldqt_linux.sh b/buildscripts/build_ldqt_linux.sh
index 7810294c3..690caad6f 100755
--- a/buildscripts/build_ldqt_linux.sh
+++ b/buildscripts/build_ldqt_linux.sh
@@ -17,7 +17,7 @@
 
 set -euo pipefail
 
-"$(dirname "$0")"/download/download_ldqt.sh
+"$(dirname $(realpath "$0"))/download/download_ldqt.sh"
 
 qmake
 make -j $(nproc)
diff --git a/buildscripts/build_libexif.sh b/buildscripts/build_libexif.sh
index af53d18d2..894a57c73 100755
--- a/buildscripts/build_libexif.sh
+++ b/buildscripts/build_libexif.sh
@@ -28,7 +28,7 @@ if [ "$ARCH" != "win32" ] && [ "$ARCH" != "win64" ]; then
     exit 1
 fi
 
-"$(dirname $0)"/download/download_libexif.sh
+"$(dirname "$(realpath "$0")")/download/download_libexif.sh"
 
 if [ "${ARCH}" == "win64" ]; then
     HOST="x86_64-w64-mingw32"
diff --git a/buildscripts/build_libexpat_windows.sh b/buildscripts/build_libexpat_windows.sh
index 34568aabe..bbd3181e6 100755
--- a/buildscripts/build_libexpat_windows.sh
+++ b/buildscripts/build_libexpat_windows.sh
@@ -26,7 +26,7 @@ if [ "$ARCH" != "win32" ] && [ "$ARCH" != "win64" ]; then
     exit 1
 fi
 
-"$(dirname $0)"/download/download_libexpat.sh
+"$(dirname "$(realpath "$0")")/download/download_libexpat.sh"
 
 if [ "${ARCH}" == "win64" ]; then
     HOST="x86_64-w64-mingw32"
diff --git a/buildscripts/build_mingw_ldd_windows.sh b/buildscripts/build_mingw_ldd_windows.sh
index 896510d0f..1fabf0cb3 100755
--- a/buildscripts/build_mingw_ldd_windows.sh
+++ b/buildscripts/build_mingw_ldd_windows.sh
@@ -6,6 +6,6 @@
 
 set -euo pipefail
 
-"$(dirname "$0")"/download/download_mingw_ldd.sh
+"$(dirname $(realpath "$0"))/download/download_mingw_ldd.sh"
 
 cp -a mingw_ldd/mingw_ldd.py /usr/local/bin/mingw-ldd.py
diff --git a/buildscripts/build_msgpack_c.sh b/buildscripts/build_msgpack_c.sh
index ad0659341..fa891af02 100755
--- a/buildscripts/build_msgpack_c.sh
+++ b/buildscripts/build_msgpack_c.sh
@@ -5,7 +5,7 @@
 
 set -euo pipefail
 
-"$(dirname "$0")"/download/download_msgpack_c.sh
+"$(dirname "$(realpath "$0")")/download/download_msgpack_c.sh"
 
 cmake -DCMAKE_INSTALL_PREFIX=/windows/ \
     -DCMAKE_BUILD_TYPE=Release \
diff --git a/buildscripts/build_nsisshellexecasuser_windows.sh b/buildscripts/build_nsisshellexecasuser_windows.sh
index 18f0b738e..e8d25d456 100755
--- a/buildscripts/build_nsisshellexecasuser_windows.sh
+++ b/buildscripts/build_nsisshellexecasuser_windows.sh
@@ -6,6 +6,6 @@
 
 set -euo pipefail
 
-"$(dirname "$0")"/download/download_nsisshellexecasuser.sh
+"$(dirname $(realpath "$0"))/download/download_nsisshellexecasuser.sh"
 
 cp unicode/ShellExecAsUser.dll /usr/share/nsis/Plugins/x86-unicode
diff --git a/buildscripts/build_openal.sh b/buildscripts/build_openal.sh
index 8fe94fa2b..dbfccf314 100755
--- a/buildscripts/build_openal.sh
+++ b/buildscripts/build_openal.sh
@@ -6,6 +6,8 @@
 
 set -euo pipefail
 
+readonly SCRIPT_DIR="$(dirname "$(realpath "$0")")"
+
 usage()
 {
     echo "Download and build openal for the windows cross compiling environment"
@@ -28,9 +30,10 @@ if [ "$ARCH" != "win32" ] && [ "$ARCH" != "win64" ]; then
     exit 1
 fi
 
-"$(dirname "$0")"/download/download_openal.sh
+"${SCRIPT_DIR}/download/download_openal.sh"
+
+patch -p1 < "${SCRIPT_DIR}/patches/openal-cmake-3-11.patch"
 
-patch -p1 < "$(dirname "$0")"/patches/openal-cmake-3-11.patch
 
 if [ "${ARCH}" == "win64" ]; then
     MINGW_DIR="x86_64-w64-mingw32"
diff --git a/buildscripts/build_openssl.sh b/buildscripts/build_openssl.sh
index 1123bcdf7..dbc441f22 100755
--- a/buildscripts/build_openssl.sh
+++ b/buildscripts/build_openssl.sh
@@ -34,7 +34,7 @@ else
     exit 1
 fi
 
-"$(dirname "$0")"/download/download_openssl.sh
+"$(dirname "$(realpath "$0")")/download/download_openssl.sh"
 
 ./Configure --prefix=/windows/ \
     --openssldir=/windows/ssl \
diff --git a/buildscripts/build_opus.sh b/buildscripts/build_opus.sh
index 0025fb8ac..dae2aa952 100755
--- a/buildscripts/build_opus.sh
+++ b/buildscripts/build_opus.sh
@@ -32,7 +32,7 @@ else
     exit 1
 fi
 
-"$(dirname "$0")"/download/download_opus.sh
+"$(dirname "$(realpath "$0")")/download/download_opus.sh"
 
 LDFLAGS="-fstack-protector" CFLAGS="-O2 -g0" \
     ./configure --host="${HOST}" \
diff --git a/buildscripts/build_qrencode.sh b/buildscripts/build_qrencode.sh
index 05f18d333..2f53aa361 100755
--- a/buildscripts/build_qrencode.sh
+++ b/buildscripts/build_qrencode.sh
@@ -32,7 +32,7 @@ else
     exit 1
 fi
 
-"$(dirname "$0")"/download/download_qrencode.sh
+"$(dirname "$(realpath "$0")")/download/download_qrencode.sh"
 
 CFLAGS="-O2 -g0" ./configure --host="${HOST}" \
                             --prefix=/windows \
diff --git a/buildscripts/build_qt_windows.sh b/buildscripts/build_qt_windows.sh
index 5152c66f3..e0a6a47f5 100755
--- a/buildscripts/build_qt_windows.sh
+++ b/buildscripts/build_qt_windows.sh
@@ -32,7 +32,7 @@ else
     exit 1
 fi
 
-"$(dirname "$0")"/download/download_qt.sh
+"$(dirname "$(realpath "$0")")/download/download_qt.sh"
 
 OPENSSL_LIBS=$(pkg-config --libs openssl)
 export OPENSSL_LIBS
diff --git a/buildscripts/build_snore_linux.sh b/buildscripts/build_snore_linux.sh
index 40c4e8f5f..7195a899a 100755
--- a/buildscripts/build_snore_linux.sh
+++ b/buildscripts/build_snore_linux.sh
@@ -17,6 +17,8 @@
 
 set -euo pipefail
 
+readonly SCRIPT_DIR="$(dirname "$(realpath "$0")")"
+
 usage ()
 {
     echo "Build/install snore for linux"
@@ -33,7 +35,7 @@ while (( $# > 0 )); do
     esac
 done
 
-"$(dirname "$0")"/download/download_snore.sh
+"${SCRIPT_DIR}/download/download_snore.sh"
 
 # Snore needs to be installed into /usr for linuxdeployqt to find it
 if [ $SYSTEM_INSTALL -eq 1 ]; then
@@ -42,7 +44,7 @@ else
     INSTALL_PREFIX_ARGS=""
 fi
 
-patch -Np1 < "$(dirname "$0")"/patches/snore.patch
+patch -Np1 < "${SCRIPT_DIR}/patches/snore.patch"
 
 cmake -DCMAKE_BUILD_TYPE=Release $INSTALL_PREFIX_ARGS \
     -DBUILD_daemon=OFF \
diff --git a/buildscripts/build_snore_windows.sh b/buildscripts/build_snore_windows.sh
index 8ac18a725..9ef433a51 100755
--- a/buildscripts/build_snore_windows.sh
+++ b/buildscripts/build_snore_windows.sh
@@ -6,7 +6,7 @@
 
 set -euo pipefail
 
-"$(dirname "$0")"/download/download_snore.sh
+"$(dirname "$(realpath "$0")")/download/download_snore.sh"
 
 cmake -DCMAKE_INSTALL_PREFIX=/windows/ \
       -DCMAKE_BUILD_TYPE=Release \
diff --git a/buildscripts/build_sodium.sh b/buildscripts/build_sodium.sh
index d489cf9c1..3274f3830 100755
--- a/buildscripts/build_sodium.sh
+++ b/buildscripts/build_sodium.sh
@@ -32,7 +32,7 @@ else
     exit 1
 fi
 
-"$(dirname "$0")"/download/download_sodium.sh
+"$(dirname "$(realpath "$0")")/download/download_sodium.sh"
 
 LDFLAGS="-fstack-protector" \
   ./configure --host="${HOST}" \
diff --git a/buildscripts/build_sqlcipher.sh b/buildscripts/build_sqlcipher.sh
index d3ba6c6c9..e5557f41c 100755
--- a/buildscripts/build_sqlcipher.sh
+++ b/buildscripts/build_sqlcipher.sh
@@ -32,7 +32,7 @@ else
     exit 1
 fi
 
-"$(dirname "$0")"/download/download_sqlcipher.sh
+"$(dirname "$(realpath "$0")")/download/download_sqlcipher.sh"
 
 sed -i s/'if test "$TARGET_EXEEXT" = ".exe"'/'if test ".exe" = ".exe"'/g configure
 sed -i 's|exec $PWD/mksourceid manifest|exec $PWD/mksourceid.exe manifest|g' tool/mksqlite3h.tcl
diff --git a/buildscripts/build_toxcore.sh b/buildscripts/build_toxcore.sh
index f797abad4..48641be7b 100755
--- a/buildscripts/build_toxcore.sh
+++ b/buildscripts/build_toxcore.sh
@@ -6,13 +6,15 @@
 
 set -euo pipefail
 
+readonly SCRIPT_DIR="$(dirname "$(realpath "$0")")"
+
 build_toxcore() {
     TOXCORE_SRC="$(realpath toxcore)"
 
     mkdir -p "$TOXCORE_SRC"
     pushd $TOXCORE_SRC >/dev/null || exit 1
 
-    "$(dirname "$0")"/download/download_toxcore.sh
+    "${SCRIPT_DIR}/download/download_toxcore.sh"
 
     cmake -DCMAKE_INSTALL_PREFIX=/windows/ \
             -DBOOTSTRAP_DAEMON=OFF \
@@ -34,7 +36,7 @@ build_toxext() {
     mkdir -p "$TOXEXT_SRC"
     pushd $TOXEXT_SRC >/dev/null || exit 1
 
-    "$(dirname "$0")"/download/download_toxext.sh
+    "${SCRIPT_DIR}/download/download_toxext.sh"
 
     cmake -DCMAKE_INSTALL_PREFIX=/windows/ \
             -DCMAKE_BUILD_TYPE=Release \
@@ -53,7 +55,7 @@ build_toxext_messages() {
     mkdir -p "$TOXEXT_MESSAGES_SRC"
     pushd $TOXEXT_MESSAGES_SRC > /dev/null || exit 1
 
-    "$(dirname "$0")"/download/download_toxext_messages.sh
+    "${SCRIPT_DIR}/download/download_toxext_messages.sh"
 
     cmake -DCMAKE_INSTALL_PREFIX=/windows/ \
             -DCMAKE_BUILD_TYPE=Release \
diff --git a/buildscripts/build_toxcore_linux.sh b/buildscripts/build_toxcore_linux.sh
index 7b684df04..51053f190 100755
--- a/buildscripts/build_toxcore_linux.sh
+++ b/buildscripts/build_toxcore_linux.sh
@@ -17,13 +17,13 @@
 
 set -euo pipefail
 
-SCRIPT_DIR=$(dirname $(realpath "$0"))
+readonly SCRIPT_DIR="$(dirname "$(realpath "$0")")"
 
 build_toxcore() {
     mkdir -p toxcore
     pushd toxcore >/dev/null || exit 1
 
-    "$SCRIPT_DIR"/download/download_toxcore.sh
+    "${SCRIPT_DIR}/download/download_toxcore.sh"
 
     cmake . \
         -DBOOTSTRAP_DAEMON=OFF \
@@ -40,7 +40,7 @@ build_toxext() {
     mkdir -p toxext
     pushd toxext >/dev/null || exit 1
 
-    "$SCRIPT_DIR"/download/download_toxext.sh
+    "${SCRIPT_DIR}/download/download_toxext.sh"
 
     cmake . -DCMAKE_BUILD_TYPE=Release
     cmake --build . -- -j$(nproc)
@@ -53,7 +53,7 @@ build_toxext_messages() {
     mkdir -p toxext_messages
     pushd toxext_messages > /dev/null || exit 1
 
-    "$SCRIPT_DIR"/download/download_toxext_messages.sh
+    "${SCRIPT_DIR}/download/download_toxext_messages.sh"
 
     cmake .  -DCMAKE_BUILD_TYPE=Release
     cmake --build . -- -j$(nproc)
diff --git a/buildscripts/build_vpx.sh b/buildscripts/build_vpx.sh
index 6f69fa9cc..e2fad46b5 100755
--- a/buildscripts/build_vpx.sh
+++ b/buildscripts/build_vpx.sh
@@ -40,7 +40,7 @@ else
     exit 1
 fi
 
-"$(dirname "$0")"/download/download_vpx.sh
+"$(dirname "$(realpath "$0")")/download/download_vpx.sh"
 
 patch -Np1 < "$(dirname "$0")"/patches/vpx.patch
 
diff --git a/buildscripts/download/download_ffmpeg.sh b/buildscripts/download/download_ffmpeg.sh
index 48d800d98..5aab87226 100755
--- a/buildscripts/download/download_ffmpeg.sh
+++ b/buildscripts/download/download_ffmpeg.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 FFMPEG_VERSION=4.4.1
 FFMPEG_HASH=eadbad9e9ab30b25f5520fbfde99fae4a92a1ae3c0257a8d68569a4651e30e02
 
-source "$(dirname $0)"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://www.ffmpeg.org/releases/ffmpeg-${FFMPEG_VERSION}.tar.xz" \
diff --git a/buildscripts/download/download_gdb.sh b/buildscripts/download/download_gdb.sh
index 8538a6037..7ece3b529 100755
--- a/buildscripts/download/download_gdb.sh
+++ b/buildscripts/download/download_gdb.sh
@@ -20,9 +20,8 @@ set -euo pipefail
 GDB_VERSION="11.1"
 GDB_HASH="cccfcc407b20d343fb320d4a9a2110776dd3165118ffd41f4b1b162340333f94"
 
-source "$(dirname $0)"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "http://ftp.gnu.org/gnu/gdb/gdb-${GDB_VERSION}.tar.xz" \
     ${GDB_HASH}
-
diff --git a/buildscripts/download/download_gmp.sh b/buildscripts/download/download_gmp.sh
index 677b680a0..57cdfb7b8 100755
--- a/buildscripts/download/download_gmp.sh
+++ b/buildscripts/download/download_gmp.sh
@@ -20,9 +20,8 @@ set -euo pipefail
 GMP_VERSION=6.2.1
 GMP_HASH=fd4829912cddd12f84181c3451cc752be224643e87fac497b69edddadc49b4f2
 
-source "$(dirname $0)"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "http://ftp.gnu.org/gnu/gmp/gmp-${GMP_VERSION}.tar.xz" \
     "${GMP_HASH}"
-
diff --git a/buildscripts/download/download_ldqt.sh b/buildscripts/download/download_ldqt.sh
index 36a82bac1..d020f920c 100755
--- a/buildscripts/download/download_ldqt.sh
+++ b/buildscripts/download/download_ldqt.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 LINUXDEPLOYQT_VERSION=570ca2dcb16f59ce0a2721f780093db8037cc9e0
 LINUXDEPLOYQT_HASH=d53496c349f540ce17ea42c508d85802db1c7c3571e1bf962ec4e95482ea938e
 
-source "$(dirname $0)"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://github.com/probonopd/linuxdeployqt/archive/${LINUXDEPLOYQT_VERSION}.tar.gz" \
diff --git a/buildscripts/download/download_libexif.sh b/buildscripts/download/download_libexif.sh
index 66e840bf3..1946a2bc4 100755
--- a/buildscripts/download/download_libexif.sh
+++ b/buildscripts/download/download_libexif.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 LIBEXIF_VERSION=0.6.24
 LIBEXIF_HASH=d47564c433b733d83b6704c70477e0a4067811d184ec565258ac563d8223f6ae
 
-source "$(dirname $0)"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://github.com/libexif/libexif/releases/download/v${LIBEXIF_VERSION}/libexif-${LIBEXIF_VERSION}.tar.bz2" \
diff --git a/buildscripts/download/download_libexpat.sh b/buildscripts/download/download_libexpat.sh
index 5c83d2336..e6aa39620 100755
--- a/buildscripts/download/download_libexpat.sh
+++ b/buildscripts/download/download_libexpat.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 EXPAT_VERSION="2.4.1"
 EXPAT_HASH="cf032d0dba9b928636548e32b327a2d66b1aab63c4f4a13dd132c2d1d2f2fb6a"
 
-source "$(dirname $0)"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://github.com/libexpat/libexpat/releases/download/R_${EXPAT_VERSION//./_}/expat-${EXPAT_VERSION}.tar.xz" \
diff --git a/buildscripts/download/download_mingw_debug_scripts.sh b/buildscripts/download/download_mingw_debug_scripts.sh
index 1e93cba0f..39e56cd28 100755
--- a/buildscripts/download/download_mingw_debug_scripts.sh
+++ b/buildscripts/download/download_mingw_debug_scripts.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 MINGW_W64_DEBUG_SCRIPTS_VERSION="c6ae689137844d1a6fd9c1b9a071d3f82a44c593"
 MINGW_W64_DEBUG_SCRIPTS_HASH="5916bf9e6691d4f7f1c233c8c3a2b9f3b1d1ad0f58ab951381da5ec856f5d021"
 
-source "$(dirname $0)"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://github.com/nurupo/mingw-w64-debug-scripts/archive/${MINGW_W64_DEBUG_SCRIPTS_VERSION}.tar.gz" \
diff --git a/buildscripts/download/download_mingw_ldd.sh b/buildscripts/download/download_mingw_ldd.sh
index da64cc1ee..b9c0c166c 100755
--- a/buildscripts/download/download_mingw_ldd.sh
+++ b/buildscripts/download/download_mingw_ldd.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 MINGW_LDD_VERSION=0.2.1
 MINGW_LDD_HASH=60d34506d2f345e011b88de172ef312f37ca3ba87f3764f511061b69878ab204
 
-source "$(dirname $0)"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://github.com/nurupo/mingw-ldd/archive/v${MINGW_LDD_VERSION}.tar.gz" \
diff --git a/buildscripts/download/download_msgpack_c.sh b/buildscripts/download/download_msgpack_c.sh
index 0bce053c2..b70dd38be 100755
--- a/buildscripts/download/download_msgpack_c.sh
+++ b/buildscripts/download/download_msgpack_c.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 MSGPACK_VERSION=c-4.0.0
 MSGPACK_HASH=656ebe4566845e7bda9c097b625ba59ac72ddfd45df6017172d46d9ac7365aa3
 
-source "$(dirname $0)"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://github.com/msgpack/msgpack-c/archive/${MSGPACK_VERSION}.tar.gz" \
diff --git a/buildscripts/download/download_nsisshellexecasuser.sh b/buildscripts/download/download_nsisshellexecasuser.sh
index f499a5adf..36e1c6212 100755
--- a/buildscripts/download/download_nsisshellexecasuser.sh
+++ b/buildscripts/download/download_nsisshellexecasuser.sh
@@ -19,7 +19,7 @@ set -euo pipefail
 
 NSISSHELLEXECASUSER_HASH=79bdd3e54a9ba9c30af85557b475d2322286f8726687f2e23afa772aac6049ab
 
-source "$(dirname "$0")/common.sh"
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_file https://nsis.sourceforge.io/mediawiki/images/1/1d/ShellExecAsUserUnicodeUpdate.zip
 
diff --git a/buildscripts/download/download_openal.sh b/buildscripts/download/download_openal.sh
index 5e8323e7a..7625bc461 100755
--- a/buildscripts/download/download_openal.sh
+++ b/buildscripts/download/download_openal.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 OPENAL_VERSION=b80570bed017de60b67c6452264c634085c3b148
 OPENAL_HASH=e9f6d37672e085d440ef8baeebb7d62fec1d152094c162e5edb33b191462bd78
 
-source "$(dirname "$0")"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 ## We can stop using the fork once OpenAL-Soft gets loopback capture implemented:
 ## https://github.com/kcat/openal-soft/pull/421
diff --git a/buildscripts/download/download_openssl.sh b/buildscripts/download/download_openssl.sh
index 0a6121282..c5c5039f2 100755
--- a/buildscripts/download/download_openssl.sh
+++ b/buildscripts/download/download_openssl.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 OPENSSL_VERSION=1.1.1l
 OPENSSL_HASH=0b7a3e5e59c34827fe0c3a74b7ec8baef302b98fa80088d7f9153aa16fa76bd1
 
-source "$(dirname "$0")"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://www.openssl.org/source/openssl-$OPENSSL_VERSION.tar.gz" \
diff --git a/buildscripts/download/download_opus.sh b/buildscripts/download/download_opus.sh
index c9aa59d35..a82f386ae 100755
--- a/buildscripts/download/download_opus.sh
+++ b/buildscripts/download/download_opus.sh
@@ -21,7 +21,7 @@ OPUS_VERSION=1.3.1
 # https://archive.mozilla.org/pub/opus/SHA256SUMS.txt
 OPUS_HASH=65b58e1e25b2a114157014736a3d9dfeaad8d41be1c8179866f144a2fb44ff9d
 
-source "$(dirname "$0")"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://archive.mozilla.org/pub/opus/opus-${OPUS_VERSION}.tar.gz" \
diff --git a/buildscripts/download/download_qrencode.sh b/buildscripts/download/download_qrencode.sh
index 2e17042e7..b46d420af 100755
--- a/buildscripts/download/download_qrencode.sh
+++ b/buildscripts/download/download_qrencode.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 QRENCODE_VERSION=4.1.1
 QRENCODE_HASH=e455d9732f8041cf5b9c388e345a641fd15707860f928e94507b1961256a6923
 
-source "$(dirname "$0")"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://fukuchi.org/works/qrencode/qrencode-${QRENCODE_VERSION}.tar.bz2" \
diff --git a/buildscripts/download/download_qt.sh b/buildscripts/download/download_qt.sh
index 5ba0ab629..fa31bf053 100755
--- a/buildscripts/download/download_qt.sh
+++ b/buildscripts/download/download_qt.sh
@@ -22,7 +22,7 @@ QT_MINOR=12
 QT_PATCH=12
 QT_HASH=1979a3233f689cb8b3e2783917f8f98f6a2e1821a70815fb737f020cd4b6ab06
 
-source "$(dirname "$0")"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     https://download.qt.io/official_releases/qt/${QT_MAJOR}.${QT_MINOR}/${QT_MAJOR}.${QT_MINOR}.${QT_PATCH}/single/qt-everywhere-src-${QT_MAJOR}.${QT_MINOR}.${QT_PATCH}.tar.xz \
diff --git a/buildscripts/download/download_snore.sh b/buildscripts/download/download_snore.sh
index 692dab615..f528ffeea 100755
--- a/buildscripts/download/download_snore.sh
+++ b/buildscripts/download/download_snore.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 SNORE_VERSION=0.7.0
 SNORE_HASH=2e3f5fbb80ab993f6149136cd9a14c2de66f48cabce550dead167a9448f5bed9
 
-source "$(dirname "$0")"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://github.com/KDE/snorenotify/archive/v${SNORE_VERSION}.tar.gz" \
diff --git a/buildscripts/download/download_sodium.sh b/buildscripts/download/download_sodium.sh
index d7b96c636..10899f4f9 100755
--- a/buildscripts/download/download_sodium.sh
+++ b/buildscripts/download/download_sodium.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 SODIUM_VERSION=1.0.18
 SODIUM_HASH=6f504490b342a4f8a4c4a02fc9b866cbef8622d5df4e5452b46be121e46636c1
 
-source "$(dirname "$0")"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://download.libsodium.org/libsodium/releases/libsodium-${SODIUM_VERSION}.tar.gz" \
diff --git a/buildscripts/download/download_sqlcipher.sh b/buildscripts/download/download_sqlcipher.sh
index 32279ccb6..199e7fecc 100755
--- a/buildscripts/download/download_sqlcipher.sh
+++ b/buildscripts/download/download_sqlcipher.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 SQLCIPHER_VERSION=4.5.0
 SQLCIPHER_HASH=20c46a855c47d5a0a159fdcaa8491ec7bdbaa706a734ee52bc76188b929afb14
 
-source "$(dirname "$0")"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://github.com/sqlcipher/sqlcipher/archive/v${SQLCIPHER_VERSION}.tar.gz" \
diff --git a/buildscripts/download/download_toxcore.sh b/buildscripts/download/download_toxcore.sh
index 9e5140589..21d0d96db 100755
--- a/buildscripts/download/download_toxcore.sh
+++ b/buildscripts/download/download_toxcore.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 TOXCORE_VERSION=0.2.17
 TOXCORE_HASH=d9cdf5d690fe8e217dcaba5b988fb943bbe7bda919a2fde6d9506df047e5f4cb
 
-source "$(dirname "$0")"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     https://github.com/TokTok/c-toxcore/archive/v$TOXCORE_VERSION.tar.gz \
diff --git a/buildscripts/download/download_toxext.sh b/buildscripts/download/download_toxext.sh
index 92f0308c9..72841af23 100755
--- a/buildscripts/download/download_toxext.sh
+++ b/buildscripts/download/download_toxext.sh
@@ -20,9 +20,8 @@ set -euo pipefail
 TOXEXT_VERSION=0.0.3
 TOXEXT_HASH=99cf215d261a07bd83eafd1c69dcf78018db605898350b6137f1fd8e7c54734a
 
-source "$(dirname "$0")"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     https://github.com/toxext/toxext/archive/v$TOXEXT_VERSION.tar.gz \
     "$TOXEXT_HASH"
-
diff --git a/buildscripts/download/download_toxext_messages.sh b/buildscripts/download/download_toxext_messages.sh
index 0a102c259..d9d2119e2 100755
--- a/buildscripts/download/download_toxext_messages.sh
+++ b/buildscripts/download/download_toxext_messages.sh
@@ -20,9 +20,8 @@ set -euo pipefail
 TOXEXT_MESSAGES_VERSION=0.0.3
 TOXEXT_MESSAGES_HASH=e7a9a199a3257382a85a8e555b6c8c540b652a11ca9a471b9da2a25a660dfdc3
 
-source "$(dirname "$0")"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     https://github.com/toxext/tox_extension_messages/archive/v$TOXEXT_MESSAGES_VERSION.tar.gz \
     "$TOXEXT_MESSAGES_HASH"
-
diff --git a/buildscripts/download/download_vpx.sh b/buildscripts/download/download_vpx.sh
index 41cffe53b..1010db75f 100755
--- a/buildscripts/download/download_vpx.sh
+++ b/buildscripts/download/download_vpx.sh
@@ -20,7 +20,7 @@ set -euo pipefail
 VPX_VERSION=1.11.0
 VPX_HASH=965e51c91ad9851e2337aebcc0f517440c637c506f3a03948062e3d5ea129a83
 
-source "$(dirname "$0")"/common.sh
+source "$(dirname "$(realpath "$0")")/common.sh"
 
 download_verify_extract_tarball \
     "https://github.com/webmproject/libvpx/archive/v$VPX_VERSION.tar.gz" \