=================================================================== RCS file: /cvs/openbsd/update_openbsd/update_openbsd,v retrieving revision 1.16 retrieving revision 1.19 diff -u -r1.16 -r1.19 --- openbsd/update_openbsd/update_openbsd 2009/01/13 21:47:49 1.16 +++ openbsd/update_openbsd/update_openbsd 2009/03/14 02:09:23 1.19 @@ -1,5 +1,5 @@ #!/bin/sh -# $RedRiver: update_openbsd,v 1.15 2008/11/19 23:02:38 andrew Exp $ +# $RedRiver: update_openbsd,v 1.18 2009/01/14 18:13:23 andrew Exp $ installed_sets() { local misc=/usr/share/doc/README @@ -23,6 +23,11 @@ echo -n " $_d" fi done + + sendmail -d0.1 root < /dev/null | grep -q SASL + if [ $? == 0 ]; then + echo -n ' sendmail-smtp_auth' + fi } version_in() { @@ -90,7 +95,7 @@ fi - if [ X"" == X"${_v}" ]; then + if [ X"" != X"${MIRROR}" -a X"" == X"${_v}" ]; then if [ X"No" == X"${FORCE_DIR}" ]; then _dir=${NEW_VER} else @@ -141,7 +146,9 @@ fi FILE_VER=$_v - FTP=${MIRROR}/${_dir}/`machine` + if [ X"" != X"${MIRROR}" ]; then + FTP=${MIRROR}/${_dir}/`machine` + fi } get_sets() { @@ -164,18 +171,33 @@ done for _s in $INSTALLED_SETS; do - if [ ! -e ./${_s}${_v}.tgz ]; then - echo $FTP_CMD ${FTP}/${_s}${_v}.tgz - $FTP_CMD ${FTP}/${_s}${_v}.tgz + local _file=${_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 if [ ! -e MD5 ]; then echo $FTP_CMD ${FTP}/MD5 $FTP_CMD ${FTP}/MD5 fi +} - ls bsd* *.tgz | sed -e 's/\(.*\)/(\1)/' > index +check_md5() { + echo '### CHECKING MD5 ###' + cd $RELEASEDIR + + if [ ! -e MD5 ]; then + echo MD5 File does not exist! + return 1 + fi + + ls bsd* *gz | sed -e 's/\(.*\)/(\1)/' > index grep -f index MD5 | md5 -c if [ $? -ne 0 ]; then @@ -184,6 +206,44 @@ 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 + + check_md5 +} + + install_kernel() { echo '### INSTALLING KERNEL ###' if [ X"$USER" != X"root" -a X"$SUDO" == X"" ]; then @@ -300,6 +360,18 @@ done 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() { @@ -361,7 +433,7 @@ . ${HOME}/.update_openbsdrc fi -MIRROR=${MIRROR:=ftp://ftp.openbsd.org/pub/OpenBSD} +#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`/} @@ -394,7 +466,11 @@ exit ${_error} fi -get_sets +if [ X"" != X"${FTP}" ]; then + get_sets || exit +fi + +check_sets || exit if [ X"" != X"$SUDO" ]; then echo Please enter your sudo password if prompted.