X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=config%2Fdebian%2Fdinstall.functions;h=135dabdd1b9518609b212d8adae34fbd40ee2cd7;hb=52eb03dccab0a9898bca4d36a0a96ebe377fb977;hp=ee1b58e27a87be2d58a3e19d75bca6aa8654b637;hpb=5390eff0ba7a732269f040b0a4c4a3b9a0db2733;p=dak.git diff --git a/config/debian/dinstall.functions b/config/debian/dinstall.functions index ee1b58e2..135dabdd 100644 --- a/config/debian/dinstall.functions +++ b/config/debian/dinstall.functions @@ -9,9 +9,14 @@ function remove_daily_lock() { rm -f $LOCK_DAILY } +# Remove changelog lock +function remove_changelog_lock() { + rm -f $LOCK_CHANGELOG +} + # Remove all locks function remove_all_locks() { - rm -f $LOCK_DAILY $LOCK_ACCEPTED $LOCK_NEW + rm -f $LOCK_DAILY $LOCK_ACCEPTED } # If we error out this one is called, *FOLLOWED* by cleanup above @@ -219,12 +224,17 @@ function mklslar() { function mkmaintainers() { local archiveroot + local indices log 'Creating Maintainers index ... ' for archive in "${public_archives[@]}"; do archiveroot="$(get_archiveroot "${archive}")" - cd "${archiveroot}/indices" + indices="${archiveroot}/indices" + if ! [ -d "${indices}" ]; then + mkdir "${indices}" + fi + cd "${indices}" dak make-maintainers -a "${archive}" ${scriptdir}/masterfiles/pseudo-packages.maintainers gzip -9v --rsyncable Maintainers.gz @@ -235,7 +245,7 @@ function mkmaintainers() { function copyoverrides() { log 'Copying override files into public view ...' - for ofile in ${overridedir}/override.{squeeze,wheezy,sid}.{,extra.}{main,contrib,non-free}*; do + for ofile in ${overridedir}/override.{squeeze,wheezy,jessie,sid}.{,extra.}{main,contrib,non-free}*; do bname=${ofile##*/} gzip -9cv --rsyncable ${ofile} > ${indices}/${bname}.gz chmod g+w ${indices}/${bname}.gz @@ -380,18 +390,25 @@ function mkfilesindices() { } function mkchecksums() { - dsynclist=$dbdir/dsync.list - md5list=$indices/md5sums + local archiveroot dsynclist md5list - log -n "Creating md5 / dsync index file ... " + for archive in "${public_archives[@]}"; do + archiveroot="$(get_archiveroot "${archive}")" + dsynclist=$dbdir/dsync.${archive}.list + md5list=${archiveroot}/indices/md5sums - cd "$ftpdir" - ${bindir}/dsync-flist -q generate $dsynclist --exclude $dsynclist --md5 - ${bindir}/dsync-flist -q md5sums $dsynclist | gzip -9n > ${md5list}.gz - ${bindir}/dsync-flist -q link-dups $dsynclist || true + log -n "Creating md5 / dsync index file for ${archive}... " + + cd "$archiveroot" + ${bindir}/dsync-flist -q generate $dsynclist --exclude $dsynclist --md5 + ${bindir}/dsync-flist -q md5sums $dsynclist | gzip -9n > ${md5list}.gz + ${bindir}/dsync-flist -q link-dups $dsynclist || true + done } function mirror() { + local archiveroot + log "Regenerating \"public\" mirror/ hardlink fun" DATE_SERIAL=$(date +"%Y%m%d01") FILESOAPLUS1=$(awk '/serial/ { print $3+1 }' ${TRACEFILE} ) @@ -404,8 +421,16 @@ function mirror() { 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 --delete-excluded --exclude Packages.*.new --exclude Sources.*.new --ignore-errors ${ftpdir}/. . + + # Ugly "hack", but hey, it does what we want. + cp ${TRACEFILE} ${TRACEFILE_BDO} + + for archive in "${public_archives[@]}"; do + archiveroot="$(get_archiveroot "${archive}")" + mirrordir="${archiveroot}/../mirror" + cd ${mirrordir} + rsync -aH --link-dest ${archiveroot} --delete --delete-after --delete-excluded --exclude Packages.*.new --exclude Sources.*.new --ignore-errors ${archiveroot}/. . + done } function expire() { @@ -489,6 +514,7 @@ function mirrorpush() { echo "Using dak v1" >> /srv/ftp.debian.org/web/mirrorstart echo "Running on host $(hostname -f)" >> /srv/ftp.debian.org/web/mirrorstart sudo -H -u archvsync /home/archvsync/runmirrors > ~dak/runmirrors.log 2>&1 & + sudo -H -u archvsync /home/archvsync/runmirrors -a backports > ~dak/runmirrorsbpo.log 2>&1 & } function i18n2() { @@ -593,12 +619,22 @@ EOF # extract changelogs and stuff function changelogs() { - log "Extracting changelogs" - dak make-changelog -e -a ftp-master - mkdir -p ${exportpublic}/changelogs - cd ${exportpublic}/changelogs - rsync -aHW --delete --delete-after --ignore-errors ${exportdir}/changelogs/. . - sudo -H -u archvsync /home/archvsync/runmirrors metaftpdo > ~dak/runmirrors-metadata.log 2>&1 & + if lockfile -r3 $LOCK_CHANGELOG; then + log "Extracting changelogs" + dak make-changelog -e -a ftp-master + [ -f ${exportdir}/changelogs/filelist.yaml ] && xz -f ${exportdir}/changelogs/filelist.yaml + mkdir -p ${exportpublic}/changelogs + cd ${exportpublic}/changelogs + rsync -aHW --delete --delete-after --ignore-errors ${exportdir}/changelogs/. . + sudo -H -u staticsync /usr/local/bin/static-update-component ftp-master.metadata.debian.org >/dev/null 2>&1 & + + #dak make-changelog -e -a backports + #[ -f /srv/backports-master.debian.org/export/changelogs/filelist.yaml ] && xz -f /srv/backports-master.debian.org/export/changelogs/filelist.yaml + #mkdir -p /srv/backports-master.debian.org/rsync/export/changelogs + #cd /srv/backports-master.debian.org/rsync/export/changelogs + #rsync -aHW --delete --delete-after --ignore-errors /srv/backports-master.debian.org/export/changelogs/. . + trap remove_changelog_lock EXIT TERM HUP INT QUIT + fi } function gitpdiff() {