Loading pkgs/development/web/nodejs/v18.nix +23 −12 Original line number Diff line number Diff line { callPackage, lib, overrideCC, pkgs, buildPackages, openssl, python311, fetchpatch2, enableNpm ? true }: { callPackage, lib, openssl, python311, fetchpatch2, enableNpm ? true }: let # Clang 16+ cannot build Node v18 due to -Wenum-constexpr-conversion errors. # Use an older version of clang with the current libc++ for compatibility (e.g., with icu). ensureCompatibleCC = packages: if packages.stdenv.cc.isClang && lib.versionAtLeast (lib.getVersion packages.stdenv.cc.cc) "16" then overrideCC packages.llvmPackages_15.stdenv (packages.llvmPackages_15.stdenv.cc.override { inherit (packages.llvmPackages) libcxx; }) else packages.stdenv; buildNodejs = callPackage ./nodejs.nix { inherit openssl; stdenv = ensureCompatibleCC pkgs; buildPackages = buildPackages // { stdenv = ensureCompatibleCC buildPackages; }; python = python311; }; Loading Loading @@ -47,5 +36,27 @@ buildNodejs { url = "https://github.com/nodejs/node/commit/d0a6b605fba6cd69a82e6f12ff0363eef8fe1ee9.patch"; hash = "sha256-TfYal/PikRZHL6zpAlC3SmkYXCe+/8Gs83dLX/X/P/k="; }) # Remove unused `fdopen` in vendored zlib, which causes compilation failures with clang 18 on Darwin. (fetchpatch2 { url = "https://github.com/madler/zlib/commit/4bd9a71f3539b5ce47f0c67ab5e01f3196dc8ef9.patch?full_index=1"; extraPrefix = "deps/v8/third_party/zlib/"; stripLen = 1; hash = "sha256-WVxsoEcJu0WBTyelNrVQFTZxJhnekQb1GrueeRBRdnY="; }) # Backport V8 fixes for LLVM 19. (fetchpatch2 { url = "https://chromium.googlesource.com/v8/v8/+/182d9c05e78b1ddb1cb8242cd3628a7855a0336f%5E%21/?format=TEXT"; decode = "base64 -d"; extraPrefix = "deps/v8/"; stripLen = 1; hash = "sha256-bDTwFbATPn5W4VifWz/SqaiigXYDWHq785C64VezuUE="; }) (fetchpatch2 { url = "https://chromium.googlesource.com/v8/v8/+/1a3ecc2483b2dba6ab9f7e9f8f4b60dbfef504b7%5E%21/?format=TEXT"; decode = "base64 -d"; extraPrefix = "deps/v8/"; stripLen = 1; hash = "sha256-6y3aEqxNC4iTQEv1oewodJrhOHxjp5xZMq1P1QL94Rg="; }) ] ++ gypPatches; } pkgs/development/web/nodejs/v20.nix +22 −0 Original line number Diff line number Diff line Loading @@ -48,5 +48,27 @@ buildNodejs { url = "https://github.com/nodejs/node/commit/0f7bdcc17fbc7098b89f238f4bd8ecad9367887b.patch?full_index=1"; hash = "sha256-lXx6QyD2anlY9qAwjNMFM2VcHckBshghUF1NaMoaNl4="; }) # Remove unused `fdopen` in vendored zlib, which causes compilation failures with clang 18 on Darwin. (fetchpatch2 { url = "https://github.com/madler/zlib/commit/4bd9a71f3539b5ce47f0c67ab5e01f3196dc8ef9.patch?full_index=1"; extraPrefix = "deps/v8/third_party/zlib/"; stripLen = 1; hash = "sha256-WVxsoEcJu0WBTyelNrVQFTZxJhnekQb1GrueeRBRdnY="; }) # Backport V8 fixes for LLVM 19. (fetchpatch2 { url = "https://chromium.googlesource.com/v8/v8/+/182d9c05e78b1ddb1cb8242cd3628a7855a0336f%5E%21/?format=TEXT"; decode = "base64 -d"; extraPrefix = "deps/v8/"; stripLen = 1; hash = "sha256-bDTwFbATPn5W4VifWz/SqaiigXYDWHq785C64VezuUE="; }) (fetchpatch2 { url = "https://chromium.googlesource.com/v8/v8/+/1a3ecc2483b2dba6ab9f7e9f8f4b60dbfef504b7%5E%21/?format=TEXT"; decode = "base64 -d"; extraPrefix = "deps/v8/"; stripLen = 1; hash = "sha256-6y3aEqxNC4iTQEv1oewodJrhOHxjp5xZMq1P1QL94Rg="; }) ] ++ gypPatches; } Loading
pkgs/development/web/nodejs/v18.nix +23 −12 Original line number Diff line number Diff line { callPackage, lib, overrideCC, pkgs, buildPackages, openssl, python311, fetchpatch2, enableNpm ? true }: { callPackage, lib, openssl, python311, fetchpatch2, enableNpm ? true }: let # Clang 16+ cannot build Node v18 due to -Wenum-constexpr-conversion errors. # Use an older version of clang with the current libc++ for compatibility (e.g., with icu). ensureCompatibleCC = packages: if packages.stdenv.cc.isClang && lib.versionAtLeast (lib.getVersion packages.stdenv.cc.cc) "16" then overrideCC packages.llvmPackages_15.stdenv (packages.llvmPackages_15.stdenv.cc.override { inherit (packages.llvmPackages) libcxx; }) else packages.stdenv; buildNodejs = callPackage ./nodejs.nix { inherit openssl; stdenv = ensureCompatibleCC pkgs; buildPackages = buildPackages // { stdenv = ensureCompatibleCC buildPackages; }; python = python311; }; Loading Loading @@ -47,5 +36,27 @@ buildNodejs { url = "https://github.com/nodejs/node/commit/d0a6b605fba6cd69a82e6f12ff0363eef8fe1ee9.patch"; hash = "sha256-TfYal/PikRZHL6zpAlC3SmkYXCe+/8Gs83dLX/X/P/k="; }) # Remove unused `fdopen` in vendored zlib, which causes compilation failures with clang 18 on Darwin. (fetchpatch2 { url = "https://github.com/madler/zlib/commit/4bd9a71f3539b5ce47f0c67ab5e01f3196dc8ef9.patch?full_index=1"; extraPrefix = "deps/v8/third_party/zlib/"; stripLen = 1; hash = "sha256-WVxsoEcJu0WBTyelNrVQFTZxJhnekQb1GrueeRBRdnY="; }) # Backport V8 fixes for LLVM 19. (fetchpatch2 { url = "https://chromium.googlesource.com/v8/v8/+/182d9c05e78b1ddb1cb8242cd3628a7855a0336f%5E%21/?format=TEXT"; decode = "base64 -d"; extraPrefix = "deps/v8/"; stripLen = 1; hash = "sha256-bDTwFbATPn5W4VifWz/SqaiigXYDWHq785C64VezuUE="; }) (fetchpatch2 { url = "https://chromium.googlesource.com/v8/v8/+/1a3ecc2483b2dba6ab9f7e9f8f4b60dbfef504b7%5E%21/?format=TEXT"; decode = "base64 -d"; extraPrefix = "deps/v8/"; stripLen = 1; hash = "sha256-6y3aEqxNC4iTQEv1oewodJrhOHxjp5xZMq1P1QL94Rg="; }) ] ++ gypPatches; }
pkgs/development/web/nodejs/v20.nix +22 −0 Original line number Diff line number Diff line Loading @@ -48,5 +48,27 @@ buildNodejs { url = "https://github.com/nodejs/node/commit/0f7bdcc17fbc7098b89f238f4bd8ecad9367887b.patch?full_index=1"; hash = "sha256-lXx6QyD2anlY9qAwjNMFM2VcHckBshghUF1NaMoaNl4="; }) # Remove unused `fdopen` in vendored zlib, which causes compilation failures with clang 18 on Darwin. (fetchpatch2 { url = "https://github.com/madler/zlib/commit/4bd9a71f3539b5ce47f0c67ab5e01f3196dc8ef9.patch?full_index=1"; extraPrefix = "deps/v8/third_party/zlib/"; stripLen = 1; hash = "sha256-WVxsoEcJu0WBTyelNrVQFTZxJhnekQb1GrueeRBRdnY="; }) # Backport V8 fixes for LLVM 19. (fetchpatch2 { url = "https://chromium.googlesource.com/v8/v8/+/182d9c05e78b1ddb1cb8242cd3628a7855a0336f%5E%21/?format=TEXT"; decode = "base64 -d"; extraPrefix = "deps/v8/"; stripLen = 1; hash = "sha256-bDTwFbATPn5W4VifWz/SqaiigXYDWHq785C64VezuUE="; }) (fetchpatch2 { url = "https://chromium.googlesource.com/v8/v8/+/1a3ecc2483b2dba6ab9f7e9f8f4b60dbfef504b7%5E%21/?format=TEXT"; decode = "base64 -d"; extraPrefix = "deps/v8/"; stripLen = 1; hash = "sha256-6y3aEqxNC4iTQEv1oewodJrhOHxjp5xZMq1P1QL94Rg="; }) ] ++ gypPatches; }