1

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.

1

1 Answer 1

3

According to https://fedoraproject.org/wiki/Changes/Switch_RPMs_to_zstd_compression Zstd compression was introduced in Fedora 31, so maybe you could first try installing rpm-libs from Fedora 31 prior to upgrading. This won't necessarily work because rpm-libs might depend on other not yet installed libraries e.g. glibc. In short I don't see a simple way out for you. Probably reinstalling from scratch is now a better idea.

2
  • 3
    From scratch would probably have been simpler. I ended up going through fedora 30 (i.e. system-upgrade from 25 -> 30 -> 32), which worked around PayloadIsZstd.
    – jozxyqk
    Commented Aug 9, 2020 at 23:03
  • 1
    Considering your upgrade path you ran Fedora 25 which had stopped receiving any updates ages ago for quite some time. That's generally not a good idea. Commented Aug 9, 2020 at 23:10

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .