]> git.decadent.org.uk Git - dak.git/blob - config/debian-security/cron.buildd
cron.buildd
[dak.git] / config / debian-security / cron.buildd
1 #! /bin/bash
2 #
3 # Executed after cron.unchecked
4
5 set -e
6 set -u
7
8 export SCRIPTVARS=/srv/security-master.debian.org/dak/config/debian-security/vars
9 . $SCRIPTVARS
10 SSH_SOCKET=~/.ssh/buildd.debian.org.socket
11 DISTS=$(dak admin s list)
12
13 if [ -e $ftpdir/Archive_Maintenance_In_Progress ]; then
14     exit 0
15 fi
16
17 for dist in $DISTS; do
18     eval SOURCES_$dist=`stat -c "%Y" $base/buildd/$dist/Sources.gz`
19     eval PACKAGES_$dist=`stat -c "%Y" $base/buildd/$dist/Packages.gz`
20 done
21
22 cd $configdir
23 apt-ftparchive -qq -o APT::FTPArchive::Contents=off generate apt.conf.buildd
24
25 cd  ${base}/buildd
26 for dist in $DISTS; do
27     rm -f $dist/Release*
28     archs=$(dak admin s-a list-arch $dist | tr '\n' ' ')
29     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="${archs}" release $dist > Release
30     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
31     mv Release* $dist/.
32 done
33
34 dists=
35
36
37 for dist in $DISTS; do
38     eval NEW_SOURCES_$dist=`stat -c "%Y" $base/buildd/$dist/Sources.gz`
39     eval NEW_PACKAGES_$dist=`stat -c "%Y" $base/buildd/$dist/Packages.gz`
40     old=SOURCES_$dist
41     new=NEW_$old
42     if [ ${!new} -gt ${!old} ]; then
43         if [ -z "$dists" ]; then
44             dists="$dist"
45         else
46             dists="$dists $dist"
47         fi
48         continue
49     fi
50     old=PACKAGES_$dist
51     new=NEW_$old
52     if [ ${!new} -gt ${!old} ]; then
53         if [ -z "$dists" ]; then
54             dists="$dist"
55         else
56             dists="$dists $dist"
57         fi
58         continue
59     fi
60 done
61
62 if [ ! -z "$dists" ]; then
63     # setup ssh master process
64     ssh wbadm@buildd -S $SSH_SOCKET -MN 2> /dev/null &
65     SSH_PID=$!
66     while [ ! -S $SSH_SOCKET ]; do
67         sleep 1
68     done
69     trap 'kill -TERM $SSH_PID' 0
70     for d in $dists; do
71         ssh wbadm@buildd -S $SSH_SOCKET trigger.security $d
72     done
73 fi