[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.15 and 1.20

version 1.15, 2008/11/19 23:02:38 version 1.20, 2009/04/25 01:14:12
Line 1 
Line 1 
 #!/bin/sh  #!/bin/sh
 # $RedRiver: update_openbsd,v 1.14 2008/11/19 22:38:00 andrew Exp $  # $RedRiver: update_openbsd,v 1.19 2009/03/14 01:09:23 andrew Exp $
   
 installed_sets() {  installed_sets() {
     local misc=/usr/share/doc/README      local misc=/usr/share/doc/README
Line 23 
Line 23 
             echo -n " $_d"              echo -n " $_d"
         fi          fi
     done      done
   
       sendmail -d0.1 root < /dev/null | grep -q SASL
       if [ $? == 0 ]; then
           echo -n ' sendmail-smtp_auth'
       fi
 }  }
   
 sets_exist () {  version_in() {
         local _proto=${FTP%%://*}          local _proto=${FTP%%://*}
           local _file
   
         if [ X"ftp" == X"${_proto}" ]; then          if [ X"ftp" == X"${_proto}" ]; then
             echo "ls base*.tgz" | ${FTP_CMD} ${FTP}/ | awk '{ print $9 }'              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          elif [ X"http" == X"${_proto}" ]; then
             ${FTP_CMD} -V -o - ${FTP}/ |              local _list=`${FTP_CMD} -V -o - ${FTP}/`
                 awk '/[^x]base[0-9][0-9]*\.tgz/ {              _file=`echo ${_list} | awk '/[^x]base[0-9][0-9]*\.tgz/ {
                     sub("^.*base","base");                      sub("^.*base","base");
                     sub("\.tgz.*",".tgz");                      sub("\.tgz.*",".tgz");
                     print $0;                      print $0;
                 }'                  }'`
   
         elif [ X"scp" == X"${_proto}" ]; then          elif [ X"scp" == X"${_proto}" ]; then
             echo SCP is not yet supported >&2              echo SCP is not yet supported >&2
Line 48 
Line 55 
             return 2              return 2
   
         fi          fi
   
           local _v=${_file##*base}
           _v=${_v%.tgz*}
           echo $_v
 }  }
   
 set_version() {  set_version() {
Line 84 
Line 95 
   
     fi      fi
   
     if [ X"" == X"${_v}" ]; then      if [ X"" != X"${MIRROR}" -a X"" == X"${_v}" ]; then
         if [ X"No" == X"${FORCE_DIR}" ]; then          if [ X"No" == X"${FORCE_DIR}" ]; then
             _dir=${NEW_VER}              _dir=${NEW_VER}
         else          else
Line 92 
Line 103 
         fi          fi
         FTP=${MIRROR}/${_dir}/`machine`          FTP=${MIRROR}/${_dir}/`machine`
   
         _file=`sets_exist`          _v=`version_in`
   
         if [ X"" == X"${_file}" ]; then          if [ X"" == X"${_v}" ]; then
             if [ X"No" != X"$FORCE_DIR" ]; then              if [ X"No" != X"$FORCE_DIR" ]; then
                 echo No sets in forced [${FTP}] >&2                  echo No sets in forced [${FTP}] >&2
                 return 2                  return 2
Line 104 
Line 115 
             _dir=${NEW_VER}              _dir=${NEW_VER}
             FTP=${MIRROR}/${_dir}/`machine`              FTP=${MIRROR}/${_dir}/`machine`
   
             _file=`sets_exist`              _v=`version_in`
             if [ X"" == X"${_file}" ]; then  
                 echo No sets in [${FTP}] >&2  
                 return 2  
             fi  
         fi          fi
   
         _v=${_file##*base}  
         _v=${_v%.tgz*}  
   
         if [ X"" == X"${_v}" ]; then          if [ X"" == X"${_v}" ]; then
             echo No version in file [$_file] >&2              echo No sets in [${FTP}] >&2
             return 2              return 2
         elif [ X"${_cv}" == X"${_v}" ]; then          elif [ X"${_cv}" == X"${_v}" ]; then
             NEW_VER=$CUR_VER              NEW_VER=$CUR_VER
Line 142 
Line 146 
     fi      fi
   
     FILE_VER=$_v      FILE_VER=$_v
     FTP=${MIRROR}/${_dir}/`machine`      if [ X"" != X"${MIRROR}" ]; then
           FTP=${MIRROR}/${_dir}/`machine`
       fi
 }  }
   
 get_sets() {  get_sets() {
Line 165 
Line 171 
     done      done
   
     for _s in $INSTALLED_SETS; do      for _s in $INSTALLED_SETS; do
         if [ ! -e ./${_s}${_v}.tgz ]; then          local _file=${_s}${_v}.tgz
             echo $FTP_CMD ${FTP}/${_s}${_v}.tgz          if [ ${_s} == sendmail-smtp_auth ]; then
             $FTP_CMD ${FTP}/${_s}${_v}.tgz              _file=${_s}.gz
         fi          fi
   
           if [ ! -e ./${_file} ]; then
               echo $FTP_CMD ${FTP}/${_file}
               $FTP_CMD ${FTP}/${_file}
           fi
     done      done
   
     if [ ! -e MD5 ]; then      local _type
         echo $FTP_CMD ${FTP}/MD5      for _type in $CHECKSUM_TYPES; do
         $FTP_CMD ${FTP}/MD5          if [ ! -e $_type ]; then
               echo $FTP_CMD ${FTP}/$_type
               $FTP_CMD ${FTP}/$_type
           fi
       done
   }
   
   check_sum () {
       local _type=$1
       echo "### CHECKING $_type SUMS ###"
       cd $RELEASEDIR
   
       if [ ! -e $_type ]; then
           echo $_type File does not exist!
           return 1
     fi      fi
   
     ls bsd* *.tgz | sed -e 's/\(.*\)/(\1)/' > index      ls bsd* *gz | sed -e 's/\(.*\)/(\1)/' > index
     grep -f index MD5 | md5 -c      grep -f index $_type | sum -c
   
     if [ $? -ne 0 ]; then      if [ $? -ne 0 ]; then
         echo ERROR: MD5 does not match! >&2          echo ERROR: $_type does not match! >&2
         return 1          return 1
     fi      fi
 }  }
   
   check_sets() {
       echo '### CHECKING SETS ###'
       cd $RELEASEDIR
   
       local _missing_sets
       local _v=$FILE_VER
   
       for _b in `echo /bsd* bsd bsd.mp bsd.rd | sort -u`; do
           _b=${_b#/}
           local _n=$_b
           if [ X"bsd.sp" == X"${_n}" ]; then
               _n=bsd
           fi
           if [ -e /${_b} -a ! -e ./${_n} ]; then
               echo ${_n} does not exist
               _missing_sets=1
           fi
       done
   
       for _s in $INSTALLED_SETS; do
           local _file=${_s}${_v}.tgz
           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
   
       local _type
       for _type in $CHECKSUM_TYPES; do
           if [ -e $_type ]; then
               check_sum $_type
           fi
       done
   }
   
   
 install_kernel() {  install_kernel() {
     echo '### INSTALLING KERNEL ###'      echo '### INSTALLING KERNEL ###'
     if [ X"$USER" != X"root" -a X"$SUDO" == X"" ]; then      if [ X"$USER" != X"root" -a X"$SUDO" == X"" ]; then
Line 301 
Line 369 
     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
           install -o root -g smmsp -m 2555 \
               ${RELEASEDIR}/sendmail-smtp_auth \
               /usr/local/libexec/sendmail/sendmail
   
           echo Installed sendmail with smtp_auth
       fi
 }  }
   
 update_etc() {  update_etc() {
Line 354 
Line 434 
     fi      fi
 }  }
   
   
 if [ -e /etc/update_openbsd.conf ]; then  if [ -e /etc/update_openbsd.conf ]; then
     . /etc/update_openbsd.conf      . /etc/update_openbsd.conf
 fi  fi
Line 362 
Line 443 
     . ${HOME}/.update_openbsdrc      . ${HOME}/.update_openbsdrc
 fi  fi
   
 MIRROR=${MIRROR:=ftp://ftp.openbsd.org/pub/OpenBSD}  #MIRROR=${MIRROR:=ftp://ftp.openbsd.org/pub/OpenBSD}
 FTP_CMD=${FTP_CMD:=ftp -V}  FTP_CMD=${FTP_CMD:=ftp -V}
 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`/}
   
Line 372 
Line 453 
   
 INSTALLED_SETS=${INSTALLED_SETS:=`installed_sets`}  INSTALLED_SETS=${INSTALLED_SETS:=`installed_sets`}
   
   CHECKSUM_TYPES=${CHECKSUM_TYPE:=SHA256 MD5}
   
 set_version  set_version
 local _error=$?  local _error=$?
   
Line 395 
Line 478 
         exit ${_error}          exit ${_error}
 fi  fi
   
 get_sets  if [ X"" != X"${FTP}" ]; then
       get_sets
   fi
   
   check_sets || exit
   
 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.

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.20

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