azurelinux
azurelinux copied to clipboard
libsolv: enable zstd support to match createrepo_c
Merge Checklist
All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)
- [X] The toolchain has been rebuilt successfully (or no changes were made to it)
- [X] The toolchain/worker package manifests are up-to-date
- [X] Any updated packages successfully build (or no packages were changed)
- [X] Packages depending on static components modified in this PR (Golang,
*-staticsubpackages, etc.) have had theirReleasetag incremented. - [X] Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
- [X] All package sources are available
- [X] cgmanifest files are up-to-date and sorted (
./cgmanifest.json,./toolkit/scripts/toolchain/cgmanifest.json,.github/workflows/cgmanifest.json) - [X] LICENSE-MAP files are up-to-date (
./LICENSES-AND-NOTICES/SPECS/data/licenses.json,./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md,./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON) - [X] All source files have up-to-date hashes in the
*.signatures.jsonfiles - [X]
sudo make go-tidy-allandsudo make go-test-coveragepass - [X] Documentation has been updated to match any changes to the build system
- [ ] Ready to merge
Summary
In 3.0, createrepo_c's default behavior is to create repodata files compressed using zstd; prior to this change, libsolv didn't support zstd, though, so tdnf/dnf/et al. couldn't actually handle those repos. As a workaround, the toolkit and manual invocations of createrepo_c for 3.0 have needed to use the --compatibility flag. Standard OSS tooling doesn't know to do this (nor should it have to), though; the right thing to do is to add support for zstd to libsolv, as other distros have done.
Change Log
Enable zstd support in libsolv at compile time.
Does this affect the toolchain?
Yes.
Test Methodology
Local build