=================================================================== RCS file: /cvs/openbsd/update_openbsd/update_openbsd,v retrieving revision 1.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- openbsd/update_openbsd/update_openbsd 2009/05/13 17:40:50 1.22 +++ openbsd/update_openbsd/update_openbsd 2009/05/15 00:00:46 1.23 @@ -1,5 +1,5 @@ #!/bin/sh -# $RedRiver: update_openbsd,v 1.21 2009/05/13 04:26:32 andrew Exp $ +# $RedRiver: update_openbsd,v 1.22 2009/05/13 16:40:50 andrew Exp $ installed_sets() { local misc=/usr/share/doc/README @@ -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,11 @@ exit 1 fi + local _true_bsd=`follow_symlink /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 +315,9 @@ echo ERROR: Could not copy new SP kernel! >&2 exit 1 fi + if [ X"${_true_bsd}" == X"bsd" ]; then + _installed_new_bsd=1 + fi else if [ -e /$_b ]; then echo Copying $_b to / @@ -309,6 +326,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 @@ -325,6 +345,10 @@ echo ERROR: Could not symlink new kernel! >&2 exit 1 fi + fi + + if [ -z $_installed_new_bsd ]; then + echo WARNING: Did not replace $_true_bsd kernel >&2 fi }