[BACK]Return to update_openbsd CVS log [TXT][DIR] Up to [local] / openbsd / update_openbsd

Diff for /openbsd/update_openbsd/update_openbsd between version 1.4 and 1.40

version 1.4, 2008/08/12 23:44:19 version 1.40, 2012/12/08 19:54:08
Line 1 
Line 1 
 #!/bin/sh  #!/bin/sh
 # $RedRiver: update_openbsd,v 1.3 2008/08/12 22:42:09 andrew Exp $  # $AFresh1: update_openbsd,v 1.39 2012/12/08 19:52:08 andrew Exp $
   
 SYSMERGE=/usr/sbin/sysmerge  
 MIRROR=ftp://ftp.openbsd.org/pub/OpenBSD  
 FTP_CMD='ftp -V'  
   
 if [ -e /etc/update_openbsd.conf ]; then  
     . /etc/update_openbsd.conf  
 fi  
   
 if [ -e ${HOME}/.update_openbsdrc ]; then  
     . ${HOME}/.update_openbsdrc  
 fi  
   
 installed_sets() {  installed_sets() {
     misc=/usr/share/doc/README      local misc=/usr/share/doc/README
     man=/usr/share/man/cat1/intro.0      local man=/usr/share/man/cat1/intro.0
     comp=/usr/bin/cc      local comp=/usr/bin/cc
     game=/usr/games/      local game=/usr/games/
     xbase=/usr/X11R6/      local xbase=/usr/X11R6/
     xetc=/etc/X11/xinit/xinitrc      local xetc=/etc/X11/xinit/xinitrc
     xfont=/usr/X11R6/lib/X11/fonts      local xfont=/usr/X11R6/lib/X11/fonts
     xserv=/usr/X11R6/bin/X      local xserv=/usr/X11R6/bin/X
     xshare=/usr/X11R6/bin/startx      local xshare=/usr/X11R6/bin/startx
   
     echo base      local _c _d _e
     echo etc      echo -n base
       echo -n ' etc'
     for _d in misc man comp game xbase xetc xfont xserv xshare; do      for _d in misc man comp game xbase xetc xfont xserv xshare; do
         eval _e=\$${_d}          eval _e=\$${_d}
         _c=`ls $_e 2> /dev/null | wc -l`          _c=`ls $_e 2> /dev/null | wc -l`
         #echo $_c $_d $_e          #echo $_c $_d $_e
         if [ $_c -ne 0 ]; then          if [ $_c -ne 0 ]; then
             echo $_d              echo -n " $_d"
         fi          fi
     done      done
   
       sendmail -d0.1 --badoption </dev/null 2>/dev/null | grep -q SASL
       if [ $? == 0 ]; then
           echo -n ' sendmail-smtp_auth'
       fi
 }  }
   
   kernel_file_version() {
       echo exit | config -e $1 | grep -A1 ^OpenBSD
       #what $1 | sed -ne 's/[[:blank:]]\{1,\}//p'
   }
   
   version_in() {
           local _proto=${FTP%%://*}
           local _file
   
           if [ X"ftp" == X"${_proto}" ]; then
               local _list=`echo "ls base*.tgz" | ${FTP_CMD} ${FTP}/`
               _file=`echo ${_list} | awk '/base[0-9][0-9].tgz/ { print $9 }'`
   
           elif [ X"http" == X"${_proto}" ]; then
               local _list=`${FTP_CMD} -V -o - ${FTP}/`
               _file=`echo ${_list} | awk '/[^x]base[0-9][0-9]*\.tgz/ {
                       sub("^.*base","base");
                       sub("\.tgz.*",".tgz");
                       print $0;
                   }'`
   
           elif [ X"scp" == X"${_proto}" ]; then
               echo SCP is not yet supported >&2
               return 2
   
           else
               echo Unsupported FTP ${FTP} >&2
               return 2
   
           fi
   
           local _v=${_file##*base}
           _v=${_v%.tgz*}
           echo $_v
   }
   
 set_version() {  set_version() {
     CUR_VER=`uname -r`      CUR_VER=`uname -r`
     NEW_VER=`dc -e "$CUR_VER 0.1 + p"`      NEW_VER=`dc -e "$CUR_VER 0.1 + p"`
       FILE_VER=""
       FTP=""
   
     if [ -d $NEW_VER ]; then      local _cv=`echo $CUR_VER | sed -e 's/\.//'`
         DIR=$NEW_VER      local _nv=`echo $NEW_VER | sed -e 's/\.//'`
     fi      local _v
   
     if [ -d $CUR_VER ]; then      if [ X"No" != X"$FORCE_DIR" -a -d $FORCE_DIR ]; then
           _dir=$FORCE_DIR
           if [ -e ${_dir}/base${_nv}.tgz ]; then
               _v=$_nv
           elif [ -e ${_dir}/base${_cv}.tgz ]; then
               NEW_VER=$CUR_VER
               _v=$_cv
           fi
   
       elif [ -d $CUR_VER ]; then
           _dir=$CUR_VER
         NEW_VER=$CUR_VER          NEW_VER=$CUR_VER
         DIR=$NEW_VER          if [ -e ${_dir}/base${_cv}.tgz ]; then
     fi              _v=$_cv
           fi
   
     if [ X"" != X"$FORCE_DIR" ]; then      elif [ -d $NEW_VER ]; then
         if [ -d $FORCE_DIR ]; then          _dir=$NEW_VER
             DIR=$FORCE_DIR          if [ -e ${_dir}/base${_nv}.tgz ]; then
               _v=$_nv
             _cv=`echo $CUR_VER | sed -e 's/\.//'`  
             if [ -e $DIR/base${_cv}.tgz ]; then  
                 NEW_VER=$CUR_VER  
             fi  
         fi          fi
   
     fi      fi
   
     if [ X"" == X"$DIR" ]; then      if [ X"" != X"${MIRROR}" -a X"" == X"${_v}" ]; then
         FTP=${MIRROR}/${NEW_VER}/`machine`          if [ X"No" == X"${FORCE_DIR}" ]; then
               _dir=${NEW_VER}
           else
               _dir=${FORCE_DIR}
           fi
           FTP=${MIRROR}/${_dir}/`machine`
   
         #echo "ls\nquit\n" | ftp $MIRROR | grep "$NEW_VER"          _v=`version_in`
         $FTP_CMD ${FTP}/MD5 > /dev/null  
   
         if [ -e MD5 ]; then          if [ X"" == X"${_v}" ]; then
             rm -f MD5              if [ X"No" != X"$FORCE_DIR" ]; then
         else                  echo No sets in forced [${FTP}] >&2
                   return 2
               fi
   
             NEW_VER=$CUR_VER              NEW_VER=$CUR_VER
               _dir=${NEW_VER}
               FTP=${MIRROR}/${_dir}/`machine`
   
               _v=`version_in`
         fi          fi
   
         if [ X"$FORCE_DIR" == X"" ]; then          if [ X"" == X"${_v}" ]; then
             DIR=$NEW_VER              echo No sets in [${FTP}] >&2
               return 2
           elif [ X"${_cv}" == X"${_v}" ]; then
               NEW_VER=$CUR_VER
           elif [ X"${_nv}" == X"${_v}" ]; then
               NEW_VER=$NEW_VER
         else          else
             DIR=$FORCE_DIR              echo Invalid version [$_v] >&2
               return 2
         fi          fi
   
         FTP=${MIRROR}/${DIR}/`machine`          if [ X"No" == X"$FORCE_DIR" ]; then
               _dir=$NEW_VER
           fi
   
     fi      fi
   
     if [ X"" != X"$RELEASEDIR" ]; then      if [ X"" == X"${_v}" ]; then
         DIR=$RELEASEDIR          echo ERROR: Unable to determine file version! >&2
           return 1
     fi      fi
   
     if [ -d $DIR ]; then      if [ X"" == X"$RELEASEDIR" ]; then
        cd $DIR          RELEASEDIR=`pwd`/$_dir
        RELEASEDIR=`pwd`  
     fi      fi
   
     _v=`echo $NEW_VER | sed -e 's/\.//'`      FILE_VER=$_v
       if [ X"" != X"${MIRROR}" ]; then
           FTP=${MIRROR}/${_dir}/`machine`
       fi
   
       BOOT_KERNEL=`( \
           echo bsd; \
           [ -e /boot.conf ] && sed -E '/^ *(set +image|boot) +/!d ; \
               s///; s/^.*://; s/ .*$//' /boot.conf \
       ) | tail -1`
       BOOT_KERNEL="/${BOOT_KERNEL#/}"
       BOOT_KERNEL=`follow_symlink $BOOT_KERNEL`
   
       BOOT_KERNEL_VERSION=`kernel_file_version $BOOT_KERNEL`
   
       BOOTED_KERNEL_VERSION=`sysctl -n kern.version`
       NEW_KERNEL_VERSION=""
   
       # We want to default to what we had
       INSTALL_KERNELS="${BOOT_KERNEL#/}"
       # with a second option of an mp kernel if is is a likely candidate
       if [ X"$INSTALL_KERNELS" != X"bsd.mp" ]; then
           local _ncpu=$(sysctl -n hw.ncpufound)
           [ $_ncpu -gt 1 ] && INSTALL_KERNELS="$INSTALL_KERNELS bsd.mp"
       fi
       # or just bsd otherwise
       if [ X"${INSTALL_KERNELS% *}" != X"bsd" ]; then
           INSTALL_KERNELS="$INSTALL_KERNELS bsd"
       fi
       BOOT_KERNELS=$INSTALL_KERNELS
       INSTALL_KERNELS="$INSTALL_KERNELS bsd.rd"
 }  }
   
 get_sets() {  get_sets() {
       echo '### GETTING SETS ###'
     if [ X"" == X"$FTP" ]; then      if [ X"" == X"$FTP" ]; then
         echo Error, no FTP site is set! >&2          echo ERROR: No FTP site set! >&2
         exit 1          return 1
     fi      fi
   
     if [ X"" == X"$RELEASEDIR" ]; then      mkdir -p ${RELEASEDIR}
         RELEASEDIR=$DIR  
     fi  
   
     mkdir -p $RELEASEDIR  
     cd $RELEASEDIR      cd $RELEASEDIR
     RELEASEDIR=`pwd`  
   
     for _b in /bsd* bsd bsd.mp bsd.rd; do      local _v=$FILE_VER
   
       for _b in $INSTALL_KERNELS; do
         if [ -e /${_b} -a ! -e ./${_b} ]; then          if [ -e /${_b} -a ! -e ./${_b} ]; then
             echo $FTP_CMD ${FTP}/${_b}              echo $FTP_CMD ${FTP}/${_b}
             $FTP_CMD ${FTP}/${_b}              $FTP_CMD ${FTP}/${_b}
         fi          fi
     done      done
   
     for _s in `installed_sets`; do      for _s in $INSTALLED_SETS; do
         echo $FTP_CMD ${FTP}/${_s}${_v}.tgz          local _file=${_s}${_v}.tgz
         $FTP_CMD ${FTP}/${_s}${_v}.tgz          if [ ${_s} == sendmail-smtp_auth ]; then
               _file=${_s}.gz
           fi
   
           if [ ! -e ./${_file} ]; then
               echo $FTP_CMD ${FTP}/${_file}
               $FTP_CMD ${FTP}/${_file}
           fi
     done      done
   
     echo $FTP_CMD ${FTP}/MD5      local _type
     $FTP_CMD ${FTP}/MD5      for _type in $CHECKSUM_TYPES; do
     ls bsd* *.tgz > index          [ -e $_type ] && break
     grep -f index MD5 | md5 -c          echo $FTP_CMD ${FTP}/$_type
           $FTP_CMD ${FTP}/$_type
       done
   }
   
     if [ $? -ne 0 ]; then  follow_symlink () {
         echo !!! WARNING: MD5 does not match !!! >&2      local _file=$1
         exit 1      # 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 $_file
     fi      fi
 }  }
   
 install_kernel() {  check_sum () {
     if [ X"$USER" != X"root" -a X"$SUDO" == X"" ]; then      local _type=$1
         echo ${0##*/} must be run as root or SUDO must be set! >&2      echo "### CHECKING $_type SUMS ###"
         exit 1      cd $RELEASEDIR
   
       if [ ! -e $_type ]; then
           echo $_type File does not exist!
           return 1
     fi      fi
   
     if [ X"" == X"$RELEASEDIR" ]; then      ls bsd* *gz | sed -e 's/\(.*\)/(\1)/' > index
         echo "ERROR: no source for new kernels!" >&2      grep -f index $_type | sum -c
         exit 1  
     else      if [ $? -ne 0 ]; then
         cd $RELEASEDIR          echo ERROR: $_type does not match! >&2
           return 1
     fi      fi
   }
   
     if [ ! -e bsd ]; then  check_sets() {
         echo "new bsd kernel does not exist!" >&2      echo '### CHECKING SETS ###'
         exit 1      cd $RELEASEDIR
   
       local _missing_sets
       local _v=$FILE_VER
   
       for _n in $INSTALL_KERNELS; do
           local _o=$_n
           [ X"bsd" == X"${_o}" -a -e /bsd.sp ] && _o=bsd.sp
           if [ -e /${_o} -a ! -e ./${_n} ]; then
               echo ${_o} does not exist
               _missing_sets=1
           fi
   
           if [ X"${BOOT_KERNEL}" == X"/${_o}" -a -e ./${_n} ]; then
               NEW_KERNEL_VERSION=`kernel_file_version ./${_n}`
           fi
       done
   
       if [ X"$NEW_KERNEL_VERSION" == X"" ]; then
           echo Missing replacement for boot kernel $BOOT_KERNEL >&2
           _missing_sets=1
     fi      fi
   
     if [ -e /bsd.mp -a ! -e bsd.mp ]; then      for _s in $INSTALLED_SETS; do
         echo "new bsd.mp kernel does not exist!" >&2          local _file=${_s}${_v}.tgz
         exit 1          if [ ${_s} == sendmail-smtp_auth ]; then
               _file=${_s}.gz
           fi
           if [ ! -e ./${_file} ]; then
               echo ${_file} does not exist
               _missing_sets=1
           fi
       done
   
       if [ X"" == X"${_missing_sets}" ]; then
           echo All OK
     fi      fi
   
     if [ ! -e bsd.rd ]; then      local _type
         echo "new bsd.rd kernel does not exist!" >&2      for _type in $CHECKSUM_TYPES; do
           if [ -e $_type ]; then
               check_sum $_type
           fi
       done
   }
   
   
   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
         exit 1          exit 1
     fi      fi
   
       if [ X"" == X"$RELEASEDIR" ]; then
     if [ -e base${_v}.tgz ]; then          echo ERROR: no source for new kernels! >&2
         echo Extracting new firmware from base${_v}.tgz          exit 1
         $SUDO tar -C $DESTDIR -xzphf base${_v}.tgz "*etc/firmware/*"  
     fi      fi
   
     $SUDO rm -f /obsd      echo "Backing up $BOOT_KERNEL to /obsd"
     $SUDO ln /bsd /obsd      $SUDO ln -f $BOOT_KERNEL /obsd
     if [ $? -ne 0 ]; then      if [ $? -ne 0 ]; then
         echo "Error copying old kernel!"          echo "Error copying old kernel!" >&2
         exit 1          exit 1
     fi      fi
   
     for _b in bsd*; do      cd $RELEASEDIR
   
       for _b in $INSTALL_KERNELS; do
         $SUDO rm -f /nbsd          $SUDO rm -f /nbsd
           local _bd=$_b
           [ X"${_b}" == X"bsd" ] && _bd="bsd.sp"
   
         if [ X"$_b" == X"bsd" ]; then          local _is_boot=""
             echo Copying bsd to /bsd.sp          [ X"$BOOT_KERNEL" == X"/${_bd}" ] && _is_boot="# boot kernel"
             $SUDO cp bsd /nbsd && $SUDO mv /nbsd /bsd.sp  
             if [ $? -ne 0 ]; then          echo "Copying $_b to /$_bd $_is_boot"
                 echo "ERROR: Couldn't copy new SP kernel!" >&2          $SUDO cp ${_b} /nbsd && $SUDO mv /nbsd /${_bd}
                 exit 1          if [ $? -ne 0 ]; then
             fi              echo ERROR: Could not copy new $_bd kernel! >&2
         else              exit 1
             if [ -e /$_b ]; then  
                 echo Copying $_b to /  
                 $SUDO cp ${_b} /nbsd && $SUDO mv /nbsd /${_b}  
                 if [ $? -ne 0 ]; then  
                     echo "ERROR: Couldn't copy new $_b kernel!" >&2  
                     exit 1  
                 fi  
             fi  
         fi          fi
     done      done
   
       cd $OLDPWD
   
     if [ ! -h /bsd ]; then      if [ ! -h /bsd ]; then
         if [ -e /bsd.mp ]; then              cd /
             echo linking /bsd.mp to /bsd          for _b in $BOOT_KERNELS; do
             $SUDO ln -sf /bsd.mp /bsd              [ X"$_b" == X"bsd" ] && _b="bsd.sp"
         else              if [ -e $_b ]; then
             echo linking /bsd.sp to /bsd                  echo symlinking $_b to /bsd
             $SUDO ln -sf /bsd.sp /bsd                  $SUDO ln -sf $_b bsd
         fi                  if [ $? -ne 0 ]; then
         if [ $? -ne 0 ]; then                      echo ERROR: Could not symlink new kernel! >&2
             echo "ERROR: Couldn't symlink new kernel!" >&2                      exit 1
             exit 1                  fi
         fi                  break
               fi
           done
               cd $OLDPWD
     fi      fi
 }  }
   
 install_sets() {  install_sets() {
       echo '### INSTALLING SETS ###'
     if [ X"$USER" != X"root" -a X"$SUDO" == X"" ]; then      if [ X"$USER" != X"root" -a X"$SUDO" == X"" ]; then
         echo ${0##*/} must be run as root or SUDO must be set! >&2          echo ${0##*/} must be run as root or SUDO must be set! >&2
         exit 1          exit 1
     fi      fi
   
     if [ X"" == X"$RELEASEDIR" ]; then      if [ X"" == X"$RELEASEDIR" ]; then
         echo "ERROR: no source for sets!" >&2          echo ERROR: no source for sets! >&2
         exit 1          exit 1
     else      else
         cd $RELEASEDIR          cd $RELEASEDIR
     fi      fi
   
     for _f in *${_v}.tgz; do      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 `
       for _f in ${_sets} base${_v}.tgz; do
         _path=$DESTDIR          _path=$DESTDIR
         if [ X"etc${_v}.tgz"  == X"$_f" \          if [ X"etc${_v}.tgz"  == X"$_f" \
             -o X"xetc${_v}.tgz" == X"$_f" ]; then              -o X"xetc${_v}.tgz" == X"$_f" ]; then
             if [ X"" != X"$SYSMERGE" ]; then              [ X"" != X"$SYSMERGE" ] && continue
                 continue  
             fi  
             _path=/var/tmp/temproot              _path=/var/tmp/temproot
         fi          fi
   
Line 235 
Line 397 
         $SUDO mkdir -p $_path          $SUDO mkdir -p $_path
         $SUDO tar -C $_path -xzphf ${RELEASEDIR}/${_f}          $SUDO tar -C $_path -xzphf ${RELEASEDIR}/${_f}
         if [ $? -ne 0 ]; then          if [ $? -ne 0 ]; then
             echo "Error extracting ${_f}!" >&2              echo ERROR: Could not extract ${_f}! >&2
             exit 1              exit 1
         fi          fi
     done      done
   
     echo Extracted all sets.      echo Extracted all sets.
   
       if [ -e ${RELEASEDIR}/sendmail-smtp_auth.gz ]; then
           gzcat ${RELEASEDIR}/sendmail-smtp_auth.gz > \
               ${RELEASEDIR}/sendmail-smtp_auth
       fi
       if [ -e ${RELEASEDIR}/sendmail-smtp_auth ]; then
           if ! pkg_info -qe 'cyrus-sasl-*'; then
               $SUDO pkg_add -i cyrus-sasl
           fi
   
           $SUDO install -o root -g smmsp -m 2555 \
               ${RELEASEDIR}/sendmail-smtp_auth \
               /usr/libexec/sendmail/sendmail
   
           echo Installed sendmail with smtp_auth
       fi
 }  }
   
 update_etc() {  update_etc() {
       echo '### UPDATING ETC ###'
       if [ ! -e $SYSMERGE ]; then
           SYSMERGE=
       fi
   
     if [ X"" == X"$SYSMERGE" ]; then      if [ X"" == X"$SYSMERGE" ]; then
         if [ -e /var/tmp/temproot ]; then          if [ -e /var/tmp/temproot ]; then
             MERGEMASTER=`which mergemaster`              MERGEMASTER=`which mergemaster`
   
             if [ $? != 0 ]; then              if [ $? != 0 ]; then
                 $SUDO pkg_add -i mergemaster                  $SUDO pkg_add -i mergemaster
   
                 MERGEMASTER=`which mergemaster`                  MERGEMASTER=`which mergemaster`
                 if [ $? != 0 ]; then                  if [ $? != 0 ]; then
                     echo ERROR: mergemaster not installed! >&2                      echo ERROR: mergemaster not installed! >&2
Line 271 
Line 455 
             cd $RELEASEDIR              cd $RELEASEDIR
         fi          fi
   
         _cv=`echo $CUR_VER | sed -e 's/\.//'`          local _v=$FILE_VER
         if [ -e etc${_cv}.tgz ]; then          local _args=""
             _args="$_args -s etc${_cv}.tgz"          if [ -e etc${_v}.tgz ]; then
               _args="$_args -s etc${_v}.tgz"
         fi          fi
         if [ -e xetc${_cv}.tgz ]; then          if [ -e xetc${_v}.tgz ]; then
             _args="$_args -x xetc${_cv}.tgz"              _args="$_args -x xetc${_v}.tgz"
         fi          fi
         if [ X"" == X"$_args" ]; then          if [ X"" == X"$_args" ]; then
             echo ERROR: No upgrade sets found! >&2              echo ERROR: No upgrade sets found! >&2
         else          else
             echo '### RUNNING SYSMERGE ###'              echo '### RUNNING SYSMERGE ###'
             _args="-a $_args"              if sysmerge 2>&1 | grep -- -a >/dev/null; then
                   _args="-a $_args"
               fi
             $SUDO $SYSMERGE $_args              $SUDO $SYSMERGE $_args
         fi          fi
     fi      fi
 }  }
   
 DESTDIR=${DESTDIR:=/}  
 PKG_PATH=${PKG_PATH:=/usr/ports/packages/`machine`/all/:${MIRROR}/`uname -r`/packages/`machine`/}  
   
 if [ X"" != X"$SYSMERGE" ]; then  if [ -e /etc/update_openbsd.conf ]; then
     if [ ! -e $SYSMERGE ]; then      . /etc/update_openbsd.conf
         SYSMERGE=  
     fi  
 fi  fi
   
   if [ -e ${HOME}/.update_openbsdrc ]; then
       . ${HOME}/.update_openbsdrc
   fi
   
   #MIRROR=${MIRROR:=ftp://ftp.openbsd.org/pub/OpenBSD}
   FTP_CMD=${FTP_CMD:=ftp -V}
   PKG_PATH=${PKG_PATH:=/usr/ports/packages/`machine`/all/:${MIRROR}/`uname -r`/packages/`machine`/}
   
   DESTDIR=${DESTDIR:=/}
   SYSMERGE=${SYSMERGE:=/usr/sbin/sysmerge}
   FORCE_DIR=${FORCE_DIR:=No}
   
   INSTALLED_SETS=${INSTALLED_SETS:=`installed_sets`}
   
   CHECKSUM_TYPES=${CHECKSUM_TYPES:=SHA256 MD5}
   
 set_version  set_version
   local _error=$?
   
 echo  echo
 echo "-= update_openbsd - helper script to update OpenBSD =-"  echo "-= update_openbsd - helper script to update OpenBSD =-"
 echo "------------------------------------------------------"  echo "------------------------------------------------------"
 echo  echo
 echo "       DIR: $DIR"  echo "           SUDO: $SUDO"
 echo "RELEASEDIR: $RELEASEDIR"  echo "       SYSMERGE: $SYSMERGE"
 echo "   DESTDIR: $DESTDIR"  echo "         MIRROR: $MIRROR"
 echo "   CUR_VER: $CUR_VER"  echo "     RELEASEDIR: $RELEASEDIR"
 echo "   NEW_VER: $NEW_VER"  echo "        DESTDIR: $DESTDIR"
 echo "      SUDO: $SUDO"  echo "    BOOT_KERNEL: $BOOT_KERNEL"
 echo "  SYSMERGE: $SYSMERGE"  echo "INSTALL_KERNELS: $INSTALL_KERNELS"
 echo "    MIRROR: $MIRROR"  echo " INSTALLED_SETS: $INSTALLED_SETS"
 echo  echo
   echo "        CUR_VER: $CUR_VER"
   echo "        NEW_VER: $NEW_VER"
   #echo "       FILE_VER: $FILE_VER"
   echo
   
 if [ X"" == X"$RELEASEDIR" ]; then  if [ ${_error} -ne 0 ]; then
     echo '### GETTING SETS ###'          exit ${_error}
   fi
   
   if [ X"" != X"${FTP}" ]; then
     get_sets      get_sets
 fi  fi
   
   check_sets || exit
   
   echo "Last booted:\n$BOOTED_KERNEL_VERSION"
   if [ X"$BOOT_KERNEL_VERSION" != X"$BOOTED_KERNEL_VERSION" \
     -a X"$BOOT_KERNEL_VERSION" != X"$NEW_KERNEL_VERSION" ]; then
       echo "Next boot (unless replaced):\n$BOOT_KERNEL_VERSION"
   fi
   if [ -n "$NEW_KERNEL_VERSION" ]; then
       echo "New $BOOT_KERNEL:\n$NEW_KERNEL_VERSION";
   else
       echo "\n!!! WARNING: Will not replace boot kernel $BOOT_KERNEL! !!!\n" >&2
       echo "ctrl+C to cancel, enter to continue anyway" >&2
       local _temp
       read _temp
   fi
   
 if [ X"" != X"$SUDO" ]; then  if [ X"" != X"$SUDO" ]; then
     echo Please enter your sudo password if prompted.      echo Please enter your sudo password if prompted.
     echo You may be asked for it again later in the process.      echo You may be asked for it again later in the process.
     $SUDO -v      $SUDO -v
 fi  fi
   
 echo '### INSTALLING KERNEL ###'  install_kernels
 install_kernel  install_sets
   
 if [ $CUR_VER == $NEW_VER -o X"" != X"$FORCE_DIR" ]; then  if [ $CUR_VER == $NEW_VER ]; then
     echo '### INSTALLING SETS ###'      if [ -e /sbin/oreboot ]; then
     install_sets          echo Removing /sbin/oreboot
           $SUDO rm -f /sbin/oreboot
     echo '### UPDATING ETC ###'      fi
     update_etc      update_etc
   
     echo '### UPDATING PACKAGES ###'      echo '### UPDATING PACKAGES ###'
Line 339 
Line 562 
   
 else  else
     echo Instructions for updating to the new version available from      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  fi
   
 echo New kernel installed.  Please reboot!  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

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.40

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>