Rough Guide to doing Stable Point Releases in Debian ---------------------------------------------------- o Dump projectb for backup purposes. o get everything listed, dak control-suite -l proposed-updates > p-u.list o generate the changelog using dak make-changelog -s proposed-updates -b stable | cat - ${ftpdir}/dists/stable/ChangeLog | sponge ${ftpdir}/dists/stable/ChangeLog o add everything to stable: cat p-u.list |dak control-suite --add stable o remove everything from proposed-updates, dak control-suite -r proposed-updates < p-u.list o sync with stable RM if there is any propup needed. do it, if so. o ask rms if they have RMs to do. o If you installed a debian-installer upload; migrate the relevant installer-*/$release directory from proposed-updates to stable. (Including potentially removing older versions) dak copy-installer helps o Update version number in README, README.html and dists/README o Update the 'Debian.r' symlink in dists/ o Clean up dists/stable/ChangeLog (add header, basically) o Update fields in suite table in postgresql (see below) o dak dominate --force -s stable o dak generate-filelist -s stable o Let SRM see if all is ok o cd $configdir ; apt-ftparchive generate apt.conf.stable o dak generate-releases --force-touch --apt-conf apt.conf.stable stable o Check if a mirror push is needed or next dinstall is enough. for a push o if so: TRACEFILE="${ftpdir}/project/trace/ftp-master.debian.org" 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}/. . 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 sudo -H -u archvsync /home/archvsync/runmirrors > ~dak/runmirrors.log 2>&1 & begin; update suite set version = '6.0.1' where suite_name = 'stable'; update suite set description = 'Debian 6.0.1 Released 19 March 2011' where suite_name = 'stable'; ------------------------------------------------------------------------ Old doc: o run 'dak clean-proposed-updates' to get rid of obsolete .changes from p-u ['dak clean-proposed-updates *.changes' from within p-u] o [also check for obsolete .changes caused by 'dak rm'-ing from p-u] o Update dak.conf (at least the section for Reject-Proposed-Updates, before using 'dak reject-proposed-updates') o Install, reject and remove packages as directed by the SRM using 'dak process-accepted' (installs), 'dak reject-proposed-updates' (rejects) and 'dak rm' (removals) NB: removing packages are not logged to the stable ChangeLog; you need to do that byhand. o Decruft stable in coordination with SRMs o Do anything in proposed-updates/TODO o Close any applicable stable bugs (hint: http://bugs.debian.org/cgi-bin/pkgreport.cgi?pkg=ftp.debian.org&include=etch) o Update version number in README, README.html and dists/README o Update the 'Debian.r' symlink in dists/ o Clean up dists/stable/ChangeLog (add header, basically) o Update version fields in dak.conf o Update fields in suite table in postgresql (see below) o Run 'dak make-suite-file-list --force -s stable' o Run apt-ftparchive generate apt.conf.stable o Run 'dak generate-releases --force-touch --apt-conf apt.conf.stable stable' [Yes, this sucks and more of it should be automated. c.f. ~ajt/pointupdate] ####################################################### update suite set version = '4.0r3' where suite_name = 'stable'; update suite set description = 'Debian 4.0r3 Released 16th February 2008' where suite_name = 'stable'; Rough Guide to doing Old-Stable Point Releases in Debian -------------------------------------------------------- Pretty much as above, except that process-accepted doesn't know about oldstable, so you have to do some surgery on it first to make it support that. Probably want to disable cron.daily whilst doing so. Also watch out for the installing_to_stable detection which doesn't work well with the current layout of oldstable-proposed-updates (as a symlink to $distro-proposed-updates). clean-proposed-updates, cruft-report and most everything else support a -s/--suite so they sould be fine to use.