View | Details | Raw Unified | Return to bug 34085
Collapse All | Expand All

(-)a/branches/ucs-3.2/ucs-3.2-1/base/univention-updater/script/preup.sh (-8 / +14 lines)
Lines 167-172 fi Link Here
167
167
168
#################### Bug #22093
168
#################### Bug #22093
169
169
170
list_passive_kernels () {
171
	kernel_version="$1"
172
	dpkg-query -W -f '${Package}\n' "linux-image-${kernel_version}-ucs*" |
173
		fgrep -v "linux-image-$(uname -r)"
174
}
175
170
get_latest_kernel_pkg () {
176
get_latest_kernel_pkg () {
171
	# returns latest kernel package for given kernel version
177
	# returns latest kernel package for given kernel version
172
	# currently running kernel is NOT included!
178
	# currently running kernel is NOT included!
Lines 175-182 get_latest_kernel_pkg () { Link Here
175
181
176
	latest_dpkg=""
182
	latest_dpkg=""
177
	latest_kver=""
183
	latest_kver=""
178
	for kver in $(COLUMNS=200 dpkg -l linux-image-${kernel_version}-ucs\* 2>/dev/null | grep linux-image- | awk '{ print $2 }' | sort -n | grep -v "linux-image-$(uname -r)") ; do
184
	for kver in $(list_passive_kernels "$kernel_version") ; do
179
		dpkgver="$(apt-cache show $kver | sed -nre 's/Version: //p')"
185
		dpkgver="$(apt-cache show "$kver" 2>/dev/null | sed -nre 's/Version: //p')"
180
		if dpkg --compare-versions "$dpkgver" gt "$latest_dpkg" ; then
186
		if dpkg --compare-versions "$dpkgver" gt "$latest_dpkg" ; then
181
			latest_dpkg="$dpkgver"
187
			latest_dpkg="$dpkgver"
182
			latest_kver="$kver"
188
			latest_kver="$kver"
Lines 191-206 pruneOldKernel () { Link Here
191
	# ==> at least one and at most two kernel should remain for given kernel version
197
	# ==> at least one and at most two kernel should remain for given kernel version
192
	kernel_version="$1"
198
	kernel_version="$1"
193
199
194
	ignore_kver="$(get_latest_kernel_pkg "$kernel_version")"
200
	list_passive_kernels "$kernel_version" |
195
	DEBIAN_FRONTEND=noninteractive apt-get -o DPkg::Options::=--force-confold -y --force-yes remove --purge $(COLUMNS=200 dpkg -l linux-image-${kernel_version}-ucs\* 2>/dev/null | grep linux-image- | awk '{ print $2 }' | sort -n | egrep -v "linux-image-$(uname -r)|$ignore_kver" | tr "\n" " ") >>/var/log/univention/updater.log 2>&1
201
		fgrep -v "$(get_latest_kernel_pkg "$kernel_version")" |
202
		DEBIAN_FRONTEND=noninteractive xargs -r apt-get -o DPkg::Options::=--force-confold -y --force-yes purge
196
}
203
}
197
204
198
if [ "$update32_pruneoldkernel" = "yes" ]; then
205
if [ "$update32_pruneoldkernel" = "yes" ]; then
199
	echo "Purging old kernel..." | tee -a /var/log/univention/updater.log
206
	echo "Purging old kernel..." | tee -a /var/log/univention/updater.log
200
	pruneOldKernel "2.6.18"
207
	pruneOldKernel "3.2.0"
201
	pruneOldKernel "2.6.26"
208
	pruneOldKernel "3.10.0"
202
	pruneOldKernel "2.6.32"
209
	#pruneOldKernel "*" # only keep running and next kernel
203
	pruneOldKernel "3.2"
204
	echo "done" | tee -a /var/log/univention/updater.log
210
	echo "done" | tee -a /var/log/univention/updater.log
205
fi
211
fi
206
212

Return to bug 34085