X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=config%2Fdebian%2Fdinstall.functions;h=463dec3799a5d227692d43bf3ee9c3f8622d4137;hb=4fbe76ca4e30a4515d2111a27d3067259f890355;hp=6857a43698d2bb0bf93f0704fd8f96eea487f924;hpb=1c20056f57077ece45513e0f0d404728f8deeb54;p=dak.git diff --git a/config/debian/dinstall.functions b/config/debian/dinstall.functions index 6857a436..463dec37 100644 --- a/config/debian/dinstall.functions +++ b/config/debian/dinstall.functions @@ -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 < -#To: -#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 < +To: +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 .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}" <