summaryrefslogtreecommitdiff
path: root/debian/kdump-tools.postinst
blob: 4fd51e73ba8666cd1868033b81fb8cef2a27e6c1 (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
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
#! /bin/sh

set -e

update_param() {
	. $INITCONFFILE
        eval old=\"'$'$1\"
        eval new=\"'$'new_$1\"

        if test "$old" = "$new"; then
                return
        fi

        if test -z "$old"; then
                grep -Eq "^ *$1=" "$INITCONFFILE" || echo "$1=" \
                       >> "$INITCONFFILE"
        fi

	sed -e "s/^ *$1=.*/$1=$new/" < $INITCONFFILE > $INITCONFFILE.$$
	mv -f $INITCONFFILE.$$ $INITCONFFILE
}

# summary of how this script can be called:
#        * <postinst> `configure' <most-recently-configured-version>
#        * <old-postinst> `abort-upgrade' <new version>
#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
#          <new-version>
#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
#          <failed-install-package> <version> `removing'
#          <conflicting-package> <version>
# for details, see http://www.debian.org/doc/debian-policy/ or
# the debian-policy package

case "$1" in
    configure)
# ------------------------- Debconf questions start ---------------------
	# Handle debconf
	. /usr/share/debconf/confmodule
	db_get kdump-tools/use_kdump || RET=true
	if [ "${RET}" = "true" ]; then
		new_USE_KDUMP="1"
	else
		new_USE_KDUMP="0"
	fi
# ------------------------- Debconf questions end ---------------------

	INITCONFFILE=`mktemp /etc/default/kdump-tools.XXXXXX`
	cp -pf /usr/share/kdump-tools/kdump-tools.conf $INITCONFFILE
	update_param USE_KDUMP

	# Customize crashkernel= value according to architecture
	ARCH="$(arch)"
	DEF_PRESET="384M-:128M"
	case "$ARCH" in
		s390x)
			HAS_CRASHKERNEL="$(grep crashkernel /etc/zipl.conf)" || true
			if test -z "$HAS_CRASHKERNEL"; then
				sed -i "s|^\s*parameters\s*=\s*\"\?|&crashkernel=${DEF_PRESET} |" /etc/zipl.conf
				zipl
			fi
			CIO_IGNORE="$(cio_ignore -u -k)"
			sed -i "s/\#KDUMP_CMDLINE_APPEND/KDUMP_CMDLINE_APPEND/" $INITCONFFILE
			sed -i "/KDUMP_CMDLINE_APPEND/{s|\"$| ${CIO_IGNORE}\"|}" $INITCONFFILE
		;;
	esac

	ucfr kdump-tools /etc/default/kdump-tools
	UCF_FORCE_CONFFMISS=1 ucf --debconf-ok $INITCONFFILE /etc/default/kdump-tools
	rm -f $INITCONFFILE
	sync /etc/default/kdump-tools

        # create smaller initrd.img files for kdump use
	/etc/kernel/postinst.d/kdump-tools $(uname -r) > /dev/null 2>&1
    ;;

    abort-upgrade|abort-remove|abort-deconfigure)

    ;;

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

if [ -x /usr/sbin/update-grub ] && [ -e /boot/grub/grub.cfg ]; then
	update-grub
fi

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

#DEBHELPER#

exit 0