Rough Guide to doing Stable Point Releases in Debian ---------------------------------------------------- - sudo to dak - bash: suitename=jessie newrev=8.5 export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars . $SCRIPTVARS . "${configdir}/common" . "${configdir}/dinstall.functions" umask 022 export LANG=C export LC_ALL=C suite=$(psql -qAtc "SELECT suite_name FROM suite WHERE codename='${suitename}'") oldrev=$(psql -qAtc "SELECT version FROM suite WHERE codename='${suitename}'") case "${suite}" in stable) pusuite=proposed-updates ;; oldstable) pusuite=oldstable-proposed-updates ;; *) pusuite=INVALID ;; esac echo "Point release for ${suite} (${suitename}); old version: ${oldrev}, new: ${newrev}" echo "Updates come from ${pusuite}" pg_timestamp pre_${suite}_${newrev} cd ~ mkdir -p ${suitename}_${newrev} cd ${suitename}_${newrev} dak control-suite -l ${pusuite} > ${pusuite}.list dak control-suite -l ${suite} > ${suite}.list - ask SRMs if there is anything to be skipped from this release. If so edit ${pusuite}.list (and later the Changelog too) - bash: # skip: list of *source* packages to skip, whitespace seperated skip="" if [ -n "${skip}" ]; then mv ${pusuite}.list ${pusuite}.list.ori grep -vFf <(dak ls -f heidi -S -s ${pusuite} ${skip}) ${pusuite}.list.ori > ${pusuite}.list fi tmpfile=$(mktemp -p "${TMPDIR}" changelog.XXXXXX) dak make-changelog -s ${pusuite} -b ${suite} | cat - ${ftpdir}/dists/${suite}/ChangeLog > ${tmpfile} chmod 0644 ${tmpfile} mv ${tmpfile} ${ftpdir}/dists/${suite}/ChangeLog if [ -n "${skip}" ]; then $EDITOR ${ftpdir}/dists/${suite}/ChangeLog fi dak control-suite --add ${suite} < ${pusuite}.list dak control-suite --remove ${pusuite} < ${pusuite}.list - clean up *.changes from proposed-updates: # Be careful if uploads were not included in the point release. pumorguedir="${base}/morgue/queues/$(date +%Y/%m)" mkdir -p "${pumorguedir}" cd ${ftpdir}/dists/${pusuite} mv -t "${pumorguedir}" -n -- *.changes if [ -n "${skip}" ]; then for pack in ${skip}; do mv -t "${ftpdir}/dists/${pusuite}" ${pumorguedir}/${pack}*.changes done fi # do r0 and propups, if any cd ~/${suitename}_${newrev} if [[ -f /srv/release.debian.org/www/${suitename}/${newrev%%.*}/${newrev}/${suitename}-r0-additions.cs ]]; then cp /srv/release.debian.org/www/${suitename}/${newrev%%.*}/${newrev}/${suitename}-r0-additions.cs . dak control-suite --add ${suitename}-r0 < ${suitename}-r0-additions.cs fi if [[ -f /srv/release.debian.org/www/${suitename}/${newrev%%.*}/${newrev}/propups.unstable ]]; then cp /srv/release.debian.org/www/${suitename}/${newrev%%.*}/${newrev}/propups.unstable . dak control-suite --force --add unstable .r' symlink in dists/ cd $ftpdir/dists/ rm -f Debian${oldrev} ln -s ${suitename} Debian${newrev} - Update fields in suite table in postgresql. bash: mdate=$(date +"%d %B %Y") psql projectb <> Release.gpg gpg --no-default-keyring --keyring /usr/share/keyrings/debian-archive-keyring.gpg --trust-model=always --verify Release.gpg Release break else sleep 10 continue fi done echo "Done" - Check if a mirror push is needed or next dinstall is enough. for a push, bash: cd ${configdir}/cronscript mirror