mirror of
https://github.com/pfsense/pfsense.git
synced 2025-10-26 11:38:35 +00:00
131 lines
3.4 KiB
Bash
Executable File
131 lines
3.4 KiB
Bash
Executable File
#!/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
|