about summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers/zoom-us
diff options
context:
space:
mode:
authorKeshav Kini <keshav.kini@gmail.com>2022-08-28 23:41:18 -0700
committerKeshav Kini <keshav.kini@gmail.com>2022-08-30 00:41:45 -0700
commit7aabe71f78e3267d241ccca2cd10d68e9506359f (patch)
tree331c423be788581e748cd92d5385a30fedc2d632 /pkgs/applications/networking/instant-messengers/zoom-us
parente0602af03c6fbf2a3ca2fc6b35f886e705aee0be (diff)
zoom-us: 5.11.{1.8356,3.3882} -> 5.11.{9.10046,10.4400}
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/zoom-us')
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-sha.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-version.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix26
-rwxr-xr-xpkgs/applications/networking/instant-messengers/zoom-us/update.sh52
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-sha.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-version.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-sha.nix1
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-version.nix1
8 files changed, 42 insertions, 42 deletions
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-sha.nix b/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-sha.nix
deleted file mode 100644
index 9b4a21cb7d288..0000000000000
--- a/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-sha.nix
+++ /dev/null
@@ -1 +0,0 @@
-"0cwplzza8vv4nzxf35i2p4gfnna4dpgp0ddqbpdxl8cxrikq5rji"
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-version.nix b/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-version.nix
deleted file mode 100644
index 4fd4c471b3cfb..0000000000000
--- a/pkgs/applications/networking/instant-messengers/zoom-us/arm64-darwin-version.nix
+++ /dev/null
@@ -1 +0,0 @@
-"5.11.1.8356"
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index 9accc9162c238..f1a0de7338344 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -44,24 +44,26 @@ let
   throwSystem = throw "Unsupported system: ${system}";
 
   # Zoom versions are released at different times for each platform
-  version = {
-    aarch64-darwin =import ./arm64-darwin-version.nix;
-    x86_64-darwin = import ./x86_64-darwin-version.nix;
-    x86_64-linux = import ./x86_64-linux-version.nix;
-   }.${system} or throwSystem;
+  # and often with different versions.  We write them on three lines
+  # like this (rather than using {}) so that the updater script can
+  # find where to edit them.
+  versions.aarch64-darwin = "5.11.9.10046";
+  versions.x86_64-darwin = "5.11.9.10046";
+  versions.x86_64-linux = "5.11.10.4400";
 
   srcs = {
     aarch64-darwin = fetchurl {
-      url = "https://zoom.us/client/${version}/Zoom.pkg?archType=arm64";
-      sha256 = import ./arm64-darwin-sha.nix;
+      url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64";
+      name = "zoomusInstallerFull.pkg";
+      hash = "sha256-Z+K811azMRnhptZ1UvM+o5IgE0F4p9BrntJC9IgPU7U=";
     };
     x86_64-darwin = fetchurl {
-      url = "https://zoom.us/client/${version}/Zoom.pkg";
-      sha256 = import ./x86_64-darwin-sha.nix;
+      url = "https://zoom.us/client/${versions.x86_64-darwin}/zoomusInstallerFull.pkg";
+      hash = "sha256-7U7qT3xlm5LqcJByMWxhZnqs6XBzylEGhqTNUgiaXJY=";
     };
     x86_64-linux = fetchurl {
-      url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
-      sha256 = import ./x86_64-linux-sha.nix;
+      url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz";
+      hash = "sha256-Pi1MtuCHzkQACamsNOIS6pbM03L1CmyosbpdrYVNCkQ=";
     };
   };
 
