From bdad382851b18022231be5c9dfd502d151c03fef Mon Sep 17 00:00:00 2001 From: Emily Date: Fri, 11 Oct 2024 19:46:23 +0100 Subject: [PATCH 1/2] deno_1: drop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Upstream do not plan to support this version (see ), so we should not package a version that will surely accumulate CVEs from V8 etc. in 24.11. As this package was only added yesterday, I don’t think there’s any need for a compatibility alias. --- .../manual/release-notes/rl-2411.section.md | 3 +- pkgs/by-name/de/deno/1/librusty_v8.nix | 12 -- pkgs/by-name/de/deno/1/package.nix | 118 ------------------ pkgs/by-name/de/deno/1/tests/basic.ts | 1 - pkgs/by-name/de/deno/1/tests/default.nix | 79 ------------ .../de/deno/1/tests/import-json/data.json | 1 - .../de/deno/1/tests/import-json/index.ts | 2 - .../de/deno/1/tests/import-ts/index.ts | 3 - pkgs/by-name/de/deno/1/tests/import-ts/lib.ts | 3 - .../de/deno/1/tests/read-file/data.txt | 1 - .../de/deno/1/tests/read-file/index.ts | 5 - pkgs/top-level/all-packages.nix | 2 - 12 files changed, 2 insertions(+), 228 deletions(-) delete mode 100644 pkgs/by-name/de/deno/1/librusty_v8.nix delete mode 100644 pkgs/by-name/de/deno/1/package.nix delete mode 100644 pkgs/by-name/de/deno/1/tests/basic.ts delete mode 100644 pkgs/by-name/de/deno/1/tests/default.nix delete mode 100644 pkgs/by-name/de/deno/1/tests/import-json/data.json delete mode 100644 pkgs/by-name/de/deno/1/tests/import-json/index.ts delete mode 100644 pkgs/by-name/de/deno/1/tests/import-ts/index.ts delete mode 100644 pkgs/by-name/de/deno/1/tests/import-ts/lib.ts delete mode 100644 pkgs/by-name/de/deno/1/tests/read-file/data.txt delete mode 100644 pkgs/by-name/de/deno/1/tests/read-file/index.ts diff --git a/nixos/doc/manual/release-notes/rl-2411.section.md b/nixos/doc/manual/release-notes/rl-2411.section.md index 939d74e55e23..ab0a7c7ebdcc 100644 --- a/nixos/doc/manual/release-notes/rl-2411.section.md +++ b/nixos/doc/manual/release-notes/rl-2411.section.md @@ -207,7 +207,8 @@ - `grafana` has been updated to version 11.1. This version doesn't support setting `http_addr` to a hostname anymore, an IP address is expected. -- `deno` has been updated to v2 which has breaking changes. Upstream will be abandoning v1 soon but for now you can use `deno_1` if you are yet to migrate (will be removed prior to cutting a final 24.11 release). +- `deno` has been updated to Deno 2, which has breaking changes. + See the [migration guide](https://docs.deno.com/runtime/reference/migration_guide/) for details. - `knot-dns` has been updated to version 3.4.x. Check the [migration guide](https://www.knot-dns.cz/docs/latest/html/migration.html#upgrade-3-3-x-to-3-4-x) for breaking changes. diff --git a/pkgs/by-name/de/deno/1/librusty_v8.nix b/pkgs/by-name/de/deno/1/librusty_v8.nix deleted file mode 100644 index f36371830ebf..000000000000 --- a/pkgs/by-name/de/deno/1/librusty_v8.nix +++ /dev/null @@ -1,12 +0,0 @@ -# auto-generated file -- DO NOT EDIT! -{ fetchLibrustyV8 }: - -fetchLibrustyV8 { - version = "0.105.0"; - shas = { - x86_64-linux = "sha256-9yON4DNPxm4IUZSLZp9VZtzSRPPWX1tEuQLVJmN8cLs="; - aarch64-linux = "sha256-5vAjw2vimjCHKPxjIp5vcwMCWUUDYVlk4QyOeEI0DLY="; - x86_64-darwin = "sha256-o4WRkg4ptiJTNMkorn5K+P8xOJwpChM5PqkZCjP076g="; - aarch64-darwin = "sha256-ZuWBnvxu1PgDtjtguxtj3BhFO01AChlbjAS0kZUws3A="; - }; -} diff --git a/pkgs/by-name/de/deno/1/package.nix b/pkgs/by-name/de/deno/1/package.nix deleted file mode 100644 index 3b2774153171..000000000000 --- a/pkgs/by-name/de/deno/1/package.nix +++ /dev/null @@ -1,118 +0,0 @@ -{ - stdenv, - lib, - callPackage, - fetchFromGitHub, - rustPlatform, - cmake, - protobuf, - installShellFiles, - libiconv, - darwin, - librusty_v8 ? callPackage ./librusty_v8.nix { - inherit (callPackage ../fetchers.nix { }) fetchLibrustyV8; - }, -}: -rustPlatform.buildRustPackage rec { - pname = "deno"; - version = "1.46.3"; - - src = fetchFromGitHub { - owner = "denoland"; - repo = "deno"; - rev = "refs/tags/v${version}"; - hash = "sha256-AM6SjcIHo6Koxcnznhkv3cXoKaMy2TEVpiWe/bczDuA="; - }; - - cargoHash = "sha256-D+CZpb6OTzM5Il0k8GQB7qSONy4myE5yKlaSkLLqHT8="; - - postPatch = '' - # upstream uses lld on aarch64-darwin for faster builds - # within nix lld looks for CoreFoundation rather than CoreFoundation.tbd and fails - substituteInPlace .cargo/config.toml --replace "-fuse-ld=lld " "" - ''; - - # uses zlib-ng but can't dynamically link yet - # https://github.com/rust-lang/libz-sys/issues/158 - nativeBuildInputs = [ - # required by libz-ng-sys crate - cmake - # required by deno_kv crate - protobuf - installShellFiles - ]; - buildInputs = lib.optionals stdenv.isDarwin ( - [ - libiconv - darwin.libobjc - ] - ++ (with darwin.apple_sdk_11_0.frameworks; [ - Security - CoreServices - Metal - MetalPerformanceShaders - Foundation - QuartzCore - ]) - ); - - buildAndTestSubdir = "cli"; - - # work around "error: unknown warning group '-Wunused-but-set-parameter'" - env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-unknown-warning-option"; - # The v8 package will try to download a `librusty_v8.a` release at build time to our read-only filesystem - # To avoid this we pre-download the file and export it via RUSTY_V8_ARCHIVE - env.RUSTY_V8_ARCHIVE = librusty_v8; - - # Tests have some inconsistencies between runs with output integration tests - # Skipping until resolved - doCheck = false; - - preInstall = '' - find ./target -name libswc_common${stdenv.hostPlatform.extensions.sharedLibrary} -delete - ''; - - postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) '' - installShellCompletion --cmd deno \ - --bash <($out/bin/deno completions bash) \ - --fish <($out/bin/deno completions fish) \ - --zsh <($out/bin/deno completions zsh) - ''; - - doInstallCheck = true; - installCheckPhase = '' - runHook preInstallCheck - $out/bin/deno --help - $out/bin/deno --version | grep "deno ${version}" - runHook postInstallCheck - ''; - - passthru.tests = callPackage ./tests { }; - - meta = with lib; { - homepage = "https://deno.land/"; - changelog = "https://github.com/denoland/deno/releases/tag/v${version}"; - description = "Secure runtime for JavaScript and TypeScript"; - longDescription = '' - Deno aims to be a productive and secure scripting environment for the modern programmer. - Deno will always be distributed as a single executable. - Given a URL to a Deno program, it is runnable with nothing more than the ~15 megabyte zipped executable. - Deno explicitly takes on the role of both runtime and package manager. - It uses a standard browser-compatible protocol for loading modules: URLs. - Among other things, Deno is a great replacement for utility scripts that may have been historically written with - bash or python. - ''; - license = licenses.mit; - mainProgram = "deno"; - maintainers = with maintainers; [ jk ]; - platforms = [ - "x86_64-linux" - "aarch64-linux" - "x86_64-darwin" - "aarch64-darwin" - ]; - # NOTE: `aligned_alloc` error on darwin SDK < 10.15. Can't do usual overrideSDK with rust toolchain in current implementation. - # Should be fixed with darwin SDK refactor and can be revisited. - badPlatforms = [ "x86_64-darwin" ]; - }; -} diff --git a/pkgs/by-name/de/deno/1/tests/basic.ts b/pkgs/by-name/de/deno/1/tests/basic.ts deleted file mode 100644 index 5959aa217b3c..000000000000 --- a/pkgs/by-name/de/deno/1/tests/basic.ts +++ /dev/null @@ -1 +0,0 @@ -console.log(1 + 1) diff --git a/pkgs/by-name/de/deno/1/tests/default.nix b/pkgs/by-name/de/deno/1/tests/default.nix deleted file mode 100644 index c28490ee0d00..000000000000 --- a/pkgs/by-name/de/deno/1/tests/default.nix +++ /dev/null @@ -1,79 +0,0 @@ -{ - deno, - runCommand, - lib, - testers, -}: -let - testDenoRun = - name: - { - args ? "", - dir ? ./. + "/${name}", - file ? "index.ts", - expected ? "", - expectFailure ? false, - }: - let - command = "deno run ${args} ${dir}/${file}"; - in - runCommand "deno-test-${name}" - { - nativeBuildInputs = [ deno ]; - meta.timeout = 60; - } - '' - HOME=$(mktemp -d) - if output=$(${command} 2>&1); then - if [[ $output =~ '${expected}' ]]; then - echo "Test '${name}' passed" - touch $out - else - echo -n ${lib.escapeShellArg command} >&2 - echo " output did not match what was expected." >&2 - echo "The expected was:" >&2 - echo '${expected}' >&2 - echo "The output was:" >&2 - echo "$output" >&2 - exit 1 - fi - else - if [[ "${toString expectFailure}" == "1" ]]; then - echo "Test '${name}' failed as expected" - touch $out - exit 0 - fi - echo -n ${lib.escapeShellArg command} >&2 - echo " returned a non-zero exit code." >&2 - echo "$output" >&2 - exit 1 - fi - ''; -in -(lib.mapAttrs testDenoRun { - basic = { - dir = ./.; - file = "basic.ts"; - expected = "2"; - }; - import-json = { - expected = "hello from JSON"; - }; - import-ts = { - expected = "hello from ts"; - }; - read-file = { - args = "--allow-read"; - expected = "hello from a file"; - }; - fail-read-file = { - expectFailure = true; - dir = ./read-file; - }; -}) -// { - version = testers.testVersion { - package = deno; - command = "deno --version"; - }; -} diff --git a/pkgs/by-name/de/deno/1/tests/import-json/data.json b/pkgs/by-name/de/deno/1/tests/import-json/data.json deleted file mode 100644 index 7f0de9ebe0b9..000000000000 --- a/pkgs/by-name/de/deno/1/tests/import-json/data.json +++ /dev/null @@ -1 +0,0 @@ -{ "msg": "hello from JSON" } diff --git a/pkgs/by-name/de/deno/1/tests/import-json/index.ts b/pkgs/by-name/de/deno/1/tests/import-json/index.ts deleted file mode 100644 index 525f25f74da2..000000000000 --- a/pkgs/by-name/de/deno/1/tests/import-json/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -import file from "./data.json" assert { type: "json" }; -console.log(file.msg); diff --git a/pkgs/by-name/de/deno/1/tests/import-ts/index.ts b/pkgs/by-name/de/deno/1/tests/import-ts/index.ts deleted file mode 100644 index 34fec283a169..000000000000 --- a/pkgs/by-name/de/deno/1/tests/import-ts/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { sayHello } from "./lib.ts" - -sayHello("ts") diff --git a/pkgs/by-name/de/deno/1/tests/import-ts/lib.ts b/pkgs/by-name/de/deno/1/tests/import-ts/lib.ts deleted file mode 100644 index 3b5e05aaaaf3..000000000000 --- a/pkgs/by-name/de/deno/1/tests/import-ts/lib.ts +++ /dev/null @@ -1,3 +0,0 @@ -export function sayHello(thing: string) { - console.log(`hello from ${thing}`); -} diff --git a/pkgs/by-name/de/deno/1/tests/read-file/data.txt b/pkgs/by-name/de/deno/1/tests/read-file/data.txt deleted file mode 100644 index 7eee1b0c107c..000000000000 --- a/pkgs/by-name/de/deno/1/tests/read-file/data.txt +++ /dev/null @@ -1 +0,0 @@ -hello from a file diff --git a/pkgs/by-name/de/deno/1/tests/read-file/index.ts b/pkgs/by-name/de/deno/1/tests/read-file/index.ts deleted file mode 100644 index be792a3d6628..000000000000 --- a/pkgs/by-name/de/deno/1/tests/read-file/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -// trim 'file://' prefix -const thisDir = Deno.mainModule.substring(7, Deno.mainModule.length); -const getParent = (path: string) => path.substring(0, path.lastIndexOf("/")) -const text = await Deno.readTextFile(getParent(thisDir) + "/data.txt"); -console.log(text); diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1398261eda7e..436e4d9f3b91 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6820,8 +6820,6 @@ with pkgs; deer = callPackage ../shells/zsh/zsh-deer { }; - deno_1 = callPackage ../by-name/de/deno/1/package.nix { }; - deqp-runner = callPackage ../tools/graphics/deqp-runner { }; detox = callPackage ../tools/misc/detox { }; From b97ec51b9b7d5554b4346ce67a918785c63baa49 Mon Sep 17 00:00:00 2001 From: Emily Date: Fri, 11 Oct 2024 19:46:23 +0100 Subject: [PATCH 2/2] deno: fix on `x86_64-darwin` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It’s not clear to me what SDK version this actually ideally wants, but `apple-sdk_11` is a conservative choice for now. --- pkgs/by-name/de/deno/package.nix | 27 ++++++++------------------- 1 file changed, 8 insertions(+), 19 deletions(-) diff --git a/pkgs/by-name/de/deno/package.nix b/pkgs/by-name/de/deno/package.nix index efb9cdcf7941..5f9ec2885562 100644 --- a/pkgs/by-name/de/deno/package.nix +++ b/pkgs/by-name/de/deno/package.nix @@ -7,8 +7,8 @@ cmake, protobuf, installShellFiles, - libiconv, - darwin, + apple-sdk_11, + darwinMinVersionHook, librusty_v8 ? callPackage ./librusty_v8.nix { inherit (callPackage ./fetchers.nix { }) fetchLibrustyV8; }, @@ -45,20 +45,12 @@ rustPlatform.buildRustPackage rec { protobuf installShellFiles ]; - buildInputs = lib.optionals stdenv.isDarwin ( - [ - libiconv - darwin.libobjc - ] - ++ (with darwin.apple_sdk_11_0.frameworks; [ - Security - CoreServices - Metal - MetalPerformanceShaders - Foundation - QuartzCore - ]) - ); + + buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ + apple-sdk_11 + # V8 supports 10.15+; binary references `aligned_alloc` directly + (darwinMinVersionHook "10.15") + ]; buildAndTestSubdir = "cli"; @@ -116,8 +108,5 @@ rustPlatform.buildRustPackage rec { "x86_64-darwin" "aarch64-darwin" ]; - # NOTE: `aligned_alloc` error on darwin SDK < 10.15. Can't do usual overrideSDK with rust toolchain in current implementation. - # Should be fixed with darwin SDK refactor and can be revisited. - badPlatforms = [ "x86_64-darwin" ]; }; }