about summary refs log tree commit diff
path: root/pkgs/development/web/deno
diff options
context:
space:
mode:
author06kellyjac <dev@j-k.io>2021-03-03 12:05:28 +0000
committer06kellyjac <dev@j-k.io>2021-03-12 10:15:53 +0000
commitdd50d1df59a01ae201bd1536635471a5348ee68a (patch)
treeb7e51624c7b7b771ab3793c58a28aa2f42b34c35 /pkgs/development/web/deno
parent163ffe2fe41b9b0c757733388761c713e9457f39 (diff)
downloadnixlib-dd50d1df59a01ae201bd1536635471a5348ee68a.tar
nixlib-dd50d1df59a01ae201bd1536635471a5348ee68a.tar.gz
nixlib-dd50d1df59a01ae201bd1536635471a5348ee68a.tar.bz2
nixlib-dd50d1df59a01ae201bd1536635471a5348ee68a.tar.lz
nixlib-dd50d1df59a01ae201bd1536635471a5348ee68a.tar.xz
nixlib-dd50d1df59a01ae201bd1536635471a5348ee68a.tar.zst
nixlib-dd50d1df59a01ae201bd1536635471a5348ee68a.zip
deno: 1.6.3 -> 1.8.0
Added aarch64-darwin as it's been manually complied and added to
releases since 0.14.0

Removed fetchSubmodules as it couldn't fetch wpt at detached commit
a51d36327febebc8634d7b523a7e620f4ebdbf26. Doesn't seem required for much
other than testing.

Added installCheckPhase

Moved the librusty_v8 stuff within the preBuild phase and changed the
names

Skipped 1.7.X releases as there wasn't an aarch64-linux release of
librusty_v8.a available
Diffstat (limited to 'pkgs/development/web/deno')
-rw-r--r--pkgs/development/web/deno/default.nix64
-rw-r--r--pkgs/development/web/deno/deps.nix11
-rw-r--r--pkgs/development/web/deno/update/deps.ts6
-rwxr-xr-xpkgs/development/web/deno/update/update.ts1
4 files changed, 47 insertions, 35 deletions
diff --git a/pkgs/development/web/deno/default.nix b/pkgs/development/web/deno/default.nix
index 013b365bce8d..18fd53bd94b7 100644
--- a/pkgs/development/web/deno/default.nix
+++ b/pkgs/development/web/deno/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv
+{ stdenv
+, lib
 , fetchurl
 , fetchFromGitHub
 , rust
@@ -7,27 +8,18 @@
 , Security
 , CoreServices
 }:
