Merge pull request #166428 from whiteley/zoom.us-aarch64-darwin

zoom.us: darwin support
main
Doron Behar 2 years ago committed by GitHub
commit 3d695c5eab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 53
      pkgs/applications/networking/instant-messengers/zoom-us/default.nix

@ -2,6 +2,8 @@
, lib
, fetchurl
, makeWrapper
, xar
, cpio
# Dynamic libraries
, alsa-lib
, atk
@ -28,8 +30,27 @@
}:
let
version = "5.9.6.2225";
inherit (stdenv.hostPlatform) system;
throwSystem = throw "Unsupported system: ${system}";
# Zoom versions are released at different times for each platform and linux
# is stuck on 5.9.6 until https://github.com/NixOS/nixpkgs/pull/166085 is
# resolved
version = {
aarch64-darwin = "5.10.4.6592";
x86_64-darwin = "5.10.4.6592";
x86_64-linux = "5.9.6.2225";
}.${system} or throwSystem;
srcs = {
aarch64-darwin = fetchurl {
url = "https://zoom.us/client/${version}/Zoom.pkg?archType=arm64";
sha256 = "0jg5f9hvb67hhfnifpx5fzz65fcijldy1znlia6pqflxwci3m5rq";
};
x86_64-darwin = fetchurl {
url = "https://zoom.us/client/${version}/Zoom.pkg";
sha256 = "1p83691bid8kz5mw09x6l9zvjglfszi5vbhfmbbpiqhiqcxlfz83";
};
x86_64-linux = fetchurl {
url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz";
sha256 = "0rynpw2fjn9j75f34rk0rgqn9wzyzgzmwh1a3xcx7hqingv45k53";
@ -69,23 +90,41 @@ stdenv.mkDerivation rec {
pname = "zoom";
inherit version;
src = srcs.${stdenv.hostPlatform.system};
src = srcs.${system} or throwSystem;
dontUnpack = true;
dontUnpack = stdenv.isLinux;
unpackPhase = lib.optionalString stdenv.isDarwin ''
xar -xf $src
zcat < zoomus.pkg/Payload | cpio -i
'';
nativeBuildInputs = [
makeWrapper
]
++ lib.optionals stdenv.isDarwin [
xar
cpio
];
installPhase = ''
runHook preInstall
mkdir $out
tar -C $out -xf $src
mv $out/usr/* $out/
${rec {
aarch64-darwin = ''
mkdir -p $out/Applications/zoom.us.app
cp -R . $out/Applications/zoom.us.app
'';
# darwin steps same on both architectures
x86_64-darwin = aarch64-darwin;
x86_64-linux = ''
mkdir $out
tar -C $out -xf $src
mv $out/usr/* $out/
'';
}.${system} or throwSystem}
runHook postInstall
'';
postFixup = ''
postFixup = lib.optionalString stdenv.isLinux ''
# Desktop File
substituteInPlace $out/share/applications/Zoom.desktop \
--replace "Exec=/usr/bin/zoom" "Exec=$out/bin/zoom"

Loading…
Cancel
Save