Open cmurf opened 5 years ago
fwiw, not really an issue for us, since this is simply RPM not supporting zstd in CentOS 7 or 8 currently.
OK so you're saying the retrace server isn't going to work for Fedora 31 bugs at all? Because Fedora 31 packages all use zstd.
For the moment, that’s exactly how it is. I believe there is a workaround coming to mock that would help us, since otherwise it’s waiting for CentOS 8.2 or so.
OK thanks
I don't really know what to say here. Maybe build a custom version of RPM for your server? Run it on Fedora instead?
F31 release is less than a month away; isn't it at all embarrassing to release without retrace functionality?
Thank you for your input, Michael, that was one option we considered.
Any update on this problem? Fedora 31 is almost out.
It's a problem, and a pain. For emergency hacks, there is an old "rpm2cpio.sh" script at https://github.com/rpm-software-management/rpm/blob/master/scripts/rpm2cpio.sh that might be easier to update for one-off work. The underlying lack of support for zstd in older RPM releases is also a problem for mock, at https://github.com/rpm-software-management/mock/issues/390 . There is a hack to use Fedoa 31 OS image tarballs and bootstrap with them, but it's not applicable to this issue.
I've heard that RHEL is including zstd support in RHEL 8.1, and thus it might be available in CentOS 8 soon, but I've not seen it working there yet.
@nkadel Could you please explain why exactly the bootstrap feature of mock does not solve this issue? We use it with csmock to be able to analyze f31+ packages even on el7 hosts and it works fine.
FYI, this will be closed as soon as https://github.com/abrt/retrace-server/pull/277 will be merged. We will do the release immediately after the merge.
The bootstrap feature for mock is slow, requires an additional image tarballl for mock to use, it causes double output of the lines of mock, it requires considerably more local components such as "podman" to be installed locally and to pull those OS images from somewhere else for no good reason other than zstd access, and provides no ability to take even a "noarch" python module from Fedora 31 and simply apply it locally or run "rpm2cpio" on it. The lack of "rpm2cpio" is nasty, it makes hard to even disassemble the upstream binary RPM to take a good look at its internal components. It might be possible to replicate or tune the published "rpm2cpio.sh" script, but I've not personally had or made time to do so.
The bootstrap capability in mock, so far, has also proven unreliable. It's still order sensitive to where the options are set, and there is a bug where it double publishes every line in the logs.
RHEL 8.1 is out, and does not contain a zstd capable rpm. I just checked.
@nkadel Thank you for sharing the details! I understand that it might not work reliably or efficiently in some cases. I was just curious about the underlying problems because for our csmock-based static analysis service the bootstrap feature in mock has been working surprisingly well so far.
I popped a fresh Fedora33, https://fedoramagazine.org/wsl-fedora-33/ Same problem porting another package to AmazonLinux2 which is still on the old rpm.
Is there a tool to decompress the zstd files and remove the dependency flag; or is this extract, edit rebuild the rpm?
These days, I avoid the confusion by running "mock" on Fedora to publish my RPM's for older operating systems. And yeah, for Amazon Linux 2 it's RHEL 7 based, so you're going to need to extract the SRPM and build from that. I publish plenty of srpm building repos to provide a leg up, look at https://github.com/nkadel/nkadel-git229-srpm for an example of taking apart an SRPM for doing a build in different environments.
The binary package I have is libc/kernel compatible, perhaps rpmrebuild needs a new flag like nocompress.
You're using the "mock" from Amazon Linux's channels?
If those are out of date, you may need to build your own mock.
I have the source, the problem is the source demands Debian style package names /facepalm. About to give up and git submodule the hashes of all the dependencies like Google does with Protobuf.
Crash with nodejs and I'm getting a retrace server error when reporting via GUI or CLI.
nodejs-12.10.0-1.fc31.x86_64