signal-desktop-source: build signal-sqlcipher from source
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
}:
|
||||
let
|
||||
nodejs = nodejs_22;
|
||||
pnpm = pnpm_10;
|
||||
pnpm = pnpm_10.override { inherit nodejs; };
|
||||
electron = electron_35;
|
||||
|
||||
nodeOS =
|
||||
@@ -45,6 +45,7 @@ let
|
||||
'';
|
||||
|
||||
libsignal-node = callPackage ./libsignal-node.nix { inherit nodejs; };
|
||||
signal-sqlcipher = callPackage ./signal-sqlcipher.nix { inherit pnpm nodejs; };
|
||||
|
||||
webrtc = callPackage ./webrtc.nix { };
|
||||
ringrtc = callPackage ./ringrtc.nix { inherit webrtc; };
|
||||
@@ -91,7 +92,7 @@ let
|
||||
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
(pnpm.override { inherit nodejs; }).configHook
|
||||
pnpm.configHook
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
@@ -113,7 +114,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
(pnpm.override { inherit nodejs; }).configHook
|
||||
pnpm.configHook
|
||||
makeWrapper
|
||||
copyDesktopItems
|
||||
python3
|
||||
@@ -163,6 +164,11 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
die "libsignal-client version mismatch"
|
||||
fi
|
||||
|
||||
if [ "`jq -r '.dependencies."@signalapp/sqlcipher"' < package.json`" != "${signal-sqlcipher.version}" ]
|
||||
then
|
||||
die "signal-sqlcipher version mismatch"
|
||||
fi
|
||||
|
||||
if [ "`jq -r '.dependencies."@signalapp/ringrtc"' < package.json`" != "${ringrtc.version}" ]
|
||||
then
|
||||
die "ringrtc version mismatch"
|
||||
@@ -174,6 +180,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
rm -fr node_modules/@signalapp/libsignal-client/prebuilds
|
||||
cp -r ${libsignal-node}/lib node_modules/@signalapp/libsignal-client/prebuilds
|
||||
|
||||
rm -fr node_modules/@signalapp/sqlcipher
|
||||
cp -r ${signal-sqlcipher} node_modules/@signalapp/sqlcipher
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
@@ -241,6 +250,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
ringrtc
|
||||
webrtc
|
||||
sticker-creator
|
||||
signal-sqlcipher
|
||||
;
|
||||
tests.application-launch = nixosTests.signal-desktop;
|
||||
updateScript.command = [ ./update.sh ];
|
||||
@@ -271,12 +281,5 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
];
|
||||
sourceProvenance = with lib.sourceTypes; [
|
||||
fromSource
|
||||
|
||||
# @signalapp/sqlcipher
|
||||
# ringrtc
|
||||
binaryNativeCode
|
||||
];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
pnpm,
|
||||
nodejs,
|
||||
rustPlatform,
|
||||
cargo,
|
||||
dump_syms,
|
||||
python3,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "node-sqlcipher";
|
||||
version = "1.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "signalapp";
|
||||
repo = "node-sqlcipher";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-fuChNio2iWYuxIj40jW1lJCZItnQKrzX7m1gJeeajvs=";
|
||||
};
|
||||
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-regaYG+SDvIgdnHQVR1GG1A1FSBXpzFfLuyTEdMt1kQ=";
|
||||
};
|
||||
|
||||
cargoRoot = "deps/extension";
|
||||
cargoDeps = rustPlatform.fetchCargoVendor {
|
||||
name = "sqlcipher-signal-exentsion";
|
||||
inherit (finalAttrs) src cargoRoot;
|
||||
hash = "sha256-qT4HM/FRL8qugKKNlMYM/0zgUsC6cDOa9fgd1d4VIrc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
nodejs
|
||||
pnpm.configHook
|
||||
rustPlatform.cargoSetupHook
|
||||
cargo
|
||||
dump_syms
|
||||
python3
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
export npm_config_nodedir=${nodejs}
|
||||
pnpm run prebuildify
|
||||
pnpm run build
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
cp -r dist $out
|
||||
cp -r prebuilds $out
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Fast N-API-based Node.js addon wrapping sqlcipher and FTS5 segmenting APIs";
|
||||
homepage = "https://github.com/signalapp/node-sqlcipher/tree/main";
|
||||
license = with lib.licenses; [
|
||||
agpl3Only
|
||||
|
||||
# deps/sqlcipher
|
||||
bsd3
|
||||
];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
@@ -1,40 +0,0 @@
|
||||
{
|
||||
'includes': ['common.gypi'],
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'locate_sqlite3',
|
||||
'type': 'none',
|
||||
'copies': [{
|
||||
'files': [
|
||||
'@extension@/src/sqlite3.c',
|
||||
],
|
||||
'destination': '<(SHARED_INTERMEDIATE_DIR)/sqlite3',
|
||||
}],
|
||||
},
|
||||
{
|
||||
'target_name': 'sqlite3',
|
||||
'type': 'static_library',
|
||||
'dependencies': ['locate_sqlite3'],
|
||||
'sources': ['<(SHARED_INTERMEDIATE_DIR)/sqlite3/sqlite3.c'],
|
||||
'include_dirs': [
|
||||
'<(SHARED_INTERMEDIATE_DIR)/sqlite3/',
|
||||
],
|
||||
'direct_dependent_settings': {
|
||||
'include_dirs': [
|
||||
'@extension@/include',
|
||||
],
|
||||
},
|
||||
'cflags': ['-std=c99', '-w'],
|
||||
'xcode_settings': {
|
||||
'OTHER_CFLAGS': ['-std=c99'],
|
||||
'WARNING_CFLAGS': ['-w'],
|
||||
},
|
||||
'includes': ['defines.gypi'],
|
||||
'link_settings': {
|
||||
'libraries': [
|
||||
'@extension@/lib/libsignal_sqlcipher_extension@static_lib_ext@',
|
||||
]
|
||||
}
|
||||
},
|
||||
],
|
||||
}
|
||||
@@ -22,6 +22,7 @@ latestVersion="`jq -r '.version' <<< $packageJson`"
|
||||
nodeVersion="`jq -r '.engines.node' <<< $packageJson | cut -d. -f1`"
|
||||
electronVersion="`jq -r '.devDependencies.electron' <<< $packageJson | cut -d. -f1`"
|
||||
libsignalClientVersion=`jq -r '.dependencies."@signalapp/libsignal-client"' <<< $packageJson`
|
||||
signalSqlcipherVersion=`jq -r '.dependencies."@signalapp/sqlcipher"' <<< $packageJson`
|
||||
ringrtcVersion=`jq -r '.dependencies."@signalapp/ringrtc"' <<< $packageJson`
|
||||
ringrtcVersionProperties="`curl_github "https://raw.githubusercontent.com/signalapp/ringrtc/refs/tags/v$ringrtcVersion/config/version.properties"`"
|
||||
webrtcVersion="`grep --only-matching "^webrtc.version=.*$" <<< $ringrtcVersionProperties | sed "s/webrtc.version=//g"`"
|
||||
@@ -46,6 +47,15 @@ update-source-version signal-desktop-source.libsignal-node \
|
||||
--ignore-same-version \
|
||||
--source-key=npmDeps
|
||||
|
||||
update-source-version signal-desktop-source.signal-sqlcipher \
|
||||
"$signalSqlcipherVersion"
|
||||
update-source-version signal-desktop-source.signal-sqlcipher \
|
||||
--ignore-same-version \
|
||||
--source-key=cargoDeps.vendorStaging
|
||||
update-source-version signal-desktop-source.signal-sqlcipher \
|
||||
--ignore-same-version \
|
||||
--source-key=pnpmDeps
|
||||
|
||||
update-source-version signal-desktop-source.ringrtc "$ringrtcVersion"
|
||||
update-source-version signal-desktop-source.ringrtc \
|
||||
--ignore-same-version \
|
||||
|
||||
Reference in New Issue
Block a user