]> git.decadent.org.uk Git - dak.git/blobdiff - config/debian/cron.dinstall
Merge branch 'master' into security
[dak.git] / config / debian / cron.dinstall
index b8b25d7a3d0911b072bb57991ad596825ac03117..cb326fc6b79116e317de59cfb62973ac847c36f4 100755 (executable)
@@ -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" <<EOF
 Packages are currently being installed and indices rebuilt.
@@ -64,6 +70,7 @@ cd $configdir
 $scriptsdir/update-bugdoctxt
 $scriptsdir/update-mirrorlists
 $scriptsdir/update-mailingliststxt
+$scriptsdir/update-pseudopackages.sh
 
 ################################################################################
 
@@ -83,6 +90,46 @@ echo >> 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
@@ -172,6 +219,14 @@ 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"
@@ -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
@@ -259,6 +338,21 @@ echo "Compress old psql backups"
 
 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