]> git.decadent.org.uk Git - dak.git/blobdiff - config/debian/dinstall.functions
path changes
[dak.git] / config / debian / dinstall.functions
index 26c1c8b8bd33c5a0fc30480468c82991cefbcd12..aea863d28ffb2756d09d2f97964cb324a36ce725 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"
 }
 
@@ -94,7 +96,7 @@ function i18n1() {
 
     # 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
+    if $(gpgv --keyring /srv/ftp-master.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)
@@ -264,6 +266,24 @@ function mkmaintainers() {
     fi
 }
 
+function mkuploaders() {
+    log 'Creating Uploaders index ... '
+
+    cd $indices
+    dak make-maintainers -u ${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-uploaders
+
+    if ! cmp -s .new-uploaders Uploaders || [ ! -f Uploaders ]; then
+           log "installing Uploaders ... "
+           mv -f .new-uploaders Uploaders
+           gzip --rsyncable -9v <Uploaders >.new-uploaders.gz
+           mv -f .new-uploaders.gz Uploaders.gz
+    else
+        rm -f .new-uploaders
+    fi
+}
+
 function copyoverrides() {
     log 'Copying override files into public view ...'
 
@@ -293,7 +313,7 @@ function mkfilesindices() {
     ARCHLIST=$(tempfile)
 
     log "Querying projectb..."
-    echo 'SELECT l.path, f.filename, a.arch_string FROM location l JOIN files f ON (f.location = l.id) LEFT OUTER JOIN (binaries b JOIN architecture a ON (b.architecture = a.id)) ON (f.id = b.file)' | psql projectb -At | sed 's/|//;s,^/srv/ftp.debian.org/ftp,.,' | sort >$ARCHLIST
+    echo 'SELECT l.path, f.filename, a.arch_string FROM location l JOIN files f ON (f.location = l.id) LEFT OUTER JOIN (binaries b JOIN architecture a ON (b.architecture = a.id)) ON (f.id = b.file)' | psql projectb -At | sed 's/|//;s,^/srv/ftp-master.debian.org/ftp,.,' | sort >$ARCHLIST
 
     includedirs () {
         perl -ne 'print; while (m,/[^/]+$,) { $_=$`; print $_ . "\n" unless $d{$_}++; }'
@@ -342,7 +362,7 @@ function mkfilesindices() {
                     [ "$(readlink $distdir)" != "$distname" ] || echo $distdir
                 done
             )
-            suite_list $id | tr -d ' ' | sed 's,^/srv/ftp.debian.org/ftp,.,'
+            suite_list $id | tr -d ' ' | sed 's,^/srv/ftp-master.debian.org/ftp,.,'
         ) | sort -u | gzip --rsyncable -9 > suite-${suite}.list.gz
     done
 
@@ -367,7 +387,7 @@ function mkfilesindices() {
            done
     )
 
-    (cat ../arch-i386.files ../arch-amd64.files; zcat suite-oldstable.list.gz suite-proposed-updates.list.gz ; zcat translation-sid.list.gz ; zcat translation-squeeze.list.gz) |
+    (cat ../arch-i386.files ../arch-amd64.files; zcat suite-proposed-updates.list.gz ; zcat translation-sid.list.gz ; zcat translation-squeeze.list.gz) |
     sort -u | poolfirst > ../typical.files
 
     rm -f $ARCHLIST
@@ -388,15 +408,21 @@ function mkchecksums() {
 
 function mirror() {
     log "Regenerating \"public\" mirror/ hardlink fun"
+    DATE_SERIAL=$(date +"%Y%m%d01")
+    FILESOAPLUS1=$(awk '/serial/ { print $3+1 }' ${TRACEFILE} )
+    if [ "$DATE_SERIAL" -gt "$FILESOAPLUS1" ]; then
+        SERIAL="$DATE_SERIAL"
+    else
+        SERIAL="$FILESOAPLUS1"
+    fi
+    date -u > ${TRACEFILE}
+    echo "Using dak v1" >> ${TRACEFILE}
+    echo "Running on host: $(hostname -f)" >> ${TRACEFILE}
+    echo "Archive serial: ${SERIAL}" >> ${TRACEFILE}
     cd ${mirrordir}
     rsync -aH --link-dest ${ftpdir} --delete --delete-after --ignore-errors ${ftpdir}/. .
 }
 
-function wb() {
-    log "Trigger daily wanna-build run"
-    wbtrigger "daily"
-}
-
 function expire() {
     log "Expiring old database dumps..."
     cd $base/backup
@@ -446,9 +472,9 @@ function merkel3() {
 
 function mirrorpush() {
     log "Starting the mirrorpush"
-    date -u > /srv/ftp.debian.org/web/mirrorstart
-    echo "Using dak v1" >> /srv/ftp.debian.org/web/mirrorstart
-    echo "Running on host $(hostname -f)" >> /srv/ftp.debian.org/web/mirrorstart
+    date -u > /srv/ftp-master.debian.org/web/mirrorstart
+    echo "Using dak v1" >> /srv/ftp-master.debian.org/web/mirrorstart
+    echo "Running on host $(hostname -f)" >> /srv/ftp-master.debian.org/web/mirrorstart
     sudo -H -u archvsync /home/archvsync/runmirrors > ~dak/runmirrors.log 2>&1 &
 }
 
@@ -461,7 +487,7 @@ function i18n2() {
     dak control-suite -l testing > squeeze
     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 55BE302B --detach-sign -o timestamp.gpg timestamp
+    gpg --secret-keyring /srv/ftp-master.debian.org/s3kr1t/dot-gnupg/secring.gpg --keyring /srv/ftp-master.debian.org/s3kr1t/dot-gnupg/pubring.gpg --no-options --batch --no-tty --armour --default-key 55BE302B --detach-sign -o timestamp.gpg timestamp
     rm -f md5sum
     md5sum * > md5sum
     cd ${webdir}/
@@ -545,3 +571,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
+}