diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix | 32 |
1 files changed, 26 insertions, 6 deletions
diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix index d4a72e657cd3..616a08571024 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix @@ -1,7 +1,7 @@ { stdenv, lib, fetchurl, autoPatchelfHook, dpkg, wrapGAppsHook, nixosTests , gnome2, gtk3, atk, at-spi2-atk, cairo, pango, gdk-pixbuf, glib, freetype, fontconfig , dbus, libX11, xorg, libXi, libXcursor, libXdamage, libXrandr, libXcomposite -, libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsaLib +, libXext, libXfixes, libXrender, libXtst, libXScrnSaver, nss, nspr, alsa-lib , cups, expat, libuuid, at-spi2-core, libappindicator-gtk3, mesa # Runtime dependencies: , systemd, libnotify, libdbusmenu, libpulseaudio @@ -10,6 +10,9 @@ , hunspellDicts, spellcheckerLanguage ? null # E.g. "de_DE" # For a full list of available languages: # $ cat pkgs/development/libraries/hunspell/dictionaries.nix | grep "dictFileName =" | awk '{ print $3 }' +, python3 +, gnome +, sqlcipher }: let @@ -25,7 +28,7 @@ let else ""); in stdenv.mkDerivation rec { pname = "signal-desktop"; - version = "5.0.0"; # Please backport all updates to the stable channel. + version = "5.4.1"; # 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: @@ -35,7 +38,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 = "17hxg61m9kk1kph6ifqy6507kzx5hi6yafr2mj8n0a6c39vc8f9g"; + sha256 = "1f1narpqj8gcyi4r574nqm1cbyi3azk1y7d1j300scr51gk74fq6"; }; nativeBuildInputs = [ @@ -45,7 +48,7 @@ in stdenv.mkDerivation rec { ]; buildInputs = [ - alsaLib + alsa-lib at-spi2-atk at-spi2-core atk @@ -79,6 +82,7 @@ in stdenv.mkDerivation rec { pango systemd xorg.libxcb + xorg.libxshmfence ]; runtimeDependencies = [ @@ -111,14 +115,20 @@ in stdenv.mkDerivation rec { # Symlink to bin mkdir -p $out/bin - ln -s $out/lib/Signal/signal-desktop $out/bin/signal-desktop + ln -s $out/lib/Signal/signal-desktop $out/bin/signal-desktop-unwrapped runHook postInstall ''; + # Required for $SQLCIPHER_LIB which contains "/build/" inside the path: + noAuditTmpdir = true; + preFixup = '' + export SQLCIPHER_LIB="$out/lib/Signal/resources/app.asar.unpacked/node_modules/better-sqlite3/build/Release/better_sqlite3.node" + test -x "$SQLCIPHER_LIB" # To ensure the location hasn't changed gappsWrapperArgs+=( --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ] }" + --prefix LD_PRELOAD : "$SQLCIPHER_LIB" ${customLanguageWrapperArgs} ) @@ -127,7 +137,17 @@ in stdenv.mkDerivation rec { --replace /opt/Signal/signal-desktop $out/bin/signal-desktop autoPatchelf --no-recurse -- $out/lib/Signal/ - patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/Signal/resources/app.asar.unpacked/node_modules/ringrtc/build/linux/libringrtc.node + patchelf --add-needed ${libpulseaudio}/lib/libpulse.so $out/lib/Signal/resources/app.asar.unpacked/node_modules/ringrtc/build/linux/libringrtc-x64.node + ''; + + postFixup = '' + # This hack is temporarily required to avoid data-loss for users: + cp ${./db-reencryption-wrapper.py} $out/bin/signal-desktop + substituteInPlace $out/bin/signal-desktop \ + --replace '@PYTHON@' '${python3}/bin/python3' \ + --replace '@ZENITY@' '${gnome.zenity}/bin/zenity' \ + --replace '@SQLCIPHER@' '${sqlcipher}/bin/sqlcipher' \ + --replace '@SIGNAL-DESKTOP@' "$out/bin/signal-desktop-unwrapped" ''; # Tests if the application launches and waits for "Link your phone to Signal Desktop": |