-
Notifications
You must be signed in to change notification settings - Fork 377
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Default to zstd compression in v6 format #3312
Comments
Guess we should keep the default for source packages at gzip to maintain maximum compatibility. People will want to take srpm back to older versions and will want to at least install them there. Or is zstd old enough that we can assume older but still relevant rpm version would be built with zstd support? |
Oh, good question. Binary payload is what I was thinking of, anyhow. Sources tend to be compressed as-is, so there's not much benefit trying to further squeeze them. So yeah, lets leave src.rpm to gzdio. |
Keep the compression for source packages untouched to keep maximum forward compatibility for those. This also enables multi-threaded compression per default. Resolves: rpm-software-management#3312
This another example of a seemingly simple thing that on a closer look has all sorts of open questions... One way to actually "force" our v6 default would be using a different macro for it, eg %_binary_payload_6 and leave the non-versioned to older. |
I don't like that too much. Splitting the settings to different macros is not something we want to get into. Otherwise we'll have to question whether we need two different setting all over the place. |
That questioning is exactly what we should do actually. There are other items where the defaults might differ between v4 and v6, including but probably not limited to %_binary_filedigest_algorithm. So it pays to stop to think about it a bit: this is actually a broader problem, so how to handle this in a general manner? |
I'm not sure I understand why the default should remain the same. Don't most if not all relevant distros (like Fedora), in practice, override that value with their own distro-default config anyway? In that case, almost all users that care about building such SRPMs would already need to change the config to do so. edit: or distros can make that decision for them downstream if they deem it worthwhile Plus zstd support was added in RPM 4.14.0, so it ought to be the case that every distro newer than EL7 ought to support it. And EL7 is completely EOL from an upstream perspective and only receives ELS support. So I would say this is already a fairly minor problem. |
Keep the compression for source packages untouched to keep maximum forward compatibility for those. This also enables multi-threaded compression per default. Resolves: rpm-software-management#3312
OK, I pushed the macros expression as an example. For rpmbuild settings this could work in general. For rpm proper not so much. But may be there are not that many use cases for rpm itself. |
Keep the compression for source packages untouched to keep maximum forward compatibility for those. Resolves: rpm-software-management#3312
Suggested by @dralley in #2919:
gzip is ubiquitous but also getting long in the tooth and lacking threading options entirely. The best option in 2024 is probably zstd - its fast both ways, multithreads, used widely already and not to be overlooked: has an active upstream.
v6 will of course preserve the ability to switch the compressor, but defaulting to zstd makes it look a little more something from this millenium.
The text was updated successfully, but these errors were encountered: