From c81cc831e35f522e2ada52a7243f522fa5c1bc26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oliv=C3=A9r=20Falvai?= Date: Thu, 12 Jun 2025 16:56:22 +0200 Subject: [PATCH] deno: 2.3.5 -> 2.3.6 --- pkgs/by-name/de/deno/package.nix | 59 +++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/de/deno/package.nix b/pkgs/by-name/de/deno/package.nix index 0357da7f37f5..2b4dbc877788 100644 --- a/pkgs/by-name/de/deno/package.nix +++ b/pkgs/by-name/de/deno/package.nix @@ -3,6 +3,7 @@ lib, callPackage, fetchFromGitHub, + fetchpatch, rustPlatform, cmake, yq, @@ -21,6 +22,7 @@ nodejs, git, python3, + esbuild, }: let @@ -28,18 +30,26 @@ let in rustPlatform.buildRustPackage (finalAttrs: { pname = "deno"; - version = "2.3.5"; + version = "2.3.6"; src = fetchFromGitHub { owner = "denoland"; repo = "deno"; tag = "v${finalAttrs.version}"; fetchSubmodules = true; # required for tests - hash = "sha256-lu3r1v3iB9NIruooRrV9NawUnKqufqlYJQe+Aumgn8E="; + hash = "sha256-l3cWnv2cEmoeecYj38eMIlgqlRjDbtQuc6Q3DmOJoqE="; }; useFetchCargoVendor = true; - cargoHash = "sha256-XJy7+cARYEX8tAPXLHJnEwXyZIwPaqhM7ZUzoem1Wo0="; + cargoHash = "sha256-alvn+d7XTYrw8KXw+k+++J3CsBwAUbQQlh24/EOEzwY="; + cargoPatches = [ + (fetchpatch { + name = "fix-sigsegv-on-x86_64-unknown-linux-gnu-targets"; + url = "https://github.com/denoland/deno/commit/400a9565c335b51d78c8909f4dbf1dbd4fb5e5d8.patch"; + hash = "sha256-dTIw7P6sB6Esf+lSe/gc3cX54GkzLWF5X55yxP/QYoo="; + includes = [ "cli/Cargo.toml" ]; + }) + ]; patches = [ ./tests-replace-hardcoded-paths.patch @@ -82,11 +92,42 @@ rustPlatform.buildRustPackage (finalAttrs: { # To avoid this we pre-download the file and export it via RUSTY_V8_ARCHIVE env.RUSTY_V8_ARCHIVE = librusty_v8; - preCheck = lib.optionalString stdenv.hostPlatform.isDarwin '' - # Unset the env var defined by bintools-wrapper because it triggers Deno's sandbox protection in some tests. - # ref: https://github.com/denoland/deno/pull/25271 - unset LD_DYLD_PATH - ''; + # Many tests depend on prebuilt binaries being present at `./third_party/prebuilt`. + # We provide nixpkgs binaries for these for all platforms, but the test runner itself only handles + # these four arch+platform combinations. + doCheck = + stdenv.hostPlatform.isDarwin + || (stdenv.hostPlatform.isLinux && (stdenv.hostPlatform.isAarch64 || stdenv.hostPlatform.isx86_64)); + + preCheck = + # Provide esbuild binary at `./third_party/prebuilt/` just like upstream: + # https://github.com/denoland/deno_third_party/tree/master/prebuilt + # https://github.com/denoland/deno/blob/main/tests/util/server/src/servers/npm_registry.rs#L402 + let + platform = + if stdenv.hostPlatform.isLinux then + "linux64" + else if stdenv.hostPlatform.isDarwin then + "mac" + else + throw "Unsupported platform"; + arch = + if stdenv.hostPlatform.isAarch64 then + "aarch64" + else if stdenv.hostPlatform.isx86_64 then + "x64" + else + throw "Unsupported architecture"; + in + '' + mkdir -p ./third_party/prebuilt/${platform} + cp ${lib.getExe esbuild} ./third_party/prebuilt/${platform}/esbuild-${arch} + '' + + lib.optionalString stdenv.hostPlatform.isDarwin '' + # Unset the env var defined by bintools-wrapper because it triggers Deno's sandbox protection in some tests. + # ref: https://github.com/denoland/deno/pull/25271 + unset LD_DYLD_PATH + ''; cargoTestFlags = [ "--lib" # unit tests @@ -119,6 +160,8 @@ rustPlatform.buildRustPackage (finalAttrs: { # Flaky "--skip=init::init_subcommand_serve" + "--skip=serve::deno_serve_parallel" + "--skip=js_unit_tests::stat_test" # timing-sensitive # Test hangs, needs investigation "--skip=repl::pty_complete_imports_no_panic_empty_specifier"