summaryrefslogtreecommitdiffstats
path: root/debian/supported-versions
diff options
context:
space:
mode:
Diffstat (limited to 'debian/supported-versions')
-rwxr-xr-xdebian/supported-versions146
1 files changed, 146 insertions, 0 deletions
diff --git a/debian/supported-versions b/debian/supported-versions
new file mode 100755
index 0000000..9edb220
--- /dev/null
+++ b/debian/supported-versions
@@ -0,0 +1,146 @@
+#!/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-2023 Christoph Berg <myon@debian.org>
+
+set -eu
+
+DEFAULT="16"
+
+# 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
+ 16
+ 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