F40 Change Proposal: Transitioning to Zlib-ng as a compatible replacement for Zlib (System-Wide)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Wiki -> https://fedoraproject.org/wiki/Changes/ZlibNGTransition

This document represents a proposed Change. As part of the Changes
process, proposals are publicly announced in order to receive
community feedback. This proposal will only be implemented if approved
by the Fedora Engineering Steering Committee.


== Summary ==
Replace Zlib with Zlib-ng. This change is strongly tied to
[[Changes/MinizipNGTransition]].

== Owner ==
* Name: [[User:tuliom| Tulio Magno Quites Machado Filho]],
[[User:ljavorsk| Lukas Javorsky]], [[User:aekoroglu|Ali Erdinc
Koroglu]], [[User:fweimer| Florian Weimer]], [[User:Dcavalca| Davide
Cavalca]], [[User:Ngompa| Neal Gompa]]
* Email: tuliom@xxxxxxxxxx, ljavorsk@xxxxxxxxxx,
ali.erdinc.koroglu@xxxxxxxxx, fweimer@xxxxxxxxxx, davide@xxxxxxxxxxxx,
ngompa13@xxxxxxxxx


== Detailed Description ==
Zlib has long served as a reliable compression library, but its
performance on modern CPU architectures does not fully utilize their
capabilities. The transition to Zlib-ng aims to enhance the
compression efficiency and performance for Fedora while ensuring
compatibility with existing packages and libraries.

== Feedback ==


== Benefit to Fedora ==
* Zlib-ng supports hardware acceleration when available
** Adler32 implementation using SSSE3, AVX2, AVX512, AVX512-VNNI,
Neon, VMX & VSX
** CRC32-B implementation using PCLMULQDQ, VPCLMULQDQ, ACLE, & IBM Z
** Hash table implementation using CRC32-C intrinsics on x86 and ARM
** Slide hash implementations using SSE2, AVX2, ARMv6, Neon, VMX & VSX
** Compare256 implementations using SSE2, AVX2, Neon, POWER9 & RVV
** Inflate chunk copying using SSE2, SSSE3, AVX, Neon & VSX
** Support for hardware-accelerated deflate using IBM Z DFLTCC
* Includes Intel and Cloudflare optimizations
* Uses code sanitizers, fuzzing, and code coverage

== Scope ==
* Proposal owners:
** Zlib-ng will be rebuilt with zlib-compatible API, obsoleting zlib-1.2
*** Zlib-ng compat mode will be distributed in a new package called
zlib-ng-compat, with its respective zlib-ng-compat-devel.
*** Initially, zlib-ng-compat will provide zlib = 1.2.13 and
zlib-ng-compat-devel will provide zlib = 1.2.13.
*** These versions will be updated following the support added to
zlib-ng upstream.
** Considering the new packages promise to be ABI-compatible with
zlib, the packages depending on zlib won't be rebuilt.
*** This may help to catch ABI-compatibility issues soon.
* Other developers: Help with build failures may be requested.
* Release engineering: No action required
* Policies and guidelines: N/A
* Trademark approval: N/A
* Alignment with Objectives: N/A

== Upgrade/compatibility impact ==
Zlib-ng has a zlib-compat mode that aims to preserve both API and ABI
compatibility with the original Zlib. However certain application
tests may rely on hardcoded checksums for the compressed output. These
tests could fail due to various changes, even if the compressed output
remains valid and decompresses correctly.

== How To Test ==
Update the system, verify that it does not break other packages.

== User Experience ==
This change will increase compression efficiency and performance

== Dependencies ==
Zlib is a dependency for over 100 packages. Most of them are expected
not to fail or break.

== Contingency Plan ==
* Contingency mechanism: Revert the change to Zlib and rebuild
dependent packages.
* Contingency deadline: Beta freeze
* Blocks release? No

== Documentation ==

== Release Notes ==



-- 
Aoife Moloney

Fedora Operations Architect

Fedora Project

Matrix: @amoloney:fedora.im

IRC: amoloney
_______________________________________________
devel-announce mailing list -- devel-announce@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-announce-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel-announce@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux