summaryrefslogtreecommitdiff
path: root/nongnu/packages/messaging.scm
diff options
context:
space:
mode:
Diffstat (limited to 'nongnu/packages/messaging.scm')
-rw-r--r--nongnu/packages/messaging.scm266
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")