]> git.decadent.org.uk Git - dak.git/blobdiff - config/debian-security/cron.buildd
Switch to "jessie" as stable.
[dak.git] / config / debian-security / cron.buildd
index 67b9094400847217ec98c65ff9e827870af738b2..33f847c35db0fbe4bff26c7c90e6d6fcbc1a6e8e 100755 (executable)
@@ -3,63 +3,35 @@
 # 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="stable testing"
 
 if [ -e $ftpdir/Archive_Maintenance_In_Progress ]; then
     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
-
-cd  ${base}/buildd
-for dist in $DISTS; do
-    rm -f $dist/Release*
-    darchs=$(dak admin s-a list-arch $dist | tr '\n' ' ')
-    apt-ftparchive -qq -o APT::FTPArchive::Release::Origin="Debian" -o APT::FTPArchive::Release::Label="Debian" -o APT::FTPArchive::Release::Description="buildd $dist security" -o APT::FTPArchive::Release::Architectures="${darchs}" release $dist > Release
-    gpg --secret-keyring ${base}/s3kr1t/dot-gnupg/secring.gpg --keyring ${base}/s3kr1t/dot-gnupg/pubring.gpg --no-options --batch --no-tty --armour --default-key 55BE302B --detach-sign -o Release.gpg Release
-    mv Release* $dist/.
-done
-
 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
+    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
+if [ ! -z "${dists}" ]; then
     # setup ssh master process
     ssh wbadm@buildd -S $SSH_SOCKET -MN 2> /dev/null &
     SSH_PID=$!
@@ -67,7 +39,25 @@ if [ ! -z "$dists" ]; then
         sleep 1
     done
     trap 'kill -TERM $SSH_PID' 0
-    for d in $dists; do
-        ssh wbadm@buildd -S $SSH_SOCKET trigger.security $d
+    for d in ${dists}; do
+        case ${d} in
+            oldoldstable)
+                send=squeeze
+                ;;
+            oldstable)
+                send=wheezy
+                ;;
+            stable)
+                send=jessie
+                ;;
+            testing)
+                send=stretch
+                ;;
+            *)
+                send=unknown
+                ;;
+        esac
+
+        ssh wbadm@buildd -S $SSH_SOCKET trigger.security $send
     done
 fi