diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix index fa31b19e6e2c..60c075c2fadb 100644 --- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix @@ -1,8 +1,10 @@ -{ stdenv, lib, fetchurl, dpkg, wrapGAppsHook, gnome3, gtk3, atk, cairo, pango, gdk_pixbuf, glib, freetype, -fontconfig, dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, -libXcomposite, libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, -nspr, alsaLib, cups, expat, udev +{ stdenv, lib, fetchurl, dpkg, wrapGAppsHook +, gnome3, gtk3, atk, cairo, pango, gdk_pixbuf, glib, freetype, fontconfig +, dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite +, libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib +, cups, expat, udev }: + let rpath = lib.makeLibraryPath [ alsaLib @@ -36,57 +38,56 @@ let xorg.libxcb ]; -in - stdenv.mkDerivation rec { - name = "signal-desktop-${version}"; +in stdenv.mkDerivation rec { + name = "signal-desktop-${version}"; + version = "1.12.0"; - version = "1.12.0"; + src = fetchurl { + url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; + sha256 = "19c9pilx2qkpyqw3p167bfcizrpd4np5jxdcwqmpbcfibmrpmcsk"; + }; - src = - if stdenv.system == "x86_64-linux" then - fetchurl { - url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb"; - sha256 = "19c9pilx2qkpyqw3p167bfcizrpd4np5jxdcwqmpbcfibmrpmcsk"; - } - else - throw "Signal for Desktop is not currently supported on ${stdenv.system}"; + phases = [ "unpackPhase" "installPhase" ]; - phases = [ "unpackPhase" "installPhase" ]; - nativeBuildInputs = [ dpkg wrapGAppsHook ]; - unpackPhase = "dpkg-deb -x $src ."; - installPhase = '' - mkdir -p $out - cp -R opt $out + nativeBuildInputs = [ dpkg wrapGAppsHook ]; - mv ./usr/share $out/share - mv $out/opt/Signal $out/libexec - rmdir $out/opt + unpackPhase = "dpkg-deb -x $src ."; - chmod -R g-w $out + installPhase = '' + mkdir -p $out + cp -R opt $out - # Patch signal - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath ${rpath}:$out/libexec $out/libexec/signal-desktop - wrapProgram $out/libexec/signal-desktop \ - --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ - "''${gappsWrapperArgs[@]}" + mv ./usr/share $out/share + mv $out/opt/Signal $out/libexec + rmdir $out/opt - # Symlink to bin - mkdir -p $out/bin - ln -s $out/libexec/signal-desktop $out/bin/signal-desktop + chmod -R g-w $out - # Fix the desktop link - substituteInPlace $out/share/applications/signal-desktop.desktop \ - --replace /opt/Signal/signal-desktop $out/bin/signal-desktop + # Patch signal + patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ + --set-rpath ${rpath}:$out/libexec $out/libexec/signal-desktop + wrapProgram $out/libexec/signal-desktop \ + --prefix XDG_DATA_DIRS : "${gtk3}/share/gsettings-schemas/${gtk3.name}/" \ + "''${gappsWrapperArgs[@]}" + + # Symlink to bin + mkdir -p $out/bin + ln -s $out/libexec/signal-desktop $out/bin/signal-desktop + + # Fix the desktop link + substituteInPlace $out/share/applications/signal-desktop.desktop \ + --replace /opt/Signal/signal-desktop $out/bin/signal-desktop + ''; + + meta = { + description = "Private, simple, and secure messenger"; + longDescription = '' + Signal Desktop is an Electron application that links with your + "Signal Android" or "Signal iOS" app. ''; - - meta = { - description = "Signal Private Messenger for the Desktop."; - homepage = https://signal.org/; - license = lib.licenses.gpl3; - maintainers = with lib.maintainers; [ ixmatus primeos ]; - platforms = [ - "x86_64-linux" - ]; - }; - } + homepage = https://signal.org/; + license = lib.licenses.gpl3; + maintainers = with lib.maintainers; [ ixmatus primeos ]; + platforms = [ "x86_64-linux" ]; + }; +}