mirror of
https://github.com/SqrtMinusOne/channel-q.git
synced 2025-12-10 11:43:03 +03:00
feat(slack): add WIP
This commit is contained in:
parent
1c64c4bb57
commit
c62ebcaf4a
1 changed files with 169 additions and 0 deletions
169
slack.scm
Normal file
169
slack.scm
Normal file
|
|
@ -0,0 +1,169 @@
|
|||
(define-module (slack)
|
||||
#:use-module (gnu packages compression)
|
||||
#:use-module (gnu packages cpio)
|
||||
#:use-module (gnu packages curl)
|
||||
#:use-module (gnu packages cups)
|
||||
#:use-module (gnu packages elf)
|
||||
#:use-module (gnu packages freedesktop)
|
||||
#:use-module (gnu packages fontutils)
|
||||
#:use-module (gnu packages gcc)
|
||||
#:use-module (gnu packages gnome)
|
||||
#: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 package-management)
|
||||
#:use-module (gnu packages pulseaudio)
|
||||
#:use-module (gnu packages xdisorg)
|
||||
#:use-module (gnu packages xml)
|
||||
#:use-module (gnu packages xorg)
|
||||
#:use-module (ice-9 popen)
|
||||
#:use-module (ice-9 rdelim)
|
||||
#:use-module (guix download)
|
||||
#:use-module (guix packages)
|
||||
#:use-module ((guix licenses) #:prefix license:)
|
||||
#:use-module (nonguix build-system binary)
|
||||
#:use-module (nonguix licenses))
|
||||
|
||||
(define-public slack
|
||||
(package
|
||||
(name "slack")
|
||||
(version "4.17.0-0.1.fc21")
|
||||
(source (origin
|
||||
(method url-fetch)
|
||||
(uri (string-append "https://downloads.slack-edge.com/linux_releases/slack-" version ".x86_64.rpm"))
|
||||
(sha256
|
||||
(base32
|
||||
"04kkx10q0acn8z270r6wbkapwny5ikd250amjpli6qgin19a4ya7"))))
|
||||
(build-system binary-build-system)
|
||||
(arguments
|
||||
`(#:validate-runpath? #f ;; fails on the shipped .so files
|
||||
#:patchelf-plan
|
||||
`(("usr/lib/slack/slack"
|
||||
("out"
|
||||
"alsa-lib"
|
||||
"at-spi2-atk"
|
||||
"at-spi2-core"
|
||||
"atk"
|
||||
"cairo"
|
||||
"cups"
|
||||
"curl"
|
||||
"dbus"
|
||||
"expat"
|
||||
"fontconfig"
|
||||
"freetype"
|
||||
"gconf"
|
||||
"gdk-pixbuf"
|
||||
"glib"
|
||||
"gcc:lib"
|
||||
"gtk+"
|
||||
"libappindicator"
|
||||
"libdrm"
|
||||
"libnotify"
|
||||
"libx11"
|
||||
"libxcb"
|
||||
"libxcomposite"
|
||||
"libxdamage"
|
||||
"libxcursor"
|
||||
"libxext"
|
||||
"libxfixes"
|
||||
"libxkbcommon"
|
||||
"libxrandr"
|
||||
"libxrender"
|
||||
"libxshmfence"
|
||||
"libxtst"
|
||||
"mesa"
|
||||
"nspr"
|
||||
"pango"
|
||||
"pulseaudio"))
|
||||
("usr/lib/slack/chrome-sandbox" ())
|
||||
("usr/lib/slack/libffmpeg.so" ("gcc:lib"))
|
||||
("usr/lib/slack/libEGL.so" ("gcc:lib"))
|
||||
("usr/lib/slack/libGLESv2.so" ("libx11" "libxcb" "gcc:lib" "libxext"))
|
||||
("usr/lib/slack/libvk_swiftshader.so" ("gcc:lib"))
|
||||
("usr/lib/slack/libvulkan.so.1" ("gcc:lib")))
|
||||
#:install-plan
|
||||
`(("etc/" "etc")
|
||||
("usr/" "usr")
|
||||
("usr/lib/slack/libffmpeg.so" "lib/")
|
||||
("usr/lib/slack/libEGL.so" "lib/")
|
||||
("usr/lib/slack/libGLESv2.so" "lib/")
|
||||
("usr/lib/slack/libvk_swiftshader.so" "lib/")
|
||||
("usr/lib/slack/libvulkan.so.1" "lib/"))
|
||||
#:phases
|
||||
(modify-phases %standard-phases
|
||||
(replace 'unpack
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(let ((source (assoc-ref inputs "source")))
|
||||
(system (format #f "rpm2cpio ~a | cpio -idmv" source))
|
||||
(mkdir "lib")
|
||||
#t)))
|
||||
;; because NSS stores its libraries in lib/nss
|
||||
(add-after 'patchelf 'patchelf-nss
|
||||
(lambda* (#:key inputs #:allow-other-keys)
|
||||
(use-modules (ice-9 popen))
|
||||
(use-modules (ice-9 rdelim))
|
||||
(let* ((nss (assoc-ref inputs "nss"))
|
||||
(rpath-pipe (open-input-pipe
|
||||
"patchelf --print-rpath usr/lib/slack/slack"))
|
||||
(rpath (read-line rpath-pipe)))
|
||||
(close-pipe rpath-pipe)
|
||||
(invoke "patchelf" "--set-rpath"
|
||||
(string-append rpath ":" nss "/lib/nss")
|
||||
"usr/lib/slack/slack"))))
|
||||
(add-after 'install 'install-symlink
|
||||
(lambda* (#:key outputs #:allow-other-keys)
|
||||
(let ((out (string-append (assoc-ref outputs "out"))))
|
||||
(mkdir (string-append out "/bin"))
|
||||
(symlink (string-append out "/usr/lib/slack/slack")
|
||||
(string-append out "/bin/slack"))
|
||||
#t))))))
|
||||
(inputs
|
||||
`(("alsa-lib" ,alsa-lib)
|
||||
("at-spi2-atk" ,at-spi2-atk)
|
||||
("at-spi2-core" ,at-spi2-core)
|
||||
("atk" ,atk)
|
||||
("cairo" ,cairo)
|
||||
("cups" ,cups)
|
||||
("curl" ,curl)
|
||||
("dbus" ,dbus)
|
||||
("expat" ,expat)
|
||||
("fontconfig" ,fontconfig)
|
||||
("freetype" ,freetype)
|
||||
("gconf" ,gconf)
|
||||
("gcc:lib" ,gcc "lib")
|
||||
("gdk-pixbuf" ,gdk-pixbuf)
|
||||
("glib" ,glib)
|
||||
("gtk+" ,gtk+)
|
||||
("libappindicator" ,libappindicator)
|
||||
("libdrm" ,libdrm)
|
||||
("libnotify" ,libnotify)
|
||||
("libx11" ,libx11)
|
||||
("libxcb" ,libxcb)
|
||||
("libxcomposite" ,libxcomposite)
|
||||
("libxcursor" ,libxcursor)
|
||||
("libxdamage" ,libxdamage)
|
||||
("libxext" ,libxext)
|
||||
("libxfixes" ,libxfixes)
|
||||
("libxkbcommon" ,libxkbcommon)
|
||||
("libxrandr" ,libxrandr)
|
||||
("libxrender" ,libxrender)
|
||||
("libxshmfence" ,libxshmfence)
|
||||
("libxtst" ,libxtst)
|
||||
("mesa" ,mesa)
|
||||
("nss" ,nss)
|
||||
("nspr" ,nspr)
|
||||
("pango" ,pango)
|
||||
("pulseaudio" ,pulseaudio)))
|
||||
(propagated-inputs
|
||||
`(("libnotify" ,libnotify)))
|
||||
(native-inputs
|
||||
`(("cpio" ,cpio)
|
||||
("rpm" ,rpm)
|
||||
("patchelf" ,patchelf)))
|
||||
(synopsis "A businness communication platform")
|
||||
(description "A businness communication platform")
|
||||
(home-page "https://slack.com/")
|
||||
(supported-systems '("x86_64-linux"))
|
||||
(license (nonfree "Nowhere to be found"))))
|
||||
Loading…
Add table
Reference in a new issue