X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=config%2Fdebian%2Fcron.dinstall;h=cb326fc6b79116e317de59cfb62973ac847c36f4;hb=735b888fcb8ffe59582529db099456a213429f30;hp=6256e651f4596a07c029b83b4c9d7733d38cfc9f;hpb=da2158236790739e5a39789cf5eb9360f599b302;p=dak.git diff --git a/config/debian/cron.dinstall b/config/debian/cron.dinstall index 6256e651..cb326fc6 100755 --- a/config/debian/cron.dinstall +++ b/config/debian/cron.dinstall @@ -24,6 +24,7 @@ TS=0 NOTICE="$ftpdir/Archive_Maintenance_In_Progress" LOCKCU="$lockdir/daily.lock" LOCKAC="$lockdir/unchecked.lock" +BRITNEYLOCK="$lockdir/britney.lock" lockac=0 cleanup() { @@ -37,6 +38,11 @@ cleanup() { lockfile -l 3600 $LOCKCU trap cleanup 0 +# This file is simply used to indicate to britney whether or not +# the Packages file updates completed sucessfully. It's not a lock +# from our point of view +touch ${BRITNEYLOCK} + rm -f "$NOTICE" cat > "$NOTICE" <> REPORT ################################################################################ +ts + +echo "Synchronizing i18n package descriptions" +# First sync their newest data +cd ${scriptdir}/i18nsync +rsync -aq --delete --delete-after ddtp-sync:/does/not/matter . || true + +# Now check if we still know about the packages for which they created the files +# is the timestamp signed by us? +if $(gpgv --keyring /srv/ftp.debian.org/s3kr1t/dot-gnupg/pubring.gpg timestamp.gpg timestamp); then + # now read it. As its signed by us we are sure the content is what we expect, no need + # to do more here. And we only test -d a directory on it anyway. + TSTAMP=$(cat timestamp) + # do we have the dir still? + if [ -d ${scriptdir}/i18n/${TSTAMP} ]; then + # Lets check! + if ${scriptsdir}/ddtp-i18n-check.sh . ${scriptdir}/i18n/${TSTAMP}; then + # Yay, worked, lets copy around + for dir in lenny sid; do + if [ -d dists/${dir}/ ]; then + cd dists/${dir}/main/i18n + rsync -aq --delete --delete-after . ${ftpdir}/dists/${dir}/main/i18n/. + fi + cd ${scriptdir}/i18nsync + done + else + echo "ARRRR, bad guys, wrong files, ARRR" + echo "Arf, Arf, Arf, bad guys, wrong files, arf, arf, arf" | mail debian-l10n-devel@lists.alioth.debian.org + fi + else + echo "ARRRR, missing the timestamp ${TSTAMP} directory, not updating i18n, ARRR" + echo "Arf, Arf, Arf, missing the timestamp ${TSTAMP} directory, not updating i18n, arf, arf, arf" | mail debian-l10n-devel@lists.alioth.debian.org + fi +else + echo "ARRRRRRR, could not verify our timestamp signature, ARRR. Don't mess with our files, i18n guys, ARRRRR." + echo "Arf, Arf, Arf, could not verify our timestamp signature, arf. Don't mess with our files, i18n guys, arf, arf, arf" | mail debian-l10n-devel@lists.alioth.debian.org +fi + +################################################################################ + ts lockfile $LOCKAC lockac=1 @@ -112,7 +159,7 @@ ts echo "Updating fingerprints" # Update fingerprints -dak import-keyring -L /srv/keyring.debian.org/keyrings/debian-keyring.gpg +dak import-keyring -L /srv/keyring.debian.org/keyrings/debian-keyring.gpg || true ts @@ -172,10 +219,18 @@ cd $scriptsdir ./mkfilesindices ./mkchecksums +ts + +# (Re)generate the hardlinked mirror directory for "public" buildd / mirror access +echo "Regenerating mirror/ hardlink fun" +cd ${mirrordir} +rsync -aH --link-dest ${ftpdir} --delete --delete-after --ignore-errors ${ftpdir}/. . + + ts echo "Trigger daily wanna-build run" -ssh buildd@buildd /org/wanna-build/trigger.daily +ssh -o BatchMode=yes -o SetupTimeOut=90 -o ConnectTimeout=90 buildd@buildd /org/wanna-build/trigger.daily || echo "W-B trigger.daily failed" | mail -s "W-B Daily trigger failed" ftpmaster@ftp-master.debian.org rm -f $NOTICE rm -f $LOCKCU @@ -217,7 +272,7 @@ $scriptsdir/dm-monitor >$webdir/dm-uploaders.html # Push katie@merkel so it syncs the projectb there. Returns immediately, the sync runs detached echo "Trigger merkels projectb sync" -ssh -2 -i ~/.ssh/push_merkel_projectb katie@merkel.debian.org sleep 1 +ssh -2 -o BatchMode=yes -o SetupTimeOut=30 -o ConnectTimeout=30 -i ~/.ssh/push_merkel_projectb katie@merkel.debian.org sleep 1 || true ################################################################################ @@ -228,6 +283,27 @@ ulimit -m 90000 -d 90000 -s 10000 -v 200000 echo "Using run-parts to run scripts in $base/scripts/distmnt" run-parts --report $base/scripts/distmnt +ts + +echo "Exporting package data foo for i18n project" +STAMP=$(date "+%Y%m%d%H%M") +mkdir -p ${scriptdir}/i18n/${STAMP} +cd ${scriptdir}/i18n/${STAMP} +dak control-suite -l stable > etch +dak control-suite -l testing > lenny +dak control-suite -l unstable > sid +echo "${STAMP}" > timestamp +gpg --secret-keyring /srv/ftp.debian.org/s3kr1t/dot-gnupg/secring.gpg --keyring /srv/ftp.debian.org/s3kr1t/dot-gnupg/pubring.gpg --no-options --batch --no-tty --armour --default-key 6070D3A1 --detach-sign -o timestamp.gpg timestamp +rm -f md5sum +md5sum * > md5sum +cd ${webdir}/ +ln -sfT ${scriptdir}/i18n/${STAMP} i18n + +cd ${scriptdir} +find ./i18n -mtime +2 -mindepth 1 -maxdepth 1 -not -name "${STAMP}" -type d -print0 | xargs --no-run-if-empty -0 rm -rf + +ts + echo "Daily cron scripts successful." ts @@ -240,6 +316,9 @@ R --slave --vanilla < $base/misc/ftpstats.R ts +# Remove the britney lock +rm -f ${BRITNEYLOCK} + # Clean up apt-ftparchive's databases echo "Clean up apt-ftparchive's databases" cd $configdir @@ -247,18 +326,33 @@ apt-ftparchive -q clean apt.conf ts -# Compress psql backups older than a week, but no more than 20 of them +# Compress psql backups echo "Compress old psql backups" (cd $base/backup/ - find -maxdepth 1 -mindepth 1 -type f -name 'dump_*' \! -name '*.bz2' \! -name '*.gz' -mtime +7 | - sort | head -n20 | while read dumpname; do - echo "Compressing $dumpname" - bzip2 -9 "$dumpname" - done + find -maxdepth 1 -mindepth 1 -type f -name 'dump_*' \! -name '*.bz2' \! -name '*.gz' -mtime +1 | + while read dumpname; do + echo "Compressing $dumpname" + bzip2 -9 "$dumpname" + done ) ts +echo "Removing old dinstall logfiles" +(cd $logdir + find -maxdepth 1 -mindepth 1 -type f -name 'dinstall_*' -mtime +60 | + while read dumpname; do + echo "Removing $dumpname" + rm -f "$dumpname" + done + + find -maxdepth 1 -mindepth 1 -type f -name 'weekly_*' -mtime +60 | + while read dumpname; do + echo "Removing $dumpname" + rm -f "$dumpname" + done +) + echo "Finally, all is done, sending mail and compressing logfile" exec > /dev/null 2>&1