summaryrefslogtreecommitdiffstats
path: root/tmp/post_upgrade_command
blob: 5f96dc69ca4f0d77d88692ffc65649c2efadf767 (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
#!/bin/sh

/etc/rc.conf_mount_rw

PFSENSETYPE=`cat /etc/platform`

# check in two places for the old kernel type, since it could have been moved elsewhere in the upgrade process.
if [ -f /boot/kernel/pfsense_kernel.txt ]; then
	OLDKERNEL=`cat /boot/kernel/pfsense_kernel.txt`
else
	OLDKERNEL=`cat /tmp/pfsense_kernel.txt`
fi

# Massage the existing kernel into one that actually exists.
#	Leaving old entries so we can bring back other kernels later if desired.
case "$OLDKERNEL" in
	"wrap")
	KERNELTYPE=wrap
	;;
	"wrap_vga")
	KERNELTYPE=wrap_vga
	;;
	"Developers")
	KERNELTYPE=SMP
	;;
	"UP")
	KERNELTYPE=SMP
	;;
	"SMP")
	KERNELTYPE=SMP
	;;
	*)
	if [ "${PFSENSETYPE}" = "pfSense" ]; then
		KERNELTYPE=SMP
	elif [ "${PFSENSETYPE}" = "nanobsd" ]; then
		KERNELTYPE=WRAP
	fi
	;;
esac

# Overwrite the old kernel type with what we're using now to reflect what is about to be written out.
echo ${KERNELTYPE} > /boot/kernel/pfsense_kernel.txt
HAVE_KERNEL=false

case "${KERNELTYPE}" in
	"wrap")
		if [ -f /kernels/kernel_wrap.gz ]; then
			HAVE_KERNEL=true
			tar xzpf /kernels/kernel_wrap.gz --exclude loader.conf -C /boot/
			cp /etc/ttys_wrap /etc/ttys
		fi
		;;
	"wrap_vga")
		if [ -f /kernels/kernel_wrap_vga.gz ]; then
			HAVE_KERNEL=true
			tar xzpf /kernels/kernel_wrap_vga.gz --exclude loader.conf -C /boot/
		fi
		;;
	"Developers")
		if [ -f /kernels/kernel_Dev.gz ]; then
			HAVE_KERNEL=true
			tar xzpf /kernels/kernel_Dev.gz --exclude loader.conf -C /boot/
		fi
		;;
	"UP")
		if [ -f /kernels/kernel_uniprocessor.gz ]; then
			HAVE_KERNEL=true
			tar xzpf /kernels/kernel_uniprocessor.gz --exclude loader.conf -C /boot/
		fi
		;;
	"SMP")
		if [ -f /kernels/kernel_SMP.gz ]; then
			HAVE_KERNEL=true
			tar xzpf /kernels/kernel_SMP.gz --exclude loader.conf -C /boot/
		fi
		;;
esac

if [ ${HAVE_KERNEL} = "false" ]; then
	echo "ERROR: Unable to locate a kernel upgrade file!"
	sleep 5
fi

if [ $PFSENSETYPE = "pfSense" ] || [ $PFSENSETYPE = "nanobsd" ]; then
	touch /conf/needs_package_sync
fi

# Detect interactive logins and display the shell
detect_command='[ -n "$SSH_TTY" -o "$TERM" = "cons25" ] && exec /etc/rc.initial'
echo "$detect_command" > $CVS_CO_DIR/root/.shrc
echo "$detect_command" >> $CVS_CO_DIR/root/.profile

# Now turn on or off serial console as needed
echo "Checking for /tmp/$1/tmp/post_upgrade_command.php... " >> /conf/upgrade_log.txt
if [ -x /tmp/$1/tmp/post_upgrade_command.php ]; then
	echo "Running /tmp/$1/tmp/post_upgrade_command.php $1" >> /conf/upgrade_log.txt
	/tmp/$1/tmp/post_upgrade_command.php $1 >> /conf/upgrade_log.txt 2>&1
elif [ -f /tmp/post_upgrade_command.php ]; then
	echo "Running /tmp/post_upgrade_command.php $1" >> /conf/upgrade_log.txt
	/tmp/post_upgrade_command.php $1
fi

# Remove any previous MD5 sum files
rm -f /root/*.md5

# File moved to pfSense php shell (pfSsh.php)
rm -rf /usr/local/sbin/cvs_sync.sh

if [ $PFSENSETYPE = "embedded" ]; then
	cp /etc/ttys_wrap /etc/ttys
fi

if [ -f /usr/local/sbin/php ]; then
	rm /usr/local/sbin/php
fi

# Fixup permissions on installed files
if [ "${PFSENSETYPE}" = "nanobsd" ]; then
	MTREECHKDIR=/tmp/${1}/
else
	MTREECHKDIR=/
fi
if [ -f ${MTREECHKDIR}etc/installed_filesystem.mtree ]; then
	/usr/sbin/mtree -U -e -q -f ${MTREECHKDIR}etc/installed_filesystem.mtree -p ${MTREECHKDIR} > /conf/mtree.log;
fi;

# Make sure to preserve existing time zone
if [ "${PFSENSETYPE}" = "nanobsd" ] && [ -f /etc/localtime ]; then
	/bin/cp -p /etc/localtime /tmp/${1}/etc/localtime 2>/dev/null
fi
OpenPOWER on IntegriCloud