-#! /bin/sh
+#! /bin/bash
set -e
-export SCRIPTVARS=/org/security-master.debian.org/dak/config/debian-security/vars
+set -o pipefail
+set -u
+
+export SCRIPTVARS=/srv/security-master.debian.org/dak/config/debian-security/vars
. $SCRIPTVARS
+# And use one locale, no matter what the caller has set
+export LANG=C
+export LC_ALL=C
+
report=$queuedir/REPORT
reportdis=$queuedir/REPORT.disembargo
timestamp=$(date "+%Y-%m-%d %H:%M")
doanything=false
+dopolicy=false
+LOCKFILE="$lockdir/unchecked.lock"
+
+cleanup() {
+ rm -f "$LOCKFILE"
+}
+
+if ! lockfile -r8 "$LOCKFILE"; then
+ echo "aborting cron.unchecked because $LOCKFILE has already been locked"
+ exit 0
+fi
+trap cleanup EXIT
cd $unchecked
changes=$(find . -maxdepth 1 -mindepth 1 -type f -name \*.changes | sed -e "s,./,," | xargs)
if [ -n "$changes" ]; then
- doanything=true
- echo "$timestamp": "$changes" >> $report
- dak process-unchecked -a $changes >> $report
- echo "--" >> $report
+ doanything=true
+ echo "$timestamp": ${changes:-"Nothing to do in unchecked"} >> $report
+ dak process-upload -a -d "$unchecked" >> $report
fi
cd $disembargo
changes=$(find . -maxdepth 1 -mindepth 1 -type f -name \*.changes | sed -e "s,./,," | xargs)
-
if [ -n "$changes" ]; then
- doanything=true
- echo "$timestamp": "$changes" >> $reportdis
- dak process-unchecked -a $changes >> $reportdis
- echo "--" >> $reportdis
+ doanything=true
+ echo "$timestamp": ${changes:-"Nothing to do in disembargo"} >> $reportdis
+ dak process-upload -a -d "$disembargo" >> $reportdis
fi
-if ! $doanything; then
- echo "$timestamp": Nothing to do >> $report
- exit 0
+for queue in embargoed unembargoed; do
+ echo "$timestamp: processing ${queue}" >> ${report}
+ dak process-policy ${queue} | mail -a "X-Debian: DAK" -e -s "Automatically accepted from ${queue}" -a "From: Debian FTP Masters <ftpmaster@ftp-master.debian.org>" team@security.debian.org
+done
+accepted=$(find ${queuedir}/accepted -type f -name "*.changes")
+if [ -n "${accepted}" ]; then
+ dopolicy=true
fi
-sh $masterdir/cron.buildd
+# sync accepted files to ftpmaster
+cd ${base}
+find ${queuedir}/accepted -type f -exec mv -t /srv/queued/ftpmaster '{}' +
+
+# export policy queues
+for queue in embargoed; do
+ cd ${queuedir}/${queue}
+ rm -rf export.new
+ mkdir export.new
+ dak export -q ${queue} -d export.new --all
+ rsync -a --delete export.new/. export/.
+ rm -rf export.new
+ cd ${base}
+done
+
+if [ "${doanything}" = "false" ] && [ "${dopolicy}" = "false" ]; then
+ echo "$timestamp": Nothing to do >> $report
+ exit 0
+fi
+
+# Update stable-kfreebsd
+dak update-suite stable stable-kfreebsd
+
+# manage build queues
+dak manage-build-queues -a
+dak generate-packages-sources2 -a build-queues
+dak generate-releases -a build-queues >/dev/null
+${scriptsdir}/update-buildd-archive ${base}/build-queues ${incoming}/debian-security-buildd
+
+if [ "x${dopolicy}x" = "xtruex" ]; then
+ # We had something approved from a policy queue, push out new archive
+ dak dominate
+ cd $configdir
+ $configdir/map.sh
+ dak generate-packages-sources2 -a security
+ dak generate-releases -a security >/dev/null
+ /srv/security-master.debian.org/dak/config/debian-security/make-mirror.sh >/dev/null
+ sudo -u archvsync -H /home/archvsync/signal_security
+fi
+
+cleanup
+trap - EXIT
+
+$configdir/cron.buildd