diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:02:19 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 16:02:19 +0000 |
commit | e308bcff5a610d6a3bbe33b3769f03f6d4533b16 (patch) | |
tree | 6a8ed4eb26cd55f3a24165bc1d9b9a1f0ab62e8c /pg_updateaptconfig | |
parent | Initial commit. (diff) | |
download | postgresql-common-e308bcff5a610d6a3bbe33b3769f03f6d4533b16.tar.xz postgresql-common-e308bcff5a610d6a3bbe33b3769f03f6d4533b16.zip |
Adding upstream version 248.upstream/248upstream
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 |