@@ -109,7 +111,7 @@ let
 in
 stdenv.mkDerivation rec {
   pname = "zoom";
-  inherit version;
+  version = versions.${system} or throwSystem;
 
   src = srcs.${system} or throwSystem;
 
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/update.sh b/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
index 6d9b50252d121..3684f057a08c3 100755
--- a/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/update.sh
@@ -1,30 +1,34 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl pup
+#!nix-shell -i bash -p common-updater-scripts curl jq
 
 set -eu -o pipefail
 
-dirname="$(dirname "$0")"
+scriptDir=$(cd "${BASH_SOURCE[0]%/*}" && pwd)
+nixpkgs=$(realpath "$scriptDir"/../../../../..)
 
-uname="$(uname)"
+echo >&2 "=== Obtaining version data from https://zoom.us/rest/download ..."
+linux_data=$(curl -Ls 'https://zoom.us/rest/download?os=linux' | jq .result.downloadVO)
+mac_data=$(curl -Ls 'https://zoom.us/rest/download?os=mac' | jq .result.downloadVO)
 
-if [[ "$uname" == "Linux" ]]; then
-    version="$(curl -Ls https://zoom.us/download\?os\=linux | \
-      pup '.linux-ver-text text{}' | \
-      awk -F'[ ().]' '{printf $2"."$3"."$4"."$6"\n"}')"
-    printf '"%s"\n' ${version} > $dirname/x86_64-linux-version.nix
-    printf '"%s"\n' \
-        $(nix-prefetch-url https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz) > \
-        $dirname/x86_64-linux-sha.nix
-elif [[ $uname == "Darwin" ]]; then
-    # The 1st line might be empty
-    # 2nd line is the version of the conference room application
-    version="$(curl -Ls https://zoom.us/download\?os\=mac | \
-      pup '.ver text{}' | \
-      sed '/^$/d' |\
-      head -1 | \
-      awk -F'[ ().]' '{printf $2"."$3"."$4"."$6"\n"}')"
-    printf '"%s"\n' ${version} > "$dirname/$(uname -m)-darwin-version.nix"
-    printf '"%s"\n' \
-        $(nix-prefetch-url "https://zoom.us/client/${version}/Zoom.pkg?archType=$(uname -m)") > \
-        "$dirname/$(uname -m)-darwin-sha.nix"
-fi
+version_aarch64_darwin=$(jq -r .zoomArm64.version <<<"$mac_data")
+version_x86_64_darwin=$(jq -r .zoom.version <<<"$mac_data")
+version_x86_64_linux=$(jq -r .zoom.version <<<"$linux_data")
+
+echo >&2 "=== Downloading packages and computing hashes..."
+# We precalculate the hashes before calling update-source-version
+# because it attempts to calculate each architecture's package's hash
+# by running `nix-build --system <architecture> -A zoom-us.src` which
+# causes cross compiling headaches; using nix-prefetch-url with
+# hard-coded URLs is simpler.  Keep these URLs in sync with the ones
+# in default.nix where `srcs` is defined.
+hash_aarch64_darwin=$(nix hash to-sri --type sha256 $(nix-prefetch-url --type sha256 "https://zoom.us/client/${version_aarch64_darwin}/zoomusInstallerFull.pkg?archType=arm64"))
+hash_x86_64_darwin=$(nix hash to-sri --type sha256 $(nix-prefetch-url --type sha256 "https://zoom.us/client/${version_x86_64_darwin}/zoomusInstallerFull.pkg"))
+hash_x86_64_linux=$(nix hash to-sri --type sha256 $(nix-prefetch-url --type sha256 "https://zoom.us/client/${version_x86_64_linux}/zoom_x86_64.pkg.tar.xz"))
+
+echo >&2 "=== Updating default.nix ..."
+# update-source-version expects to be at the root of nixpkgs
+(cd "$nixpkgs" && update-source-version zoom-us "$version_aarch64_darwin" $hash_aarch64_darwin --system=aarch64-darwin --version-key=versions.aarch64-darwin)
+(cd "$nixpkgs" && update-source-version zoom-us "$version_x86_64_darwin" $hash_x86_64_darwin --system=x86_64-darwin --version-key=versions.x86_64-darwin)
+(cd "$nixpkgs" && update-source-version zoom-us "$version_x86_64_linux" $hash_x86_64_linux --system=x86_64-linux --version-key=versions.x86_64-linux)
+
+echo >&2 "=== Done!"
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-sha.nix b/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-sha.nix
deleted file mode 100644
index a5ef33d28b56a..0000000000000
--- a/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-sha.nix
+++ /dev/null
@@ -1 +0,0 @@
-"12s4z80n1qk1vcp5vppabj6fxanm4q7pjj7mggalmjbj6984fsza"
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-version.nix b/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-version.nix
deleted file mode 100644
index 4fd4c471b3cfb..0000000000000
--- a/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-darwin-version.nix
+++ /dev/null
@@ -1 +0,0 @@
-"5.11.1.8356"
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-sha.nix b/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-sha.nix
deleted file mode 100644
index 778aaf85f56be..0000000000000
--- a/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-sha.nix
+++ /dev/null
@@ -1 +0,0 @@
-"09x0l50frck8v2zhgp84m57q3kj74chk37sc69mpbhwy0s6vg980"
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-version.nix b/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-version.nix
deleted file mode 100644
index e3f51ac695dee..0000000000000
--- a/pkgs/applications/networking/instant-messengers/zoom-us/x86_64-linux-version.nix
+++ /dev/null
@@ -1 +0,0 @@
-"5.11.3.3882"