From cd017a8bd3fa15e7aeb4b3b9159f8533bb071908 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 4 Feb 2025 21:17:19 -0600 Subject: [PATCH 01/30] nongnu: zoom: Update to 6.3.6.6315. * nongnu/packages/messaging.scm (zoom): Update to 6.3.6.6315. --- nongnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index e7236e82..7de10c22 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -129,14 +129,14 @@ or iOS.") (define-public zoom (package (name "zoom") - (version "5.17.5.2543") + (version "6.3.6.6315") (source (origin (method url-fetch) (uri (string-append "https://cdn.zoom.us/prod/" version "/zoom_x86_64.tar.xz")) (file-name (string-append name "-" version "-x86_64.tar.xz")) (sha256 - (base32 "06m53d3jrpiq1z5wd7m61lb3w8m8g72iaqx5sixnzn290gyyzgim")))) + (base32 "0b3735flk08726fxlrwhw9g6pr0h0sjnizlclmw0a06nb5s7rp8s")))) (supported-systems '("x86_64-linux")) (build-system binary-build-system) (arguments From 4eba593ddb43f63e97e2e11e4a3407db61005343 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 16:55:59 -0600 Subject: [PATCH 02/30] 6.2.11.5069 first --- nongnu/packages/messaging.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 7de10c22..ebc0ba97 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -129,14 +129,14 @@ or iOS.") (define-public zoom (package (name "zoom") - (version "6.3.6.6315") + (version "6.2.11.5069") (source (origin (method url-fetch) (uri (string-append "https://cdn.zoom.us/prod/" version "/zoom_x86_64.tar.xz")) (file-name (string-append name "-" version "-x86_64.tar.xz")) (sha256 - (base32 "0b3735flk08726fxlrwhw9g6pr0h0sjnizlclmw0a06nb5s7rp8s")))) + (base32 "09l9jfmld1dlinkgdgf8ra549rw1hwis3b5cly49a2gvz1sfr8lc")))) (supported-systems '("x86_64-linux")) (build-system binary-build-system) (arguments From ba948aa47abc3aa4c1fd4f9f51730850aa415121 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 12:01:58 -0600 Subject: [PATCH 03/30] Set QT_PLUGIN_PATH to zoom-provided QT plugins --- nongnu/packages/messaging.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index ebc0ba97..6dbcb1d6 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -213,7 +213,7 @@ or iOS.") "zlib"))))) (wrap-program (string-append #$output "/lib/zoom/zoom") '("QML2_IMPORT_PATH" = ()) - '("QT_PLUGIN_PATH" = ()) + `("QT_PLUGIN_PATH" ":" = (,(string-append #$output "/lib/zoom/Qt/plugins"))) '("QT_SCREEN_SCALE_FACTORS" = ()) `("FONTCONFIG_PATH" ":" prefix (,(string-join From 5d996d58b5efb0a70bdae789d1ff394913284b10 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 12:02:19 -0600 Subject: [PATCH 04/30] Include Zoom-provided libraries on LD_LIBRARY_PATH --- nongnu/packages/messaging.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 6dbcb1d6..b8ff1839 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -223,6 +223,8 @@ or iOS.") ":"))) `("LD_LIBRARY_PATH" prefix ,(list (string-append #$(this-package-input "nss") "/lib/nss") + (string-append #$output "/lib/") + (string-append #$output "/lib/zoom/Qt/lib") #$@(map (lambda (pkg) (file-append (this-package-input pkg) "/lib")) ;; TODO: Reuse this long list as it is From 57ac6b2c2320bf0586312cd5f6121e9e77440c19 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 12:04:56 -0600 Subject: [PATCH 05/30] Make pipewire an input and use in wrapping --- nongnu/packages/messaging.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index b8ff1839..c463491f 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -174,6 +174,7 @@ or iOS.") "mesa" "nspr" "pango" + "pipewire" "pulseaudio" "xcb-util-image" "xcb-util-keysyms" @@ -254,6 +255,7 @@ or iOS.") "libxrandr" "libxshmfence" "pango" + "pipewire" "pulseaudio" "xcb-util" "xcb-util-image" @@ -295,6 +297,7 @@ or iOS.") "libxrandr" "libxshmfence" "pango" + "pipewire" "pulseaudio" "xcb-util" "xcb-util-image" @@ -380,6 +383,7 @@ or iOS.") nspr nss pango + pipewire pulseaudio xcb-util xcb-util-image From 75427fca4e2fc90b915ec2b729704cddfc46620d Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 12:05:40 -0600 Subject: [PATCH 06/30] Make zoom description respect 80 char line limit --- nongnu/packages/messaging.scm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index c463491f..ea6747f2 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -393,6 +393,7 @@ or iOS.") zlib)) (home-page "https://zoom.us/") (synopsis "Video conference client") - (description "The Zoom video conferencing and messaging client. Zoom must be run via an -app launcher to use its .desktop file, or with @code{ZoomLauncher}.") + (description "The Zoom video conferencing and messaging client. Zoom must +be run via an app launcher to use its .desktop file, or with +@code{ZoomLauncher}.") (license (license:nonfree "https://explore.zoom.us/en/terms/")))) From 922773dfe6e9ba859420afb4e70744d245001800 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 12:46:56 -0600 Subject: [PATCH 07/30] Add fontconfig-minimal to main zoom binary's LD_LIBRARY_PATH list --- nongnu/packages/messaging.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index ea6747f2..36ba53c3 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -241,6 +241,7 @@ or iOS.") "dbus" "eudev" "expat" + "fontconfig-minimal" "gcc" "glib" "mesa" From 8af27adecbf14a176e8d4db575476b9d710a94cc Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 14:40:42 -0600 Subject: [PATCH 08/30] Also patchelf the XCB libraries - This may not be necessary --- nongnu/packages/messaging.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 36ba53c3..bf537320 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -176,8 +176,11 @@ or iOS.") "pango" "pipewire" "pulseaudio" + "xcb-util" "xcb-util-image" "xcb-util-keysyms" + "xcb-util-renderutil" + "xcb-util-wm" "zlib"))) `(("lib/zoom/ZoomLauncher" ,libs) From 20d6b08ce4d4512e3d135b1b767e1e6e04766373 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 14:40:02 -0600 Subject: [PATCH 09/30] Add freetype to main zoom binary's LD_LIBRARY_PATH list --- nongnu/packages/messaging.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index bf537320..b81fe8ce 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -245,6 +245,7 @@ or iOS.") "eudev" "expat" "fontconfig-minimal" + "freetype" "gcc" "glib" "mesa" From 3f69ee75c49e5689e75f9132e3ec41736ee057b8 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 14:40:25 -0600 Subject: [PATCH 10/30] Add xcb-util-cursor --- nongnu/packages/messaging.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index b81fe8ce..4ad7ab3a 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -177,6 +177,7 @@ or iOS.") "pipewire" "pulseaudio" "xcb-util" + "xcb-util-cursor" "xcb-util-image" "xcb-util-keysyms" "xcb-util-renderutil" @@ -263,6 +264,7 @@ or iOS.") "pipewire" "pulseaudio" "xcb-util" + "xcb-util-cursor" "xcb-util-image" "xcb-util-keysyms" "xcb-util-wm" @@ -305,6 +307,7 @@ or iOS.") "pipewire" "pulseaudio" "xcb-util" + "xcb-util-cursor" "xcb-util-image" "xcb-util-keysyms" "xcb-util-wm" @@ -391,6 +394,7 @@ or iOS.") pipewire pulseaudio xcb-util + xcb-util-cursor xcb-util-image xcb-util-keysyms xcb-util-renderutil From e0d42beae454b1b7aaa9f27e678db5ec36511f22 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 16:44:19 -0600 Subject: [PATCH 11/30] Add libxcursor Zoom requests libXCursor.so somewhere. --- nongnu/packages/messaging.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 4ad7ab3a..733bf509 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -210,6 +210,7 @@ or iOS.") "gcc" "glib" "libxcomposite" + "libxcursor" "libxdamage" "libxkbcommon" "libxkbfile" @@ -254,6 +255,7 @@ or iOS.") "nspr" "libxcb" "libxcomposite" + "libxcursor" "libxdamage" "libxext" "libxkbcommon" @@ -297,6 +299,7 @@ or iOS.") "nspr" "libxcb" "libxcomposite" + "libxcursor" "libxdamage" "libxext" "libxkbcommon" @@ -378,6 +381,7 @@ or iOS.") libx11 libxcb libxcomposite + libxcursor libxdamage libxext libxfixes From f623b1aa3b5d3d9e400a1eec8c56040df2dc602d Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 15:30:05 -0600 Subject: [PATCH 12/30] Add libGL/EGL/GLX --- nongnu/packages/messaging.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 733bf509..59b942a6 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -158,6 +158,7 @@ or iOS.") "glib" "gtk+" "libdrm" + "libglvnd" "libx11" "libxcb" "libxcomposite" @@ -209,6 +210,7 @@ or iOS.") "freetype" "gcc" "glib" + "libglvnd" "libxcomposite" "libxcursor" "libxdamage" @@ -253,6 +255,7 @@ or iOS.") "mesa" "mit-krb5" "nspr" + "libglvnd" "libxcb" "libxcomposite" "libxcursor" @@ -297,6 +300,7 @@ or iOS.") "mesa" "mit-krb5" "nspr" + "libglvnd" "libxcb" "libxcomposite" "libxcursor" @@ -378,6 +382,7 @@ or iOS.") gtk+ libdrm librsvg + libglvnd libx11 libxcb libxcomposite From 281c99a21ac2c7e159c892a7ed5618458839ed85 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 16:43:56 -0600 Subject: [PATCH 13/30] Add gdk-pixbuf --- nongnu/packages/messaging.scm | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 59b942a6..5736dd71 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -155,6 +155,7 @@ or iOS.") "expat" "fontconfig-minimal" "gcc" + "gdk-pixbuf" "glib" "gtk+" "libdrm" @@ -209,6 +210,7 @@ or iOS.") '("fontconfig-minimal" "freetype" "gcc" + "gdk-pixbuf" "glib" "libglvnd" "libxcomposite" @@ -251,6 +253,7 @@ or iOS.") "fontconfig-minimal" "freetype" "gcc" + "gdk-pixbuf" "glib" "mesa" "mit-krb5" @@ -296,6 +299,7 @@ or iOS.") "eudev" "expat" "gcc" + "gdk-pixbuf" "glib" "mesa" "mit-krb5" @@ -380,6 +384,7 @@ or iOS.") `(,gcc "lib") glib gtk+ + gdk-pixbuf libdrm librsvg libglvnd From 553bb159d4842d30f6b124eba37ebddac1d196c1 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 15:30:21 -0600 Subject: [PATCH 14/30] Wrap PATH for zoom bin to find pulseaudio binaries Zoom checks for pacmd. --- nongnu/packages/messaging.scm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 5736dd71..ecfab992 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -231,6 +231,10 @@ or iOS.") (string-append #$(this-package-input "fontconfig-minimal") "/etc/fonts") #$output) ":"))) + `("PATH" prefix + ,(list #$@(map (lambda (pkg) + (file-append (this-package-input pkg) "/lib")) + '("pulseaudio")))) `("LD_LIBRARY_PATH" prefix ,(list (string-append #$(this-package-input "nss") "/lib/nss") (string-append #$output "/lib/") From f0d517401d09a4f7977d75f17b6f8971b87ab155 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 17:01:18 -0600 Subject: [PATCH 15/30] pulseaudio bin --- nongnu/packages/messaging.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index ecfab992..4f47343e 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -233,7 +233,7 @@ or iOS.") ":"))) `("PATH" prefix ,(list #$@(map (lambda (pkg) - (file-append (this-package-input pkg) "/lib")) + (file-append (this-package-input pkg) "/bin")) '("pulseaudio")))) `("LD_LIBRARY_PATH" prefix ,(list (string-append #$(this-package-input "nss") "/lib/nss") From 306f7cec915e327c067413b7241e5a4fd53791b5 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 17:01:31 -0600 Subject: [PATCH 16/30] Add mesa-utils for screensharing --- nongnu/packages/messaging.scm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 4f47343e..3ad872c0 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -234,7 +234,8 @@ or iOS.") `("PATH" prefix ,(list #$@(map (lambda (pkg) (file-append (this-package-input pkg) "/bin")) - '("pulseaudio")))) + '("mesa-utils" + "pulseaudio")))) `("LD_LIBRARY_PATH" prefix ,(list (string-append #$(this-package-input "nss") "/lib/nss") (string-append #$output "/lib/") @@ -405,6 +406,8 @@ or iOS.") libxrender libxshmfence mesa + ;; Needed for screensharing. + mesa-utils mit-krb5 nspr nss From 9c6bc43db77e4a39d392097505ae653e48352e80 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 17:04:03 -0600 Subject: [PATCH 17/30] Add pipewire to zoom bins for screensharing? --- nongnu/packages/messaging.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 3ad872c0..e48871b9 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -235,7 +235,8 @@ or iOS.") ,(list #$@(map (lambda (pkg) (file-append (this-package-input pkg) "/bin")) '("mesa-utils" - "pulseaudio")))) + "pulseaudio" + "pipewire")))) `("LD_LIBRARY_PATH" prefix ,(list (string-append #$(this-package-input "nss") "/lib/nss") (string-append #$output "/lib/") From e92404586e0c23367a32f0bbb1bb4ca12f7a7841 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 17:04:14 -0600 Subject: [PATCH 18/30] Add util-linux to zoom bins for screensharing? --- nongnu/packages/messaging.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index e48871b9..0b7973d6 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -236,7 +236,8 @@ or iOS.") (file-append (this-package-input pkg) "/bin")) '("mesa-utils" "pulseaudio" - "pipewire")))) + "pipewire" + "util-linux")))) `("LD_LIBRARY_PATH" prefix ,(list (string-append #$(this-package-input "nss") "/lib/nss") (string-append #$output "/lib/") @@ -415,6 +416,7 @@ or iOS.") pango pipewire pulseaudio + util-linux xcb-util xcb-util-cursor xcb-util-image From eca65ef8ca6d0abadf3563cea67206a225ae9a87 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 17:59:42 -0600 Subject: [PATCH 19/30] Reorder to match later entries --- nongnu/packages/messaging.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 0b7973d6..7bd6d19b 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -145,9 +145,9 @@ or iOS.") ;; Note: it seems like some (all?) of these only do anything in ;; LD_LIBRARY_PATH, or at least needed there as well. #~(let ((libs '("alsa-lib" + "atk" "at-spi2-atk" "at-spi2-core" - "atk" "cairo" "cups" "dbus" From acb40e4eca630c3333a957022311c55c6da88e98 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 18:00:21 -0600 Subject: [PATCH 20/30] Wrap main zoom binary --- nongnu/packages/messaging.scm | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 7bd6d19b..ac60afca 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -262,19 +262,25 @@ or iOS.") "gcc" "gdk-pixbuf" "glib" - "mesa" - "mit-krb5" - "nspr" + "gtk+" + "libdrm" "libglvnd" + "libx11" "libxcb" "libxcomposite" "libxcursor" "libxdamage" "libxext" + "libxfixes" + "libxi" "libxkbcommon" "libxkbfile" "libxrandr" "libxshmfence" + "libxtst" + "mesa" + "mit-krb5" + "nspr" "pango" "pipewire" "pulseaudio" @@ -282,8 +288,8 @@ or iOS.") "xcb-util-cursor" "xcb-util-image" "xcb-util-keysyms" - "xcb-util-wm" "xcb-util-renderutil" + "xcb-util-wm" "zlib"))))) (wrap-program (string-append #$output "/lib/zoom/aomhost") `("FONTCONFIG_PATH" ":" prefix @@ -402,11 +408,13 @@ or iOS.") libxdamage libxext libxfixes + libxi libxkbcommon libxkbfile libxrandr libxrender libxshmfence + libxtst mesa ;; Needed for screensharing. mesa-utils From 94892dd2430fa112c5152284384b9c9864ab7260 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 17:59:54 -0600 Subject: [PATCH 21/30] Do not patchelf the main zoom binary --- nongnu/packages/messaging.scm | 2 -- 1 file changed, 2 deletions(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index ac60afca..fe860783 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -187,8 +187,6 @@ or iOS.") "zlib"))) `(("lib/zoom/ZoomLauncher" ,libs) - ("lib/zoom/zoom" - ,libs) ("lib/zoom/zopen" ,libs) ("lib/zoom/aomhost" From c6b5718654971f952cd76cee457afda10e607d2a Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 20:05:41 -0600 Subject: [PATCH 22/30] Do same dynamic linker shenanigans as nixpkgs does --- nongnu/packages/messaging.scm | 52 ++++++++++++++++++++++++++++------- 1 file changed, 42 insertions(+), 10 deletions(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index fe860783..562fdf44 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -199,6 +199,45 @@ or iOS.") ;; Use the more standard lib directory for everything. (mkdir-p "lib") (rename-file "zoom/" "lib/zoom"))) + (add-before 'patchelf 'zoom-dynamic-linker-shenanigans + (lambda* (#:key inputs #:allow-other-keys) + ;; (format #t "CWD=~a~%" (getcwd)) + (with-directory-excursion "lib/zoom" + (copy-file "zoom" ".zoom") + (delete-file "zoom") + (copy-file (car (find-files (assoc-ref inputs "libc") + "ld-linux.*\\.so")) + "ld.so") + ;; We're going to do something super fucked, but this made + ;; Zoom work on nixpkgs. + ;; We are going to do a fake wrap-program to set the exec + ;; line manually, then rely on the later calls to + ;; (guix build utils) version of wrap-program to add the + ;; environment variables we want. + ;; This is a workaround because Guix's wrap-program does + ;; not let us change the actual exec line in the generated + ;; wrapper script and we cannot use patchelf on the zoom + ;; binary from the tarball because that magically breaks + ;; things. + (let* ((prog ".zoom") + (prog-tmp (string-append prog "-tmp")) + (wrapped-file "zoom")) + (link prog wrapped-file) + + (call-with-output-file prog-tmp + (lambda (port) + (format port + "#!~a~%exec \"~a\" \"~a\" \"$@\"~%" + (which "bash") + (string-append #$output "/lib/zoom/ld.so") + (string-append #$output "/lib/zoom/" prog)))) + (chmod prog-tmp #o755) + (rename-file prog-tmp wrapped-file) + ;; Lastly, we need to leave a file that LOOKS like we + ;; have already wrapped lib/zoom/zoom, so the later call + ;; to wrap-program that adds library paths and other env + ;; vars does not overwrite our work. + (copy-file prog ".zoom-real"))))) (add-after 'install 'wrap-where-patchelf-does-not-work (lambda _ (wrap-program (string-append #$output "/lib/zoom/zopen") @@ -335,17 +374,10 @@ or iOS.") "xcb-util-wm" "xcb-util-renderutil" "zlib"))))))) - (add-after 'wrap-where-patchelf-does-not-work 'rename-binary - ;; IPC (for single sign-on and handling links) fails if the - ;; name does not end in "zoom," so rename the real binary. - ;; Thanks to the Nix packagers for figuring this out. + (add-after 'wrap-where-patchelf-does-not-work 'cleanup-linker-shenanigans (lambda _ - (rename-file (string-append #$output "/lib/zoom/.zoom-real") - (string-append #$output "/lib/zoom/.zoom")) - (substitute* (string-append #$output "/lib/zoom/zoom") - (("zoom-real") - "zoom")))) - (add-after 'rename-binary 'symlink-binaries + (delete-file (string-append #$output "/lib/zoom/.zoom-real")))) + (add-after 'wrap-where-patchelf-does-not-work 'symlink-binaries (lambda _ (delete-file (string-append #$output "/environment-variables")) (mkdir-p (string-append #$output "/bin")) From 5799d738e293bcaa37ba7b6c1dc81f257d903d9c Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 18 Feb 2025 20:38:30 -0600 Subject: [PATCH 23/30] Do not set QT_PLUGIN_PATH - REVERT THE OG COMMIT --- nongnu/packages/messaging.scm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 562fdf44..6fe4c357 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -260,7 +260,7 @@ or iOS.") "zlib"))))) (wrap-program (string-append #$output "/lib/zoom/zoom") '("QML2_IMPORT_PATH" = ()) - `("QT_PLUGIN_PATH" ":" = (,(string-append #$output "/lib/zoom/Qt/plugins"))) + '("QT_PLUGIN_PATH" = ()) '("QT_SCREEN_SCALE_FACTORS" = ()) `("FONTCONFIG_PATH" ":" prefix (,(string-join From ca159dfdf95294d7b8abe6e38b2a7bf923d75e5d Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Mon, 24 Feb 2025 21:32:52 -0600 Subject: [PATCH 24/30] gcc-toolchain to get C++ libraries --- nongnu/packages/messaging.scm | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 6fe4c357..f64249d4 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -9,6 +9,7 @@ (define-module (nongnu packages messaging) #:use-module (gnu packages base) #:use-module (gnu packages bash) + #:use-module (gnu packages commencement) #:use-module (gnu packages compression) #:use-module (gnu packages cups) #:use-module (gnu packages fontutils) @@ -154,7 +155,8 @@ or iOS.") "eudev" "expat" "fontconfig-minimal" - "gcc" + ;; "gcc" + "gcc-toolchain" "gdk-pixbuf" "glib" "gtk+" @@ -246,7 +248,8 @@ or iOS.") (file-append (this-package-input pkg) "/lib")) '("fontconfig-minimal" "freetype" - "gcc" + ;; "gcc" + "gcc-toolchain" "gdk-pixbuf" "glib" "libglvnd" @@ -296,7 +299,8 @@ or iOS.") "expat" "fontconfig-minimal" "freetype" - "gcc" + ;; "gcc" + "gcc-toolchain" "gdk-pixbuf" "glib" "gtk+" @@ -348,7 +352,8 @@ or iOS.") "dbus" "eudev" "expat" - "gcc" + ;; "gcc" + "gcc-toolchain" "gdk-pixbuf" "glib" "mesa" @@ -424,7 +429,18 @@ or iOS.") expat fontconfig freetype + ;; The gcc and `(,gcc "lib") package BOTH have the "gcc" + ;; string key in the package inputs alist, and gcc's default + ;; out package is found first. + ;; We need to rename gcc's lib output so we can look it up + ;; correctly later with (this-package-input pkg). + ;; gcc is provided by the fact binary-build-system "inherits" + ;; from gnu-build-system. + ;; Using gcc-toolchain as a stopgap for now. + ;; FIXME: Make gcc-lib output work, so we do not need to add + ;; gcc-toolchain to Zoom's package closure. `(,gcc "lib") + gcc-toolchain glib gtk+ gdk-pixbuf From f1c1b727209d77c994686baf0b664563e9682c53 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Mon, 24 Feb 2025 21:33:13 -0600 Subject: [PATCH 25/30] Document why mesa & libglvnd needed --- nongnu/packages/messaging.scm | 1 + 1 file changed, 1 insertion(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index f64249d4..efaf0ed2 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -446,6 +446,7 @@ or iOS.") gdk-pixbuf libdrm librsvg + ;; Need mesa for libgbm.so and libglvnd for libEGL, libGL, and libGLX libglvnd libx11 libxcb From bb0b5d76999043df371831df12c2da0d5bbaffa6 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Tue, 25 Feb 2025 00:07:13 -0600 Subject: [PATCH 26/30] Add wayland & wayland-protocols --- nongnu/packages/messaging.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index efaf0ed2..4ce57737 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -13,6 +13,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages cups) #:use-module (gnu packages fontutils) + #:use-module (gnu packages freedesktop) #:use-module (gnu packages gcc) #:use-module (gnu packages gl) #:use-module (gnu packages glib) @@ -186,6 +187,8 @@ or iOS.") "xcb-util-keysyms" "xcb-util-renderutil" "xcb-util-wm" + "wayland" + "wayland-protocols" "zlib"))) `(("lib/zoom/ZoomLauncher" ,libs) @@ -331,6 +334,8 @@ or iOS.") "xcb-util-keysyms" "xcb-util-renderutil" "xcb-util-wm" + "wayland" + "wayland-protocols" "zlib"))))) (wrap-program (string-append #$output "/lib/zoom/aomhost") `("FONTCONFIG_PATH" ":" prefix @@ -378,6 +383,8 @@ or iOS.") "xcb-util-keysyms" "xcb-util-wm" "xcb-util-renderutil" + "wayland" + "wayland-protocols" "zlib"))))))) (add-after 'wrap-where-patchelf-does-not-work 'cleanup-linker-shenanigans (lambda _ @@ -478,6 +485,8 @@ or iOS.") xcb-util-keysyms xcb-util-renderutil xcb-util-wm + wayland + wayland-protocols zlib)) (home-page "https://zoom.us/") (synopsis "Video conference client") From 8d9866a46f6288fcb4905105c50dae8042ef78d5 Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Thu, 3 Apr 2025 00:44:08 -0500 Subject: [PATCH 27/30] Set Zoom's library path to the correct path --- nongnu/packages/messaging.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 4ce57737..759803cf 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -283,7 +283,8 @@ or iOS.") "util-linux")))) `("LD_LIBRARY_PATH" prefix ,(list (string-append #$(this-package-input "nss") "/lib/nss") - (string-append #$output "/lib/") + ;; ZoomLauncher sets Zoom's own library's paths + (string-append #$output "/lib/zoom") (string-append #$output "/lib/zoom/Qt/lib") #$@(map (lambda (pkg) (file-append (this-package-input pkg) "/lib")) From 908aef7fd481d205e8f44ad24dd86073ab1369ba Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Thu, 3 Apr 2025 00:44:37 -0500 Subject: [PATCH 28/30] Use the cef/ libraries provided by zoom and wrap them too --- nongnu/packages/messaging.scm | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 759803cf..fdcc1eed 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -162,7 +162,7 @@ or iOS.") "glib" "gtk+" "libdrm" - "libglvnd" + ;; "libglvnd" "libx11" "libxcb" "libxcomposite" @@ -190,12 +190,16 @@ or iOS.") "wayland" "wayland-protocols" "zlib"))) - `(("lib/zoom/ZoomLauncher" - ,libs) - ("lib/zoom/zopen" - ,libs) - ("lib/zoom/aomhost" - ,libs))) + `(("lib/zoom/ZoomLauncher" ,libs) + ;; ("lib/zoom/zoom" ,libs) + ("lib/zoom/zopen" ,libs) + ("lib/zoom/aomhost" ,libs) + ("lib/zoom/cef/libEGL.so" ,libs) + ("lib/zoom/cef/libffmpeg.so" ,libs) + ("lib/zoom/cef/libGLESv2.so" ,libs) + ("lib/zoom/cef/libsqlite3.so.0" ,libs) + ("lib/zoom/cef/libvk_swiftshader.so" ,libs) + ("lib/zoom/cef/libvulkan.so.1" ,libs))) #:phases #~(modify-phases %standard-phases (replace 'unpack @@ -255,7 +259,7 @@ or iOS.") "gcc-toolchain" "gdk-pixbuf" "glib" - "libglvnd" + ;; "libglvnd" "libxcomposite" "libxcursor" "libxdamage" @@ -285,6 +289,7 @@ or iOS.") ,(list (string-append #$(this-package-input "nss") "/lib/nss") ;; ZoomLauncher sets Zoom's own library's paths (string-append #$output "/lib/zoom") + (string-append #$output "/lib/zoom/cef") (string-append #$output "/lib/zoom/Qt/lib") #$@(map (lambda (pkg) (file-append (this-package-input pkg) "/lib")) @@ -309,7 +314,7 @@ or iOS.") "glib" "gtk+" "libdrm" - "libglvnd" + ;; "libglvnd" "libx11" "libxcb" "libxcomposite" @@ -365,7 +370,7 @@ or iOS.") "mesa" "mit-krb5" "nspr" - "libglvnd" + ;; "libglvnd" "libxcb" "libxcomposite" "libxcursor" @@ -455,7 +460,7 @@ or iOS.") libdrm librsvg ;; Need mesa for libgbm.so and libglvnd for libEGL, libGL, and libGLX - libglvnd + ;; libglvnd libx11 libxcb libxcomposite From f2ec40c38ee8610172b2f800d163b90c32c7149d Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Thu, 3 Apr 2025 00:45:36 -0500 Subject: [PATCH 29/30] Add missing Qt dependencies --- nongnu/packages/messaging.scm | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index fdcc1eed..228470ab 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -23,6 +23,7 @@ #:use-module (gnu packages linux) #:use-module (gnu packages nss) #:use-module (gnu packages pulseaudio) + #:use-module (gnu packages qt) #:use-module (gnu packages xdisorg) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) @@ -181,6 +182,14 @@ or iOS.") "pango" "pipewire" "pulseaudio" + "qtlottie" + "qtremoteobjects" + "qt3d" + "qtbase" + "qtgamepad" + "qtdeclarative" + "qtxmlpatterns" + "qtmultimedia" "xcb-util" "xcb-util-cursor" "xcb-util-image" @@ -334,6 +343,14 @@ or iOS.") "pango" "pipewire" "pulseaudio" + "qtlottie" + "qtremoteobjects" + "qt3d" + "qtbase" + "qtgamepad" + "qtdeclarative" + "qtxmlpatterns" + "qtmultimedia" "xcb-util" "xcb-util-cursor" "xcb-util-image" @@ -484,6 +501,16 @@ or iOS.") pango pipewire pulseaudio + qt3d-5 ; libQt53DACore.so.5, Animation, etc. + qtbase-5 ; libQt5Concurrent.so.5, and many others + qtgamepad ; libQt5Gamepad.so.5 + qtxmlpatterns ; libQt5XmlPatterns.so.5 + ;; Qt below need Qt 5-specific versions! Upstream Guix has + ;; already moved to Qt 6! + qtlottie ; libQt5Bodymovin.so.5 + qtremoteobjects ; libQt5RemoteObjects.so.5 + qtdeclarative ; libQt5QuickParticles.so.5 + qtmultimedia ; libQt5Multimedia.so.5 util-linux xcb-util xcb-util-cursor From e7d029cb3e2408439da04e4bfb8c7f11bd4573ff Mon Sep 17 00:00:00 2001 From: Karl Hallsby Date: Thu, 3 Apr 2025 00:45:45 -0500 Subject: [PATCH 30/30] Note that Zoom hard-depends on $DISPLAY --- nongnu/packages/messaging.scm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index 228470ab..6ff6e5c4 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -129,6 +129,8 @@ or iOS.") '((release-monitoring-url . "https://github.com/signalapp/Signal-Desktop/releases"))) (license license:agpl3))) +;; NOTE: Zoom has a HARD DEPENDENCY on $DISPLAY to open something to display on, +;;at least on X11 desktops. (define-public zoom (package (name "zoom")