nginx / unit

NGINX Unit - universal web app server - a lightweight and versatile open source server that simplifies the application stack by natively executing application code across eight different programming language runtimes.
https://unit.nginx.org
Apache License 2.0
5.37k stars 323 forks source link

Unit fails to build against njs 0.8.2 and libxml2 2.12, or njs 0.8.3 #1157

Open remicollet opened 7 months ago

remicollet commented 7 months ago

According to https://github.com/nginx/unit/blob/master/auto/njs#L28

unit requires njs >= 0.8.0

njs 0.8.2 is not compatible with recent libxml2 2.12 njs 0.8.3 recently released is compatible, but introduces API change and is not usable by nginx/unit

Please update nginx/unit to use njs 0.8.3 (or at least fix the version check)

P.S. libxml 2.12 is default version in Fedora 40 (and probably some other distro)

callahad commented 7 months ago

Thank you for reporting!

Our docs on building from source note that we configure NJS with --no-zlib --no-libxml2, which would avoid the incompatibility between libxml2 2.12 and njs 0.8.2. Are you able to do that in your builds?

remicollet commented 7 months ago

Are you able to do that in your builds?

I simply apply https://github.com/nginx/njs/commit/239fc64f726a61ff54cc07e041472cb305633560 to 0.8.2

tippexs commented 7 months ago

Good morning! Yes, this was commited to njs in November 2023. The release of Version 0.8.2 we are currently using in Unit 1.32.0. See http://nginx.org/en/docs/njs/changes.html

Due to breaking changes in the njs-runtime, we have to modify core parts of the njs Implementation in Unit to make it compatible with njs 0.8.3. Let's keep this issue open until we resolved the issue with njs 0.8.3. Thanks for letting us know.