NixOS 24.11 packages

last thread: Node.js 22 starter

Packages: https://tmpnix-gsdrv.glitch.me/release/built.html
Recommended script for installing these packages: NAR Flinger, a package installer in a single script

NixOS 24.11 is out! Here’s the packages, and here’s what all happened in building those.

nodejs - that cross-compiling-related problem

Nixpkgs changed how they build Node.js, in theory. When cross-compiling, nodejs: use ninja for build by tie · Pull Request #327653 · NixOS/nixpkgs · GitHub they somehow use an emulator now instead of… I don’t know what. Cross compiling shouldn’t affect us, as we’re building on x86_64 Glitch for x86_64 Glitch.

To recap, the setup they had before was incorrectly causing a lot of Node.js to be built twice even when not cross-compiling.

Whatever this new setup does, it avoids this and, I believe, manages to compile things only once. (I didn’t actually check the logs. They just built fast enough for me not to worry.)

With this change, I was able to compile Node.js 22 without ccache, in about 7 hours. In fact that’s a little faster than the previous setup with ccache, which I had reported about 8 hours in a previous thread. And Node.js 20 built in only about 4 hours. I have not looked into why Node.js 22 takes about twice as long to build.

nodejs - new tests enabled

Some time after the NixOS 24.05 branch off, nodejs: run JS test suite as part of the checks · NixOS/nixpkgs@b26563a · GitHub Nixpkgs enabled more tests from Node.js.

Side note: [Backport release-24.05] nodejs recent updates by aduh95 · Pull Request #325550 · NixOS/nixpkgs · GitHub Nixpkgs maintainers decided not to backport that test enablement to 24.05, but it also did kind of get mixed in with another backport, so the change is mostly there but with a line commented out to prevent the tests from actually being included in the build.

Anyway, one test from this suite runs 80 Node.js processes. We have a limit of 512 process IDs on Glitch. I have found out that running node uses about 11 process IDs. So that doesn’t fit, and that test fails.

I’ve added a patch to reduce that number of Node.js processes in that test.

A comment in that test file node/test/sequential/test-child-process-pass-fd.js at v18.20.5 · nodejs/node · GitHub suggests it was to check for a problem in “some OS X versions,” so we might be fine without such an exhaustive test here on Glitch with GNU/Linux.

bootstrap-tools

My feature addition to Nixpkgs to allow using custom bootstrap files is accepted, so now I can use a configuration file to specify the Glitch-compatible bootstrap files rather than patching the Nixpkgs expressions repository each time they update it.

To recap, we needed custom built bootstrap files because of Glitch’s old Linux kernel and idiosyncratic filtering for new unsupported system calls in its container runtime.

nix

Nix added a new test that doesn’t work right when compiling in our altered Nix store directory. I’ve submitted a patch to fix it tests: derivation-advanced-attributes unset NIX_STORE by wh0 · Pull Request #12012 · NixOS/nix · GitHub. A one-liner with like a page worth of PR description :face_with_spiral_eyes:


edit: one more thing

nix - that one sandboxed test

There was a test that didn’t work right in our non-sandbox-supporting environment. I had previously submitted a fix for it, and it was accepted, but the last NixOS release didn’t update to the newer Nix. Now they have, so I was able to get rid of that overlay patch.


Getting this release working was pretty smooth. We lucked out with not having to fuss with any new glibc problems. Or maybe there are new problems, and we just don’t know about them yet. It’s only been a few days since the NixOS release. Good work, me.

5 Likes

package version changes in this NixOS release:

nix 2.18 → 2.24
cmake 3.29 → 3.30
git 2.44 → 2.47
nodejs still 18, 20, 22
openssh 9.7p1 → 9.9p1
postgresql 15.8 → 16.5
graphviz 10.0 → 12.2
ruby 3.1 → 3.3
clang, llvm, lld 17.0 → 18.1
curl 8.7 → 8.11
findutils 4.9 → 4.10
gawk 5.2 → 5.3
gcc 13.2 → 13.3
glibc 2.39 → 2.40
less 643 → 668
openssl 3.0 → 3.3
perl 5.38 → 5.40
python 3.11 → 3.12
rust 1.77 → 1.82
sqlite 3.45 → 3.46
xz 5.4 → 5.6.3

1 Like