A recurrning question with the zlib package in Debian is interest in the
various alternative zlib implementations that are out there.  There was
a long period where upstream zlib development seemed very stalled,
during that period people who wanted improvements started forking their
own projects.  The main ones I'm aware of are:

   zlib-ng:  https://github.com/zlib-ng/zlib-ng
   chromium: https://chromium.googlesource.com/chromium/src/third_party/zlib

zlib-ng seems pretty healthy, the chromium fork is less generally active
but is used by Chrome/ChromeOS which is a big userbase.

The main thing people seem excited about is performance work for modern
platforms though both projects have been doing other work on the code.
Unfortunately it looks like there is little interest in bringing these
forks together in spite of zlib's upstream development having picked up
a bit again.

Fedora did a transition to zlib-ng relatively recently, in version 40:

   https://fedoraproject.org/wiki/Changes/ZlibNGTransition
   https://packages.fedoraproject.org/pkgs/zlib/zlib/
   https://packages.fedoraproject.org/pkgs/zlib-ng/zlib-ng/

In the past I've pushed back on doing anything here since zlib is
essential and it seemed better to be consistent over the ecosystem than
to use a more niche implementation, and some of the early optimisation
efforts had not worked well on CPUs other than their immediate targets.
However given the user feedback and looking at the Fedora experience I
think it might be time to reevaluate that.  

Obviously it's far too late to do anything with the default for trixie,
we might want to evaluate doing something after the release but for now
it's too late.  

There's been some ongoing discussion (which sadly I wasn't looped into
most of) of zlib-ng in WNPP:

   https://bugs.debian.org/1002056

with some packaging done, but not AIUI building the zlib compatible ABI
for zlib-ng yet which would allow it to be used as a replacement.
Adding support for the compatible ABI allowing it to be an alternative
for standard zlib seems to me like an obvious step we could take, it
would need a lot of care given that zlib is essentially but would let
people get zlib-ng if they wanted, and if there are problems it can be
held in unstable (or experimental) to avoid impact on trixie.  This
would allow people to kick the tires.

Does anyone have thoughts on this?

Attachment: signature.asc
Description: PGP signature

Reply via email to