1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
|
#!/bin/sh
set -e
# Skip while creating the reference chroot.
if [ "$PIUPARTS_PHASE" = "" ]; then
exit 0
fi
is_installed()
{
local pkg="$1"
dpkg-query -s "$pkg" >/dev/null 2>&1 || return 1
local status="$(dpkg-query -W -f '${Status}' $pkg)"
test "$status" != "unknown ok not-installed" || return 1
test "$status" != "deinstall ok config-files" || return 1
return 0
}
retry_configure_pending()
{
echo ""
echo "Upgrade didn't go smooth, trying dpkg --configure --pending"
dpkg --configure --pending
}
CANDIDATES=
CANDIDATES="$CANDIDATES default-mysql-server"
#CANDIDATES="$CANDIDATES mysql-server"
CANDIDATES="$CANDIDATES postgresql"
case "$PIUPARTS_DISTRIBUTION_NEXT" in
buster)
: # no mysql-server in buster
;;
*)
CANDIDATES="$CANDIDATES mysql-server"
;;
esac
case "$PIUPARTS_DISTRIBUTION_NEXT" in
wheezy)
CANDIDATES="$CANDIDATES mysql-server-5.5"
CANDIDATES="$CANDIDATES postgresql-9.1"
;;
jessie)
CANDIDATES="$CANDIDATES mysql-server-5.5"
CANDIDATES="$CANDIDATES mariadb-server-10.0"
CANDIDATES="$CANDIDATES postgresql-9.4"
;;
stretch)
CANDIDATES="$CANDIDATES mariadb-server-10.1"
CANDIDATES="$CANDIDATES postgresql-9.6"
;;
buster)
CANDIDATES="$CANDIDATES mariadb-server-10.3"
CANDIDATES="$CANDIDATES postgresql-11"
;;
bullseye|sid)
CANDIDATES="$CANDIDATES mariadb-server-10.5"
CANDIDATES="$CANDIDATES postgresql-13"
;;
esac
PACKAGES=
RETRY="false"
# early upgrade runs into even more trouble for some packages ...
case ${PIUPARTS_OBJECTS%%=*} in
med-practice|audiolink)
CANDIDATES=""
;;
redmine)
CANDIDATES=""
;;
esac
if [ "$PIUPARTS_DISTRIBUTION_NEXT" = "stretch" ]; then
case ${PIUPARTS_OBJECTS%%=*} in
bacula-director-mysql|\
bacula-director-mysql-dbg)
# (new) transitively recommended package mariadb-server-x.y gets
# configured (and the server started) too late (after ourselves)
RETRY="retry_configure_pending"
;;
esac
fi
for pkg in $CANDIDATES
do
if is_installed "$pkg"
then
PACKAGES="$PACKAGES $pkg"
fi
done
test ! -x /usr/bin/pg_lsclusters || pg_lsclusters
did_apt_get_update=
apt_get_update()
{
if [ -z "$did_apt_get_update" ]
then
apt-get update
did_apt_get_update=true
fi
}
if [ -n "$PACKAGES" ]
then
echo "Upgrading early: ${PACKAGES# }"
apt_get_update
apt-get -y install $PACKAGES || $RETRY
fi
upgrade_pg_cluster()
{
local from=$1
local to=$2
if ! is_installed postgresql-${from}
then
return 0
fi
if ! is_installed postgresql-${to}
then
echo ""
echo "Installing: postgresql-${to}"
apt_get_update
apt-get -y install postgresql-${to}
fi
if is_installed postgresql-${from} && is_installed postgresql-${to}
then
if [ "$3" = "--restart-first" ]; then
echo ""
echo "Restarting PostgreSQL (#882409)..."
invoke-rc.d postgresql restart
fi
echo ""
echo "Upgrading PostgreSQL Cluster from ${from} to ${to}"
pg_dropcluster ${to} main --stop
pg_upgradecluster -v ${to} ${from} main
pg_dropcluster ${from} main
fi
}
case "${PIUPARTS_DISTRIBUTION}:${PIUPARTS_DISTRIBUTION_NEXT}" in
lenny:squeeze)
upgrade_pg_cluster 8.3 8.4
;;
squeeze*:wheezy)
upgrade_pg_cluster 8.4 9.1
;;
wheezy*:jessie)
upgrade_pg_cluster 9.1 9.4 --restart-first
;;
jessie*:stretch)
upgrade_pg_cluster 9.4 9.6
;;
stretch*:buster)
upgrade_pg_cluster 9.6 11
;;
buster*:bullseye)
upgrade_pg_cluster 11 13
;;
buster:sid)
upgrade_pg_cluster 11 13
;;
esac
test ! -x /usr/bin/pg_lsclusters || pg_lsclusters
|