summaryrefslogtreecommitdiff
path: root/debian/openssh-client.preinst
blob: 0e200712ee2fe10d7790ffdca7c0324f42919d42 (plain)
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
#! /bin/sh -e

action="$1"
version="$2"

prepare_transfer_conffile () {
	CONFFILE="$1"
	[ -e "$CONFFILE" ] || return 0

	md5sum="$(md5sum "$CONFFILE" |sed -e 's/ .*//')"
	old_md5sum="$(sed -n -e "/^Conffiles:/,/^[^ ]/{\\' $CONFFILE'{s/^ [^ ]* //;s/ .*//;p}}" /var/lib/dpkg/status)"
	if [ "$md5sum" = "$old_md5sum" ]; then
		echo >&2 "Transferring ownership of conffile $CONFFILE ..."
		mv -f "$CONFFILE" "$CONFFILE.moved-by-preinst"
		return 0
	fi
}

case $action in
	install|upgrade)
		if dpkg --compare-versions "$version" lt 0; then
			prepare_transfer_conffile /etc/ssh/moduli
			prepare_transfer_conffile /etc/ssh/ssh_config
		fi
		;;
esac

#DEBHELPER#

exit 0