[Bug 1185731] New: libzstd1.rpm is compressed with itself, or Bumpy Road from RPM 4.12
![](https://seccdn.libravatar.org/avatar/a895f78a81a109471893519443e4d933.jpg?s=120&d=mm&r=g)
http://bugzilla.opensuse.org/show_bug.cgi?id=1185731 Bug ID: 1185731 Summary: libzstd1.rpm is compressed with itself, or Bumpy Road from RPM 4.12 Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: x86 OS: openSUSE Tumbleweed Status: NEW Severity: Normal Priority: P5 - None Component: Upgrade Problems Assignee: screening-team-bugs@suse.de Reporter: giecrilj@stegny.2a.pl QA Contact: jsrain@suse.com Found By: --- Blocker: --- Background: RPM 4.16 requires libzstd1, which is a new library. However, the package introducing the library is compressed with the very library that it purports to install, creating a vicious cycle. WARNING: DO NOT TRY THIS AT HOME!!! When upgrading with YaST2 and RPM 4.12, you cannot install anything but RPM itself. All other packages are zstd1-compressed and thus malformed. You can ignore the uncompressing errors, in which case you end up with a non-functional RPM: it requires libzstd1 which has not been installed. Moreover, libzstd1 will not work without a newer glibc. Not even rpm2cpio loads. So you have to install locally glibc (NOT INTO THE NORMAL LOCATION FOR IT), libzstd1 and liblua from the initrd image of a network installer. Since the new glibc is incompatible with ld-linux.so, you need to invoke the new ld-linux.so directly. IF YOU INSTALL GLIBC INTO THE NORMAL LOCATION, YOU WILL NOT BE ABLE TO RUN BASIC TOOLS LIKE rm, I.E. THERE WILL BE NO WAY BACK!!! Under these circumstances rpm still fails but the call of { env LD_LIBRARY_PATH=��� ���/ld-linux.so rmp2cpio; } is likely to succeed; use this to extract the CPIO archive of glibc, libzstd1 and liblua. Use { cpio -i ���; } to install them into the normal location. You can run { rpm; } now; it will convert bdb to ndb first. The rest is about a hundred packages you need to explicitly install with { rpm -i ���; } (as zypper is still broken). Which packages are needed depends on which packages you have installed. All of them must be installed in one run, mainly because they require the new glibc either directly or indirectly. Some of them can be installed onto the old glibc (you already have the new one but rpm thinks you have the old one) but most of them are not. This includes PERL, python ruby and all packages that require them. You also have to manually delete scores of packages that require those scripting languages, including the whole of YaST2 itself. RPM cannot figure out it reinstalls YaST2 because storage-ng is not a replacement for storage (or so I think). Of course, there are YaST2 packages, like inetd, that are obsolete and need to be removed by hand anyway. At this point, you can proceed with zypper because it works again. A funny detail is that you have to remove xscreensaver because pam_unix does not explicitly replace pam-modules. I think much of this tinkering could be avoided if the basic packages were not zstd1-compressed (at least, if zypper could pick up a version that is not). -- You are receiving this mail because: You are on the CC list for the bug.
![](https://seccdn.libravatar.org/avatar/a895f78a81a109471893519443e4d933.jpg?s=120&d=mm&r=g)
http://bugzilla.opensuse.org/show_bug.cgi?id=1185731 Christopher Yeleighton <giecrilj@stegny.2a.pl> changed: What |Removed |Added ---------------------------------------------------------------------------- Found By|--- |Community User -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@suse.com