mirror of
https://gitlab.com/nonguix/nonguix.git
synced 2025-10-02 02:14:59 +00:00
Compare commits
31 commits
cfb622152e
...
19e68e0c16
Author | SHA1 | Date | |
---|---|---|---|
|
19e68e0c16 | ||
|
e7d029cb3e | ||
|
f2ec40c38e | ||
|
908aef7fd4 | ||
|
8d9866a46f | ||
|
bb0b5d7699 | ||
|
f1c1b72720 | ||
|
ca159dfdf9 | ||
|
5799d738e2 | ||
|
c6b5718654 | ||
|
94892dd243 | ||
|
acb40e4eca | ||
|
eca65ef8ca | ||
|
e92404586e | ||
|
9c6bc43db7 | ||
|
306f7cec91 | ||
|
f0d517401d | ||
|
553bb159d4 | ||
|
281c99a21a | ||
|
f623b1aa3b | ||
|
e0d42beae4 | ||
|
3f69ee75c4 | ||
|
20d6b08ce4 | ||
|
8af27adecb | ||
|
922773dfe6 | ||
|
75427fca4e | ||
|
57ac6b2c23 | ||
|
5d996d58b5 | ||
|
ba948aa47a | ||
|
4eba593ddb | ||
|
cd017a8bd3 |
1 changed files with 170 additions and 31 deletions
|
@ -9,9 +9,11 @@
|
|||
(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)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gl)
|
||||
#:use-module (gnu packages glib)
|
||||
|
@ -21,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)
|
||||
|
@ -132,17 +135,19 @@ 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")
|
||||
(version "5.17.5.2543")
|
||||
(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 "06m53d3jrpiq1z5wd7m61lb3w8m8g72iaqx5sixnzn290gyyzgim"))))
|
||||
(base32 "09l9jfmld1dlinkgdgf8ra549rw1hwis3b5cly49a2gvz1sfr8lc"))))
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
|
@ -151,19 +156,22 @@ 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"
|
||||
"eudev"
|
||||
"expat"
|
||||
"fontconfig-minimal"
|
||||
"gcc"
|
||||
;; "gcc"
|
||||
"gcc-toolchain"
|
||||
"gdk-pixbuf"
|
||||
"glib"
|
||||
"gtk+"
|
||||
"libdrm"
|
||||
;; "libglvnd"
|
||||
"libx11"
|
||||
"libxcb"
|
||||
"libxcomposite"
|
||||
|
@ -180,18 +188,35 @@ or iOS.")
|
|||
"mesa"
|
||||
"nspr"
|
||||
"pango"
|
||||
"pipewire"
|
||||
"pulseaudio"
|
||||
"qtlottie"
|
||||
"qtremoteobjects"
|
||||
"qt3d"
|
||||
"qtbase"
|
||||
"qtgamepad"
|
||||
"qtdeclarative"
|
||||
"qtxmlpatterns"
|
||||
"qtmultimedia"
|
||||
"xcb-util"
|
||||
"xcb-util-cursor"
|
||||
"xcb-util-image"
|
||||
"xcb-util-keysyms"
|
||||
"xcb-util-renderutil"
|
||||
"xcb-util-wm"
|
||||
"wayland"
|
||||
"wayland-protocols"
|
||||
"zlib")))
|
||||
`(("lib/zoom/ZoomLauncher"
|
||||
,libs)
|
||||
("lib/zoom/zoom"
|
||||
,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
|
||||
|
@ -200,6 +225,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")
|
||||
|
@ -208,9 +272,13 @@ or iOS.")
|
|||
(file-append (this-package-input pkg) "/lib"))
|
||||
'("fontconfig-minimal"
|
||||
"freetype"
|
||||
"gcc"
|
||||
;; "gcc"
|
||||
"gcc-toolchain"
|
||||
"gdk-pixbuf"
|
||||
"glib"
|
||||
;; "libglvnd"
|
||||
"libxcomposite"
|
||||
"libxcursor"
|
||||
"libxdamage"
|
||||
"libxkbcommon"
|
||||
"libxkbfile"
|
||||
|
@ -227,8 +295,19 @@ or iOS.")
|
|||
(string-append #$(this-package-input "fontconfig-minimal") "/etc/fonts")
|
||||
#$output)
|
||||
":")))
|
||||
`("PATH" prefix
|
||||
,(list #$@(map (lambda (pkg)
|
||||
(file-append (this-package-input pkg) "/bin"))
|
||||
'("mesa-utils"
|
||||
"pulseaudio"
|
||||
"pipewire"
|
||||
"util-linux"))))
|
||||
`("LD_LIBRARY_PATH" prefix
|
||||
,(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"))
|
||||
;; TODO: Reuse this long list as it is
|
||||
|
@ -244,26 +323,50 @@ or iOS.")
|
|||
"dbus"
|
||||
"eudev"
|
||||
"expat"
|
||||
"gcc"
|
||||
"fontconfig-minimal"
|
||||
"freetype"
|
||||
;; "gcc"
|
||||
"gcc-toolchain"
|
||||
"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"
|
||||
"qtlottie"
|
||||
"qtremoteobjects"
|
||||
"qt3d"
|
||||
"qtbase"
|
||||
"qtgamepad"
|
||||
"qtdeclarative"
|
||||
"qtxmlpatterns"
|
||||
"qtmultimedia"
|
||||
"xcb-util"
|
||||
"xcb-util-cursor"
|
||||
"xcb-util-image"
|
||||
"xcb-util-keysyms"
|
||||
"xcb-util-wm"
|
||||
"xcb-util-renderutil"
|
||||
"xcb-util-wm"
|
||||
"wayland"
|
||||
"wayland-protocols"
|
||||
"zlib")))))
|
||||
(wrap-program (string-append #$output "/lib/zoom/aomhost")
|
||||
`("FONTCONFIG_PATH" ":" prefix
|
||||
|
@ -285,13 +388,17 @@ or iOS.")
|
|||
"dbus"
|
||||
"eudev"
|
||||
"expat"
|
||||
"gcc"
|
||||
;; "gcc"
|
||||
"gcc-toolchain"
|
||||
"gdk-pixbuf"
|
||||
"glib"
|
||||
"mesa"
|
||||
"mit-krb5"
|
||||
"nspr"
|
||||
;; "libglvnd"
|
||||
"libxcb"
|
||||
"libxcomposite"
|
||||
"libxcursor"
|
||||
"libxdamage"
|
||||
"libxext"
|
||||
"libxkbcommon"
|
||||
|
@ -299,24 +406,21 @@ or iOS.")
|
|||
"libxrandr"
|
||||
"libxshmfence"
|
||||
"pango"
|
||||
"pipewire"
|
||||
"pulseaudio"
|
||||
"xcb-util"
|
||||
"xcb-util-cursor"
|
||||
"xcb-util-image"
|
||||
"xcb-util-keysyms"
|
||||
"xcb-util-wm"
|
||||
"xcb-util-renderutil"
|
||||
"wayland"
|
||||
"wayland-protocols"
|
||||
"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"))
|
||||
|
@ -363,38 +467,73 @@ 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
|
||||
libdrm
|
||||
librsvg
|
||||
;; Need mesa for libgbm.so and libglvnd for libEGL, libGL, and libGLX
|
||||
;; libglvnd
|
||||
libx11
|
||||
libxcb
|
||||
libxcomposite
|
||||
libxcursor
|
||||
libxdamage
|
||||
libxext
|
||||
libxfixes
|
||||
libxi
|
||||
libxkbcommon
|
||||
libxkbfile
|
||||
libxrandr
|
||||
libxrender
|
||||
libxshmfence
|
||||
libxtst
|
||||
mesa
|
||||
;; Needed for screensharing.
|
||||
mesa-utils
|
||||
mit-krb5
|
||||
nspr
|
||||
nss
|
||||
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
|
||||
xcb-util-image
|
||||
xcb-util-keysyms
|
||||
xcb-util-renderutil
|
||||
xcb-util-wm
|
||||
wayland
|
||||
wayland-protocols
|
||||
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/"))))
|
||||
|
||||
(define-public zulip-desktop
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue