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 zlib-ng #20815

Open
6 tasks done
esator opened this issue May 6, 2024 · 12 comments · May be fixed by #20844
Open
6 tasks done

Add zlib-ng #20815

esator opened this issue May 6, 2024 · 12 comments · May be fixed by #20844

Comments

@esator
Copy link

esator commented May 6, 2024

Package name

zlib-ng

Brief description of package

Zlib replacement with optimizations for "next generation" systems

URL for package's homepage

https://github.com/zlib-ng/zlib-ng

Provide a basic test case to validate the package's functionality.

No response

MINGW environments where you need the package

  • MINGW64
  • MINGW32
  • UCRT64
  • CLANG64
  • CLANG32
  • CLANGARM64

Are you willing to submit a PR?

No response

@ognevny ognevny linked a pull request May 9, 2024 that will close this issue
@ognevny
Copy link
Collaborator

ognevny commented May 9, 2024

I've created #20844 which adds zlib-ng. can you download it from artifacts and test, please? FYI I disabled almost all cpu optimizations to meet Windows 10 minimum hardware requirements

@Andarwinux
Copy link

zlib-ng without intrinsic function optimization is useless.

@ognevny
Copy link
Collaborator

ognevny commented May 9, 2024

zlib-ng without intrinsic function optimization is useless.

they shouldn't broke the support of all machines, right?

@Andarwinux
Copy link

Didn't you know they implemented runtime detection?

@ognevny
Copy link
Collaborator

ognevny commented May 9, 2024

Didn't you know they implemented runtime detection?

no, I didn't know. thanks for clarification

@esator
Copy link
Author

esator commented May 9, 2024

Thanks, maybe for compat mode completely mimic zlib including lib names?
So it would be the similar zlib1.dll for shared etc, (like in zlib-ng-win-x86-64-compat.zip) for better compatibility/replaceability and because zlib-ng completely replaces zlib
Also for packages, when installing zlib-ng (with compat), zlib should be removed and vice versa
But not sure if that is the best way, maybe @Andarwinux or someone else will suggest a better solution

@ognevny
Copy link
Collaborator

ognevny commented May 9, 2024

Thanks, maybe for compat mode completely mimic zlib including lib names?
So it would be the similar zlib1.dll for shared etc, (like in zlib-ng-win-x86-64-compat.zip) for better compatibility/replaceability and because zlib-ng completely replaces zlib
Also for packages, when installing zlib-ng (with compat), zlib should be removed and vice versa
But not sure if that is the best way, maybe @Andarwinux or someone else will suggest a better solution

lib prefix is added by build system. in arch only zlib-ng-compat conflicts with common zlib

@Andarwinux
Copy link

The goal of zlib-ng-compat is to be as compatible as possible with the original zlib, but it is not possible to achieve 100% compatibility. Therefore I prefer to replace the original zlib with zlib-ng completely, in order to find all the problems at once and fix them once and for all. This would benefit all packages. Otherwise we have to wait for a random user to accidentally find a compatibility problem.

https://github.com/zlib-ng/zlib-ng/blob/develop/PORTING.md
zlib-ng/zlib-ng#1708
https://discussion.fedoraproject.org/t/f40-change-proposal-transitioning-to-zlib-ng-as-a-compatible-replacement-for-zlib-system-wide/95807

@ognevny
Copy link
Collaborator

ognevny commented May 9, 2024

I know 0 distributions which completely replaced zlib with zlib-ng. let me know if there is some

@Andarwinux
Copy link

I know 0 distributions which completely replaced zlib with zlib-ng. let me know if there is some

Fedora 40 has replaced zlib globally with zlib-ng-compat system-wide, so all RH family distributions will do the same.

@esator
Copy link
Author

esator commented May 9, 2024

lib prefix is added by build system. in arch only zlib-ng-compat conflicts with common zlib

Yeah I mean just zlib-ng-compat, it will be much easier as a drop-in replacement
https://cmake.cmake.narkive.com/xllUSUaG/remove-lib-prefix-when-generating-shared-lib-under-windows

@ognevny
Copy link
Collaborator

ognevny commented May 9, 2024

I know 0 distributions which completely replaced zlib with zlib-ng. let me know if there is some

Fedora 40 has replaced zlib globally with zlib-ng-compat system-wide, so all RH family distributions will do the same.

ok, sounds interesting

@lazka
@Biswa96
what do you think?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants