]> git.donarmstrong.com Git - wannabuild.git/blob - trigger.security
catch-up commit
[wannabuild.git] / trigger.security
1 #!/bin/bash -e
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     exit 1
31 fi
32
33 if lockfile -! -l 3600 "$LOCKFILE"; then
34         echo "Cannot lock $LOCKFILE"
35         exit 1
36 fi
37
38 cleanup() {
39         rm -f "$LOCKFILE"
40 }
41 trap cleanup 0
42
43 umask 027
44
45 exec 3<&1 >> "$MERGELOG" 2>&1
46
47 echo "security merge triggered for ${BASE_DIST}: `date`"
48
49 cd "$TMPDIR"
50
51 d="${BASE_DIST}-security"
52
53 archs=ARCHS_${BASE_DIST}
54 ARCHS=${!archs}
55
56 echo "fetching $SECMASTERBUILDD/${BASE_DIST}/Sources.gz..."
57 curl_index "$SECMASTERBUILDD/${BASE_DIST}/Sources.gz" "Sources-$d.accepted.gz" "Sources.$d.accepted"
58
59 # NB: There is only one Packages file in the directory, with all
60 # already built packages of all architectures in it.  It could thus
61 # be reused for every one of them afterwards and quinn-diff will
62 # pick the right information.
63 echo "fetching $SECMASTERBUILDD/${BASE_DIST}/Packages.gz..."
64 curl_index "$SECMASTERBUILDD/${BASE_DIST}/Packages.gz" "Packages-$d.accepted.gz" "Packages.$d.accepted"
65
66 for a in $ARCHS; do
67     echo "processing $d/$a..."
68     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
69     wanna-build -d $d -b $a/build-db --merge-partial-quinn < "quinn-$d.$a.accepted"
70     wanna-build -d $d -b $a/build-db -A $a --merge-packages < "Packages.$d.accepted"
71     mv "quinn-$d.$a.accepted" "quinn-$d.$a.accepted-old"
72 done
73
74 mv "Sources.$d.accepted" "Sources.$d.accepted-old"
75 mv "Packages.$d.accepted" "Packages.$d.accepted-old"
76
77 echo "security merge for ${BASE_DIST} ended: `date`"
78 exit 0
79