=================================================================== RCS file: /cvs/openbsd/update_openbsd/update_openbsd,v retrieving revision 1.21 retrieving revision 1.29 diff -u -r1.21 -r1.29 --- openbsd/update_openbsd/update_openbsd 2009/05/13 05:26:32 1.21 +++ openbsd/update_openbsd/update_openbsd 2009/12/10 06:51:28 1.29 @@ -1,5 +1,5 @@ #!/bin/sh -# $RedRiver: update_openbsd,v 1.20 2009/04/25 00:14:12 andrew Exp $ +# $RedRiver: update_openbsd,v 1.28 2009/12/10 06:09:40 andrew Exp $ installed_sets() { local misc=/usr/share/doc/README @@ -24,7 +24,7 @@ fi done - sendmail -d0.1 root < /dev/null | grep -q SASL + sendmail -d0.1 -bt < /dev/null | grep -q SASL if [ $? == 0 ]; then echo -n ' sendmail-smtp_auth' fi @@ -191,6 +191,18 @@ done } +follow_symlink () { + local _file=$1 + local _next=$( file $_file | + grep 'symbolic link' | + sed -e s/^.*\\\`// -e s/\\\'\$// ) + if [ -h $_next ]; then + follow_symlink $_next + else + echo $_next + fi +} + check_sum () { local _type=$1 echo "### CHECKING $_type SUMS ###" @@ -291,9 +303,12 @@ exit 1 fi + local _true_bsd=`follow_symlink /bsd` + _true_bsd=${_true_bsd#/} + local _installed_new_bsd + for _b in bsd*; do $SUDO rm -f /nbsd - if [ X"${_b}" == X"bsd" ]; then echo Copying bsd to /bsd.sp $SUDO cp bsd /nbsd && $SUDO mv /nbsd /bsd.sp @@ -301,6 +316,9 @@ echo ERROR: Could not copy new SP kernel! >&2 exit 1 fi + if [ X"${_true_bsd}" == X"bsd.sp" ]; then + _installed_new_bsd=1 + fi else if [ -e /$_b ]; then echo Copying $_b to / @@ -309,6 +327,9 @@ echo ERROR: Could not copy new $_b kernel! >&2 exit 1 fi + if [ X"${_true_bsd}" == X"${_b}" ]; then + _installed_new_bsd=1 + fi fi fi done @@ -326,6 +347,10 @@ exit 1 fi fi + + if [ -z $_installed_new_bsd ]; then + echo WARNING: Did not replace $_true_bsd kernel >&2 + fi } install_sets() { @@ -435,7 +460,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 @@ -512,7 +539,10 @@ else echo Instructions for updating to the new version available from - echo " http://www.openbsd.org/faq/upgrade${_v}.html" + echo " http://www.openbsd.org/faq/upgrade${FILE_VER}.html" fi echo New kernel installed. Please reboot! +if [ -e /sbin/oreboot ]; then + echo Possibly using /sbin/oreboot +fi