Skip to content
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

Add a support for decompressing Zstandard-compressed YAML files #610

Merged
merged 1 commit into from
Mar 30, 2023

Conversation

ppisar
Copy link
Collaborator

@ppisar ppisar commented Mar 30, 2023

Magic numbers and file name extension of Zstandard archives are taken from RFC 8878. File extensions were consuleted with crearerepo_c rpm-software-management/createrepo_c#345. Decompression is implemented with rpmio, which added the support in rpm-4.14.0. Zstandard support in rpmio is checked at run-time.

NOTE: Only standardized "zst" file name extension is suppored. I believe that createrepo_c won't implement nonstandard "zstd" extension
rpm-software-management/createrepo_c#345.

NOTE: Version bumped to 2.15 because this adds a new feature and enhances API.

TODO: Check interoperability with crearerepo_c when it receives the support.

TODO: Deprecate MODULEMD_COMPRESSION_TYPE_SENTINEL and remove it on next ABI break. This end of enum prevents from adding new enum values in natural order. E.g. if an application uses
MODULEMD_COMPRESSION_TYPE_SENTINEL for whatever reason, inserting a value before it would change MODULEMD_COMPRESSION_TYPE_SENTINEL value which is an ABI break. Funilly that value is not used anywhere in libmodulemd code. Only in tests to iterate over the enum.

#606

Magic numbers and file name extension of Zstandard archives are taken
from RFC 8878. File extensions were consuleted with crearerepo_c
<rpm-software-management/createrepo_c#345>.
Decompression is implemented with rpmio, which added the support in
rpm-4.14.0. Zstandard support in rpmio is checked at run-time.

NOTE: Only standardized "zst" file name extension is suppored.
I believe that createrepo_c won't implement nonstandard "zstd"
extension
<rpm-software-management/createrepo_c#345>.

NOTE: Version bumped to 2.15 because this adds a new feature and
enhances API.

TODO: Check interoperability with crearerepo_c when it receives the
support.

TODO: Deprecate MODULEMD_COMPRESSION_TYPE_SENTINEL and remove it on
next ABI break. This end of enum prevents from adding new enum values
in natural order. E.g. if an application uses
MODULEMD_COMPRESSION_TYPE_SENTINEL for whatever reason, inserting
a value before it would change MODULEMD_COMPRESSION_TYPE_SENTINEL
value which is an ABI break. Funilly that value is not used anywhere
in libmodulemd code. Only in tests to iterate over the enum.

fedora-modularity#606
@ppisar ppisar merged commit 0d1d7e4 into fedora-modularity:main Mar 30, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant