[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.2 and 1.3

version 1.2, 2008/08/12 23:07:05 version 1.3, 2008/08/12 23:42:09
Line 1 
Line 1 
 #!/bin/sh  #!/bin/sh
 # $RedRiver: update_openbsd,v 1.1 2008/08/12 18:45:47 andrew Exp $  # $RedRiver: update_openbsd,v 1.2 2008/08/12 22:07:05 andrew Exp $
   
 SYSMERGE=/usr/sbin/sysmerge  SYSMERGE=/usr/sbin/sysmerge
 MIRROR=ftp://ftp.openbsd.org/pub/OpenBSD  MIRROR=ftp://ftp.openbsd.org/pub/OpenBSD
Line 27 
Line 27 
   
     echo base      echo base
     echo etc      echo 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 $_d
         fi          fi
     done      done
 }  }
   
 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"`
   
     if [ -d $NEW_VER ]; then      if [ -d $NEW_VER ]; then
         DIR=$NEW_VER          DIR=$NEW_VER
Line 52 
Line 52 
   
     if [ X"" != X"$FORCE_DIR" ]; then      if [ X"" != X"$FORCE_DIR" ]; then
         if [ -d $FORCE_DIR ]; then          if [ -d $FORCE_DIR ]; then
             DIR=${FORCE_DIR}              DIR=$FORCE_DIR
   
             _cv=`echo $CUR_VER | sed -e 's/\.//'`              _cv=`echo $CUR_VER | sed -e 's/\.//'`
             if [ -e $DIR/base${_cv}.tgz ]; then              if [ -e $DIR/base${_cv}.tgz ]; then
Line 64 
Line 64 
     if [ X"" == X"$DIR" ]; then      if [ X"" == X"$DIR" ]; then
         FTP=${MIRROR}/${NEW_VER}/`machine`          FTP=${MIRROR}/${NEW_VER}/`machine`
   
         #echo "ls\nquit\n" | ftp ${MIRROR} | grep "${NEW_VER}"          #echo "ls\nquit\n" | ftp $MIRROR | grep "$NEW_VER"
         ${FTP_CMD} ${FTP}/MD5 > /dev/null          $FTP_CMD ${FTP}/MD5 > /dev/null
   
         if [ -e MD5 ]; then          if [ -e MD5 ]; then
             rm -f MD5              rm -f MD5
Line 82 
Line 82 
         FTP=${MIRROR}/${DIR}/`machine`          FTP=${MIRROR}/${DIR}/`machine`
     fi      fi
   
     if [ X"" != X"${RELEASEDIR}" ]; then      if [ X"" != X"$RELEASEDIR" ]; then
         DIR=${RELEASEDIR}          DIR=$RELEASEDIR
     fi      fi
   
     if [ -d $DIR ]; then      if [ -d $DIR ]; then
Line 105 
Line 105 
     fi      fi
   
     mkdir -p $RELEASEDIR      mkdir -p $RELEASEDIR
     cd ${RELEASEDIR}      cd $RELEASEDIR
     RELEASEDIR=`pwd`      RELEASEDIR=`pwd`
   
     for _b in /bsd* bsd bsd.mp bsd.rd; do      for _b in /bsd* bsd bsd.mp bsd.rd; 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          echo $FTP_CMD ${FTP}/${_s}${_v}.tgz
         ${FTP_CMD} ${FTP}/${_s}${_v}.tgz          $FTP_CMD ${FTP}/${_s}${_v}.tgz
     done      done
   
     echo ${FTP_CMD} ${FTP}/MD5      echo $FTP_CMD ${FTP}/MD5
     ${FTP_CMD} ${FTP}/MD5      $FTP_CMD ${FTP}/MD5
     ls bsd* *.tgz > index      ls bsd* *.tgz > index
     grep -f index MD5 | md5 -c      grep -f index MD5 | md5 -c
   
Line 132 
Line 132 
 }  }
   
 install_kernel() {  install_kernel() {
     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
Line 162 
Line 162 
   
     if [ -e base${_v}.tgz ]; then      if [ -e base${_v}.tgz ]; then
         echo Extracting new firmware from base${_v}.tgz          echo Extracting new firmware from base${_v}.tgz
         ${SUDO} tar -C ${DESTDIR} -xzphf base${_v}.tgz "*etc/firmware/*"          $SUDO tar -C $DESTDIR -xzphf base${_v}.tgz "*etc/firmware/*"
     fi      fi
   
     ${SUDO} rm -f /obsd      $SUDO rm -f /obsd
     ${SUDO} ln /bsd /obsd      $SUDO ln /bsd /obsd
     if [ $? -ne 0 ]; then      if [ $? -ne 0 ]; then
         echo "Error copying old kernel!"          echo "Error copying old kernel!"
         exit 1          exit 1
     fi      fi
   
     for b in bsd*; do      for _b in bsd*; do
         ${SUDO} rm -f /nbsd          $SUDO rm -f /nbsd
   
         if [ X"$b" == X"bsd" ]; then          if [ X"$_b" == X"bsd" ]; then
             echo Copying bsd to /bsd.sp              echo Copying bsd to /bsd.sp
             ${SUDO} cp bsd /nbsd && ${SUDO} mv /nbsd /bsd.sp              $SUDO cp bsd /nbsd && $SUDO mv /nbsd /bsd.sp
             if [ $? -ne 0 ]; then              if [ $? -ne 0 ]; then
                 echo "ERROR: Couldn't copy new SP kernel!" >&2                  echo "ERROR: Couldn't copy new SP kernel!" >&2
                 exit 1                  exit 1
             fi              fi
         else          else
             if [ -e /${b} ]; then              if [ -e /$_b ]; then
                 echo Copying ${b} to /                  echo Copying $_b to /
                 ${SUDO} cp ${b} /nbsd && ${SUDO} mv /nbsd /${b}                  $SUDO cp ${_b} /nbsd && $SUDO mv /nbsd /${_b}
                 if [ $? -ne 0 ]; then                  if [ $? -ne 0 ]; then
                     echo "ERROR: Couldn't copy new ${b} kernel!" >&2                      echo "ERROR: Couldn't copy new $_b kernel!" >&2
                     exit 1                      exit 1
                 fi                  fi
             fi              fi
Line 197 
Line 197 
     if [ ! -h /bsd ]; then      if [ ! -h /bsd ]; then
         if [ -e /bsd.mp ]; then          if [ -e /bsd.mp ]; then
             echo linking /bsd.mp to /bsd              echo linking /bsd.mp to /bsd
             ${SUDO} ln -sf /bsd.mp /bsd              $SUDO ln -sf /bsd.mp /bsd
         else          else
             echo linking /bsd.sp to /bsd              echo linking /bsd.sp to /bsd
             ${SUDO} ln -sf /bsd.sp /bsd              $SUDO ln -sf /bsd.sp /bsd
         fi          fi
         if [ $? -ne 0 ]; then          if [ $? -ne 0 ]; then
             echo "ERROR: Couldn't symlink new kernel!" >&2              echo "ERROR: Couldn't symlink new kernel!" >&2
Line 210 
Line 210 
 }  }
   
 install_sets() {  install_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
Line 223 
Line 223 
     fi      fi
   
     for _f in *${_v}.tgz; do      for _f in *${_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              if [ X"" != X"$SYSMERGE" ]; then
                 continue                  continue
             fi              fi
             _path=/var/tmp/temproot              _path=/var/tmp/temproot
         fi          fi
   
         echo Extracting ${_f} to $_path          echo Extracting $_f to $_path
         ${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 extracting ${_f}!" >&2
             exit 1              exit 1
Line 245 
Line 245 
 }  }
   
 update_etc() {  update_etc() {
     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 259 
Line 259 
             fi              fi
   
             echo '### RUNNING MERGEMASTER ###'              echo '### RUNNING MERGEMASTER ###'
             ${SUDO} ${MERGEMASTER} -irv              $SUDO $MERGEMASTER -irv
         else          else
             echo "ERROR: no source for etc!" >&2              echo "ERROR: no source for etc!" >&2
             exit 1              exit 1
Line 274 
Line 274 
   
         _cv=`echo $CUR_VER | sed -e 's/\.//'`          _cv=`echo $CUR_VER | sed -e 's/\.//'`
         if [ -e etc${_cv}.tgz ]; then          if [ -e etc${_cv}.tgz ]; then
             _args="${_args} -s etc${_cv}.tgz"              _args="$_args -s etc${_cv}.tgz"
         fi          fi
         if [ -e xetc${_cv}.tgz ]; then          if [ -e xetc${_cv}.tgz ]; then
             _args="${_args} -x xetc${_cv}.tgz"              _args="$_args -x xetc${_cv}.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"              _args="-a $_args"
             ${SUDO} ${SYSMERGE} $_args              $SUDO $SYSMERGE $_args
         fi          fi
     fi      fi
 }  }
   
   
 PKG_PATH=${PKG_PATH:=/usr/ports/packages/`machine`/all/:${MIRROR}/`uname -r`/packages/`machine`/}  PKG_PATH=${PKG_PATH:=/usr/ports/packages/`machine`/all/:${MIRROR}/`uname -r`/packages/`machine`/}
   
 if [ ! -e ${SYSMERGE} ]; then  if [ X"" != X"$SYSMERGE" ]; then
     SYSMERGE=      if [ ! -e $SYSMERGE ]; then
           SYSMERGE=
       fi
 fi  fi
   
 set_version  set_version

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

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