=================================================================== RCS file: /cvs/openbsd/update_openbsd/update_openbsd,v retrieving revision 1.24 retrieving revision 1.37 diff -u -r1.24 -r1.37 --- openbsd/update_openbsd/update_openbsd 2009/05/29 22:47:37 1.24 +++ openbsd/update_openbsd/update_openbsd 2010/06/17 23:39:09 1.37 @@ -1,5 +1,5 @@ #!/bin/sh -# $RedRiver: update_openbsd,v 1.23 2009/05/14 23:00:46 andrew Exp $ +# $AFresh1: update_openbsd,v 1.36 2010/06/17 20:35:47 andrew Exp $ installed_sets() { local misc=/usr/share/doc/README @@ -24,7 +24,7 @@ fi done - sendmail -d0.1 -bt < /dev/null | grep -q SASL + sendmail -d0.1 --badoption /dev/null | grep -q SASL if [ $? == 0 ]; then echo -n ' sendmail-smtp_auth' fi @@ -193,13 +193,13 @@ follow_symlink () { local _file=$1 - local _next=$( file $_file | - grep 'symbolic link' | - sed -e s/^.*\\\`// -e s/\\\'\$// ) - if [ -h $_next ]; then - follow_symlink $_next + # This could go circular, but I dunno how to fix that. + if [ -h $_file ]; then + follow_symlink $( file $_file | + grep 'symbolic link' | + sed -e s/^.*\\\`// -e s/\\\'\$// ) else - echo $_next + echo $_file fi } @@ -265,7 +265,7 @@ } -install_kernel() { +install_kernels() { echo '### INSTALLING KERNEL ###' if [ X"$USER" != X"root" -a X"$SUDO" == X"" ]; then echo ${0##*/} must be run as root or SUDO must be set! >&2 @@ -304,6 +304,7 @@ fi local _true_bsd=`follow_symlink /bsd` + _true_bsd=${_true_bsd#/} local _installed_new_bsd for _b in bsd*; do @@ -315,11 +316,11 @@ echo ERROR: Could not copy new SP kernel! >&2 exit 1 fi - if [ X"${_true_bsd}" == X"bsd" ]; then + if [ X"${_true_bsd}" == X"bsd.sp" ]; then _installed_new_bsd=1 fi else - if [ -e /$_b ]; then + if [ -e "/${_b}" ]; then echo Copying $_b to / $SUDO cp ${_b} /nbsd && $SUDO mv /nbsd /${_b} if [ $? -ne 0 ]; then @@ -336,10 +337,10 @@ if [ ! -h /bsd ]; then if [ -e /bsd.mp ]; then echo linking /bsd.mp to /bsd - $SUDO ln -sf /bsd.mp /bsd + $SUDO ln -sf /bsd.mp bsd else echo linking /bsd.sp to /bsd - $SUDO ln -sf /bsd.sp /bsd + $SUDO ln -sf /bsd.sp bsd fi if [ $? -ne 0 ]; then echo ERROR: Could not symlink new kernel! >&2 @@ -449,6 +450,7 @@ fi local _v=$FILE_VER + local _args="" if [ -e etc${_v}.tgz ]; then _args="$_args -s etc${_v}.tgz" fi @@ -459,7 +461,9 @@ echo ERROR: No upgrade sets found! >&2 else echo '### RUNNING SYSMERGE ###' - _args="-a $_args" + if sysmerge 2>&1 | grep -- -a >/dev/null; then + _args="-a $_args" + fi $SUDO $SYSMERGE $_args fi fi @@ -521,7 +525,7 @@ $SUDO -v fi -install_kernel +install_kernels install_sets if [ $CUR_VER == $NEW_VER ]; then @@ -536,10 +540,24 @@ else echo Instructions for updating to the new version available from - echo " http://www.openbsd.org/faq/upgrade${_v}.html" + if [ X"snapshots" == X"$FORCE_DIR" ]; then + echo " http://www.openbsd.org/faq/current.html" + else + echo " http://www.openbsd.org/faq/upgrade${FILE_VER}.html" + fi fi echo New kernel installed. Please reboot! if [ -e /sbin/oreboot ]; then echo Possibly using /sbin/oreboot +fi + +local _send_dmesg=`dirname $0`/send_dmesg +if [ -e "$_send_dmesg" ]; then + if [ -e $RELEASEDIR/.send_dmesg ]; then + $_send_dmesg + rm -f $RELEASEDIR/.send_dmesg + elif [ X"$CUR_VER" != X"$NEW_VER" ]; then + touch $RELEASEDIR/.send_dmesg + fi fi