From 951e1d32834f252212039d13e2f8aea08261d46a Mon Sep 17 00:00:00 2001 From: Ryan Yin Date: Fri, 2 Oct 2026 16:50:14 +0800 Subject: [PATCH 1/3] zoom-us: 7.1.5.4332 -> 7.2.1.5760 Zoom 7.2 links /opt/zoom/zoom against libuuid.so.1, which is not part of the FHS environment yet. Add util-linux's lib output, which provides libuuid.so.1, so the binary can start instead of exiting with status 127. Assisted-by: OpenCode / DeepSeek V4.1 Flash --- pkgs/by-name/zo/zoom-us/package.nix | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pkgs/by-name/zo/zoom-us/package.nix b/pkgs/by-name/zo/zoom-us/package.nix index f867eb87f659..7553f252b63a 100644 --- a/pkgs/by-name/zo/zoom-us/package.nix +++ b/pkgs/by-name/zo/zoom-us/package.nix @@ -54,20 +54,20 @@ let # Zoom versions are released at different times per platform 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 = "7.1.5.84650"; + versions.aarch64-darwin = "7.2.2.88465"; # This is the fallback version so that evaluation can produce a meaningful result. - versions.x86_64-linux = "7.1.5.4332"; + versions.x86_64-linux = "7.2.1.5760"; srcs = { aarch64-darwin = fetchurl { url = "https://zoom.us/client/${versions.aarch64-darwin}/zoomusInstallerFull.pkg?archType=arm64"; name = "zoomusInstallerFull.pkg"; - hash = "sha256-Sc9wr2dBdvNwi507UZ9YVCTEQsz3RP2WWTJ5Z5ccgnk="; + hash = "sha256-/xXZJu9acUxmg8wj7WKKfC/EPQgKiKxUr04gC6A6JFY="; }; x86_64-linux = fetchurl { url = "https://zoom.us/client/${versions.x86_64-linux}/zoom_x86_64.pkg.tar.xz"; - hash = "sha256-5znZNrySgRrs9I5zhqN5p5dPfXpEHXKf8o2dWeYTPso="; + hash = "sha256-Nuh5j0L1bqinPHcqrFlKMPFqGqTRUdYVdrPcgufS5Qo="; }; }; @@ -183,6 +183,7 @@ let pkgs.qt6.qtdeclarative pkgs.stdenv.cc.cc pkgs.udev + pkgs.util-linux.lib # provides libuuid.so.1, which Zoom 7.2 links against pkgs.wayland pkgs.libx11 pkgs.libxcomposite From bdd15b5e11c978afbca5ba89a77884851eb1e772 Mon Sep 17 00:00:00 2001 From: Ryan Yin Date: Fri, 2 Oct 2026 16:50:18 +0800 Subject: [PATCH 2/3] nixosTests.zoom-us: fail fast when Zoom does not start Wait for the main window with a bounded timeout, and stop as soon as the launcher process exits. A startup failure such as a missing shared library is now reported right away instead of after the 15 minute window timeout. Match the window title as a substring, as wait_for_window did, so titles such as "Zoom Workplace - " still count. Assisted-by: OpenCode / DeepSeek V4.1 Flash --- nixos/tests/zoom-us.nix | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/nixos/tests/zoom-us.nix b/nixos/tests/zoom-us.nix index a8a6a3f2f9ea..aa5a082d403d 100644 --- a/nixos/tests/zoom-us.nix +++ b/nixos/tests/zoom-us.nix @@ -10,11 +10,38 @@ }; testScript = '' + import time + machine.succeed("which zoom") # fail early if this is missing machine.wait_for_x() - machine.execute("zoom >&2 &") - machine.wait_for_window("Zoom Workplace") + machine.execute("zoom > /tmp/zoom-us.log 2>&1 & echo $! > /tmp/zoom-us.pid") + + def has_zoom_window(): + return any("Zoom Workplace" in name for name in machine.get_window_names()) + + # Zoom should open its main window shortly after startup. Poll for it, but + # stop as soon as the launcher process exits (for example because of a + # missing shared library) instead of waiting for the whole window timeout. + deadline = time.time() + 120 + while not has_zoom_window(): + if machine.execute("kill -0 $(cat /tmp/zoom-us.pid)")[0] != 0: + raise Exception( + "zoom exited before opening its main window:\n" + + machine.execute("cat /tmp/zoom-us.log")[1] + ) + if time.time() > deadline: + raise Exception( + "timed out waiting for the Zoom Workplace window:\n" + + machine.execute("cat /tmp/zoom-us.log")[1] + ) + time.sleep(1) + + # The window should stay open for a while instead of crashing on startup. machine.sleep(20) - machine.wait_for_window("Zoom Workplace") + if not has_zoom_window(): + raise Exception( + "the Zoom Workplace window disappeared shortly after startup:\n" + + machine.execute("cat /tmp/zoom-us.log")[1] + ) ''; } From af42fd2d45ab17d7954e3391541acaeea28c5dcd Mon Sep 17 00:00:00 2001 From: Ryan Yin Date: Fri, 2 Oct 2026 16:50:20 +0800 Subject: [PATCH 3/3] zoom-us: use the lib output of stdenv.cc in the FHS environment Zoom only needs libstdc++, libatomic and libgomp at runtime, which live in gcc's lib output. Listing the full stdenv.cc.cc also pulls the compiler toolchain and its man pages into the FHS environment, adding roughly 295 MiB to its closure. Assisted-by: OpenCode / DeepSeek V4.1 Flash --- pkgs/by-name/zo/zoom-us/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/zo/zoom-us/package.nix b/pkgs/by-name/zo/zoom-us/package.nix index 7553f252b63a..20dfc04afa6c 100644 --- a/pkgs/by-name/zo/zoom-us/package.nix +++ b/pkgs/by-name/zo/zoom-us/package.nix @@ -181,7 +181,7 @@ let pkgs.pipewire pkgs.qt6.qtbase pkgs.qt6.qtdeclarative - pkgs.stdenv.cc.cc + pkgs.stdenv.cc.cc.lib # only libstdc++, libatomic and libgomp are needed at runtime pkgs.udev pkgs.util-linux.lib # provides libuuid.so.1, which Zoom 7.2 links against pkgs.wayland