about summary refs log tree commit diff
path: root/pkgs/applications/networking/instant-messengers/signal-desktop
diff options
context:
space:
mode:
authorMichael Weiss <dev.primeos@gmail.com>2021-11-20 17:55:59 +0100
committerMichael Weiss <dev.primeos@gmail.com>2021-11-20 17:56:27 +0100
commitbe2bc44d0e12d0fbb5f89fe410fa6c3baa64ef3c (patch)
treec5e0460934b81bae658c88d62246b3998dd65f37 /pkgs/applications/networking/instant-messengers/signal-desktop
parent10eee6abfa89f97b5973a122f61ed55d16234e16 (diff)
Partially revert "chromiumDev: 97.0.4692.20 -> 98.0.4710.4"
This partially reverts commit 241c145226ce031543c4580acfa7feef993d7463.

It embarrassingly included Signal-Desktop changes/tests that it
shouldn't and I somehow noticed it too late... :o Sorry!
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/signal-desktop')
-rw-r--r--pkgs/applications/networking/instant-messengers/signal-desktop/default.nix35
1 files changed, 35 insertions, 0 deletions
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 14de837854343..c8797423bedbb 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -10,6 +10,7 @@
 , 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 }'
+, sqlcipher
 }:
 
 let
@@ -22,6 +23,39 @@ let
       --set HUNSPELL_DICTIONARIES "${hunspellDicts.${hunspellDict}}/share/hunspell" \
       --set LC_MESSAGES "${spellcheckerLanguage}"'');
 
+  sqlcipher-signal = sqlcipher.overrideAttrs (_: {
+    # Using the same features as the upstream signal sqlcipher build
+    # https://github.com/signalapp/better-sqlite3/blob/2fa02d2484e9f9a10df5ac7ea4617fb2dff30006/deps/defines.gypi
+    CFLAGS = [
+      "-DSQLITE_LIKE_DOESNT_MATCH_BLOBS"
+      "-DSQLITE_THREADSAFE=2"
+      "-DSQLITE_USE_URI=0"
+      "-DSQLITE_DEFAULT_MEMSTATUS=0"
+      "-DSQLITE_OMIT_DEPRECATED"
+      "-DSQLITE_OMIT_GET_TABLE"
+      "-DSQLITE_OMIT_TCL_VARIABLE"
+      "-DSQLITE_OMIT_PROGRESS_CALLBACK"
+      "-DSQLITE_OMIT_SHARED_CACHE"
+      "-DSQLITE_TRACE_SIZE_LIMIT=32"
+      "-DSQLITE_DEFAULT_CACHE_SIZE=-16000"
+      "-DSQLITE_DEFAULT_FOREIGN_KEYS=1"
+      "-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1"
+      "-DSQLITE_ENABLE_COLUMN_METADATA"
+      "-DSQLITE_ENABLE_UPDATE_DELETE_LIMIT"
+      "-DSQLITE_ENABLE_STAT4"
+      "-DSQLITE_ENABLE_FTS5"
+      "-DSQLITE_ENABLE_JSON1"
+      "-DSQLITE_ENABLE_RTREE"
+      "-DSQLITE_INTROSPECTION_PRAGMAS"
+
+      # SQLCipher-specific options
+      "-DSQLITE_HAS_CODEC"
+      "-DSQLITE_TEMP_STORE=2"
+      "-DSQLITE_SECURE_DELETE"
+    ];
+
+    LDFLAGS = [ "-lm" ];
+  });
 in stdenv.mkDerivation rec {
   pname = "signal-desktop";
   version = "5.23.1"; # Please backport all updates to the stable channel.
@@ -119,6 +153,7 @@ in stdenv.mkDerivation rec {
   preFixup = ''
     gappsWrapperArgs+=(
       --prefix LD_LIBRARY_PATH : "${lib.makeLibraryPath [ stdenv.cc.cc ] }"
+      --prefix LD_PRELOAD : "${sqlcipher-signal}/lib/libsqlcipher.so"
       ${customLanguageWrapperArgs}
     )