diff options
author | Michael Weiss <dev.primeos@gmail.com> | 2021-10-28 21:53:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-28 21:53:15 +0200 |
commit | 55495f7428c39117b02619b7eb3b2db1c14c015b (patch) | |
tree | 5c6096c775a92d35f98079afa4e694e2d26e4b98 /pkgs/applications/networking/instant-messengers/signal-desktop | |
parent | 50341b0cd8c5acba28ad63c9d1ff29ec3d66c173 (diff) | |
parent | 7fac5898af6aa1485c09a7f61b73cf23e7049866 (diff) |
Merge pull request #131843 from andresilva/signal-preload-sqlcipher
signal-desktop: preload sqlcipher library from nixpkgs
Diffstat (limited to 'pkgs/applications/networking/instant-messengers/signal-desktop')
-rw-r--r-- | pkgs/applications/networking/instant-messengers/signal-desktop/default.nix | 42 |
1 files changed, 36 insertions, 6 deletions
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix index 49e8227b21f12..a42386524163f 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 @@ -21,6 +22,40 @@ let in lib.optionalString (spellcheckerLanguage != null) '' --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.21.0"; # Please backport all updates to the stable channel. @@ -115,15 +150,10 @@ in stdenv.mkDerivation rec { 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" + --prefix LD_PRELOAD : "${sqlcipher-signal}/lib/libsqlcipher.so" ${customLanguageWrapperArgs} ) |