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
|