3 # Updates wanna-build databases after the archive maintenance
7 #testing must be before unstable so late upld don't build for testing needlessly
8 DISTS="oldstable-security stable stable-security testing testing-security unstable"
9 SECTIONS="main contrib non-free"
10 ARCHS_oldstable="m68k arm sparc alpha powerpc i386"
11 ARCHS_stable="mips mipsel ia64 hppa s390 $ARCHS_oldstable"
12 ARCHS_testing="$ARCHS_stable"
13 ARCHS_unstable="$ARCHS_testing hurd-i386 sh"
14 TMPDIR="/org/wanna-build/tmp"
15 WGETOPT="-q -t2 -w0 -T60"
16 CURLOPT="-q -s -S -f -K /org/wanna-build/trigger.curlrc"
17 LOCKFILE="/org/wanna-build/tmp/DB_Maintenance_In_Progress"
21 if lockfile -! -l 3600 $LOCKFILE; then
22 echo "Cannot lock $LOCKFILE"
31 echo Updating wanna-build databases...
34 if [ "$DAY" = "0" ]; then
35 savelog -c 26 -p /org/wanna-build/db/merge.log
38 exec >> /org/wanna-build/db/merge.log 2>&1
40 echo -------------------------------------------------------------------------
41 echo "merge triggered `date`"
46 # Make one big Packages and Sources file.
49 dist=`echo $d | sed s/-.*$//`
52 ARCHS="$ARCHS_oldstable"
58 ARCHS="$ARCHS_testing"
61 ARCHS="$ARCHS_unstable"
64 NON_US="false" # this is changed below if sources can be found
66 if [ "$d" = "unstable" ]; then
67 gzip -dc /org/incoming.debian.org/buildd/Sources.gz >> Sources.$d
70 rm -f Packages.$d.$a quinn-$d.$a
71 if [ "$d" = "unstable" ]; then
72 gzip -dc /org/incoming.debian.org/buildd/Packages.gz >> Packages.$d.$a
76 for s in $SECTIONS ; do
77 if echo $d | grep -qv -- -security; then
79 if wget $WGETOPT http://non-us.debian.org/debian-non-US/dists/$d/non-US/$s/source/Sources.gz; then
80 mv Sources.gz Sources-non-us.$d.$s.gz
83 gzip -dc Sources-non-us.$d.$s.gz >> Sources.$d
84 gzip -dc /org/ftp.debian.org/ftp/dists/$d/$s/source/Sources.gz >> Sources.$d
85 if [ "$d" = "testing" -o "$d" = "stable" ]; then
86 if wget $WGETOPT http://non-us.debian.org/debian-non-US/dists/$d-proposed-updates/non-US/$s/source/Sources.gz; then
87 mv Sources.gz Sources-non-us.$d-p-u.$s.gz
89 gzip -dc Sources-non-us.$d-p-u.$s.gz >> Sources.$d
90 gzip -dc /org/ftp.debian.org/ftp/dists/$d-proposed-updates/$s/source/Sources.gz >> Sources.$d
95 if [ "$NON_US" = "true" ]; then
96 if wget $WGETOPT http://non-us.debian.org/debian-non-US/dists/$d/non-US/$s/binary-$a/Packages.gz; then
97 mv Packages.gz Packages-non-us.$d.$s.$a.gz
100 gzip -dc Packages-non-us.$d.$s.$a.gz >> Packages.$d.$a
102 gzip -dc /org/ftp.debian.org/ftp/dists/$d/$s/binary-$a/Packages.gz >> Packages.$d.$a
103 if [ "$d" = "testing" -o "$d" = "stable" ]; then
104 if [ "$NON_US" = "true" ]; then
105 if wget $WGETOPT http://non-us.debian.org/debian-non-US/dists/$d-proposed-updates/non-US/$s/binary-$a/Packages.gz; then
106 mv Packages.gz Packages-non-us.$d-p-u.$s.$a.gz
109 gzip -dc Packages-non-us.$d-p-u.$s.$a.gz >> Packages.$d.$a
110 gzip -dc /org/ftp.debian.org/ftp/dists/$d-proposed-updates/$s/binary-$a/Packages.gz >> Packages.$d.$a
112 if [ "$d" = "unstable" -a "$s" = "main" ]; then
113 gzip -dc /org/ftp.debian.org/ftp/dists/$d/$s/debian-installer/binary-$a/Packages.gz >> Packages.$d.$a
118 if wget $WGETOPT http://security.debian.org/debian-security/dists/$dist/updates/$s/source/Sources.gz; then
119 mv Sources.gz Sources-$d.$s.gz
121 gzip -dc Sources-$d.$s.gz >> Sources.$d
122 if [ "$s" = "main" ]; then
123 if curl $CURLOPT http://security.debian.org/buildd/$dist/Sources.gz -o Sources.gz; then
124 mv Sources.gz Sources-$d.accepted.gz
126 gzip -dc Sources-$d.accepted.gz >> Sources.$d
127 if curl $CURLOPT http://security.debian.org/buildd/$dist/Packages.gz -o Packages.gz; then
128 mv Packages.gz Packages.$d.accepted.gz
133 if wget $WGETOPT http://security.debian.org/debian-security/dists/$dist/updates/$s/binary-$a/Packages.gz; then
134 mv Packages.gz Packages.$d.$s.$a.gz
136 gzip -dc Packages.$d.$s.$a.gz >> Packages.$d.$a
137 if [ "$s" = "main" ]; then
138 gzip -dc Packages.$d.accepted.gz >> Packages.$d.$a
144 if [ "$d" = "oldstable" ]; then
145 gzip -dc /org/ftp.debian.org/ftp/dists/old-proposed-updates/Sources.gz >> Sources.$d
146 if "$NON_US" = "true" ]; then
148 if wget $WGETOPT http://non-us.debian.org/debian-non-US/dists/old-proposed-updates/Sources.gz; then
149 mv Sources.gz Sources-non-us.p-u.gz
151 gzip -dc Sources-non-us.p-u.gz >> Sources.$d
153 if wget $WGETOPT http://non-us.debian.org/debian-non-US/dists/old-proposed-updates/Packages.gz; then
154 mv Packages.gz Packages-non-us.p-u.gz
159 gzip -dc /org/ftp.debian.org/ftp/dists/old-proposed-updates/Packages.gz >> Packages.$d.$a
160 gzip -dc Packages-non-us.p-u.gz >> Packages.$d.$a
164 if [ "$d" = "unstable" ]; then
165 quinn-diff -A $a -a /org/buildd.debian.org/web/quinn-diff/Packages-arch-specific -s Sources.$d -p Packages.$d.$a >> quinn-$d.$a
167 quinn-diff -A $a -a /org/buildd.debian.org/web/quinn-diff/Packages-arch-specific -s Sources.$d -p Packages.$d.$a | fgrep -v -f quinn-unstable.$a >> quinn-$d.$a
173 for a in $ARCHS_unstable ; do
174 wanna-build --create-maintenance-lock --database=$a/build-db
177 dist=`echo $d | sed s/-.*$//`
180 if echo $ARCHS_oldstable | grep -q -v "\b$a\b"; then
185 if echo $ARCHS_stable | grep -q -v "\b$a\b"; then
190 if echo $ARCHS_testing | grep -q -v "\b$a\b"; then
195 if echo $ARCHS_unstable | grep -q -v "\b$a\b"; then
200 wanna-build --merge-packages --arch=$a --dist=$d --database=$a/build-db Packages.$d.$a
201 perl -pi -e 's#^(non-US/)?(non-free)/.*$##msg' quinn-$d.$a
202 wanna-build --merge-quinn --dist=$d --database=$a/build-db quinn-$d.$a
203 wanna-build --merge-sources --dist=$d --database=$a/build-db Sources.$d
204 mv Packages.$d.$a Packages.$d.$a-old
205 mv quinn-$d.$a quinn-$d.$a-old
206 if [ "$DAY" = "0" -a "$d" = "unstable" ]; then
207 savelog -p -c 26 /org/wanna-build/db/$a/transactions.log
210 wanna-build --remove-maintenance-lock --database=$a/build-db
214 mv Sources.$d Sources.$d-old
217 echo "merge ended `date`"
218 /org/wanna-build/bin/wb-graph >> /org/wanna-build/etc/graph-data
219 /org/wanna-build/bin/wb-graph -p >> /org/wanna-build/etc/graph2-data
222 /org/buildd.debian.org/bin/makegraph