Hi Jelle,

As discussed in our recent IRC conversation, I believe we can move forward with the migration and push the zlib-ng and zlib-ng-compat packages, which will replace the current zlib package.

There are currently not too many packages that utilize the native zlib-ng. However, we can begin migrating these packages gradually over time.

To proceed, the zlib-ng and zlib-ng-compat packages should be moved to **core** instead of remaining in extra.

The migration process should follow these steps:
1. Push zlib-ng and zlib-ng-compat into core-staging with the necessary replaces fields.
2. Migrate the following packages to use the native zlib-ng:
   - minizip-ng
   - gitoxide
   - onefetch
   - starship

For your reference, here is an example PKGBUILD for zlib-ng and zlib-ng-compat as a split package:
https://github.com/CachyOS/CachyOS-PKGBUILDS/blob/master/zlib-ng/zlib-ng/PKGBUILD

Please note that zlib-ng-compat will replace zlib The zlib-ng package does not need to be installed by default and will only be required for upcoming dependencies.

The replaced zlib-ng-compat layer does not require to rebuild all packages depending currently on zlib.

Best regards,
Peter

On 28.08.23 09:38, Jelle van der Waa wrote:
Hey All,

I noticed Fedora is discussing switching from zlib to zlib-ng. zlib-ng
is a fork of zlib, which seems to offer ~ 40% better performance and a
new API. We have about ~ 1000 packages depending on zlib, zlib-ng does
offer a compat option to keep zlib API compatibility. [1]

# Proposal

  From a discussion in #archlinux-staff. It was determined that a
possible plan would be to introduce zlib-ng as package in [extra] with
the modern API enabled, we can then migrate packages over that are
compatible to the new API.

A zlib-ng-compat package can be provided, as proposed by Fedora, that
activates the zlib API compatibility mode and directly provides libz.so.
This package can provide/conflict the original zlib package, and
potentially be target to replace zlib all together.

In short:

zlib-ng would provide libz-ng.so
zlib-ng-compat would provide libz.so


# Packages which might be able to use zlib-ng

Alpine offers a package which has 6 required packages.[2]
Debian's codesearch suggests a few packages seem to mention a possible
zlib-ng compatibility. [3]

These notes where written down last Thursday, in the meantime, Anthraxx
uploaded zlib-ng to [extra], so we can start switching packages which
use the modern API over. Replacing zlib with zlib-ng-compact is
something we need to discuss, I've overheard so far that some test
suites fail because they check the compressed test artifact's hash which
with zlib-ng can be different.

[1]
https://lists.fedoraproject.org/archives/list/ devel%40lists.fedoraproject.org/message/CDNPJ4SOTRQMYVCDI3ZSY4SP4FYESCWD/
[2]https://pkgs.alpinelinux.org/package/edge/community/x86/zlib-ng
[3]https://codesearch.debian.net/search?q=zlib-ng&literal=1&perpkg=1

Greetings,

Jelle van der Waa & Anthraxx


Reply via email to