This relies on fd_write, which seems to be not made available for
Android for reasons I am not aware of. But the uvwasi does not seem to
rely on platform specific code, but relies on libuv which should be
platform depenedent.
zlib.createDeflate().write()
The plan was to do a coordinated disclosure with upstream as it is a
crash that was happening on all 32-bit Linux binaries, but upstream is
not willing to block releases for failures for 32-bit Linux, so we'll
have to go ahead and patch this ourselves.
The fix has also been sent upstream as in https://github.com/nodejs/node/pull/59623
Full writeup of the security report can be found on https://hackerone.com/reports/3302484Closestermux/termux-packages#25455
Tested on aarch64 device + termux-docker (all architectures).
No regressions found when running the test suite on device,
termux-docker is still failing a lot of tests, but it will need
significantly more effort to debug
- After https://github.com/termux/termux-packages/pull/25197, the termux-package-builder docker container will now contain `clang-19`, not `clang-18`, so all instances of `clang-18` and accompanying `-18` program names need to be renamed to `-19` instead.
- It should be noted that there is another kind of `clang`-hostbuild that can be found in termux-packages that uses NDK-`clang` to hostbuild rather than system-`clang`. Those do not have a number appended to their invocations of `clang`, so they are unaffected here and do not need to be modified.
- Introduce new variables `TERMUX_HOST_LLVM_MAJOR_VERSION` and `TERMUX_HOST_LLVM_BASE_DIR` in `scripts/properties.sh` to reduce the number of places where the llvm.org-provided LLVM installation version number needs to be updated to just 1
%ci:no-build
no regressions found when tested on aarch64 device.
Seems good to go. v24 also contains build fix for NDK r28a and r28b, so
we are set and ready for NDK r28.
This fix will be available for the upcoming nodejs-lts release as well
Seems to have fixed in the update to v24.x, it's still broken for
nodejs-lts though, so I still have no idea what broke it, but
considering it's experimental API, I'm not digging into it for the
moment
%ci:no-build no affect on the shipped debs
Also use clang instead of gcc for host build, as it consumes much less
memory than gcc and should also be faster in terms of compilation time.
On my 20 core machine, when building with docker, the build takes up
more than 16G, when using clang peak memory usage drops to 12-13G and
averages around 9-10G
Also install sqlite 32-bit packages on host as they are now needed for
nodejs build. The sqlite module for nodejs is marked experimental as of
now though
Some packages have issues with parallel builds and need to set
TERMUX_MAKE_PROCESSES=1. All other build variables that package
recipes set are prefixed with TERMUX_PKG, use that for MAKE_PROCESSES
as well for consistency.
%ci:no-build
This is needed to avoid auto-updater script warnings.
thunder-coding's message: don't try to autoupdate nodejs, that thing takes 2 whole hours to build for a single arch, and requires a lot of patch updates everytime. Also I run tests everytime I update it to ensure least bugs