]> git.donarmstrong.com Git - wannabuild.git/blob - trigger.security
some fixes accumulated over time
[wannabuild.git] / trigger.security
1 #!/bin/bash
2 #
3 # This is the equivalent of trigger.often for security.
4 #
5 # Calling convention: trigger.security $basedist
6 #  (i.e. the dist should not have a -security suffix)
7 #
8
9 if [ -n "$SSH_ORIGINAL_COMMAND" ]
10 then
11     set -- $SSH_ORIGINAL_COMMAND
12     # The name of the script will be put into $1 instead of $0,
13     # so shift the arguments to discard our name.
14     shift
15 fi
16
17 LANG=C
18 BASE_DIST="$1"
19 SECMASTERBUILDD=http://security-master.debian.org/buildd
20 BASEDIR="/org/wanna-build"
21 TMPDIR="$BASEDIR/tmp"
22 LIBTRIGGER="$BASEDIR/libtrigger.sh"
23 LOCKFILE="$TMPDIR/DB_Maintenance_In_Progress"
24 MERGELOG="$BASEDIR/db/merge.log"
25
26 . "$LIBTRIGGER"
27
28 if [ -z "$BASE_DIST" ]; then
29     echo "E: no base suite specified."
30 fi
31
32 if lockfile -! -l 3600 "$LOCKFILE"; then
33         echo "Cannot lock $LOCKFILE"
34         exit 1
35 fi
36
37 cleanup() {
38         rm -f "$LOCKFILE"
39 }
40 trap cleanup 0
41
42 umask 027
43
44 exec 3<&1 >> "$MERGELOG" 2>&1
45
46 echo "security merge triggered for ${BASE_DIST}: `date`"
47
48 cd "$TMPDIR"
49
50 d="${BASE_DIST}-security"
51
52 archs=ARCHS_${BASE_DIST}
53 ARCHS=${!archs}
54
55 echo "fetching $SECMASTERBUILDD/${BASE_DIST}/Sources.gz..."
56 curl_index "$SECMASTERBUILDD/${BASE_DIST}/Sources.gz" "Sources-$d.accepted.gz" "Sources.$d.accepted"
57
58 # NB: There is only one Packages file in the directory, with all
59 # already built packages of all architectures in it.  It could thus
60 # be reused for every one of them afterwards and quinn-diff will
61 # pick the right information.
62 echo "fetching $SECMASTERBUILDD/${BASE_DIST}/Packages.gz..."
63 curl_index "$SECMASTERBUILDD/${BASE_DIST}/Packages.gz" "Packages-$d.accepted.gz" "Packages.$d.accepted"
64
65 for a in $ARCHS; do
66     echo "processing $d/$a..."
67     quinn-diff -i -A $a -a "/srv/buildd.debian.org/web/quinn-diff/${BASE_DIST}/Packages-arch-specific" -s "Sources.$d.accepted" -p "Packages.$d.accepted" >> "quinn-$d.$a.accepted" 2>/dev/null
68     wanna-build -d $d -b $a/build-db --merge-partial-quinn < "quinn-$d.$a.accepted"
69     wanna-build -d $d -b $a/build-db -A $a --merge-packages < "Packages.$d.accepted"
70 done
71
72 echo "security merge for ${BASE_DIST} ended: `date`"
73 exit 0
74