-#!/bin/sh
+#!/bin/bash
#
# Updates wanna-build databases after the archive maintenance
# finishes
#
+# Files:
+# Sources-* == upstream fetched file
+# Sources.* == uncompressed, concat'd version
PATH="/bin:/usr/bin"
#testing must be before unstable so late upld don't build for testing needlessly
-DISTS="oldstable-security stable stable-security testing testing-security unstable"
+DISTS="oldstable-security stable-security testing-security stable testing unstable"
+STATS_DISTS="unstable testing stable"
SECTIONS="main contrib non-free"
-ARCHS_oldstable="m68k arm sparc alpha powerpc i386"
-ARCHS_stable="mips mipsel ia64 hppa s390 $ARCHS_oldstable"
+ARCHS_oldstable="m68k arm sparc alpha powerpc i386 mips mipsel ia64 hppa s390"
+ARCHS_stable="$ARCHS_oldstable"
ARCHS_testing="$ARCHS_stable"
-ARCHS_unstable="$ARCHS_testing hurd-i386 sh"
+ARCHS_unstable="$ARCHS_testing hurd-i386"
TMPDIR="/org/wanna-build/tmp"
-WGETOPT="-q -t2 -w0 -T60"
-CURLOPT="-q -s -S -f -K /org/wanna-build/trigger.curlrc"
+WGETOPT="-q -t2 -w0 -T10"
+CURLOPT="-q -s -S -f -y 5 -K /org/wanna-build/trigger.curlrc"
LOCKFILE="/org/wanna-build/tmp/DB_Maintenance_In_Progress"
DAY=`date +%w`
ARCHS="$ARCHS_unstable"
;;
esac
- NON_US="false" # this is changed below if sources can be found
rm -f Sources.$d
if [ "$d" = "unstable" ]; then
gzip -dc /org/incoming.debian.org/buildd/Sources.gz >> Sources.$d
for s in $SECTIONS ; do
if echo $d | grep -qv -- -security; then
rm -f Sources.gz
- if wget $WGETOPT http://non-us.debian.org/debian-non-US/dists/$d/non-US/$s/source/Sources.gz; then
- mv Sources.gz Sources-non-us.$d.$s.gz
- NON_US="true"
- fi
- gzip -dc Sources-non-us.$d.$s.gz >> Sources.$d
gzip -dc /org/ftp.debian.org/ftp/dists/$d/$s/source/Sources.gz >> Sources.$d
if [ "$d" = "testing" -o "$d" = "stable" ]; then
- if wget $WGETOPT http://non-us.debian.org/debian-non-US/dists/$d-proposed-updates/non-US/$s/source/Sources.gz; then
- mv Sources.gz Sources-non-us.$d-p-u.$s.gz
- fi
- gzip -dc Sources-non-us.$d-p-u.$s.gz >> Sources.$d
gzip -dc /org/ftp.debian.org/ftp/dists/$d-proposed-updates/$s/source/Sources.gz >> Sources.$d
fi
rm -f Packages.gz
for a in $ARCHS ; do
- if [ "$NON_US" = "true" ]; then
- if wget $WGETOPT http://non-us.debian.org/debian-non-US/dists/$d/non-US/$s/binary-$a/Packages.gz; then
- mv Packages.gz Packages-non-us.$d.$s.$a.gz
- fi
- fi
- gzip -dc Packages-non-us.$d.$s.$a.gz >> Packages.$d.$a
-
gzip -dc /org/ftp.debian.org/ftp/dists/$d/$s/binary-$a/Packages.gz >> Packages.$d.$a
if [ "$d" = "testing" -o "$d" = "stable" ]; then
- if [ "$NON_US" = "true" ]; then
- if wget $WGETOPT http://non-us.debian.org/debian-non-US/dists/$d-proposed-updates/non-US/$s/binary-$a/Packages.gz; then
- mv Packages.gz Packages-non-us.$d-p-u.$s.$a.gz
- fi
- fi
- gzip -dc Packages-non-us.$d-p-u.$s.$a.gz >> Packages.$d.$a
gzip -dc /org/ftp.debian.org/ftp/dists/$d-proposed-updates/$s/binary-$a/Packages.gz >> Packages.$d.$a
fi
if [ "$d" = "unstable" -a "$s" = "main" ]; then
fi
done
- if [ "$d" = "oldstable" ]; then
- gzip -dc /org/ftp.debian.org/ftp/dists/old-proposed-updates/Sources.gz >> Sources.$d
- if "$NON_US" = "true" ]; then
- rm -f Sources.gz
- if wget $WGETOPT http://non-us.debian.org/debian-non-US/dists/old-proposed-updates/Sources.gz; then
- mv Sources.gz Sources-non-us.p-u.gz
- fi
- gzip -dc Sources-non-us.p-u.gz >> Sources.$d
- rm -f Packages.gz
- if wget $WGETOPT http://non-us.debian.org/debian-non-US/dists/old-proposed-updates/Packages.gz; then
- mv Packages.gz Packages-non-us.p-u.gz
- fi
- fi
-
- for a in $ARCHS ; do
- gzip -dc /org/ftp.debian.org/ftp/dists/old-proposed-updates/Packages.gz >> Packages.$d.$a
- gzip -dc Packages-non-us.p-u.gz >> Packages.$d.$a
- done
- fi
for a in $ARCHS ; do
- if [ "$d" = "unstable" ]; then
+ if [ "$d" = "unstable" -o ! -e "quinn-unstable.$a-old" ]; then
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
else
- 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
+ if echo $d | grep -qv -- -security; then
+ 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-old | grep ":out-of-date\]$" >> quinn-$d.$a
+ sed -e 's/\[\w*:\w*]$//' quinn-$d-security.$a > quinn-$d-security.$a.grep
+ grep -vf quinn-$d-security.$a quinn-$d.$a > quinn-$d.$a.grep
+ mv quinn-$d.$a.grep quinn-$d.$a
+ rm quinn-$d-security.$a.grep
+ else
+ 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
+ fi
fi
done
done
fi
;;
esac
- wanna-build --merge-packages --arch=$a --dist=$d --database=$a/build-db Packages.$d.$a
- perl -pi -e 's#^(non-US/)?(non-free)/.*$##msg' quinn-$d.$a
- wanna-build --merge-quinn --dist=$d --database=$a/build-db quinn-$d.$a
- wanna-build --merge-sources --dist=$d --database=$a/build-db Sources.$d
+ perl -pi -e 's#^(non-free)/.*$##msg' quinn-$d.$a
+ wanna-build --merge-all --arch=$a --dist=$d --database=$a/build-db Packages.$d.$a quinn-$d.$a Sources.$d
mv Packages.$d.$a Packages.$d.$a-old
mv quinn-$d.$a quinn-$d.$a-old
- if [ "$DAY" = "0" -a "$d" = "unstable" ]; then
- savelog -p -c 26 /org/wanna-build/db/$a/transactions.log
- fi
done
+ if [ "$DAY" = "0" ]; then
+ savelog -p -c 26 /org/wanna-build/db/$a/transactions.log
+ fi
wanna-build --remove-maintenance-lock --database=$a/build-db
done
umask 022
rm -f "$LOCKFILE"
trap -
/org/buildd.debian.org/bin/makegraph
+for a in $ARCHS_stable; do
+ echo Last Updated: `date -u` > /org/buildd.debian.org/web/stats/$a.txt
+ for d in $STATS_DISTS; do
+ /org/wanna-build/bin/wanna-build-statistics --database=$a/build-db --dist=$d >> /org/buildd.debian.org/web/stats/$a.txt
+ done
+done