aboutsummaryrefslogtreecommitdiff
path: root/debian/compat.sh
diff options
context:
space:
mode:
Diffstat (limited to 'debian/compat.sh')
-rwxr-xr-xdebian/compat.sh46
1 files changed, 46 insertions, 0 deletions
diff --git a/debian/compat.sh b/debian/compat.sh
new file mode 100755
index 000000000..e4b03663a
--- /dev/null
+++ b/debian/compat.sh
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+# This script employs compatibility measures, mainly for older Debian
+# or Ubuntu versions.
+typeset -a compat_shims_all compat_shims_active
+compat_shims_all=("Wpedantic")
+compat_shims_active=()
+
+typeset debian_release_ver=''
+typeset -i ubuntu_release_ver_major='0' ubuntu_release_ver_minor='0'
+
+# Check distro version and enable compat shims if required.
+if dpkg-vendor --is "Debian" || dpkg-vendor --is "Raspbian"; then
+ debian_release_ver="$(lsb_release -r | sed -e 's/[ ]*//g' | cut -d ':' -f '2' | cut -d '.' -f '1')"
+
+ [[ "${debian_release_ver}" = 'testing' ]] && debian_release_ver='999'
+ [[ "${debian_release_ver}" = 'unstable' ]] && debian_release_ver='9999'
+
+ if [[ "${debian_release_ver}" -le '7' ]]; then
+ compat_shims_active+=("Wpedantic")
+ fi
+elif dpkg-vendor --is "Ubuntu"; then
+ ubuntu_release_ver_major="$(lsb_release -r | sed -e 's/[ ]*//g' | cut -d ':' -f '2' | cut -d '.' -f '1')"
+ ubuntu_release_ver_minor="$(lsb_release -r | sed -e 's/[ ]*//g' | cut -d ':' -f '2' | cut -d '.' -f '2')"
+
+ if [[ "${ubuntu_release_ver_major}" -le '13' ]]; then
+ if [[ "${ubuntu_release_ver_major}" -lt '13' ]] || [[ "${ubuntu_release_ver_minor}" -le '4' ]]; then
+ compat_shims_active+=("Wpedantic")
+ fi
+ fi
+fi
+
+
+# Apply enabled compat shims.
+# Ignore unknown values.
+typeset cur_compat_shim='' cur_enabled_compat_shim=''
+for cur_compat_shim in "${compat_shims_all[@]}"; do
+ for cur_enabled_compat_shim in "${compat_shims_active[@]}"; do
+ if [[ "${cur_compat_shim}" = "${cur_enabled_compat_shim}" ]]; then
+ if [[ "${cur_compat_shim}" = 'Wpedantic' ]]; then
+ sed -i -e 's/Wpedantic/pedantic/g' nx-X11/config/cf/{{host,xorgsite}.def,xorg.cf}
+ continue
+ fi
+ fi
+ done
+done