mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-29 09:04:17 +00:00
97 lines
2.7 KiB
Nix
97 lines
2.7 KiB
Nix
{ stdenv, fetchurl, mkDerivation, makeWrapper, makeDesktopItem, autoPatchelfHook
|
|
, wrapQtAppsHook
|
|
# Dynamic libraries
|
|
, dbus, glib, libGL, libX11, libXfixes, libuuid, libxcb, qtbase, qtdeclarative
|
|
, qtimageformats, qtlocation, qtquickcontrols, qtquickcontrols2, qtscript, qtsvg
|
|
, qttools, qtwayland, qtwebchannel, qtwebengine
|
|
# Runtime
|
|
, coreutils, libjpeg_turbo, pciutils, procps, utillinux, libv4l
|
|
, pulseaudioSupport ? true, libpulseaudio ? null
|
|
}:
|
|
|
|
assert pulseaudioSupport -> libpulseaudio != null;
|
|
|
|
let
|
|
inherit (stdenv.lib) concatStringsSep makeBinPath optional;
|
|
|
|
version = "2.9.265650.0716";
|
|
srcs = {
|
|
x86_64-linux = fetchurl {
|
|
url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
|
|
sha256 = "1wg5yw8g0c6p9y0wcqxr1rndgclasg7v1ybbx8s1a2p98izjkcaa";
|
|
};
|
|
};
|
|
|
|
in mkDerivation {
|
|
name = "zoom-us-${version}";
|
|
|
|
src = srcs.${stdenv.hostPlatform.system};
|
|
|
|
nativeBuildInputs = [ autoPatchelfHook makeWrapper wrapQtAppsHook ];
|
|
|
|
buildInputs = [
|
|
dbus glib libGL libX11 libXfixes libuuid libxcb libjpeg_turbo
|
|
qtbase qtdeclarative qtlocation qtquickcontrols qtquickcontrols2 qtscript
|
|
qtwebchannel qtwebengine qtimageformats qtsvg qttools qtwayland
|
|
];
|
|
|
|
runtimeDependencies = optional pulseaudioSupport libpulseaudio;
|
|
|
|
installPhase =
|
|
let
|
|
files = concatStringsSep " " [
|
|
"*.pcm"
|
|
"*.png"
|
|
"ZoomLauncher"
|
|
"config-dump.sh"
|
|
"timezones"
|
|
"translations"
|
|
"version.txt"
|
|
"zcacert.pem"
|
|
"zoom"
|
|
"zoom.sh"
|
|
"zoomlinux"
|
|
"zopen"
|
|
];
|
|
in ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/{bin,share/zoom-us}
|
|
|
|
cp -ar ${files} $out/share/zoom-us
|
|
|
|
# TODO Patch this somehow; tries to dlopen './libturbojpeg.so' from cwd
|
|
ln -s $(readlink -e "${libjpeg_turbo.out}/lib/libturbojpeg.so") $out/share/zoom-us/libturbojpeg.so
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
postInstall = (makeDesktopItem {
|
|
name = "zoom-us";
|
|
exec = "$out/bin/zoom-us %U";
|
|
icon = "$out/share/zoom-us/application-x-zoom.png";
|
|
desktopName = "Zoom";
|
|
genericName = "Video Conference";
|
|
categories = "Network;Application;";
|
|
mimeType = "x-scheme-handler/zoommtg;";
|
|
}).buildCommand + ''
|
|
ln -s $out/share/zoom-us/zoom $out/bin/zoom-us
|
|
'';
|
|
|
|
qtWrapperArgs = [
|
|
''--prefix PATH : ${makeBinPath [ coreutils glib.dev pciutils procps qttools.dev utillinux ]}''
|
|
''--prefix LD_PRELOAD : ${libv4l}/lib/libv4l/v4l2convert.so''
|
|
];
|
|
|
|
passthru.updateScript = ./update.sh;
|
|
|
|
meta = {
|
|
homepage = https://zoom.us/;
|
|
description = "zoom.us video conferencing application";
|
|
license = stdenv.lib.licenses.unfree;
|
|
platforms = builtins.attrNames srcs;
|
|
maintainers = with stdenv.lib.maintainers; [ danbst tadfisher ];
|
|
};
|
|
|
|
}
|