-let
-  deps = import ./deps.nix { };
-  arch = rust.toRustTarget stdenv.hostPlatform;
-  rustyV8Lib = with deps.rustyV8Lib; fetchurl {
-    url = "https://github.com/denoland/rusty_v8/releases/download/v${version}/librusty_v8_release_${arch}.a";
-    sha256 = sha256s."${stdenv.hostPlatform.system}";
-    meta = { inherit version; };
-  };
-in
+
 rustPlatform.buildRustPackage rec {
   pname = "deno";
-  version = "1.6.3";
+  version = "1.8.0";
 
   src = fetchFromGitHub {
     owner = "denoland";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1wmkx458fpsfw57ysawxc0ghxag8v051hiyswm7nnb7gckrm6j8z";
-    fetchSubmodules = true;
+    sha256 = "sha256-26VTwc99XunkTqsdP4b7axjflLL93PGkgjGtMmI4/4A=";
   };
-  cargoSha256 = "08vzsp53019gmxkn8lpa6l84w3fvbrnr11lzrfgf99nmii6l2hq5";
+  cargoSha256 = "sha256-T/xu/uokDvf9nBXNL31oXl+L5KifSs+bF4J7Tfw37zs=";
 
   # Install completions post-install
   nativeBuildInputs = [ installShellFiles ];
@@ -36,17 +28,27 @@ rustPlatform.buildRustPackage rec {
 
   # The rusty_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 place it in the locations it will require it in advance
-  preBuild = ''
-    _rusty_v8_setup() {
-      for v in "$@"; do
-        dir="target/$v/gn_out/obj"
-        mkdir -p "$dir" && cp "${rustyV8Lib}" "$dir/librusty_v8.a"
-      done
-    }
+  preBuild =
+    let
+      inherit (import ./deps.nix { }) librusty_v8;
+      arch = rust.toRustTarget stdenv.hostPlatform;
+      librusty_v8_release = fetchurl {
+        url = "https://github.com/denoland/rusty_v8/releases/download/v${librusty_v8.version}/librusty_v8_release_${arch}.a";
+        sha256 = librusty_v8.sha256s.${stdenv.hostPlatform.system};
+        meta = { inherit (librusty_v8) version; };
+      };
+    in
+    ''
+      _rusty_v8_setup() {
+        for v in "$@"; do
+          dir="target/$v/gn_out/obj"
+          mkdir -p "$dir" && cp "${librusty_v8_release}" "$dir/librusty_v8.a"
+        done
+      }
 
-    # Copy over the `librusty_v8.a` file inside target/XYZ/gn_out/obj, symlink not allowed
-    _rusty_v8_setup "debug" "release" "${arch}/release"
-  '';
+      # Copy over the `librusty_v8.a` file inside target/XYZ/gn_out/obj, symlink not allowed
+      _rusty_v8_setup "debug" "release" "${arch}/release"
+    '';
 
   # Tests have some inconsistencies between runs with output integration tests
   # Skipping until resolved
@@ -54,7 +56,7 @@ rustPlatform.buildRustPackage rec {
 
   postInstall = ''
     # remove test plugin and test server
-    rm -rf $out/lib $out/bin/test_server
+    rm -r $out/lib $out/bin/test_server $out/bin/denort
 
     installShellCompletion --cmd deno \
       --bash <($out/bin/deno completions bash) \
@@ -62,11 +64,19 @@ rustPlatform.buildRustPackage rec {
       --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.updateScript = ./update/update.ts;
 
   meta = with lib; {
     homepage = "https://deno.land/";
-    changelog = "${src.meta.homepage}/releases/tag/v${version}";
+    changelog = "https://github.com/denoland/deno/releases/tag/v${version}";
     description = "A secure runtime for JavaScript and TypeScript";
     longDescription = ''
       Deno aims to be a productive and secure scripting environment for the modern programmer.
@@ -79,6 +89,6 @@ rustPlatform.buildRustPackage rec {
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ jk ];
-    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" ];
+    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
   };
 }
diff --git a/pkgs/development/web/deno/deps.nix b/pkgs/development/web/deno/deps.nix
index 4426c600df75..3f5846f2a96b 100644
--- a/pkgs/development/web/deno/deps.nix
+++ b/pkgs/development/web/deno/deps.nix
@@ -1,12 +1,13 @@
 # auto-generated file -- DO NOT EDIT!
 {}:
 rec {
-  rustyV8Lib = {
-    version = "0.15.0";
+  librusty_v8 = {
+    version = "0.20.0";
     sha256s = {
-      x86_64-linux = "1j789pvqh44vsffzl5wg3pp3awrlixjrhbnjx2klsml7jv0lp0mq";
-      aarch64-linux = "13srja4vc275ygm806hcsr8mxjnd9qkzaqs58lxnp0702qs5xls6";
-      x86_64-darwin = "0aij9yb5i1r3pz0pyl51qdbgfspfdngwbk1qgkp4gxzl3cbnysx1";
+      x86_64-linux = "1y0av2hghdvk2qv8kgw29x833wy31i89z7z6hw4jd1y21ihqsdd5";
+      aarch64-linux = "0726ay48w74y79j892is8qxx0kg3m35lmbniwcgy37idxm06vx28";
+      x86_64-darwin = "0gmfdmd5dvxh5xyxsq3nk8fpvdmpczq7nmj1b2zsakl8v3j14jck";
+      aarch64-darwin = "1zw3pxp13s38wspv5lwcns02wzrqagay9zjxj2wiygfzzr5b2c88";
     };
   };
 }
diff --git a/pkgs/development/web/deno/update/deps.ts b/pkgs/development/web/deno/update/deps.ts
index beedeade3a86..f4266e1c90fc 100644
--- a/pkgs/development/web/deno/update/deps.ts
+++ b/pkgs/development/web/deno/update/deps.ts
@@ -45,7 +45,7 @@ const templateDeps = (version: string, deps: PrefetchResult[]) =>
   `# auto-generated file -- DO NOT EDIT!
 {}:
 rec {
-  rustyV8Lib = {
+  librusty_v8 = {
     version = "${version}";
     sha256s = {
 ${deps.map((d) => `      ${d.arch.nix} = "${d.sha256}";`).join("\n")}
@@ -65,9 +65,9 @@ export async function updateDeps(
   // 0.0.0
   const version = await getRustyV8Version(owner, repo, denoVersion);
   if (typeof version !== "string") {
-    throw "no rusty_v8 version";
+    throw "no librusty_v8 version";
   }
-  log("rusty_v8 version:", version);
+  log("librusty_v8 version:", version);
   const existingVersion = await getExistingVersion(filePath);
   if (version === existingVersion) {
     log("Version already matches latest, skipping...");
diff --git a/pkgs/development/web/deno/update/update.ts b/pkgs/development/web/deno/update/update.ts
index 18d451480137..232c2482b1c1 100755
--- a/pkgs/development/web/deno/update/update.ts
+++ b/pkgs/development/web/deno/update/update.ts
@@ -24,6 +24,7 @@ const architectures: Architecture[] = [
   { nix: "x86_64-linux", rust: "x86_64-unknown-linux-gnu" },
   { nix: "aarch64-linux", rust: "aarch64-unknown-linux-gnu" },
   { nix: "x86_64-darwin", rust: "x86_64-apple-darwin" },
+  { nix: "aarch64-darwin", rust: "aarch64-apple-darwin" },
 ];
 
 log("Updating deno");