summary refs log tree commit diff
diff options
context:
space:
mode:
authorGreyson Fischer <greyson@foosoft.us>2016-03-22 16:05:02 -0400
committerArseniy Seroka <ars.seroka@gmail.com>2016-03-23 11:29:18 +0300
commit7fe888e521fc523b77b1a4208b12c858d127e457 (patch)
tree22e93b3e87ddbb5714e67db9e6c75fab974987b2
parentf809c4a8d11ddf410222c0ab20b85dc701b9d5b0 (diff)
downloadnixlib-7fe888e521fc523b77b1a4208b12c858d127e457.tar
nixlib-7fe888e521fc523b77b1a4208b12c858d127e457.tar.gz
nixlib-7fe888e521fc523b77b1a4208b12c858d127e457.tar.bz2
nixlib-7fe888e521fc523b77b1a4208b12c858d127e457.tar.lz
nixlib-7fe888e521fc523b77b1a4208b12c858d127e457.tar.xz
nixlib-7fe888e521fc523b77b1a4208b12c858d127e457.tar.zst
nixlib-7fe888e521fc523b77b1a4208b12c858d127e457.zip
slack: init at 2.0.1
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix85
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 87 insertions, 0 deletions
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
new file mode 100644
index 000000000000..c6e550b5e8fd
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -0,0 +1,85 @@
+{ stdenv, fetchurl, dpkg
+, alsaLib, atk, cairo, cups, dbus, expat, fontconfig, freetype, glib, gnome
+, libnotify, nspr, nss, systemd, xorg }:
+
+let
+
+  version = "2.0.1";
+
+  rpath = stdenv.lib.makeSearchPath "lib" [
+    alsaLib
+    atk
+    cairo
+    cups
+    dbus
+    expat
+    fontconfig
+    freetype
+    glib
+    gnome.GConf
+    gnome.gdk_pixbuf
+    gnome.gtk
+    gnome.pango
+    libnotify
+    nspr
+    nss
+    systemd
+
+    xorg.libX11
+    xorg.libXcomposite
+    xorg.libXcursor
+    xorg.libXdamage
+    xorg.libXext
+    xorg.libXfixes
+    xorg.libXi
+    xorg.libXrandr
+    xorg.libXrender
+    xorg.libXtst
+  ] + ":${stdenv.cc.cc}/lib64";
+
+  src =
+    if stdenv.system == "x86_64-linux" then
+      fetchurl {
+        url = "https://slack-ssb-updates.global.ssl.fastly.net/linux_releases/slack-desktop-${version}-amd64.deb";
+        sha256 = "12d84e61ba366cc5bac105b3f9930f2dfdd64c1e5fabbb08a6877e1c98bfb9c7";
+      }
+    else
+      throw "Slack is not supported on ${stdenv.system}";
+
+in stdenv.mkDerivation {
+  name = "slack-${version}";
+
+  inherit src;
+
+  buildInputs = [ dpkg ];
+  unpackPhase = "true";
+  buildCommand = ''
+    mkdir -p $out
+    dpkg -x $src $out
+    cp -av $out/usr/* $out
+    rm -rf $out/usr
+
+    # Otherwise it looks "suspicious"
+    chmod -R g-w $out
+
+    for file in $(find $out -type f \( -perm /0111 -o -name \*.so\* \) ); do
+      patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" "$file" || true
+      patchelf --set-rpath ${rpath}:$out/share/slack $file || true
+    done
+
+    # Fix the symlink
+    rm $out/bin/slack
+    ln -s $out/share/slack/slack $out/bin/slack
+
+    # Fix the desktop link
+    substituteInPlace $out/share/applications/slack.desktop \
+      --replace /usr/share/slack/slack $out/share/slack/slack
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Desktop client for Slack";
+    homepage = "https://slack.com";
+    license = licenses.unfree;
+    platforms = [ "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 26175c4e6d2d..4e34a6d4aa04 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -12685,6 +12685,8 @@ let
 
   hydrogen = callPackage ../applications/audio/hydrogen { };
 
+  slack = callPackage ../applications/networking/instant-messengers/slack { };
+
   spectrwm = callPackage ../applications/window-managers/spectrwm { };
 
   wlc = callPackage ../development/libraries/wlc { };