File: preinst

package info (click to toggle)
rng-tools 5migrate1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 76 kB
  • sloc: sh: 22; makefile: 11
file content (71 lines) | stat: -rw-r--r-- 1,846 bytes parent folder | download
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
#!/bin/mksh

set -e

# This maintainer script can be called the following ways:
#
# * new-preinst "install" [$old_version]
# * new-preinst "install" [$old_version $new_version] # 1.18.5, stretch
# * new-preinst "upgrade" [$old_version]
# * new-preinst "upgrade" $old_version $new_version # 1.18.5, stretch
# * old-preinst "abort-upgrade" $new_version
# Essential packages and Pre-Depends are available. Pre-Depends have
# been configured once, but may be unpacked or Half-Configured only,
# or, for "abort-upgrade", Half-Installed if their upgrade failed.

function stripcomments {
	set -o noglob
	while read _line; do
		_line=${_line%%#*}
		[[ -z $_line ]] || print -r -- $_line
	done
}

function domigrate {
	local m m1=$1 m2=$2 p=$3

	[[ -e $p ]] || return 0
	print -ru2 "I: rng-tools: migrating old init script"
	m=$(md5sum <"$p")
	if [[ $m = "$m1"* || $m = "$m2"* ]]; then
		# identical to shipped files, 2-unofficial-mt.14-1 or 5-1
		rm -- "$p"
		print -ru2 "I: rng-tools: old init script pruned (unmodified)"
		return 0
	fi
	m=$(stripcomments <"$p")
	if [[ -z $m ]]; then
		# empty, other than, perhaps, comments
		rm -- "$p"
		print -ru2 "I: rng-tools: old init script pruned (empty)"
		return 0
	fi
	mv -- "$p" "$p.dpkg-bak"
	p=$p.dpkg-bak
	print -ru2 "W: local changes saved as ${p@Q}"
}

case $1 in
(install|upgrade)
	# avoid insserv issue by unregistring the previous initscript
	(update-rc.d rng-tools remove >/dev/null 2>&1 || :)
	# move this away early, so rng-tools-debian installation works
	domigrate 5bdcb7480d7195b858d67d5d8e7e582d 738e334933bd5584a150040d955f4137 \
	    /etc/init.d/rng-tools
	;;

(abort-upgrade)
	;;

(*)
	echo >&2 "E: preinst called with unknown subcommand '$1'"
	exit 1
	;;
esac

# dh_installdeb will replace this with shell code automatically
# generated by other debhelper scripts.

#DEBHELPER#

exit 0