about summary refs log tree commit diff
path: root/pkgs/development/web/nodejs/nodejs.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/web/nodejs/nodejs.nix')
-rw-r--r--pkgs/development/web/nodejs/nodejs.nix17
1 files changed, 17 insertions, 0 deletions
diff --git a/pkgs/development/web/nodejs/nodejs.nix b/pkgs/development/web/nodejs/nodejs.nix
index 96c8d9f64551..07c945e2b230 100644
--- a/pkgs/development/web/nodejs/nodejs.nix
+++ b/pkgs/development/web/nodejs/nodejs.nix
@@ -270,6 +270,23 @@ let
     checkFlags = [
       # Do not create __pycache__ when running tests.
       "PYTHONDONTWRITEBYTECODE=1"
+    ] ++ lib.optionals (stdenv.buildPlatform.isDarwin && stdenv.buildPlatform.isx86_64) [
+      # Python 3.12 introduced a warning for calling `os.fork()` in a
+      # multi‐threaded program. For some reason, the Node.js
+      # `tools/pseudo-tty.py` program used for PTY‐related tests
+      # triggers this warning on Hydra, on `x86_64-darwin` only,
+      # despite not creating any threads itself. This causes the
+      # Node.js test runner to misinterpret the warnings as part of the
+      # test output and fail. It does not reproduce reliably off Hydra
+      # on Intel Macs, or occur on the `aarch64-darwin` builds.
+      #
+      # This seems likely to be related to Rosetta 2, but it could also
+      # be some strange x86‐64‐only threading behaviour of the Darwin
+      # system libraries, or a bug in CPython, or something else
+      # haunted about the Nixpkgs/Hydra build environment. We silence
+      # the warnings in the hope that closing our eyes will make the
+      # ghosts go away.
+      "PYTHONWARNINGS=ignore::DeprecationWarning"
     ] ++ lib.optionals (!stdenv.buildPlatform.isDarwin || lib.versionAtLeast version "20") [
       "FLAKY_TESTS=skip"
       # Skip some tests that are not passing in this context