After running sudo dnf system-upgrade download --refresh --releasever=32 --allowerasing
I get the following gigantic list of errors:
rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by python3-audit-3.0-0.19.20191104git1c2f876.fc32.x86_64
rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by kexi-3.1.0-7.fc32.x86_64
rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by kexi-libs-3.1.0-7.fc32.x86_64
rpmlib(PayloadIsZstd) <= 5.4.18-1 is needed by alternatives-1.11-6.fc32.x86_64
...
After reading https://serverfault.com/questions/280099/how-do-i-install-an-rpm-that-complains-about-rpmlibfiledigests-4-6-0-1 I gather this is because some RPM version between the ones for Fedora-25 and Fedora-32 introduced a "PayloadIsZstd" feature.
How can I fix this?
I tried backing up rpm and rpm-libs files and force-installing the Fedora 32 rpm (on the odd chance existing binaries would be compatible?):
# Probably a really stupid idea. Don't do this, it's super hard to undo.
$ sudo rpm -ivhU ~/Downloads/rpm-libs-4.15.1-3.fc32.1.x86_64.rpm ~/Downloads/rpm-4.15.1-3.fc32.1.x86_64.rpm --replacepkgs --nodeps --force --nomd5
...
error: unpacking of archive failed: cpio: Bad magic
Now I'm thinking I should try intermediate versions, e.g. hopefully the Fedora 30 rpm has PayloadIsZstd.
Is there a better way?
UPDATE
I ended up upgrading to Fedora 30 first and then on to 32 to solve the rpm feature dependency, which solved the above. There were still some dependency issues. The first install failed (rebooted back into FC25), I'm guessing because I still had packages queued up from --releasever=32
and didn't remove those first before choosing --releasever=30
. Simply repeating dnf system-upgrade
+ dnf system-upgrade reboot
worked the second time.