diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 12:08:38 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-27 12:08:38 +0000 |
commit | d351686a4df1b61f40ada69e53c9522259ad6700 (patch) | |
tree | 0322b0d8e7e63c926188aa7b037070f3560ad8dd /pg_updateaptconfig | |
parent | Initial commit. (diff) | |
download | postgresql-common-d351686a4df1b61f40ada69e53c9522259ad6700.tar.xz postgresql-common-d351686a4df1b61f40ada69e53c9522259ad6700.zip |
Adding upstream version 225+deb11u1.upstream/225+deb11u1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'pg_updateaptconfig')
-rwxr-xr-x | pg_updateaptconfig | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/pg_updateaptconfig b/pg_updateaptconfig new file mode 100755 index 0000000..f007e38 --- /dev/null +++ b/pg_updateaptconfig @@ -0,0 +1,39 @@ +#!/bin/sh + +# Tell apt which PostgreSQL versions have clusters present + +set -eu + +APTCONF="/etc/apt/apt.conf.d/01autoremove-postgresql" +TMPCONF="$(mktemp --tmpdir pg_updateaptconfig.XXXXXX)" +trap "rm -f $TMPCONF" EXIT + +cat > $TMPCONF <<EOF +// NO 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 |