]> infiniteadaptability.org Git - channel/commitdiff
packages: add slack
authoralex <[email protected]>
Mon, 1 Dec 2025 16:25:02 +0000 (08:25 -0800)
committeralex <[email protected]>
Mon, 1 Dec 2025 16:25:02 +0000 (08:25 -0800)
infiniteadaptability/packages/slack.scm [new file with mode: 0644]

diff --git a/infiniteadaptability/packages/slack.scm b/infiniteadaptability/packages/slack.scm
new file mode 100644 (file)
index 0000000..1ef1ad9
--- /dev/null
@@ -0,0 +1,128 @@
+(define-module (infiniteadaptability packages slack)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages base)
+  #:use-module (gnu packages commencement)
+  #:use-module (gnu packages cups)
+  #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages nss)
+  #:use-module (gnu packages video)
+  #:use-module (gnu packages xdisorg)
+  #:use-module (gnu packages xorg)
+  #:use-module (gnu packages xml)
+  #:use-module (guix download)
+  #:use-module (guix gexp)
+  #:use-module ((guix licenses)
+                #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (nonguix build-system binary)
+  #:use-module (nonguix multiarch-container))
+
+(define-public slack-client
+  (package
+    (name "slack")
+    (version "4.46.101")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "https://downloads.slack-edge.com/desktop-releases/linux/x64/"
+             version "/slack-desktop-" version "-amd64.deb"))
+       (sha256
+        (base32 "0dbrf30lixw1c2c028krcb9199vqybpqipzphrc5rs1alpqh3bqw"))))
+    (supported-systems '("x86_64-linux"))
+    (build-system binary-build-system)
+    (arguments
+     (list
+      #:substitutable? #f
+      #:patchelf-plan `'(("usr/bin/slack" ("alsa-lib" "at-spi2-core"
+                                           "cairo"
+                                           "cups"
+                                           "dbus"
+                                           "eudev"
+                                           "expat"
+                                           "ffmpeg"
+                                           "gcc"
+                                           "gcc-toolchain"
+                                           "glib"
+                                           "gtk+"
+                                           "libc"
+                                           "libdrm"
+                                           "libx11"
+                                           "libxcb"
+                                           "libxcomposite"
+                                           "libxdamage"
+                                           "libxext"
+                                           "libxfixes"
+                                           "libxkbcommon"
+                                           "libxrandr"
+                                           "mesa"
+                                           "nspr"
+                                           ("nss" "/lib/nss")
+                                           "pango"))
+                         ("usr/lib/slack/chrome_crashpad_handler" ("gcc"
+                                                                   "glibc"))
+                         ("usr/lib/slack/libEGL.so" ("gcc")))
+      #:install-plan
+      #~'(("usr" "usr"))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'install 'symlink-binary-file
+            (lambda _
+              (mkdir-p (string-append #$output "/bin"))
+              (symlink (string-append #$output "/usr/bin/slack")
+                       (string-append #$output "/bin/slack"))))
+          (add-after 'symlink-binary-file 'wrap-binary
+            (lambda _
+              (wrap-program (string-append #$output "/usr/bin/slack")
+                `("LD_LIBRARY_PATH" ":" prefix
+                  (,(string-join (list (string-append #$output
+                                                      "/usr/lib/slack")
+                                       (string-append #$gcc-toolchain "/lib/"))
+                                 ":")))))))))
+    (inputs (list alsa-lib
+                  at-spi2-core
+                  cairo
+                  cups
+                  dbus
+                  expat
+                  eudev
+                  ffmpeg
+                  gcc
+                  gcc-toolchain
+                  glib
+                  glibc
+                  gtk+
+                  libdrm
+                  libx11
+                  libxcomposite
+                  libxcb
+                  libxdamage
+                  libxext
+                  libxfixes
+                  libxkbcommon
+                  libxrandr
+                  nss
+                  nspr
+                  pango
+                  mesa))
+    (synopsis "Slack")
+    (description "Slack")
+    (license license:unlicense)
+    (home-page "https://slack.com")))
+
+(define-public slack-container
+  (nonguix-container (name "slack")
+                     (wrap-package slack-client)
+                     (ld.so.conf '())
+                     (ld.so.cache '())
+                     (run "/bin/slack")
+                     (description "slack container...")))
+
+(define-public slack
+  (nonguix-container->package slack-container))
+
+slack-client