diff options
Diffstat (limited to 'nongnu/packages/messaging.scm')
-rw-r--r-- | nongnu/packages/messaging.scm | 266 |
1 files changed, 95 insertions, 171 deletions
diff --git a/nongnu/packages/messaging.scm b/nongnu/packages/messaging.scm index dd73744..e300915 100644 --- a/nongnu/packages/messaging.scm +++ b/nongnu/packages/messaging.scm @@ -1,40 +1,25 @@ -;;; GNU Guix --- Functional package management for GNU +;;; SPDX-License-Identifier: GPL-3.0-or-later ;;; Copyright © 2021, 2022 PantherX OS Team <team@pantherx.org> -;;; Copyright © 2022 John Kehayias <john.kehayias@protonmail.com> +;;; Copyright © 2022, 2023, 2024 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2022 Evgenii Lepikhin <johnlepikhin@gmail.com> -;;; -;;; This file is not part of GNU Guix. -;;; -;;; GNU Guix is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or (at -;;; your option) any later version. -;;; -;;; GNU Guix is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of -;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;;; GNU General Public License for more details. -;;; -;;; You should have received a copy of the GNU General Public License -;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. - +;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org> +;;; Copyright © 2023 Raven Hallsby <karl@hallsby.org> (define-module (nongnu packages messaging) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages compression) #:use-module (gnu packages cups) - #:use-module (gnu packages databases) #:use-module (gnu packages fontutils) #:use-module (gnu packages gcc) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gtk) + #:use-module (gnu packages kerberos) #: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) @@ -44,13 +29,14 @@ #:use-module (guix utils) #:use-module ((guix licenses) :prefix license:) #:use-module (nonguix build-system binary) + #:use-module (nonguix build-system chromium-binary) #:use-module ((nonguix licenses) :prefix license:) #:use-module (ice-9 match)) (define-public element-desktop (package (name "element-desktop") - (version "1.11.15") + (version "1.11.64") (source (origin (method url-fetch) @@ -59,105 +45,39 @@ "https://packages.riot.im/debian/pool/main/e/" name "/" name "_" version "_amd64.deb")) (sha256 - (base32 "0hpvmfncsmxlvhk6vjwkghw5lypmryzg21zih215nn1faqx2iy3a")))) + (base32 "043017i51kdpb6aqz7542dyrdw8d6jhqd9zw6v1c63phh1633y56")))) (supported-systems '("x86_64-linux")) - (build-system binary-build-system) + (build-system chromium-binary-build-system) (arguments (list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files - #:patchelf-plan - #~'(("lib/Element/element-desktop" - ("alsa-lib" "at-spi2-atk" "at-spi2-core" "atk" "cairo" "cups" - "dbus" "expat" "fontconfig-minimal" "gcc" "gdk-pixbuf" "glib" - "gtk+" "libdrm" "libnotify" "libsecret" "libx11" "libxcb" - "libxcomposite" "libxcursor" "libxdamage" "libxext" "libxfixes" - "libxi" "libxkbcommon" "libxkbfile" "libxrandr" "libxrender" - "libxtst" "mesa" "nspr" "pango" "zlib"))) + #:wrapper-plan + #~'("lib/Element/element-desktop") #:phases #~(modify-phases %standard-phases - (replace 'unpack + (add-after 'binary-unpack 'setup-cwd (lambda _ - (invoke "ar" "x" #$source) - (invoke "tar" "xvf" "data.tar.xz") (copy-recursively "usr/" ".") ;; Use the more standard lib directory for everything. (rename-file "opt/" "lib") ;; Remove unneeded files. (delete-file-recursively "usr") - (delete-file "control.tar.gz") - (delete-file "data.tar.xz") - (delete-file "debian-binary") ;; Fix the .desktop file binary location. (substitute* '("share/applications/element-desktop.desktop") (("/opt/Element/") - (string-append #$output "/lib/Element/"))))) - (add-after 'install 'symlink-binary-file-and-cleanup + (string-append #$output "/bin/"))))) + (add-after 'install 'symlink-binary-file (lambda _ - (delete-file (string-append #$output "/environment-variables")) (mkdir-p (string-append #$output "/bin")) (symlink (string-append #$output "/lib/Element/element-desktop") (string-append #$output "/bin/element-desktop")))) - (add-after 'install 'wrap-where-patchelf-does-not-work + (add-after 'install-wrapper 'wrap-where-patchelf-does-not-work (lambda _ (wrap-program (string-append #$output "/lib/Element/element-desktop") - `("FONTCONFIG_PATH" ":" prefix - (,(string-join - (list - (string-append #$(this-package-input "fontconfig-minimal") "/etc/fonts") - #$output) - ":"))) `("LD_LIBRARY_PATH" ":" prefix (,(string-join (list - (string-append #$(this-package-input "nss") "/lib/nss") - (string-append #$(this-package-input "eudev") "/lib") - (string-append #$(this-package-input "gcc") "/lib") - (string-append #$(this-package-input "mesa") "/lib") - (string-append #$(this-package-input "libxkbfile") "/lib") - (string-append #$(this-package-input "zlib") "/lib") - (string-append #$(this-package-input "libsecret") "/lib") - (string-append #$(this-package-input "sqlcipher") "/lib") - (string-append #$(this-package-input "libnotify") "/lib") - (string-append #$output "/lib/Element") - #$output) + (string-append #$output "/lib/Element")) ":"))))))))) - (native-inputs (list tar)) - (inputs - (list alsa-lib - at-spi2-atk - at-spi2-core - atk - cairo - cups - dbus - eudev - expat - fontconfig - `(,gcc "lib") - glib - gtk+ - libdrm - libnotify - librsvg - libsecret - libx11 - libxcb - libxcomposite - libxcursor - libxdamage - libxext - libxfixes - libxi - libxkbcommon - libxkbfile - libxrandr - libxrender - libxtst - mesa - nspr - nss - pango - sqlcipher - zlib)) (home-page "https://github.com/vector-im/element-desktop") (synopsis "Matrix collaboration client for desktop") (description "Element Desktop is a Matrix client for desktop with Element Web at @@ -170,109 +90,48 @@ its core.") (define-public signal-desktop (package (name "signal-desktop") - (version "5.63.1") + (version "7.4.0") (source (origin (method url-fetch) (uri (string-append - "https://updates.signal.org/desktop/apt/pool/main/s/" name "/" name "_" version + "https://updates.signal.org/desktop/apt/pool/s/" name "/" name "_" version "_amd64.deb")) (sha256 - (base32 "1y94iikm6ckbs28vpcx4alriypjk14vzaf3sgwyqs4a5cj6rhdzv")))) + (base32 "069k7kcg8h16q0mm1bqdf7x66qji653apgwhnb52kdqsfzr1ibzm")))) (supported-systems '("x86_64-linux")) - (build-system binary-build-system) + (build-system chromium-binary-build-system) (arguments (list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files - #:patchelf-plan - #~'(("lib/Signal/signal-desktop" - ("alsa-lib" "at-spi2-atk" "at-spi2-core" "atk" "cairo" "cups" - "dbus" "expat" "fontconfig-minimal" "gcc" "gdk-pixbuf" "glib" - "gtk+" "libdrm" "libsecret" "libx11" "libxcb" "libxcomposite" - "libxcursor" "libxdamage" "libxext" "libxfixes" "libxi" - "libxkbcommon" "libxkbfile" "libxrandr" "libxshmfence" "libxtst" - "mesa" "nspr" "pango" "pulseaudio" "zlib"))) + #:wrapper-plan + #~'("lib/Signal/signal-desktop") #:phases #~(modify-phases %standard-phases - (replace 'unpack + (add-after 'binary-unpack 'setup-cwd (lambda _ - (invoke "ar" "x" #$source) - (invoke "tar" "xvf" "data.tar.xz") (copy-recursively "usr/" ".") ;; Use the more standard lib directory for everything. (rename-file "opt/" "lib") ;; Remove unneeded files. (delete-file-recursively "usr") - (delete-file "control.tar.gz") - (delete-file "data.tar.xz") - (delete-file "debian-binary") - (delete-file "environment-variables") ;; Fix the .desktop file binary location. (substitute* '("share/applications/signal-desktop.desktop") (("/opt/Signal/") - (string-append #$output "/lib/Signal/"))))) - (add-after 'install 'symlink-binary-file-and-cleanup + (string-append #$output "/bin/"))))) + (add-after 'install 'symlink-binary-file (lambda _ - (delete-file (string-append #$output "/environment-variables")) (mkdir-p (string-append #$output "/bin")) (symlink (string-append #$output "/lib/Signal/signal-desktop") (string-append #$output "/bin/signal-desktop")))) - (add-after 'install 'wrap-where-patchelf-does-not-work + (add-after 'install-wrapper 'wrap-where-patchelf-does-not-work (lambda _ (wrap-program (string-append #$output "/lib/Signal/signal-desktop") - `("FONTCONFIG_PATH" ":" prefix - (,(string-join - (list - (string-append #$(this-package-input "fontconfig-minimal") "/etc/fonts") - #$output) - ":"))) `("LD_LIBRARY_PATH" ":" prefix (,(string-join (list - (string-append #$(this-package-input "nss") "/lib/nss") - (string-append #$(this-package-input "eudev") "/lib") - (string-append #$(this-package-input "gcc") "/lib") - (string-append #$(this-package-input "mesa") "/lib") - (string-append #$(this-package-input "libxkbfile") "/lib") - (string-append #$(this-package-input "pulseaudio") "/lib") - (string-append #$(this-package-input "zlib") "/lib") - (string-append #$(this-package-input "libsecret") "/lib") - (string-append #$output "/lib/Signal") - #$output) + (string-append #$output "/lib/Signal")) ":"))))))))) - (native-inputs (list tar)) - (inputs (list alsa-lib - at-spi2-atk - at-spi2-core - atk - cairo - cups - dbus - eudev - expat - fontconfig - `(,gcc "lib") - glib - gtk+ - libdrm - librsvg - libsecret - libx11 - libxcb - libxcomposite - libxdamage - libxext - libxfixes - libxkbcommon - libxkbfile - libxrandr - libxshmfence - mesa - nspr - nss - pango - pulseaudio - zlib)) (home-page "https://signal.org/") (synopsis "Private messenger using the Signal protocol") (description "Signal Desktop is an Electron application that links with Signal on Android @@ -285,19 +144,21 @@ or iOS.") (define-public zoom (package (name "zoom") - (version "5.12.2.4816") + (version "5.17.5.2543") (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 "0vxlvxp0jzpc5xsh9wlxc74466i5ipg3fwpi0kv03rl8ib8y1n7p")))) + (base32 "06m53d3jrpiq1z5wd7m61lb3w8m8g72iaqx5sixnzn290gyyzgim")))) (supported-systems '("x86_64-linux")) (build-system binary-build-system) (arguments (list #:validate-runpath? #f ; TODO: fails on wrapped binary and included other files #:patchelf-plan + ;; 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" "at-spi2-atk" "at-spi2-core" @@ -337,6 +198,8 @@ or iOS.") ("lib/zoom/zoom" ,libs) ("lib/zoom/zopen" + ,libs) + ("lib/zoom/aomhost" ,libs))) #:phases #~(modify-phases %standard-phases @@ -364,6 +227,54 @@ or iOS.") "libxrender" "zlib"))))) (wrap-program (string-append #$output "/lib/zoom/zoom") + '("QML2_IMPORT_PATH" = ()) + '("QT_PLUGIN_PATH" = ()) + '("QT_SCREEN_SCALE_FACTORS" = ()) + `("FONTCONFIG_PATH" ":" prefix + (,(string-join + (list + (string-append #$(this-package-input "fontconfig-minimal") "/etc/fonts") + #$output) + ":"))) + `("LD_LIBRARY_PATH" prefix + ,(list (string-append #$(this-package-input "nss") "/lib/nss") + #$@(map (lambda (pkg) + (file-append (this-package-input pkg) "/lib")) + ;; TODO: Reuse this long list as it is + ;; needed for aomhost. Or perhaps + ;; aomhost has a shorter needed list, + ;; but untested. + '("alsa-lib" + "atk" + "at-spi2-atk" + "at-spi2-core" + "cairo" + "cups" + "dbus" + "eudev" + "expat" + "gcc" + "glib" + "mesa" + "mit-krb5" + "nspr" + "libxcb" + "libxcomposite" + "libxdamage" + "libxext" + "libxkbcommon" + "libxkbfile" + "libxrandr" + "libxshmfence" + "pango" + "pulseaudio" + "xcb-util" + "xcb-util-image" + "xcb-util-keysyms" + "xcb-util-wm" + "xcb-util-renderutil" + "zlib"))))) + (wrap-program (string-append #$output "/lib/zoom/aomhost") `("FONTCONFIG_PATH" ":" prefix (,(string-join (list @@ -386,15 +297,23 @@ or iOS.") "gcc" "glib" "mesa" + "mit-krb5" "nspr" + "libxcb" "libxcomposite" "libxdamage" + "libxext" "libxkbcommon" "libxkbfile" "libxrandr" "libxshmfence" "pango" "pulseaudio" + "xcb-util" + "xcb-util-image" + "xcb-util-keysyms" + "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 @@ -410,6 +329,8 @@ or iOS.") (lambda _ (delete-file (string-append #$output "/environment-variables")) (mkdir-p (string-append #$output "/bin")) + (symlink (string-append #$output "/lib/zoom/aomhost") + (string-append #$output "/bin/aomhost")) (symlink (string-append #$output "/lib/zoom/zoom") (string-append #$output "/bin/zoom")) (symlink (string-append #$output "/lib/zoom/zopen") @@ -468,13 +389,16 @@ or iOS.") libxrender libxshmfence mesa + mit-krb5 nspr nss pango pulseaudio - qtmultimedia + xcb-util xcb-util-image xcb-util-keysyms + xcb-util-renderutil + xcb-util-wm zlib)) (home-page "https://zoom.us/") (synopsis "Video conference client") |