File: progress-linux-container.preinst

package info (click to toggle)
progress-linux-metapackages 20221002-27
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 160 kB
  • sloc: makefile: 108; sh: 95
file content (82 lines) | stat: -rwxr-xr-x 3,046 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
72
73
74
75
76
77
78
79
80
81
82
#!/bin/sh

set -e

case "${1}" in
	install|upgrade)
		mkdir -p /usr/lib/container/divert

		for FILE in halt poweroff reboot shutdown coldreboot
		do
			# DEP17 M18 duplicated diversion. Once trixie is
			# released, remove the aliased diversions in postinst
			# and only have the canonical one with --rename here.
			TRUENAME="$(dpkg-divert --truename "/sbin/${FILE}")"

			if [ "$(dpkg-divert --truename "/usr/sbin/${FILE}")" != "/usr/sbin/${FILE}" ]
			then
				: # Canonically diverted already. Nothing to rename.
			elif [ "${TRUENAME}" = "/lib/container/divert/${FILE}.orig.usr-is-merged" ]
			then
				: # Aliased diversion as expected. Nothing to rename.
			elif [ "${TRUENAME}" != "/sbin/${FILE}" ]
			then
				# Aliased diversion with earlier target. Fix target.
				dpkg-divert --remove --no-rename "/sbin/${FILE}"
				if [ -e "${DPKG_ROOT}${TRUENAME}" ] || [ -h "${DPKG_ROOT}${TRUENAME}" ]
				then
					mv "${DPKG_ROOT}${TRUENAME}" "${DPKG_ROOT}/lib/container/divert/${FILE}.orig.usr-is-merged"
				fi
			elif dpkg -S "/sbin/${FILE}" >/dev/null 2>&1
			then
				# Not diverted yet. Installed as aliased.
				mv "${DPKG_ROOT}/sbin/${FILE}" "${DPKG_ROOT}/lib/container/divert/${FILE}.orig.usr-is-merged"
			elif [ -e "${DPKG_ROOT}/usr/sbin/${FILE}" ] || [ -h "${DPKG_ROOT}/usr/sbin/${FILE}" ]
			then
				# Not diverted yet. Installed as canonical.
				mv "${DPKG_ROOT}/usr/sbin/${FILE}" "${DPKG_ROOT}/usr/lib/container/divert/${FILE}.orig"
			fi

			# All necessary moving has been done. Hence --no-rename.
			dpkg-divert --package progress-linux-container --quiet --add --no-rename --divert "/lib/container/divert/${FILE}.orig.usr-is-merged" "/sbin/${FILE}"
			dpkg-divert --package progress-linux-container --quiet --add --no-rename --divert "/usr/lib/container/divert/${FILE}.orig" "/usr/sbin/${FILE}"
		done

		for FILE in pm-hibernate pm-suspend pm-suspend-hybrid
		do
			TRUENAME="$(dpkg-divert --truename "/usr/sbin/${FILE}")"

			if [ "${TRUENAME}" = "/usr/sbin/${FILE}" ]
			then
				# Not diverted yet.
				dpkg-divert --package progress-linux-container --quiet --add --rename --divert "/usr/lib/container/divert/${FILE}.orig" "/usr/sbin/${FILE}"
			elif [ "${TRUENAME}" != "/usr/lib/container/divert/${FILE}.orig" ]
			then
				# Upgrading from pre-trixie. Update the diversion target from aliased to canonical.
				dpkg-divert --package progress-linux-container --quiet --remove --no-rename "/usr/sbin/${FILE}"
				dpkg-divert --package progress-linux-container --quiet --add --no-rename --divert "/usr/lib/container/divert/${FILE}.orig" "/usr/sbin/${FILE}"
				if [ "${TRUENAME}" != "/lib/container/divert/${FILE}.orig" ]
				then
					# Diversion target differs in more than aliasing.
					if [ -e "${DPKG_ROOT}${TRUENAME}" ] || [ -h "${DPKG_ROOT}${TRUENAME}" ]
					then
						mv "${DPKG_ROOT}${TRUENAME}" "${DPKG_ROOT}/usr/lib/container/divert/${FILE}.orig"
					fi
				fi
			fi
		done
		;;

	abort-upgrade)

		;;

	*)
		echo "preinst called with unknown argument \`${1}'" >&2
		exit 1
		;;
esac

#DEBHELPER#

exit 0