On Fri, Nov 22, 2024 at 12:29:51PM +0100, Guillem Jover wrote:

> [ I'll try to summarize the current discussion and status, what might
>   be blockers, and a potential incremental way forward. ]

You CCed some people but not me so I only saw this today...

> On Wed, 2024-09-25 at 10:48:50 +0200, Mark Brown wrote:
> > On Tue, Sep 24, 2024 at 05:45:49PM +0200, Guillem Jover wrote:

> > We do OTOH package more software than most distros on more architectures
> > so we got a lot more exposure for testing coverage, and the revert would
> > involve switching the entire implementation which complicates things a
> > bit compared to a risky patch within a package.  I'm not totally
> > opposed, and if everything goes smoothly we could definitely implement
> > it within the timeframe, but it feels like an impactful change to
> > introduce now not having considered it sooner.

> True, also two months have passed since (that's on me!). At this time,
> I'm now not sure whether it is feasible to consider such a switch, even
> if there was agreement to do it. As it is, I think there are too many
> unknowns!

It does seem more safe to offer zlib-ng as an alternative at this
point...

> I did that, and the current WIP zlib-ng packaging provides now two
> builds, one with the new native zng_* API and another (tentatively)
> with the compat API/ABI one in libz-dev and libz1 binary packages.

> I've tentatively chosen those package names for the compat libraries
> to avoid having to go through NEW multiple times (with the assumption
> that we'd either go ahead with the switch or the packages could then
> simply be dropped). I think this should initially only be uploaded to
> experimental, to avoid getting packages built with either zlib or
> zlib-ng. But depending on the outcome of this discussion, I think other
> (probably better) options would be to perhaps name the compat packages
> something like libz-ng-compat*, or drop them completely?

The packages could have a different name and support diversion or
replacement of the zlib library packages?  That'd let people use them
if they wanted to.

>   * I've had concerns both about providing the zlib compat API and the
>     native zlib-ng API in sid, and then getting a mess of packages
>     linking against (true) zlib and against (native) zlib-ng, or
>     packages relying on specific behaviors from either and breaking
>     when switching from (true) zlib to zlib-ng-compat or vice versa,
>     for example.

What are those concerns?  Like Simon says the zlib and zlib-ng APIs are
just two separate APIs, they happen to have overlapping functionality
but while that might be a bit wasteful it's not obvious that there's any
actual problem.

>   * There were concerns (from Fay) about the output stream changing due
>     to a potential implementation switch and that affecting external
>     reproducibility. Personally I think while I can see how this is
>     annoying for the involved parties, it's part of the "you need
>     the same tools to generate the same output" premise that we also
>     assume in Debian. I guess keeping both implementations around
>     indefinitely, I think, would make this less of an issue, with the
>     potential drawbacks mentioned in the previous point.

Yes, I don't think this should be a blocker - this seems like it's on a
similar level to needing to use the same compilers.

>   * There was a concern (from Mike) about whether the performance gain
>     at the cost of stream size makes sense, given that the compression
>     level could be reduced instead to similar effect (?). I'm not sure
>     how these compare, so it would be interesting to analyze this,
>     because perhaps that's a less traumatic way to look at it (but that
>     might require redefining compression level semantics globally in
>     zlib, or patching users, with neither look very enticing options).
>     My perception from when I tested it is that the speed up was
>     significant enough and the size increase not so much, but… In any
>     case switching to zlib-ng upstream would also imply other benefits,
>     like (supposedly) a more responsive upstream with more frequent
>     releases, the new native API, and an implementation other
>     distributions are switching to.
>   * Some upstreams have started to use the zlib-ng native API, so
>     regardless of whether we plan a switch or not, I guess packaging
>     zlib-ng (w/ or w/ the compat API) might still make sense.

Yes, it seems clear that we should package zlib-ng and there's just a
question about handling of the compat interface it provides.

> After having written the above, and if Mark agrees, I think I'd opt for
> uploading zlib-ng to experimental, with the compat packages renamed to
> libz-ng-compat* or similar (even if that implies later on another trip
> through NEW if we want to perform a full switch), because that might
> make it easier to move them to sid as a way less disruptive change,
> even if we decide not to switch the default zlib implementation.

Yes, that sounds sensible to me.

Attachment: signature.asc
Description: PGP signature

Reply via email to