X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=config%2Fdebian-security%2Fcron.buildd;h=cd8a6851d47000fdc3bb42c8f7d3ea9c9f0659dd;hb=ddeee80a2f3389f89fb5ee1d7ecc5e36a68279d7;hp=368cd988b382eda440fabdae56ee58f32802cf09;hpb=205d7ee9627d28d924fb6b8765de950f46acdb2e;p=dak.git diff --git a/config/debian-security/cron.buildd b/config/debian-security/cron.buildd index 368cd988..cd8a6851 100755 --- a/config/debian-security/cron.buildd +++ b/config/debian-security/cron.buildd @@ -3,62 +3,64 @@ # Executed after cron.unchecked set -e +set -o pipefail set -u export SCRIPTVARS=/srv/security-master.debian.org/dak/config/debian-security/vars . $SCRIPTVARS SSH_SOCKET=~/.ssh/buildd.debian.org.socket -DISTS=$(dak admin s list) +DISTS="oldstable stable stable-kfreebsd testing" if [ -e $ftpdir/Archive_Maintenance_In_Progress ]; then - exit 0 + exit 0 fi -for dist in $DISTS; do - eval SOURCES_$dist=`stat -c "%Y" $base/buildd/$dist/Sources.gz` - eval PACKAGES_$dist=`stat -c "%Y" $base/buildd/$dist/Packages.gz` -done - -cd $configdir -apt-ftparchive -qq -o APT::FTPArchive::Contents=off generate apt.conf.buildd - dists= - +now=$(date +%s) +check=$(( now - 3*60 )) for dist in $DISTS; do - eval NEW_SOURCES_$dist=`stat -c "%Y" $base/buildd/$dist/Sources.gz` - eval NEW_PACKAGES_$dist=`stat -c "%Y" $base/buildd/$dist/Packages.gz` - old=SOURCES_$dist - new=NEW_$old - if [ ${!new} -gt ${!old} ]; then - if [ -z "$dists" ]; then - dists="$dist" - else - dists="$dists $dist" - fi - continue - fi - old=PACKAGES_$dist - new=NEW_$old - if [ ${!new} -gt ${!old} ]; then - if [ -z "$dists" ]; then - dists="$dist" - else - dists="$dists $dist" - fi - continue - fi + smodtime=$(stat -c "%Y" $base/build-queues/dists/buildd-$dist/updates/*/source/Sources.gz | sort -n | tail -1) + pmodtime=$(stat -c "%Y" $base/build-queues/dists/buildd-$dist/updates/*/binary-*/Packages.gz | sort -n | tail -1) + + if [ ${smodtime} -gt ${check} ] || [ ${pmodtime} -gt ${check} ]; then + # Packages/Sources changed in the last minutes + dists="${dists} ${dist}" + else + continue + fi done -if [ ! -z "$dists" ]; then - # setup ssh master process - ssh wbadm@buildd -S $SSH_SOCKET -MN 2> /dev/null & - SSH_PID=$! - while [ ! -S $SSH_SOCKET ]; do - sleep 1 - done - trap 'kill -TERM $SSH_PID' 0 - for d in $dists; do - ssh wbadm@buildd -S $SSH_SOCKET trigger.security $d - done +if [ ! -z "${dists}" ]; then + # setup ssh master process + ssh wbadm@buildd -S $SSH_SOCKET -MN 2> /dev/null & + SSH_PID=$! + while [ ! -S $SSH_SOCKET ]; do + sleep 1 + done + trap 'kill -TERM $SSH_PID' 0 + for d in ${dists}; do + case ${d} in + oldoldstable) + send=squeeze + ;; + oldstable) + send=wheezy + ;; + stable) + send=jessie + ;; + stable-kfreebsd) + send=jessie-kfreebsd + ;; + testing) + send=stretch + ;; + *) + send=unknown + ;; + esac + + ssh wbadm@buildd -S $SSH_SOCKET trigger.security $send + done fi