| version 1.44, 2012/12/09 04:08:37 |
version 1.50, 2013/10/20 01:18:04 |
|
|
| #!/bin/sh |
#!/bin/sh |
| # $AFresh1: update_openbsd,v 1.43 2012/12/09 04:06:57 andrew Exp $ |
# $AFresh1: update_openbsd,v 1.49 2013/10/20 00:13:38 andrew Exp $ |
| # |
# |
| # Copyright (c) 2012 Andrew Fresh <andrew@afresh1.com> |
# Copyright (c) 2012 Andrew Fresh <andrew@afresh1.com> |
| # |
# |
|
|
| |
|
| # We want to default to what we had |
# We want to default to what we had |
| INSTALL_KERNELS="${BOOT_KERNEL#/}" |
INSTALL_KERNELS="${BOOT_KERNEL#/}" |
| |
# if the boot kernel was our specially named bsd.sp, we install from bsd |
| |
if [ X"$INSTALL_KERNELS" == X"bsd.sp" ]; then |
| |
INSTALL_KERNELS="bsd" |
| |
fi |
| # with a second option of an mp kernel if is is a likely candidate |
# with a second option of an mp kernel if is is a likely candidate |
| if [ X"$INSTALL_KERNELS" != X"bsd.mp" ]; then |
if [ X"$INSTALL_KERNELS" != X"bsd.mp" ]; then |
| local _ncpu=$(sysctl -n hw.ncpufound) |
local _ncpu=$(sysctl -n hw.ncpufound) |
|
|
| local _v=$FILE_VER |
local _v=$FILE_VER |
| |
|
| for _b in $INSTALL_KERNELS; do |
for _b in $INSTALL_KERNELS; do |
| if [ -e /${_b} -a ! -e ./${_b} ]; then |
if [ ! -e ./${_b} ]; then |
| echo $FTP_CMD ${FTP}/${_b} |
echo $FTP_CMD ${FTP}/${_b} |
| $FTP_CMD ${FTP}/${_b} |
$FTP_CMD ${FTP}/${_b} |
| fi |
fi |
|
|
| exit 1 |
exit 1 |
| fi |
fi |
| |
|
| echo "Backing up $BOOT_KERNEL to /obsd" |
if [ X"$BOOT_KERNEL_VERSION" != X"$NEW_KERNEL_VERSION" ]; then |
| $SUDO ln -f $BOOT_KERNEL /obsd |
echo "Backing up $BOOT_KERNEL to /obsd" |
| if [ $? -ne 0 ]; then |
$SUDO ln -f $BOOT_KERNEL /obsd |
| echo "Error copying old kernel!" >&2 |
if [ $? -ne 0 ]; then |
| exit 1 |
echo "Error copying old kernel!" >&2 |
| |
exit 1 |
| |
fi |
| fi |
fi |
| |
|
| cd $RELEASEDIR |
cd $RELEASEDIR |
|
|
| |
|
| local _v=$FILE_VER |
local _v=$FILE_VER |
| |
|
| if [ $CUR_VER != $NEW_VER -a ! -e /sbin/oreboot ]; then |
|
| $SUDO cp /sbin/reboot /sbin/oreboot |
|
| if [ $? -ne 0 ]; then |
|
| echo "Error copying old reboot command!" >&2 |
|
| exit 1 |
|
| fi |
|
| echo "/sbin/reboot copied to /sbin/oreboot" |
|
| fi |
|
| |
|
| local _sets=`ls *${_v}.tgz | grep -v ^base ` |
local _sets=`ls *${_v}.tgz | grep -v ^base ` |
| for _f in ${_sets} base${_v}.tgz; do |
for _f in ${_sets} base${_v}.tgz; do |
| _path=$DESTDIR |
_path=$DESTDIR |
|
|
| update_etc() { |
update_etc() { |
| echo '### UPDATING ETC ###' |
echo '### UPDATING ETC ###' |
| if [ ! -e $SYSMERGE ]; then |
if [ ! -e $SYSMERGE ]; then |
| SYSMERGE= |
echo "ERROR: Can't find sysmerge!" >&2 |
| |
exit 1; |
| fi |
fi |
| |
|
| if [ X"" == X"$SYSMERGE" ]; then |
if [ X"" == X"$RELEASEDIR" ]; then |
| if [ -e /var/tmp/temproot ]; then |
echo "ERROR: no source for etc!" >&2 |
| MERGEMASTER=`which mergemaster` |
exit 1 |
| |
fi |
| |
|
| if [ $? != 0 ]; then |
cd $RELEASEDIR |
| $SUDO pkg_add -i mergemaster |
|
| |
|
| MERGEMASTER=`which mergemaster` |
local _v=$FILE_VER |
| if [ $? != 0 ]; then |
local _args="" |
| echo ERROR: mergemaster not installed! >&2 |
if [ -e etc${_v}.tgz ]; then |
| exit 1 |
_args="$_args -s etc${_v}.tgz" |
| fi |
fi |
| fi |
if [ -e xetc${_v}.tgz ]; then |
| |
_args="$_args -x xetc${_v}.tgz" |
| echo '### RUNNING MERGEMASTER ###' |
fi |
| $SUDO $MERGEMASTER -irv |
if [ X"" == X"$_args" ]; then |
| else |
echo ERROR: No upgrade sets found! >&2 |
| echo "ERROR: no source for etc!" >&2 |
|
| exit 1 |
|
| fi |
|
| else |
else |
| if [ X"" == X"$RELEASEDIR" ]; then |
echo '### RUNNING SYSMERGE ###' |
| echo "ERROR: no source for etc!" >&2 |
$SUDO $SYSMERGE $_args |
| exit 1 |
|
| else |
|
| cd $RELEASEDIR |
|
| fi |
|
| |
|
| local _v=$FILE_VER |
|
| local _args="" |
|
| if [ -e etc${_v}.tgz ]; then |
|
| _args="$_args -s etc${_v}.tgz" |
|
| fi |
|
| if [ -e xetc${_v}.tgz ]; then |
|
| _args="$_args -x xetc${_v}.tgz" |
|
| fi |
|
| if [ X"" == X"$_args" ]; then |
|
| echo ERROR: No upgrade sets found! >&2 |
|
| else |
|
| echo '### RUNNING SYSMERGE ###' |
|
| if sysmerge 2>&1 | grep -- -a >/dev/null; then |
|
| _args="-a $_args" |
|
| fi |
|
| $SUDO $SYSMERGE $_args |
|
| fi |
|
| fi |
fi |
| |
|
| |
cd $OLDPWD |
| } |
} |
| |
|
| |
|
|
|
| $SUDO -v -p "sudo Password: " |
$SUDO -v -p "sudo Password: " |
| fi |
fi |
| |
|
| |
if [ X"$BOOT_KERNEL_VERSION" != X"$BOOTED_KERNEL_VERSION" \ |
| |
-a ! -e /sbin/oreboot ]; then |
| |
$SUDO cp /sbin/reboot /sbin/oreboot |
| |
if [ $? -ne 0 ]; then |
| |
echo "Error copying old reboot command!" >&2 |
| |
exit 1 |
| |
fi |
| |
echo "/sbin/reboot copied to /sbin/oreboot" |
| |
fi |
| |
|
| install_kernels |
install_kernels |
| install_sets |
install_sets |
| |
|
| if [ $CUR_VER == $NEW_VER ]; then |
if [ X"$BOOT_KERNEL_VERSION" == X"$BOOTED_KERNEL_VERSION" ]; then |
| if [ -e /sbin/oreboot ]; then |
if [ -e /sbin/oreboot ]; then |
| echo Removing /sbin/oreboot |
echo Removing /sbin/oreboot |
| $SUDO rm -f /sbin/oreboot |
$SUDO rm -f /sbin/oreboot |