WARNING: I have not yet tested cascaded wheezy -> jessie -> stretch upgrades. As such, I do not currently recommend upgrading jessie machines that previously ran wheezy.
GOOD NEWS: The same steps also appear to work for stretch -> buster and buster -> bullseye upgrades, if proper substitutions are made.
As of 8/25/2018, it works, but isn't seamless. Take the following steps:
Add stretch-cclub repo: echo "deb http://debian.club.cc.cmu.edu/debian/ stretch-cclub contrib" >> /etc/apt/sources.list
apt-get update
apt-get -t stretch-cclub install cclub-fix-debian-mirror-configuration
- Change /etc/apt/apt.conf.d/90cclub APT::Default-Release to stretch-cclub
Hold all cclub configuration packages:
dpkg --get-selections | sed -e 's/^\(cclub-.*-configuration[ \t]\+\)install$/\1hold/' -e 't' -e 'd' | dpkg --set-selections
apt-get update
- rm /var/lib/cclub-configuration/flags/passwd-update-configured
DEBIAN_FRONTEND=noninteractive apt-get -o DPkg::options::=--force-confdef -o DPkg::options::=--force-confold dist-upgrade
- Check /etc for .dpkg-dist/.ucf-dist files for configuration that is not managed by the cclub configuration packages; fold-in the Debian changes as appropriate
- If a configuration file is managed by the cclub configuration packages, there is usually a copy of the file under /usr/share/cclub-configuration
Take make this easier the next time, delete any .dpkg-dist/.ucf-dist files after you've confirmed there are not any changes that need to be folded in
Unhold all cclub configuration packages:
dpkg --get-selections | sed -e 's/^\(cclub-.*-configuration[ \t]\+\)hold$/\1install/' -e 't' -e 'd' | dpkg --set-selections
apt-get dist-upgrade
- touch /var/lib/cclub-configuration/flags/passwd-update-configured
Copy any newly added users (in /etc/passwd or /etc/passwd.OLD) to /etc/passwd.system no longer needed with cclub-passwd-update-configuration >= 1.2
mv /etc/pam.d/login.dpkg-dist /etc/pam.d/login no longer needed with cclub-base-configuration >= 1.5
dpkg-reconfigure cclub-base-configuration no longer needed with cclub-base-configuration >= 1.5
(optional): apt-get clean
(optional): apt-get autoremove
If we're doing upgrades like this frequently, I can look into scripting parts of the process.