]> git.decadent.org.uk Git - dak.git/blobdiff - config/debian/dinstall.functions
No longer update a tracefile hourly. Instead update our tracefile the second before...
[dak.git] / config / debian / dinstall.functions
index 6857a43698d2bb0bf93f0704fd8f96eea487f924..463dec3799a5d227692d43bf3ee9c3f8622d4137 100644 (file)
@@ -1,3 +1,4 @@
+# -*- mode:sh -*-
 # Timestamp. Used for dinstall stat graphs
 function ts() {
         echo "Archive maintenance timestamp ($1): $(date +%H:%M:%S)"
@@ -71,17 +72,18 @@ function updates() {
 
 # Process (oldstable)-proposed-updates "NEW" queue
 function punew_do() {
-    cd "${queuedir}/${1}"
     date -u -R >> REPORT
-    dak process-new -a -C COMMENTS >> REPORT || true
+    dak process-policy $1 | tee -a REPORT | mail -e -s "NEW changes in $1" debian-release@lists.debian.org
     echo >> REPORT
 }
 function punew() {
     log "Doing automated p-u-new processing"
+    cd "${queuedir}/p-u-new"
     punew_do "$1"
 }
 function opunew() {
     log "Doing automated o-p-u-new processing"
+    cd "${queuedir}/o-p-u-new"
     punew_do "$1"
 }
 
@@ -129,9 +131,9 @@ function cruft() {
     dak check-overrides
 }
 
-function msfl() {
-    log "Generating suite file lists for apt-ftparchive"
-    dak make-suite-file-list
+function dominate() {
+    log "Removing obsolete source and binary associations"
+    dak dominate
 }
 
 function filelist() {
@@ -142,30 +144,30 @@ function filelist() {
 function fingerprints() {
     log "Not updating fingerprints - scripts needs checking"
 
-#    log "Updating fingerprints"
-#    dak import-keyring -L /srv/keyring.debian.org/keyrings/debian-keyring.gpg
+    log "Updating fingerprints"
+    dak import-keyring -L /srv/keyring.debian.org/keyrings/debian-keyring.gpg
 
-#    OUTFILE=$(mktemp)
-#    dak import-keyring --generate-users "%s" /srv/keyring.debian.org/keyrings/debian-maintainers.gpg >"${OUTFILE}"
+    OUTFILE=$(mktemp)
+    dak import-keyring --generate-users "%s" /srv/keyring.debian.org/keyrings/debian-maintainers.gpg >"${OUTFILE}"
 
-#    if [ -s "${OUTFILE}" ]; then
-#        /usr/sbin/sendmail -odq -oi -t -f envelope@ftp-master.debian.org <<EOF
-#From: Debian FTP Masters <ftpmaster@ftp-master.debian.org>
-#To: <debian-project@lists.debian.org>
-#Subject: Debian Maintainers Keyring changes
-#Content-Type: text/plain; charset=utf-8
-#MIME-Version: 1.0
-#
-#The following changes to the debian-maintainers keyring have just been activated:
-#
-#$(cat $OUTFILE)
-#
-#Debian distribution maintenance software,
-#on behalf of the Keyring maintainers
-#
-#EOF
-#    fi
-#    rm -f "$OUTFILE"
+    if [ -s "${OUTFILE}" ]; then
+        /usr/sbin/sendmail -odq -oi -t -f envelope@ftp-master.debian.org <<EOF
+From: Debian FTP Masters <ftpmaster@ftp-master.debian.org>
+To: <debian-project@lists.debian.org>
+Subject: Debian Maintainers Keyring changes
+Content-Type: text/plain; charset=utf-8
+MIME-Version: 1.0
+
+The following changes to the debian-maintainers keyring have just been activated:
+
+$(cat $OUTFILE)
+
+Debian distribution maintenance software,
+on behalf of the Keyring maintainers
+
+EOF
+    fi
+    rm -f "$OUTFILE"
 }
 
 function overrides() {
@@ -247,54 +249,41 @@ function mklslar() {
 }
 
 function mkmaintainers() {
-    log -n 'Creating Maintainers index ... '
+    log 'Creating Maintainers index ... '
 
     cd $indices
     dak make-maintainers ${scriptdir}/masterfiles/pseudo-packages.maintainers | \
-        sed -e "s/~[^  ]*\([   ]\)/\1/"  | awk '{printf "%-20s ", $1; for (i=2; i<=NF; i++) printf "%s ", $i; printf "\n";}' > .new-maintainers
-
-    set +e
-    cmp .new-maintainers Maintainers >/dev/null
-    rc=$?
-    set -e
-    if [ $rc = 1 ] || [ ! -f Maintainers ] ; then
-           log -n "installing Maintainers ... "
+        sed -e "s/~[^  ]*\([   ]\)/\1/"  | \
+        awk '{printf "%-20s ", $1; for (i=2; i<=NF; i++) printf "%s ", $i; printf "\n";}' > .new-maintainers
+
+    if ! cmp -s .new-maintainers Maintainers || [ ! -f Maintainers ]; then
+           log "installing Maintainers ... "
            mv -f .new-maintainers Maintainers
            gzip --rsyncable -9v <Maintainers >.new-maintainers.gz
            mv -f .new-maintainers.gz Maintainers.gz
-    elif [ $rc = 0 ] ; then
-           log '(same as before)'
-           rm -f .new-maintainers
     else
-           log cmp returned $rc
-           false
+        rm -f .new-maintainers
     fi
 }
 
 function copyoverrides() {
     log 'Copying override files into public view ...'
 
-    for f in $copyoverrides ; do
+    for ofile in $copyoverrides ; do
            cd $overridedir
-           chmod g+w override.$f
+           chmod g+w override.$ofile
 
            cd $indices
-           rm -f .newover-$f.gz
-           pc="`gzip 2>&1 -9nv <$overridedir/override.$f >.newover-$f.gz`"
-           set +e
-           nf=override.$f.gz
-           cmp -s .newover-$f.gz $nf
-           rc=$?
-           set -e
-        if [ $rc = 0 ]; then
-                   rm -f .newover-$f.gz
-           elif [ $rc = 1 -o ! -f $nf ]; then
-                   log "   installing new $nf $pc"
-                   mv -f .newover-$f.gz $nf
-                   chmod g+w $nf
-           else
-                   log $? $pc
-                   exit 1
+
+           newofile=override.$ofile.gz
+           rm -f .newover-$ofile.gz
+           pc="`gzip 2>&1 -9nv <$overridedir/override.$ofile >.newover-$ofile.gz`"
+        if ! cmp -s .newover-$ofile.gz $newofile || [ ! -f $newofile ]; then
+                   log "   installing new $newofile $pc"
+                   mv -f .newover-$ofile.gz $newofile
+                   chmod g+w $newofile
+        else
+                   rm -f .newover-$ofile.gz
            fi
     done
 }
@@ -315,7 +304,7 @@ function mkfilesindices() {
         perl -e '@nonpool=(); while (<>) { if (m,^\./pool/,) { print; } else { push @nonpool, $_; } } print for (@nonpool);'
     }
 
-    log "Generating sources list
+    log "Generating sources list"
     (
         sed -n 's/|$//p' $ARCHLIST
         cd $base/ftp
@@ -323,7 +312,7 @@ function mkfilesindices() {
         find ./dists \! -type d | grep "/source/"
     ) | sort -u | gzip --rsyncable -9 > source.list.gz
 
-    log "Generating arch lists
+    log "Generating arch lists"
 
     ARCHES=$( (<$ARCHLIST sed -n 's/^.*|//p'; echo amd64) | grep . | grep -v all | sort -u)
     for a in $ARCHES; do
@@ -360,7 +349,6 @@ function mkfilesindices() {
     done
 
     log "Finding everything on the ftp site to generate sundries"
-
     (cd $base/ftp; find . \! -type d \! -name 'Archive_Maintenance_In_Progress' | sort) >$ARCHLIST
 
     rm -f sundries.list
@@ -400,26 +388,15 @@ function mkchecksums() {
     ${bindir}/dsync-flist -q link-dups $dsynclist || true
 }
 
-function scripts() {
-    log "Running various scripts from $scriptsdir"
-    mkmaintainers
-    copyoverrides
-    mklslar
-    mkfilesindices
-    mkchecksums
-}
-
 function mirror() {
     log "Regenerating \"public\" mirror/ hardlink fun"
+    date -u > ${ftpdir}/project/trace/ftp-master.debian.org
+    echo "Using dak v1" >> ${ftpdir}/project/trace/ftp-master.debian.org
+    echo "Running on host: $(hostname -f)" >> ${ftpdir}/project/trace/ftp-master.debian.org
     cd ${mirrordir}
     rsync -aH --link-dest ${ftpdir} --delete --delete-after --ignore-errors ${ftpdir}/. .
 }
 
-function wb() {
-    log "Trigger daily wanna-build run"
-    ssh -o BatchMode=yes -o SetupTimeOut=90 -o ConnectTimeout=90 wbadm@buildd /org/wanna-build/trigger.daily || echo "W-B trigger.daily failed" | mail -s "W-B Daily trigger failed" ftpmaster@ftp-master.debian.org
-}
-
 function expire() {
     log "Expiring old database dumps..."
     cd $base/backup
@@ -568,3 +545,25 @@ function process_unchecked() {
     do_unchecked
     sync_debbugs
 }
+
+# do a run of newstage only before dinstall is on.
+function newstage() {
+    log "Processing the newstage queue"
+    UNCHECKED_WITHOUT_LOCK="-p"
+    do_newstage
+}
+
+# Function to update a "statefile" telling people what we are doing
+# (more or less).
+#
+# This should be called with the argument(s)
+#  - Status name we want to show.
+#
+function state() {
+    RIGHTNOW="$(date -u +"%a %b %d %T %Z %Y (%s)")"
+    cat >"${DINSTALLSTATE}" <<EOF
+Dinstall start: ${DINSTALLBEGIN}
+Current action: ${1}
+Action start: ${RIGHTNOW}
+EOF
+}