aboutsummaryrefslogtreecommitdiff
path: root/debian/compat.sh
blob: e4b03663a556c4c56fac3ed5e8392006cf90b91f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
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