diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 13:35:12 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-13 13:35:12 +0000 |
commit | 53b8d04ebc10d070b7efafd6dfa9de2897916888 (patch) | |
tree | e95cc322bcaf0990808f10f0fdcb508014e7e496 /pg_updateaptconfig | |
parent | Initial commit. (diff) | |
download | postgresql-common-53b8d04ebc10d070b7efafd6dfa9de2897916888.tar.xz postgresql-common-53b8d04ebc10d070b7efafd6dfa9de2897916888.zip |
Adding upstream version 258.upstream/258
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'pg_updateaptconfig')
-rwxr-xr-x | pg_updateaptconfig | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/pg_updateaptconfig b/pg_updateaptconfig new file mode 100755 index 0000000..7e041c5 --- /dev/null +++ b/pg_updateaptconfig @@ -0,0 +1,41 @@ +#!/bin/sh + +# Tell apt which PostgreSQL versions have clusters present + +set -eu + +APTCONFDIR="/etc/apt/apt.conf.d" +[ -d "$APTCONFDIR" ] || exit 0 # skip generation on RPM systems +APTCONF="$APTCONFDIR/02autoremove-postgresql" +TMPCONF="$(mktemp --tmpdir pg_updateaptconfig.XXXXXX)" +trap "rm -f $TMPCONF" EXIT + +cat > $TMPCONF <<EOF +// DO NOT EDIT! +// File maintained by /usr/share/postgresql-common/pg_updateaptconfig. +// +// Mark all PostgreSQL packages as NeverAutoRemove for which PostgreSQL +// clusters exist. This is especially important when the "postgresql" meta +// package changes its dependencies to a new version, which might otherwise +// trigger the old postgresql-NN package to be automatically removed, rendering +// the old database cluster inaccessible. + +APT +{ + NeverAutoRemove + { +EOF + +pg_lsclusters -h | cut -d ' ' -f 1 | uniq | while read version; do + echo " \"^postgresql.*-$version\";" >> $TMPCONF +done + +cat >> $TMPCONF <<EOF + }; +}; +EOF + +if ! cmp --silent $TMPCONF $APTCONF; then + cp $TMPCONF $APTCONF + chmod 444 $APTCONF +fi |