[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.33 and 1.40

version 1.33, 2009/12/31 16:48:19 version 1.40, 2012/12/08 19:54:08
Line 1 
Line 1 
 #!/bin/sh  #!/bin/sh
 # $RedRiver: update_openbsd,v 1.32 2009/12/10 19:34:39 andrew Exp $  # $AFresh1: update_openbsd,v 1.39 2012/12/08 19:52:08 andrew Exp $
   
 installed_sets() {  installed_sets() {
     local misc=/usr/share/doc/README      local misc=/usr/share/doc/README
Line 24 
Line 24 
         fi          fi
     done      done
   
     sendmail -d0.1 -bt < /dev/null | grep -q SASL      sendmail -d0.1 --badoption </dev/null 2>/dev/null | grep -q SASL
     if [ $? == 0 ]; then      if [ $? == 0 ]; then
         echo -n ' sendmail-smtp_auth'          echo -n ' sendmail-smtp_auth'
     fi      fi
 }  }
   
   kernel_file_version() {
       echo exit | config -e $1 | grep -A1 ^OpenBSD
       #what $1 | sed -ne 's/[[:blank:]]\{1,\}//p'
   }
   
 version_in() {  version_in() {
         local _proto=${FTP%%://*}          local _proto=${FTP%%://*}
         local _file          local _file
Line 149 
Line 154 
     if [ X"" != X"${MIRROR}" ]; then      if [ X"" != X"${MIRROR}" ]; then
         FTP=${MIRROR}/${_dir}/`machine`          FTP=${MIRROR}/${_dir}/`machine`
     fi      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() {
Line 163 
Line 195 
   
     local _v=$FILE_VER      local _v=$FILE_VER
   
     for _b in `echo /bsd* bsd bsd.mp bsd.rd | sort -u`; do      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}
Line 184 
Line 216 
   
     local _type      local _type
     for _type in $CHECKSUM_TYPES; do      for _type in $CHECKSUM_TYPES; do
         if [ ! -e $_type ]; then          [ -e $_type ] && break
             echo $FTP_CMD ${FTP}/$_type          echo $FTP_CMD ${FTP}/$_type
             $FTP_CMD ${FTP}/$_type          $FTP_CMD ${FTP}/$_type
         fi  
     done      done
 }  }
   
Line 229 
Line 260 
     local _missing_sets      local _missing_sets
     local _v=$FILE_VER      local _v=$FILE_VER
   
     for _b in `echo /bsd* bsd bsd.mp bsd.rd | sort -u`; do      for _n in $INSTALL_KERNELS; do
         _b=${_b#/}          local _o=$_n
         local _n=$_b          [ X"bsd" == X"${_o}" -a -e /bsd.sp ] && _o=bsd.sp
         if [ X"bsd.sp" == X"${_n}" ]; then          if [ -e /${_o} -a ! -e ./${_n} ]; then
             _n=bsd              echo ${_o} does not exist
         fi  
         if [ -e /${_b} -a ! -e ./${_n} ]; then  
             echo ${_n} does not exist  
             _missing_sets=1              _missing_sets=1
         fi          fi
   
           if [ X"${BOOT_KERNEL}" == X"/${_o}" -a -e ./${_n} ]; then
               NEW_KERNEL_VERSION=`kernel_file_version ./${_n}`
           fi
     done      done
   
       if [ X"$NEW_KERNEL_VERSION" == X"" ]; then
           echo Missing replacement for boot kernel $BOOT_KERNEL >&2
           _missing_sets=1
       fi
   
     for _s in $INSTALLED_SETS; do      for _s in $INSTALLED_SETS; do
         local _file=${_s}${_v}.tgz          local _file=${_s}${_v}.tgz
         if [ ${_s} == sendmail-smtp_auth ]; then          if [ ${_s} == sendmail-smtp_auth ]; then
Line 275 
Line 312 
     if [ X"" == X"$RELEASEDIR" ]; then      if [ X"" == X"$RELEASEDIR" ]; then
         echo ERROR: no source for new kernels! >&2          echo ERROR: no source for new kernels! >&2
         exit 1          exit 1
     else  
         cd $RELEASEDIR  
     fi      fi
   
     if [ ! -e bsd ]; then      echo "Backing up $BOOT_KERNEL to /obsd"
         echo ERROR: new bsd kernel does not exist! >&2      $SUDO ln -f $BOOT_KERNEL /obsd
         exit 1  
     fi  
   
     if [ -e /bsd.mp -a ! -e bsd.mp ]; then  
         echo ERROR: new bsd.mp kernel does not exist! >&2  
         exit 1  
     fi  
   
     if [ ! -e bsd.rd ]; then  
         echo ERROR: new bsd.rd kernel does not exist! >&2  
         exit 1  
     fi  
   
     local _v=$FILE_VER  
   
     $SUDO rm -f /obsd  
     $SUDO ln /bsd /obsd  
     if [ $? -ne 0 ]; then      if [ $? -ne 0 ]; then
         echo "Error copying old kernel!" >&2          echo "Error copying old kernel!" >&2
         exit 1          exit 1
     fi      fi
   
     local _true_bsd=`follow_symlink /bsd`      cd $RELEASEDIR
     _true_bsd=${_true_bsd#/}  
     local _installed_new_bsd  
   
     for _b in bsd*; do      for _b in $INSTALL_KERNELS; do
         $SUDO rm -f /nbsd          $SUDO rm -f /nbsd
         if [ X"${_b}" == X"bsd" ]; then          local _bd=$_b
             echo Copying bsd to /bsd.sp          [ X"${_b}" == X"bsd" ] && _bd="bsd.sp"
             $SUDO cp bsd /nbsd && $SUDO mv /nbsd /bsd.sp  
             if [ $? -ne 0 ]; then  
                 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 /  
                 $SUDO cp ${_b} /nbsd && $SUDO mv /nbsd /${_b}  
                 if [ $? -ne 0 ]; then  
                     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  
   
     if [ ! -h /bsd ]; then          local _is_boot=""
         if [ -e /bsd.mp ]; then          [ X"$BOOT_KERNEL" == X"/${_bd}" ] && _is_boot="# boot kernel"
             echo linking /bsd.mp to /bsd  
             $SUDO ln -sf /bsd.mp /bsd          echo "Copying $_b to /$_bd $_is_boot"
         else          $SUDO cp ${_b} /nbsd && $SUDO mv /nbsd /${_bd}
             echo linking /bsd.sp to /bsd  
             $SUDO ln -sf /bsd.sp /bsd  
         fi  
         if [ $? -ne 0 ]; then          if [ $? -ne 0 ]; then
             echo ERROR: Could not symlink new kernel! >&2              echo ERROR: Could not copy new $_bd kernel! >&2
             exit 1              exit 1
         fi          fi
     fi      done
   
     if [ -z $_installed_new_bsd ]; then      cd $OLDPWD
         echo WARNING: Did not replace $_true_bsd kernel >&2  
       if [ ! -h /bsd ]; then
               cd /
           for _b in $BOOT_KERNELS; do
               [ X"$_b" == X"bsd" ] && _b="bsd.sp"
               if [ -e $_b ]; then
                   echo symlinking $_b to /bsd
                   $SUDO ln -sf $_b bsd
                   if [ $? -ne 0 ]; then
                       echo ERROR: Could not symlink new kernel! >&2
                       exit 1
                   fi
                   break
               fi
           done
               cd $OLDPWD
     fi      fi
 }  }
   
Line 497 
Line 503 
 echo "-= update_openbsd - helper script to update OpenBSD =-"  echo "-= update_openbsd - helper script to update OpenBSD =-"
 echo "------------------------------------------------------"  echo "------------------------------------------------------"
 echo  echo
 echo "          SUDO: $SUDO"  echo "           SUDO: $SUDO"
 echo "      SYSMERGE: $SYSMERGE"  echo "       SYSMERGE: $SYSMERGE"
 echo "        MIRROR: $MIRROR"  echo "         MIRROR: $MIRROR"
 echo "    RELEASEDIR: $RELEASEDIR"  echo "     RELEASEDIR: $RELEASEDIR"
 echo "       DESTDIR: $DESTDIR"  echo "        DESTDIR: $DESTDIR"
 echo "INSTALLED_SETS: $INSTALLED_SETS"  echo "    BOOT_KERNEL: $BOOT_KERNEL"
   echo "INSTALL_KERNELS: $INSTALL_KERNELS"
   echo " INSTALLED_SETS: $INSTALLED_SETS"
 echo  echo
 echo "       CUR_VER: $CUR_VER"  echo "        CUR_VER: $CUR_VER"
 echo "       NEW_VER: $NEW_VER"  echo "        NEW_VER: $NEW_VER"
 #echo "      FILE_VER: $FILE_VER"  #echo "       FILE_VER: $FILE_VER"
 echo  echo
   
 if [ ${_error} -ne 0 ]; then  if [ ${_error} -ne 0 ]; then
Line 519 
Line 527 
   
 check_sets || exit  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.
Line 540 
Line 562 
   
 else  else
     echo Instructions for updating to the new version available from      echo Instructions for updating to the new version available from
     if [ X"snapshots" != X"$FORCE_DIR" ]; then      if [ X"snapshots" == X"$FORCE_DIR" ]; then
         echo "  http://www.openbsd.org/faq/current.html"          echo "  http://www.openbsd.org/faq/current.html"
     else      else
         echo "  http://www.openbsd.org/faq/upgrade${FILE_VER}.html"          echo "  http://www.openbsd.org/faq/upgrade${FILE_VER}.html"

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

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