about summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/networking/instant-messengers')
-rw-r--r--pkgs/applications/networking/instant-messengers/bluejeans/default.nix123
-rw-r--r--pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c12
-rw-r--r--pkgs/applications/networking/instant-messengers/gomuks/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/linphone/default.nix250
-rw-r--r--pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch13
-rw-r--r--pkgs/applications/networking/instant-messengers/rambox/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/dark-theme.nix19
-rw-r--r--pkgs/applications/networking/instant-messengers/slack/default.nix100
-rwxr-xr-xpkgs/applications/networking/instant-messengers/slack/update.sh19
-rw-r--r--pkgs/applications/networking/instant-messengers/teams/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/vk-messenger/default.nix6
-rw-r--r--pkgs/applications/networking/instant-messengers/wire-desktop/default.nix12
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix4
15 files changed, 413 insertions, 167 deletions
diff --git a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
index 21b21e253499..14fbd4db1a00 100644
--- a/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
+++ b/pkgs/applications/networking/instant-messengers/bluejeans/default.nix
@@ -1,47 +1,120 @@
-{ stdenv, fetchurl, rpmextract, patchelf, libnotify, libcap, cairo, pango, fontconfig, udev, dbus
-, gtk2, atk, expat, gdk-pixbuf, freetype, nspr, glib, nss, gconf, libX11, libXrender, libXtst, libXdamage
-, libXi, libXext, libXfixes, libXcomposite, alsaLib, bash
+{ stdenv
+, fetchurl
+, rpmextract
+, patchelf
+, patchelfUnstable
+, libnotify
+, libuuid
+, cairo
+, cups
+, pango
+, fontconfig
+, udev
+, dbus
+, gtk3
+, atk
+, at-spi2-atk
+, expat
+, gdk-pixbuf
+, freetype
+, nspr
+, glib
+, nss
+, libX11
+, libXrandr
+, libXrender
+, libXtst
+, libXdamage
+, libxcb
+, libXcursor
+, libXi
+, libXext
+, libXfixes
+, libXft
+, libXcomposite
+, libXScrnSaver
+, alsaLib
+, pulseaudio
+, makeWrapper
 }:
 
 stdenv.mkDerivation rec {
   pname = "bluejeans";
-  version = "1.36.9";
+  version = "2.1.0";
 
-  src =
-    fetchurl {
-      url = "https://swdl.bluejeans.com/desktop/linux/1.36/${version}/bluejeans-${version}.x86_64.rpm";
-      sha256 = "0sbv742pzqd2cxn3kq10lfi16jah486i9kyrmi8l1rpb9fhyw2m1";
-    };
+  src = fetchurl {
+    url = "https://swdl.bluejeans.com/desktop-app/linux/${version}/BlueJeans.rpm";
+    sha256 = "1zhh0pla5gk75p8x84va9flvnk456pbcm1n6x8l82c9682fwr7dd";
+  };
 
-  nativeBuildInputs = [ patchelf rpmextract ];
+  nativeBuildInputs = [ rpmextract makeWrapper ];
 
   libPath =
     stdenv.lib.makeLibraryPath
-       [ libnotify libcap cairo pango fontconfig gtk2 atk expat gdk-pixbuf dbus udev.lib
-         freetype nspr glib stdenv.cc stdenv.cc.cc.lib nss gconf libX11 libXrender libXtst libXdamage
-         libXi libXext libXfixes libXcomposite alsaLib
-       ];
+      [
+        libnotify
+        libuuid
+        cairo
+        cups
+        pango
+        fontconfig
+        gtk3
+        atk
+        at-spi2-atk
+        expat
+        gdk-pixbuf
+        dbus
+        udev.lib
+        freetype
+        nspr
+        glib
+        stdenv.cc.cc.lib
+        nss
+        libX11
+        libXrandr
+        libXrender
+        libXtst
+        libXdamage
+        libxcb
+        libXcursor
+        libXi
+        libXext
+        libXfixes
+        libXft
+        libXcomposite
+        libXScrnSaver
+        alsaLib
+        pulseaudio
+      ];
+
+  localtime64_stub = ./localtime64_stub.c;
 
   buildCommand = ''
     mkdir -p $out/bin/
     cd $out
     rpmextract $src
-    patchelf \
+    mv usr/share share
+    rmdir usr
+
+    ${patchelf}/bin/patchelf \
       --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
-      opt/bluejeans/bluejeans-bin
-    patchelf \
-      --set-rpath ${libPath} \
-      opt/bluejeans/bluejeans-bin
-    patchelf \
       --replace-needed libudev.so.0 libudev.so.1 \
-      opt/bluejeans/bluejeans-bin
-    ln -s $out/opt/bluejeans/bluejeans $out/bin/bluejeans
-    chmod +x $out/bin/bluejeans
-    patchShebangs $out
+      opt/BlueJeans/bluejeans-v2
+    ${patchelfUnstable}/bin/patchelf \
+      --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
+      opt/BlueJeans/resources/BluejeansHelper
+
+    cc $localtime64_stub -shared -o "$out"/opt/BlueJeans/liblocaltime64_stub.so
+
+    makeWrapper $out/opt/BlueJeans/bluejeans-v2 $out/bin/bluejeans \
+      --set LD_LIBRARY_PATH "${libPath}":"${placeholder "out"}"/opt/BlueJeans \
+      --set LD_PRELOAD "$out"/opt/BlueJeans/liblocaltime64_stub.so
+
+    patchShebangs "$out"
   '';
 
   meta = with stdenv.lib; {
-    description = "Video, audio, and web conferencing that works together with the collaboration tools you use every day.";
+    description = "Video, audio, and web conferencing that works together with the collaboration tools you use every day";
     homepage = "https://www.bluejeans.com";
     license = licenses.unfree;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c b/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c
new file mode 100644
index 000000000000..87c2fa11714c
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/bluejeans/localtime64_stub.c
@@ -0,0 +1,12 @@
+#include <stdio.h>
+#include <stdlib.h>
+
+void *localtime64() {
+  fprintf(stderr, "nixpkgs: call into localtime64_r\n");
+  abort();
+}
+
+void *localtime64_r() {
+  fprintf(stderr, "nixpkgs: call into localtime64_r\n");
+  abort();
+}
diff --git a/pkgs/applications/networking/instant-messengers/gomuks/default.nix b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
index 27790c2c9e08..a36f72c03d08 100644
--- a/pkgs/applications/networking/instant-messengers/gomuks/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gomuks/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, buildGoModule, fetchFromGitHub, Security }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
 buildGoModule rec {
   pname = "gomuks";
@@ -15,8 +15,6 @@ buildGoModule rec {
 
   modSha256 = "03vbrh50pvx71rp6c23qc2sh0ir4jm1wl0gvi3z1c14ndzhsqky4";
 
-  buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
-
   meta = with stdenv.lib; {
     homepage = "https://maunium.net/go/gomuks/";
     description = "A terminal based Matrix client written in Go";
diff --git a/pkgs/applications/networking/instant-messengers/linphone/default.nix b/pkgs/applications/networking/instant-messengers/linphone/default.nix
index b155f3129642..b1927395a570 100644
--- a/pkgs/applications/networking/instant-messengers/linphone/default.nix
+++ b/pkgs/applications/networking/instant-messengers/linphone/default.nix
@@ -1,61 +1,239 @@
-{ stdenv, intltool, pkgconfig, readline, openldap, cyrus_sasl, libupnp
-, zlib, libxml2, gtk2, libnotify, speex, ffmpeg, libX11, libsoup, udev
-, ortp, mediastreamer, sqlite, belle-sip, libosip, libexosip, bzrtp
-, mediastreamer-openh264, bctoolbox, makeWrapper, fetchFromGitHub, cmake
-, libmatroska, bcunit, doxygen, gdk-pixbuf, glib, cairo, pango, mbedtls
-, python, graphviz, belcard, bcg729
-, withGui ? true
+{ bcg729
+, bctoolbox
+, bcunit
+, belcard
+, belle-sip
+, belr
+, bzrtp
+, cairo
+, cmake
+, cyrus_sasl
+, fetchFromGitLab
+, fetchurl
+, ffmpeg
+, gdk-pixbuf
+, glib
+, gnused
+, graphviz
+, gtk2
+, intltool
+, lib
+, libexosip
+, liblinphone
+, libmatroska
+, libnotify
+, libosip
+, libsoup
+, libupnp
+, libX11
+, libxml2
+, makeWrapper
+, mbedtls
+, mediastreamer
+, mediastreamer-openh264
+, mkDerivation
+, openldap
+, ortp
+, pango
+, pkgconfig
+, python
+, qtbase
+, qtgraphicaleffects
+, qtquickcontrols2
+, qttranslations
+, readline
+, speex
+, sqlite
+, stdenv
+, udev
+, zlib
+  # For Minizip 2.2.7:
+, fetchFromGitHub
+, libbsd
 }:
+let
+  # Linphone Desktop requires Minizip 2.2.7. Nixpkgs contains a very old version
+  # from the time when it was part of zlib. The most recent release of Minizip
+  # is currently 2.9.2 but Linphone Desktop didn't work with that. So, even if
+  # we added most recent Minizip version to nixpkgs, probably Minizip 2.2.7 is
+  # only needed here and we shouldn't add this semi-old version to
+  # all-packages.nix. Therefore, just define it here locally.
+  minizip2 = stdenv.mkDerivation rec {
+    pname = "minizip";
+    version = "2.2.7";
 
-stdenv.mkDerivation rec {
-  pname = "linphone";
-  version = "3.12.0";
+    disabled = stdenv.isAarch32;
 
-  src = fetchFromGitHub {
-    owner = "BelledonneCommunications";
+    src = fetchFromGitHub {
+      owner = "nmoinvaz";
+      repo = pname;
+      rev = version;
+      sha256 = "1a88v1gjlflsd17mlrgxh420rpa38q0d17yh9q8j1zzqfrd1azch";
+    };
+
+    nativeBuildInputs = [ cmake pkgconfig ];
+
+    cmakeFlags = [
+      "-DBUILD_SHARED_LIBS=YES"
+    ];
+
+    buildInputs = [
+      zlib
+      libbsd # required in 2.2.7 but not in 2.9.2?
+    ];
+
+    meta = with stdenv.lib; {
+      description = "Compression library implementing the deflate compression method found in gzip and PKZIP";
+      homepage = "https://github.com/nmoinvaz/minizip";
+      license = licenses.zlib;
+      platforms = platforms.unix;
+    };
+  };
+in
+mkDerivation rec {
+  pname = "linphone-desktop";
+  # Latest release is 4.1.1 old and doesn't build with the latest releases of
+  # some of the dependencies so let's use the latest commit.
+  version = "unstable-2020-03-06";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.linphone.org";
+    owner = "public";
+    group = "BC";
     repo = pname;
-    rev = version;
-    sha256 = "0az2ywrpx11sqfb4s4r2v726avcjf4k15bvrqj7xvhz7hdndmh0j";
+    rev = "971997e162558d37051f89c9c34bbc240135f704";
+    sha256 = "02ji4r8bpcm2kyisn9d3054m026l33g2574i1ag1cmb2dz2p8i1c";
   };
 
-  cmakeFlags = stdenv.lib.optional withGui [ "-DENABLE_GTK_UI=ON" ];
+  # Without this patch, the build fails with:
+  #
+  #   No rule to make target
+  #   'minizip_OUTPUT/nix/store/...linphone-desktop.../lib/libminizip.so',
+  #
+  # So, the makefile tries to use a full absolute path to the library but does
+  # it incorrectly. As we have installed Minizip properly, it's sufficient to
+  # just use "minizip" and the library is found automatically. If this patched
+  # target_link_libraries line was removed entirely, the build would fail at the
+  # very end when linking minizip.
+  patches = [
+    ./fix_minizip_linking.patch
+  ];
 
+  # See: https://gitlab.linphone.org/BC/public/linphone-desktop/issues/21
   postPatch = ''
-    touch coreapi/liblinphone_gitversion.h
+    substituteInPlace src/app/AppController.cpp \
+      --replace "LINPHONE_QT_GIT_VERSION" "\"${version}\""
   '';
 
+  # TODO: After linphone-desktop and liblinphone split into separate packages,
+  # there might be some build inputs here that aren't needed for
+  # linphone-desktop.
   buildInputs = [
-    readline openldap cyrus_sasl libupnp zlib libxml2 gtk2 libnotify speex ffmpeg libX11
-    mbedtls libsoup udev ortp mediastreamer sqlite belle-sip libosip libexosip
-    bctoolbox libmatroska gdk-pixbuf glib cairo pango bzrtp belcard bcg729
+    bcg729
+    bctoolbox
+    belcard
+    belle-sip
+    belr
+    bzrtp
+    cairo
+    cyrus_sasl
+    ffmpeg
+    gdk-pixbuf
+    glib
+    gtk2
+    libX11
+    libexosip
+    liblinphone
+    libmatroska
+    libnotify
+    libosip
+    libsoup
+    libupnp
+    libxml2
+    mbedtls
+    mediastreamer
+    mediastreamer-openh264
+    minizip2
+    openldap
+    ortp
+    pango
+    qtbase
+    qtgraphicaleffects
+    qtquickcontrols2
+    qttranslations
+    readline
+    speex
+    sqlite
+    udev
+    zlib
   ];
 
   nativeBuildInputs = [
-    intltool pkgconfig makeWrapper cmake bcunit doxygen graphviz
-    (python.withPackages (ps: [ ps.pystache ps.six ]))
+    bcunit
+    cmake
+    gnused
+    graphviz
+    intltool
+    makeWrapper
+    pkgconfig
   ];
 
-  NIX_CFLAGS_COMPILE = [
-    "-Wno-error"
-    "-I${glib.dev}/include/glib-2.0"
-    "-I${glib.out}/lib/glib-2.0/include"
-    "-I${gtk2.dev}/include/gtk-2.0/"
-    "-I${cairo.dev}/include/cairo"
-    "-I${pango.dev}/include/pango-1.0"
-    "-I${gtk2}/lib/gtk-2.0/include"
-    "-DLIBLINPHONE_GIT_VERSION=\"v${version}\""
+  cmakeFlags = [
+    "-DCMAKE_BUILD_TYPE=RelWithDebInfo"
+    "-DMINIZIP_INCLUDE_DIRS=${minizip2}/include"
+    "-DMINIZIP_LIBRARIES=minizip"
   ];
 
-  postInstall = ''
-    for i in $(cd $out/bin && ls); do
-      wrapProgram $out/bin/$i --set MEDIASTREAMER_PLUGINS_DIR ${mediastreamer-openh264}/lib/mediastreamer/plugins
-    done
+  # The default install phase fails because the paths are somehow messed up in
+  # the makefiles. The errors were like:
+  #
+  #   CMake Error at cmake_builder/linphone_package/cmake_install.cmake:49 (file):
+  #     file INSTALL cannot find
+  #     "/build/linphone-desktop-.../build/linphone-sdk/desktop//nix/store/.../bin":
+  #     No such file or directory.
+  #
+  # If someone is able to figure out how to fix that, great. For now, just
+  # trying to pick all the relevant files to the output.
+  #
+  # Also, the exec path in linphone.desktop file remains invalid, pointing to
+  # the build directory, after the whole nix build process. So, let's use sed to
+  # manually fix that path.
+  #
+  # In order to find mediastreamer plugins, mediastreamer package was patched to
+  # support an environment variable pointing to the plugin directory. Set that
+  # environment variable by wrapping the Linphone executable.
+  #
+  # Also, some grammar files needed to be copied too from some dependencies. I
+  # suppose if one define a dependency in such a way that its share directory is
+  # found, then this copying would be unnecessary. These missing grammar files
+  # were discovered when linphone crashed at startup and it was run with
+  # --verbose flag. Instead of actually copying these files, create symlinks.
+  #
+  # It is quite likely that there are some other files still missing and
+  # Linphone will randomly crash when it tries to access those files. Then,
+  # those just need to be copied manually below.
+  installPhase = ''
+    mkdir -p $out/bin
+    cp linphone $out/bin/
+    wrapProgram $out/bin/linphone \
+      --set MEDIASTREAMER_PLUGINS_DIR \
+            ${mediastreamer-openh264}/lib/mediastreamer/plugins
+    mkdir -p $out/share/applications
+    sed -i "s@/build/.*/OUTPUT/bin@$out/bin@" linphone.desktop
+    cp linphone.desktop $out/share/applications/
+    cp -r ../assets/icons $out/share/
+    mkdir -p $out/share/belr/grammars
+    ln -s ${belcard}/share/belr/grammars/* $out/share/belr/grammars/
+    ln -s ${liblinphone}/share/belr/grammars/* $out/share/belr/grammars/
+    mkdir -p $out/share/linphone
+    ln -s ${liblinphone}/share/linphone/* $out/share/linphone/
   '';
 
-  meta = with stdenv.lib; {
+  meta = with lib; {
     homepage = https://www.linphone.org/;
     description = "Open source SIP phone for voice/video calls and instant messaging";
-    license = licenses.gpl2Plus;
+    license = licenses.gpl3;
     platforms = platforms.linux;
+    maintainers = with maintainers; [ jluttine ];
   };
 }
diff --git a/pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch b/pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch
new file mode 100644
index 000000000000..bb88d0030fae
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/linphone/fix_minizip_linking.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 3ee77441..18ea5c27 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -517,7 +517,7 @@ else()
+             target_link_libraries(${TARGET_NAME} "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib")
+             execute_process(COMMAND install_name_tool -id "@executable_path/../Frameworks/libminizip.dylib" "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.dylib")
+         elseif(NOT WIN32)
+-            target_link_libraries(${TARGET_NAME} "${MINIZIP_OUTPUT_DIR}/${CMAKE_INSTALL_LIBDIR}/libminizip.so")
++            target_link_libraries(${TARGET_NAME} "minizip")
+         endif()
+     endif()#If (LinphoneCxx_FOUND AND Minizip_FOUND)
+ endif()#If (LinphoneCxx_FOUND)
diff --git a/pkgs/applications/networking/instant-messengers/rambox/default.nix b/pkgs/applications/networking/instant-messengers/rambox/default.nix
index 28ed924011e3..71102e7ed776 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -3,18 +3,18 @@
 }:
 
 let
-  version = "0.7.4";
+  version = "0.7.5";
 in stdenv.mkDerivation rec {
   pname = "rambox";
   inherit version;
   src = {
     x86_64-linux = fetchurl {
       url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-amd64.deb";
-      sha256 = "0m9627bcwfg9aximv7ifsmspm8xi231pcnnd4p46lahb2qp19vbd";
+      sha256 = "108yd5djnap37yh0nbjyqkp5ci1zmydfzqcsbapin40a4f36zm31";
     };
     i686-linux = fetchurl {
       url = "https://github.com/ramboxapp/community-edition/releases/download/${version}/Rambox-${version}-linux-i386.deb";
-      sha256 = "162p6x400w3pny38adinp53rcifvbkjbs12cwrpf7s3b0yml8qxr";
+      sha256 = "1pvh048h6m19rmbscsy69ih0jkyhazmq2pcagmf3kk8gmbi7y6p6";
     };
   }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
 
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 3592665ef0b4..903b349edfa1 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -23,7 +23,7 @@ let
       else "");
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
-  version = "1.32.1"; # Please backport all updates to the stable channel.
+  version = "1.32.3"; # Please backport all updates to the stable channel.
   # All releases have a limited lifetime and "expire" 90 days after the release.
   # When releases "expire" the application becomes unusable until an update is
   # applied. The expiration date for the current release can be extracted with:
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
-    sha256 = "0sfzz1z57l20prj2s8hdl8ip1hrlzb5fqnccqcfd101a6mjnp9i9";
+    sha256 = "1aqk0hdgdxjznj0nbh2glvyzdq2af8xgiw3qb4k7wpjd0my28r2l";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
index 78b7a6d81a2e..a4852f16245c 100644
--- a/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
+++ b/pkgs/applications/networking/instant-messengers/skypeforlinux/default.nix
@@ -7,7 +7,7 @@ let
 
   # Please keep the version x.y.0.z and do not update to x.y.76.z because the
   # source of the latter disappears much faster.
-  version = "8.56.0.103";
+  version = "8.58.0.93";
 
   rpath = stdenv.lib.makeLibraryPath [
     alsaLib
@@ -63,7 +63,7 @@ let
           "https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
           "https://web.archive.org/web/https://repo.skype.com/deb/pool/main/s/skypeforlinux/skypeforlinux_${version}_amd64.deb"
         ];
-        sha256 = "01qyi92dh4xalzaqzj9n3bz59y91rx45gkyw4k9ckjknbjwb3c90";
+        sha256 = "1nqadil50z896jg0r202gw3xmm3diawn0pnh6n6nxn900f02avl3";
       }
     else
       throw "Skype for linux is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/applications/networking/instant-messengers/slack/dark-theme.nix b/pkgs/applications/networking/instant-messengers/slack/dark-theme.nix
deleted file mode 100644
index 903d8e60d6d5..000000000000
--- a/pkgs/applications/networking/instant-messengers/slack/dark-theme.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ stdenv, fetchgit }:
-
-stdenv.mkDerivation rec {
-  rev = "f760176c6e133667ce73aeecba8b0c0eb8822941";
-  version = "2019-09-11";
-  pname = "slack-theme-black";
-
-  src = fetchgit { inherit rev;
-    url = "https://github.com/laCour/slack-night-mode";
-    sha256 = "1kx8nx7mhrabs5wxqgvy86s5smy5hw49gv6yc95yxwx6ymwpgbzj";
-  };
-
-  dontUnpack = true;
-
-  buildCommand = ''
-    mkdir $out
-    cp $src/css/raw/black.css $out/theme.css
-  '';
-}
diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix
index 32f50b6fd638..712d45e2b199 100644
--- a/pkgs/applications/networking/instant-messengers/slack/default.nix
+++ b/pkgs/applications/networking/instant-messengers/slack/default.nix
@@ -1,35 +1,60 @@
-{ theme ? null, stdenv, fetchurl, dpkg, makeWrapper , alsaLib, atk, cairo,
-cups, curl, dbus, expat, fontconfig, freetype, glib , gnome2, gtk3, gdk-pixbuf,
-libappindicator-gtk3, libnotify, libxcb, nspr, nss, pango , systemd, xorg,
-at-spi2-atk, at-spi2-core, libuuid, nodePackages, libpulseaudio, xdg_utils
+{ stdenv
+, fetchurl
+, dpkg
+, makeWrapper
+, nodePackages
+, alsaLib
+, at-spi2-atk
+, at-spi2-core
+, atk
+, cairo
+, cups
+, curl
+, dbus
+, expat
+, fontconfig
+, freetype
+, gdk-pixbuf
+, glib
+, gnome2
+, gtk3
+, libappindicator-gtk3
+, libnotify
+, libpulseaudio
+, libuuid
+, libxcb
+, nspr
+, nss
+, pango
+, systemd
+, xdg_utils
+, xorg
 }:
 
 let
 
-  version = "4.2.0";
+  pname = "slack";
 
   inherit (stdenv.hostPlatform) system;
 
   throwSystem = throw "Unsupported system: ${system}";
 
-  pname = "slack";
-
   sha256 = {
-    x86_64-darwin = "0947a98m7yz4hldjvcqnv9s17dpvlsk9sflc1zc99hf500zck0w1";
-    x86_64-linux = "01b2klhky04fijdqcpfafgdqx2c5nh2fpnzvzgvz10hv7h16cinv";
+    x86_64-darwin = "05xsbiviikrwfayjr6rvvfkm70681x2an6mgcg1cxw1fsi4sr6fd";
+    x86_64-linux = "0h2rfgx92yq9a6dqsv9a0r8a6m5xfrywkljjk5w9snw49b0r1p12";
   }.${system} or throwSystem;
 
-
   meta = with stdenv.lib; {
     description = "Desktop client for Slack";
     homepage = https://slack.com;
     license = licenses.unfree;
-    maintainers = [ maintainers.mmahut ];
+    maintainers = with maintainers; [ mmahut ];
     platforms = [ "x86_64-darwin" "x86_64-linux" ];
   };
 
   linux = stdenv.mkDerivation rec {
-    inherit pname version meta;
+    inherit pname meta;
+    version = "4.4.0";
     src = fetchurl {
       url = "https://downloads.slack-edge.com/linux_releases/slack-desktop-${version}-amd64.deb";
       inherit sha256;
@@ -47,23 +72,22 @@ let
       expat
       fontconfig
       freetype
+      gdk-pixbuf
       glib
       gnome2.GConf
-      gdk-pixbuf
       gtk3
-      pango
+      libappindicator-gtk3
       libnotify
+      libpulseaudio
+      libuuid
       libxcb
-      libappindicator-gtk3
       nspr
       nss
+      pango
       stdenv.cc.cc
       systemd
-      libuuid
-      libpulseaudio
-  
-      xorg.libxkbfile
       xorg.libX11
+      xorg.libXScrnSaver
       xorg.libXcomposite
       xorg.libXcursor
       xorg.libXdamage
@@ -73,65 +97,51 @@ let
       xorg.libXrandr
       xorg.libXrender
       xorg.libXtst
-      xorg.libXScrnSaver
+      xorg.libxkbfile
     ] + ":${stdenv.cc.cc.lib}/lib64";
 
     buildInputs = [
       gtk3  # needed for GSETTINGS_SCHEMAS_PATH
     ];
-  
+
     nativeBuildInputs = [ dpkg makeWrapper nodePackages.asar ];
-  
+
     dontUnpack = true;
     dontBuild = true;
     dontPatchELF = true;
-  
+
     installPhase = ''
       # The deb file contains a setuid binary, so 'dpkg -x' doesn't work here
       dpkg --fsys-tarfile $src | tar --extract
       rm -rf usr/share/lintian
-  
+
       mkdir -p $out
       mv usr/* $out
-  
+
       # 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/lib/slack $file || true
       done
-  
+
       # Replace the broken bin/slack symlink with a startup wrapper
       rm $out/bin/slack
       makeWrapper $out/lib/slack/slack $out/bin/slack \
         --prefix XDG_DATA_DIRS : $GSETTINGS_SCHEMAS_PATH \
         --prefix PATH : ${xdg_utils}/bin
-  
+
       # Fix the desktop link
       substituteInPlace $out/share/applications/slack.desktop \
         --replace /usr/bin/ $out/bin/ \
         --replace /usr/share/ $out/share/
-    '' + stdenv.lib.optionalString (theme != null) ''
-      asar extract $out/lib/slack/resources/app.asar $out/lib/slack/resources/app.asar.unpacked
-      cat <<EOF >> $out/lib/slack/resources/app.asar.unpacked/dist/ssb-interop.bundle.js
-  
-      var fs = require('fs');
-      document.addEventListener('DOMContentLoaded', function() {
-        fs.readFile('${theme}/theme.css', 'utf8', function(err, css) {
-          let s = document.createElement('style');
-          s.type = 'text/css';
-          s.innerHTML = css;
-          document.head.appendChild(s);
-        });
-      });
-      EOF
-      asar pack $out/lib/slack/resources/app.asar.unpacked $out/lib/slack/resources/app.asar
     '';
   };
 
-  darwin = stdenv.mkDerivation {
-    inherit pname version meta;
+  darwin = stdenv.mkDerivation rec {
+    inherit pname meta;
+    version = "4.4.1";
 
     phases = [ "installPhase" ];
 
diff --git a/pkgs/applications/networking/instant-messengers/slack/update.sh b/pkgs/applications/networking/instant-messengers/slack/update.sh
deleted file mode 100755
index 6a15298c4e7d..000000000000
--- a/pkgs/applications/networking/instant-messengers/slack/update.sh
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env nix-shell
-#!nix-shell -i bash -p curl common-updater-scripts jq
-
-set -eu -o pipefail
-
-oldVersion="$(nix-instantiate --eval -E "with import ./. {}; lib.getVersion slack-theme-black" | tr -d '"')"
-latestSha="$(curl -L -s https://api.github.com/repos/laCour/slack-night-mode/commits\?sha\=master\&since\=${oldVersion} | jq -r '.[0].sha')"
-
-if [ ! "null" = "${latestSha}" ]; then
-  latestDate="$(curl -L -s https://api.github.com/repos/laCour/slack-night-mode/commits/${latestSha} | jq '.commit.author.date' | sed 's|"\(.*\)T.*|\1|g')"
-  update-source-version slack-theme-black "${latestSha}" --version-key=rev
-  update-source-version slack-theme-black "${latestDate}" --ignore-same-hash
-  nixpkgs="$(git rev-parse --show-toplevel)"
-  default_nix="$nixpkgs/pkgs/applications/networking/instant-messengers/slack/dark-theme.nix"
-  git add "${default_nix}"
-  git commit -m "slack-theme-black: ${oldVersion} -> ${latestDate}"
-else
-  echo "slack-theme-black is already up-to-date"
-fi
diff --git a/pkgs/applications/networking/instant-messengers/teams/default.nix b/pkgs/applications/networking/instant-messengers/teams/default.nix
index ef7e3717f728..63d922ab2994 100644
--- a/pkgs/applications/networking/instant-messengers/teams/default.nix
+++ b/pkgs/applications/networking/instant-messengers/teams/default.nix
@@ -15,11 +15,11 @@
 
 stdenv.mkDerivation rec {
   pname = "teams";
-  version = "1.3.00.958";
+  version = "1.3.00.5153";
 
   src = fetchurl {
     url = "https://packages.microsoft.com/repos/ms-teams/pool/main/t/teams/teams_${version}_amd64.deb";
-    sha256 = "015awxgbwk4j973jnxj7q3i8csx7wnwpwp5g4jlmn7z8fxwy83d5";
+    sha256 = "13c7fmij0gcg6mrjjj2mhs21q7fzdssscwhihzyrmbmj64cd0a69";
   };
 
   nativeBuildInputs = [ dpkg autoPatchelfHook wrapGAppsHook ];
diff --git a/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix b/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
index 165e3e959e0c..7f2ce9553e9b 100644
--- a/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
+++ b/pkgs/applications/networking/instant-messengers/vk-messenger/default.nix
@@ -3,18 +3,18 @@
 , wrapGAppsHook }:
 
 let
-  version = "4.5.2";
+  version = "5.0.1";
 in stdenv.mkDerivation {
   pname = "vk-messenger";
   inherit version;
   src = {
     i686-linux = fetchurl {
       url = "https://desktop.userapi.com/rpm/master/vk-${version}.i686.rpm";
-      sha256 = "11xsdmvd2diq3m61si87x2c08nap0vakcypm90wjmdjwayg3fdlw";
+      sha256 = "1ji23x13lzbkiqfrrwx1pj6gmms0p58cjmjc0y4g16kqhlxl60v6";
     };
     x86_64-linux = fetchurl {
       url = "https://desktop.userapi.com/rpm/master/vk-${version}.x86_64.rpm";
-      sha256 = "0j65d6mwj6rxczi0p9fsr6jh37jxw3a3h6w67xwgdvibb7lf3gbb";
+      sha256 = "01vvmia2qrxvrvavk9hkkyvfg4pg15m01grwb28884vy4nqw400y";
     };
   }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
 
diff --git a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
index c04851d586b4..d09793733e97 100644
--- a/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/wire-desktop/default.nix
@@ -20,13 +20,13 @@ let
   pname = "wire-desktop";
 
   version = {
-    x86_64-darwin = "3.12.3490";
-    x86_64-linux = "3.12.2916";
+    x86_64-darwin = "3.15.3621";
+    x86_64-linux = "3.16.2923";
   }.${system} or throwSystem;
 
   sha256 = {
-    x86_64-darwin = "0xvhx3r99fl1v1cdqj6sk46kzxv9qi7j754amkhv7knrpmgyp55z";
-    x86_64-linux = "0xx03cpy6kapbjpygwranxjg1a0p8s1xq3cpapvi55rnkbk0qvjw";
+    x86_64-darwin = "13sgakb3zjlvqv6d6b264fc9x99swpl7s1dmnrgc5v3pgyaklr01";
+    x86_64-linux = "0c8jmlsg2gnxsvly04xj1al80nj52rg4czfdha58sg14x14lyspz";
   }.${system} or throwSystem;
 
   meta = with stdenv.lib; {
@@ -75,7 +75,7 @@ let
       icon = "wire-desktop";
       name = "wire-desktop";
       extraEntries = ''
-        StartupWMClass="Wire"
+        StartupWMClass=Wire
       '';
     };
 
@@ -121,7 +121,7 @@ let
 
     src = fetchurl {
       url = "https://github.com/wireapp/wire-desktop/releases/download/"
-      + "macos%2F${version}/Wire.pkg";
+      + "wrapper_macos_production%2F${version}/Wire.pkg";
       inherit sha256;
     };
 
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index d47368a9cb25..ae92e23d0bd0 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -15,11 +15,11 @@ assert pulseaudioSupport -> libpulseaudio != null;
 let
   inherit (stdenv.lib) concatStringsSep makeBinPath optional;
 
-  version = "3.5.361976.0301";
+  version = "3.5.374815.0324";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
-      sha256 = "12pqs4pk73d7y9b49vq6f4fryph27k45zm1rjrpijnbi6ln2w993";
+      sha256 = "1pnr00jwjjp23bbqdg5sv2s2rnciz57g1453sgi13kzpppydhzi5";
     };
   };