]> git.decadent.org.uk Git - dak.git/blobdiff - config/debian/dinstall.functions
Adjust cronscripts to end up with just one
[dak.git] / config / debian / dinstall.functions
index a0c362c17f97475f8fc77f61523f675a13f7968d..fcd2de356aafed0c1ad6d0fe55bb12c55695623e 100644 (file)
@@ -5,6 +5,7 @@ function ts() {
 }
 
 # Remove daily lock
+# FIXME: Dead code when switched to cronscript
 function remove_daily_lock() {
     rm -f $LOCK_DAILY
 }
@@ -50,7 +51,7 @@ function onerror() {
 }
 
 ########################################################################
-# the actual dinstall functions follow                                 #
+# the actual functions follow                                          #
 ########################################################################
 
 # pushing merkels QA user, part one
@@ -87,7 +88,7 @@ function i18n1() {
             # Lets check!
             if ${scriptsdir}/ddtp-i18n-check.sh . ${scriptdir}/i18n/${TSTAMP}; then
                 # Yay, worked, lets copy around
-                for dir in stretch sid; do
+                for dir in ${extimportdists}; do
                     if [ -d dists/${dir}/ ]; then
                         cd dists/${dir}/main/i18n
                         rsync -aq --delete --delete-after --exclude Translation-en.bz2 --exclude Translation-*.diff/ . ${ftpdir}/dists/${dir}/main/i18n/.
@@ -112,20 +113,21 @@ function i18n1() {
 function dep11() {
     log "Synchronizing AppStream metadata"
     # First sync their newest data
-    mkdir -p ${scriptdir}/dep11
-    cd ${scriptdir}/dep11
+    local dep11dir="${scriptdir}/dep11"
+    mkdir -p ${dep11dir}
+    cd ${dep11dir}
     rsync -aq --delete --delete-after dep11-sync:/does/not/matter . || true
 
     # Lets check!
-    if ${scriptsdir}/dep11-basic-validate.py . ${scriptdir}/dep11/; then
+    if ${scriptsdir}/dep11-basic-validate.py . ${dep11dir}/; then
         # Yay, worked, lets copy around
-        for dir in stretch sid; do
+        for dir in ${extimportdists}; do
             if [ -d ${dir}/ ]; then
                 for comp in main contrib non-free; do
                     mkdir -p ${ftpdir}/dists/${dir}/${comp}/dep11
                     cd ${dir}/${comp}
                     rsync -aq --delete --delete-after --exclude *.tmp . ${ftpdir}/dists/${dir}/${comp}/dep11/.
-                    cd ${scriptdir}/dep11
+                    cd ${dep11dir}
                 done
             fi
         done
@@ -432,11 +434,10 @@ function mkchecksums() {
 }
 
 function mirror() {
-    local archiveroot mirrordir targetpath TRACEFILE
+    local archiveroot targetpath TRACEFILE
 
     for archive in "${public_archives[@]}"; do
         archiveroot="$(get_archiveroot "${archive}")"
-        mirrordir="${archiveroot}/../mirror"
         targetpath="${mirrordir}/${archive}"
         TRACEFILE="${archiveroot}/project/trace/ftp-master.debian.org"
         mkdir -p "${archiveroot}/project/trace/"
@@ -482,23 +483,16 @@ function bts() {
     sudo -u dak-unpriv dak bts-categorize
 }
 
-function ddaccess() {
-    # Tell our dd accessible mirror to sync itself up. Including ftp dir.
-    log "Trigger dd accessible parts sync including ftp dir"
-    ${scriptsdir}/sync-dd dd-sync dd-sync1 dd-sync2 sync
-}
-
 function mirrorpush() {
     log "Checking the public archive copies..."
 
-    local archiveroot mirrordir targetpath
+    local archiveroot targetpath
 
     for archive in "${public_archives[@]}"; do
         log "... archive: ${archive}"
         archiveroot="$(get_archiveroot "${archive}")"
-        mirrordir="${archiveroot}/../mirror"
         targetpath="${mirrordir}/${archive}"
-        cd ${targetpath}/dists
+        cd ${archiveroot}/dists
 
         broken=0
         for release in $(find . -name "InRelease"); do
@@ -616,42 +610,17 @@ function logstats() {
 
 # save timestamp when we start
 function savetimestamp() {
-       NOW=`date "+%Y.%m.%d-%H:%M:%S"`
-       echo ${NOW} > "${dbdir}/dinstallstart"
+    echo ${NOW} > "${dbdir}/dinstallstart"
 }
 
 function maillogfile() {
     cat "$LOGFILE" | mail -a "X-Debian: DAK" -s "Log for dinstall run of ${NOW}" -a "From: Debian FTP Masters <ftpmaster@ftp-master.debian.org>" cron@ftp-master.debian.org
 }
 
-function renamelogfile() {
-    if [ -f "${dbdir}/dinstallstart" ]; then
-        NOW=$(cat "${dbdir}/dinstallstart")
-#        maillogfile
-        mv "$LOGFILE" "$logdir/dinstall_${NOW}.log"
-        logstats "$logdir/dinstall_${NOW}.log"
-        bzip2 -9 "$logdir/dinstall_${NOW}.log"
-    else
-        error "Problem, I don't know when dinstall started, unable to do log statistics."
-        NOW=`date "+%Y.%m.%d-%H:%M:%S"`
-#        maillogfile
-        mv "$LOGFILE" "$logdir/dinstall_${NOW}.log"
-        bzip2 -9 "$logdir/dinstall_${NOW}.log"
-    fi
-}
-
 function testingsourcelist() {
     dak ls -s testing -f heidi -r .| egrep 'source$' > ${webdir}/testing.list
 }
 
-# do a last run of process-unchecked before dinstall is on.
-function process_unchecked() {
-    log "Processing the unchecked queue"
-    UNCHECKED_WITHOUT_LOCK="-p"
-    do_unchecked
-    sync_debbugs
-}
-
 # Function to update a "statefile" telling people what we are doing
 # (more or less).
 #
@@ -688,35 +657,32 @@ function changelogs() {
     fi
 }
 
-function gitpdiff() {
-    # Might be that we want to change this to have more than one git repository.
-    # Advantage of one is that we do not need much space in terms of storage in git itself,
-    # git gc is pretty good on our input.
-    # But it might be faster. Well, lets test.
-    log "Adjusting the git tree for pdiffs"
-    cd ${dbdir}/git/git/
-
-    # The regex needs the architectures seperated with \|
-    garchs=$(dak admin a list|sed -e ':q;N;s/\n/\\|/g;t q')
-
-    # First, get all the files we want to work on. ../dists/ is a symlink to the real dists/ we
-    # want to work with.
-    # Also, we only want contents, packages and sources.
-    for file in $(find ../dists/ -regex ".*/\(Contents-\($archs\)\|\(Packages\|Sources\)\).gz"); do
-        log "${file}"
-        basen=${file%%.gz};
-        basen=${basen##../};
-        dir=${basen%/*};
-        mkdir -p $dir;
-        zcat $file > $basen;
+# Generate a list of extra mirror files, sha256sum em and sign that
+function signotherfiles() {
+    log "Signing extra mirror files"
+
+    local archiveroot
+
+    for archive in "${public_archives[@]}"; do
+        log "... archive: ${archive}"
+        archiveroot="$(get_archiveroot "${archive}")"
+        local TMPLO=$( mktemp -p ${TMPDIR} )
+        trap "rm -f ${TMPLO}" ERR EXIT TERM HUP INT QUIT
+
+        cd ${archiveroot}
+        rm -f extrafiles
+        sha256sum $(find * -type f | egrep -v '(pool|i18n|dep11|source)/|Contents-.*\.(gz|diff)|installer|binary-|(In)?Release(.gpg)?|\.changes' | sort) > ${TMPLO}
+        gpg --no-options --batch --no-tty --armour --personal-digest-preferences=SHA256 --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 473041FA --clearsign --output ${archiveroot}/extrafiles ${TMPLO}
+        rm -f ${TMPLO}
     done
+}
 
-    # Second, add all there is into git
-    cd dists
-    git add .
-    # Maybe we want to make this the same for tag and commit? But well, shouldn't matter
-    COMD=$(date  -Is)
-    TAGD=$(date +%Y-%m-%d-%H-%M)
-    git commit -m "Commit of ${COMD}"
-    git tag "${TAGD}"
- }
+function startup() {
+    touch "${DINSTALLSTART}"
+    ts "startup"
+    DINSTALLBEGIN="$(date -u +"%a %b %d %T %Z %Y (%s)")"
+    lockfile -l 3600 "${LOCK_DAILY}"
+    trap onerror ERR
+    TEMPFILES="${TEMPFILES} ${LOCK_DAILY}"
+    touch "${LOCK_BRITNEY}"
+}