File: pre_distupgrade_zz_database-server

package info (click to toggle)
piuparts 1.6.0
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 72,532 kB
  • sloc: python: 8,240; sh: 4,367; makefile: 171
file content (175 lines) | stat: -rwxr-xr-x 3,473 bytes parent folder | download | duplicates (3)
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