diff options
Diffstat (limited to 'debian/supported-versions')
-rwxr-xr-x | debian/supported-versions | 145 |
1 files changed, 145 insertions, 0 deletions
diff --git a/debian/supported-versions b/debian/supported-versions new file mode 100755 index 0000000..62343be --- /dev/null +++ b/debian/supported-versions @@ -0,0 +1,145 @@ +#!/bin/sh + +# print a list of PostgreSQL versions that are supported for the platform this +# script runs on. +# Note: Newer installed versions than the highest one listed here are always +# considered supported, so that backports will not cause an "obsolete" warning. +# +# /usr/share/postgresql-common/supported-versions decides which PostgreSQL +# server versions are supported. This information is used +# 1) for notifying users of obsolete versions, suggesting to upgrade +# 2) by postgresql-common itself (in debian/rules) to determine the +# dependencies of the postgresql meta packages (default version), and to +# generate the list of postgresql-server-dev-* packages +# postgresql-server-dev-all depends on +# 3) by the pg_buildext tool to decide which server versions to build extension +# modules for +# +# The *last* version returned here will be considered the default version, the +# remaining lines list other supported versions in an undefined order. +# +# * PG_SUPPORTED_VERSIONS +# * DEB_PG_SUPPORTED_VERSIONS +# * ~/.pg_supported_versions +# * /etc/postgresql-common/supported_versions +# (in that order) can be used to override the defaults. (Tokens separated by +# newlines.) +# +# Recognized tokens: +# default: use the appropiate defaults for the current distribution +# (as determined by os-release) +# debian: use Debian defaults +# debian-backports: use Debian Backports defaults +# ubuntu: use Ubuntu defaults +# pgdg: use defaults for apt.postgresql.org +# installed: consider all installed versions supported (determined by +# postgresql-server-dev-X packages) +# X: consider this version supported +# +# (C) 2005-2016 Martin Pitt <mpitt@debian.org> +# (C) 2012-2022 Christoph Berg <myon@debian.org> + +set -eu + +DEFAULT="15" + +# functions + +default() { + . /etc/os-release + case "$ID" in + [uU]buntu) + ubuntu + ;; + [dD]ebian) + debian + ;; + *) + echo "supported-versions: WARNING! Unknown distribution ID in /etc/os-release: $ID" >&2 + if echo $ID_LIKE | grep -E '(^| )ubuntu($| )' > /dev/null; then + echo "ubuntu found in ID_LIKE, treating as Ubuntu" >&2 + ubuntu + elif echo $ID_LIKE | grep -E '(^| )debian($| )' > /dev/null; then + echo "debian found in ID_LIKE, treating as Debian" >&2 + debian + else + echo "Please submit this as a bug report to your distribution." >&2 + /bin/echo -e "$DEFAULT" + fi + ;; + esac +} + +ubuntu() { + echo "$DEFAULT" +} + +debian() { + echo "$DEFAULT" +} + +debian_backports() { + echo "$DEFAULT" +} + +pgdg() { + cat <<-EOF + 10 + 11 + 12 + 13 + 14 + 15 + EOF +} + +installed() { + dpkg -l 'postgresql-server-dev-[1-9]*' | \ + sed -ne 's/^ii *postgresql-server-dev-\([^ ]*\).*/\1/p' | \ + sort -V +} + +# main + +if [ "${PG_SUPPORTED_VERSIONS:-}" ] ; then + SUPPORTED_VERSIONS=$(echo "$PG_SUPPORTED_VERSIONS" | xargs -n1) +elif [ "${DEB_PG_SUPPORTED_VERSIONS:-}" ] ; then + SUPPORTED_VERSIONS=$(echo "$DEB_PG_SUPPORTED_VERSIONS" | xargs -n1) +elif [ -f ${HOME:-}/.pg_supported_versions ] ; then + SUPPORTED_VERSIONS="$(cat ${HOME:-}/.pg_supported_versions)" +elif [ -f ${PGSYSCONFDIR:-/etc/postgresql-common}/supported_versions ] ; then + SUPPORTED_VERSIONS="$(cat ${PGSYSCONFDIR:-/etc/postgresql-common}/supported_versions)" +else + SUPPORTED_VERSIONS="default" +fi + +echo "$SUPPORTED_VERSIONS" | while read version release; do + COMMENT="#" + case $version in + "") ;; + $COMMENT*) ;; + default) + default + ;; + debian) + debian + ;; + debian-backports) + debian_backports + ;; + ubuntu) + ubuntu + ;; + pgdg) # apt.postgresql.org + pgdg + ;; + installed) + installed + ;; + *) + /bin/echo -e "$version" + ;; + esac +done + +exit 0 |