Loading pkgs/by-name/si/signal-desktop-source/libsignal-node.nix +0 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,6 @@ fetchFromGitHub, python3, nodejs, }: let # boring-sys expects the static libraries in build/ instead of lib/ Loading pkgs/by-name/si/signal-desktop-source/package.nix +47 −27 Original line number Diff line number Diff line Loading @@ -7,11 +7,9 @@ python3, makeWrapper, callPackage, libpulseaudio, fetchFromGitHub, runCommand, fetchzip, autoPatchelfHook, jq, makeDesktopItem, copyDesktopItems, replaceVars, Loading @@ -32,26 +30,7 @@ let sqlcipher-signal-extension = callPackage ./sqlcipher-signal-extension.nix { }; libsignal-node = callPackage ./libsignal-node.nix { inherit nodejs; }; ringrtc = stdenv.mkDerivation (finalAttrs: { pname = "ringrtc-bin"; version = "2.50.2"; src = fetchzip { url = "https://build-artifacts.signal.org/libraries/ringrtc-desktop-build-v${finalAttrs.version}.tar.gz"; hash = "sha256-hNlz+gSulyJ//FdbPvY/5OHbtJ4rEUdi9/SHJDX6gZE="; }; installPhase = '' cp -r . $out ''; nativeBuildInputs = [ autoPatchelfHook ]; buildInputs = [ libpulseaudio ]; meta = { homepage = "https://github.com/signalapp/ringrtc"; license = lib.licenses.agpl3Only; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; }; }); ringrtc-bin = callPackage ./ringrtc-bin.nix { }; # Noto Color Emoji PNG files for emoji replacement; see below. noto-fonts-color-emoji-png = noto-fonts-color-emoji.overrideAttrs (prevAttrs: { Loading Loading @@ -83,7 +62,7 @@ let hash = "sha256-/jtuGsBOFsSgJZNpRilWZ0daI0iYVziZBaF/vLvQ7NU="; }; stickerCreator = stdenv.mkDerivation (finalAttrs: { sticker-creator = stdenv.mkDerivation (finalAttrs: { pname = "signal-desktop-sticker-creator"; inherit version; src = src + "/sticker-creator"; Loading Loading @@ -121,6 +100,7 @@ stdenv.mkDerivation (finalAttrs: { makeWrapper copyDesktopItems python3 jq ]; buildInputs = (lib.optional (!withAppleEmojis) noto-fonts-color-emoji-png); Loading Loading @@ -151,9 +131,43 @@ stdenv.mkDerivation (finalAttrs: { }; preBuild = '' if [ "`jq -r '.engines.node' < package.json | head -c 2`" != `head -c 2 <<< "${nodejs.version}"` ] then die "nodejs version mismatch" fi if [ "`jq -r '.devDependencies.electron' < package.json | head -c 2`" != `head -c 2 <<< "${electron.version}"` ] then die "electron version mismatch" fi if [ "`jq -r '.dependencies."@signalapp/libsignal-client"' < package.json`" != "${libsignal-node.version}" ] then die "libsignal-client version mismatch" fi if [ "`jq -r '.dependencies."@signalapp/ringrtc"' < package.json`" != "${ringrtc-bin.version}" ] then die "ringrtc version mismatch" fi sqlcipherVersion=${sqlcipher-signal-extension.passthru.sqlcipher-amalgamation.version} if ! grep "const SQLCIPHER_VERSION = '$sqlcipherVersion';" \ node_modules/@signalapp/better-sqlite3/deps/download.js then die "sqlcipher version mismatch" fi extensionVersion=${sqlcipher-signal-extension.passthru.signal-sqlcipher-extension.version} if ! grep "const EXTENSION_VERSION = '$extensionVersion-asm2';" \ node_modules/@signalapp/better-sqlite3/deps/download.js then die "signal-sqlcipher-extension version mismatch" fi cp ${sqlcipher-signal-extension}/share/sqlite3.gyp node_modules/@signalapp/better-sqlite3/deps/sqlite3.gyp cp -r ${ringrtc} node_modules/@signalapp/ringrtc/build cp -r ${ringrtc-bin} node_modules/@signalapp/ringrtc/build rm -fr node_modules/@signalapp/libsignal-client/prebuilds cp -r ${libsignal-node}/lib node_modules/@signalapp/libsignal-client/prebuilds Loading @@ -165,7 +179,7 @@ stdenv.mkDerivation (finalAttrs: { export npm_config_nodedir=${electron-headers} cp -r ${electron.dist} electron-dist chmod -R u+w electron-dist cp -r ${stickerCreator} sticker-creator/dist cp -r ${sticker-creator} sticker-creator/dist pnpm run generate pnpm exec electron-builder \ Loading Loading @@ -219,8 +233,14 @@ stdenv.mkDerivation (finalAttrs: { ]; passthru = { inherit sqlcipher-signal-extension libsignal-node; inherit sqlcipher-signal-extension libsignal-node ringrtc-bin sticker-creator ; tests.application-launch = nixosTests.signal-desktop; updateScript.command = [ ./update.sh ]; }; meta = { Loading pkgs/by-name/si/signal-desktop-source/ringrtc-bin.nix 0 → 100644 +27 −0 Original line number Diff line number Diff line { stdenv, lib, fetchzip, autoPatchelfHook, libpulseaudio, }: stdenv.mkDerivation (finalAttrs: { pname = "ringrtc-bin"; version = "2.50.2"; src = fetchzip { url = "https://build-artifacts.signal.org/libraries/ringrtc-desktop-build-v${finalAttrs.version}.tar.gz"; hash = "sha256-hNlz+gSulyJ//FdbPvY/5OHbtJ4rEUdi9/SHJDX6gZE="; }; installPhase = '' cp -r . $out ''; nativeBuildInputs = [ autoPatchelfHook ]; buildInputs = [ libpulseaudio ]; meta = { homepage = "https://github.com/signalapp/ringrtc"; license = lib.licenses.agpl3Only; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; }; }) pkgs/by-name/si/signal-desktop-source/sqlcipher-signal-extension.nix +6 −2 Original line number Diff line number Diff line Loading @@ -34,9 +34,10 @@ let }); sqlcipher-amalgamation = stdenv.mkDerivation { pname = "sqlcipher-with-signal-extension"; pname = "sqlcipher-amalgamation"; version = "${sqlcipher.version}-signal-patch2"; inherit (sqlcipher) version src meta; inherit (sqlcipher) src meta; patches = [ (fetchpatch { Loading Loading @@ -89,6 +90,9 @@ let in buildEnv { name = "sqlcipher-signal"; passthru = { inherit sqlcipher-amalgamation signal-sqlcipher-extension; }; paths = [ sqlcipher-amalgamation Loading pkgs/by-name/si/signal-desktop-source/update.sh 0 → 100755 +47 −0 Original line number Diff line number Diff line #!/usr/bin/env nix-shell #!nix-shell -i bash -p bash nix-update common-updater-scripts curl coreutils jq set -ex SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)" curl_github() { curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} "$@" } releaseInfo="`curl_github \ "https://api.github.com/repos/signalapp/Signal-Desktop/releases/latest"`" releaseTag="`jq -r ".tag_name" <<< $releaseInfo`" releaseDate="`jq -r ".created_at" <<< $releaseInfo`" releaseEpoch=`date -d $releaseDate +%s` packageJson="`curl_github "https://raw.githubusercontent.com/signalapp/Signal-Desktop/refs/tags/$releaseTag/package.json"`" latestVersion="`jq -r '.version' <<< $packageJson`" nodeVersion="`jq -r '.engines.node' <<< $packageJson | head -c2`" electronVersion="`jq -r '.devDependencies.electron' <<< $packageJson | head -c2`" libsignalClientVersion=`jq -r '.dependencies."@signalapp/libsignal-client"' <<< $packageJson` ringrtcVersion=`jq -r '.dependencies."@signalapp/ringrtc"' <<< $packageJson` sed -E -i "s/(nodejs_)../\1$nodeVersion/" $SCRIPT_DIR/package.nix sed -E -i "s/(electron_)../\1$electronVersion/" $SCRIPT_DIR/package.nix sed -E -i "s/(SOURCE_DATE_EPOCH = )[0-9]+/\1$releaseEpoch/" $SCRIPT_DIR/package.nix sed -E -i "s/(withAppleEmojis \? )false/\1true/" $SCRIPT_DIR/package.nix nix-update signal-desktop-source --subpackage sticker-creator --version="$latestVersion" sed -E -i "s/(withAppleEmojis \? )true/\1false/" $SCRIPT_DIR/package.nix update-source-version signal-desktop-source \ --ignore-same-version \ --source-key=pnpmDeps update-source-version signal-desktop-source.libsignal-node \ "$libsignalClientVersion" update-source-version signal-desktop-source.libsignal-node \ --ignore-same-version \ --source-key=cargoDeps.vendorStaging update-source-version signal-desktop-source.libsignal-node \ --ignore-same-version \ --source-key=npmDeps update-source-version signal-desktop-source.ringrtc-bin "$ringrtcVersion" Loading
pkgs/by-name/si/signal-desktop-source/libsignal-node.nix +0 −1 Original line number Diff line number Diff line Loading @@ -12,7 +12,6 @@ fetchFromGitHub, python3, nodejs, }: let # boring-sys expects the static libraries in build/ instead of lib/ Loading
pkgs/by-name/si/signal-desktop-source/package.nix +47 −27 Original line number Diff line number Diff line Loading @@ -7,11 +7,9 @@ python3, makeWrapper, callPackage, libpulseaudio, fetchFromGitHub, runCommand, fetchzip, autoPatchelfHook, jq, makeDesktopItem, copyDesktopItems, replaceVars, Loading @@ -32,26 +30,7 @@ let sqlcipher-signal-extension = callPackage ./sqlcipher-signal-extension.nix { }; libsignal-node = callPackage ./libsignal-node.nix { inherit nodejs; }; ringrtc = stdenv.mkDerivation (finalAttrs: { pname = "ringrtc-bin"; version = "2.50.2"; src = fetchzip { url = "https://build-artifacts.signal.org/libraries/ringrtc-desktop-build-v${finalAttrs.version}.tar.gz"; hash = "sha256-hNlz+gSulyJ//FdbPvY/5OHbtJ4rEUdi9/SHJDX6gZE="; }; installPhase = '' cp -r . $out ''; nativeBuildInputs = [ autoPatchelfHook ]; buildInputs = [ libpulseaudio ]; meta = { homepage = "https://github.com/signalapp/ringrtc"; license = lib.licenses.agpl3Only; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; }; }); ringrtc-bin = callPackage ./ringrtc-bin.nix { }; # Noto Color Emoji PNG files for emoji replacement; see below. noto-fonts-color-emoji-png = noto-fonts-color-emoji.overrideAttrs (prevAttrs: { Loading Loading @@ -83,7 +62,7 @@ let hash = "sha256-/jtuGsBOFsSgJZNpRilWZ0daI0iYVziZBaF/vLvQ7NU="; }; stickerCreator = stdenv.mkDerivation (finalAttrs: { sticker-creator = stdenv.mkDerivation (finalAttrs: { pname = "signal-desktop-sticker-creator"; inherit version; src = src + "/sticker-creator"; Loading Loading @@ -121,6 +100,7 @@ stdenv.mkDerivation (finalAttrs: { makeWrapper copyDesktopItems python3 jq ]; buildInputs = (lib.optional (!withAppleEmojis) noto-fonts-color-emoji-png); Loading Loading @@ -151,9 +131,43 @@ stdenv.mkDerivation (finalAttrs: { }; preBuild = '' if [ "`jq -r '.engines.node' < package.json | head -c 2`" != `head -c 2 <<< "${nodejs.version}"` ] then die "nodejs version mismatch" fi if [ "`jq -r '.devDependencies.electron' < package.json | head -c 2`" != `head -c 2 <<< "${electron.version}"` ] then die "electron version mismatch" fi if [ "`jq -r '.dependencies."@signalapp/libsignal-client"' < package.json`" != "${libsignal-node.version}" ] then die "libsignal-client version mismatch" fi if [ "`jq -r '.dependencies."@signalapp/ringrtc"' < package.json`" != "${ringrtc-bin.version}" ] then die "ringrtc version mismatch" fi sqlcipherVersion=${sqlcipher-signal-extension.passthru.sqlcipher-amalgamation.version} if ! grep "const SQLCIPHER_VERSION = '$sqlcipherVersion';" \ node_modules/@signalapp/better-sqlite3/deps/download.js then die "sqlcipher version mismatch" fi extensionVersion=${sqlcipher-signal-extension.passthru.signal-sqlcipher-extension.version} if ! grep "const EXTENSION_VERSION = '$extensionVersion-asm2';" \ node_modules/@signalapp/better-sqlite3/deps/download.js then die "signal-sqlcipher-extension version mismatch" fi cp ${sqlcipher-signal-extension}/share/sqlite3.gyp node_modules/@signalapp/better-sqlite3/deps/sqlite3.gyp cp -r ${ringrtc} node_modules/@signalapp/ringrtc/build cp -r ${ringrtc-bin} node_modules/@signalapp/ringrtc/build rm -fr node_modules/@signalapp/libsignal-client/prebuilds cp -r ${libsignal-node}/lib node_modules/@signalapp/libsignal-client/prebuilds Loading @@ -165,7 +179,7 @@ stdenv.mkDerivation (finalAttrs: { export npm_config_nodedir=${electron-headers} cp -r ${electron.dist} electron-dist chmod -R u+w electron-dist cp -r ${stickerCreator} sticker-creator/dist cp -r ${sticker-creator} sticker-creator/dist pnpm run generate pnpm exec electron-builder \ Loading Loading @@ -219,8 +233,14 @@ stdenv.mkDerivation (finalAttrs: { ]; passthru = { inherit sqlcipher-signal-extension libsignal-node; inherit sqlcipher-signal-extension libsignal-node ringrtc-bin sticker-creator ; tests.application-launch = nixosTests.signal-desktop; updateScript.command = [ ./update.sh ]; }; meta = { Loading
pkgs/by-name/si/signal-desktop-source/ringrtc-bin.nix 0 → 100644 +27 −0 Original line number Diff line number Diff line { stdenv, lib, fetchzip, autoPatchelfHook, libpulseaudio, }: stdenv.mkDerivation (finalAttrs: { pname = "ringrtc-bin"; version = "2.50.2"; src = fetchzip { url = "https://build-artifacts.signal.org/libraries/ringrtc-desktop-build-v${finalAttrs.version}.tar.gz"; hash = "sha256-hNlz+gSulyJ//FdbPvY/5OHbtJ4rEUdi9/SHJDX6gZE="; }; installPhase = '' cp -r . $out ''; nativeBuildInputs = [ autoPatchelfHook ]; buildInputs = [ libpulseaudio ]; meta = { homepage = "https://github.com/signalapp/ringrtc"; license = lib.licenses.agpl3Only; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; }; })
pkgs/by-name/si/signal-desktop-source/sqlcipher-signal-extension.nix +6 −2 Original line number Diff line number Diff line Loading @@ -34,9 +34,10 @@ let }); sqlcipher-amalgamation = stdenv.mkDerivation { pname = "sqlcipher-with-signal-extension"; pname = "sqlcipher-amalgamation"; version = "${sqlcipher.version}-signal-patch2"; inherit (sqlcipher) version src meta; inherit (sqlcipher) src meta; patches = [ (fetchpatch { Loading Loading @@ -89,6 +90,9 @@ let in buildEnv { name = "sqlcipher-signal"; passthru = { inherit sqlcipher-amalgamation signal-sqlcipher-extension; }; paths = [ sqlcipher-amalgamation Loading
pkgs/by-name/si/signal-desktop-source/update.sh 0 → 100755 +47 −0 Original line number Diff line number Diff line #!/usr/bin/env nix-shell #!nix-shell -i bash -p bash nix-update common-updater-scripts curl coreutils jq set -ex SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)" curl_github() { curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} "$@" } releaseInfo="`curl_github \ "https://api.github.com/repos/signalapp/Signal-Desktop/releases/latest"`" releaseTag="`jq -r ".tag_name" <<< $releaseInfo`" releaseDate="`jq -r ".created_at" <<< $releaseInfo`" releaseEpoch=`date -d $releaseDate +%s` packageJson="`curl_github "https://raw.githubusercontent.com/signalapp/Signal-Desktop/refs/tags/$releaseTag/package.json"`" latestVersion="`jq -r '.version' <<< $packageJson`" nodeVersion="`jq -r '.engines.node' <<< $packageJson | head -c2`" electronVersion="`jq -r '.devDependencies.electron' <<< $packageJson | head -c2`" libsignalClientVersion=`jq -r '.dependencies."@signalapp/libsignal-client"' <<< $packageJson` ringrtcVersion=`jq -r '.dependencies."@signalapp/ringrtc"' <<< $packageJson` sed -E -i "s/(nodejs_)../\1$nodeVersion/" $SCRIPT_DIR/package.nix sed -E -i "s/(electron_)../\1$electronVersion/" $SCRIPT_DIR/package.nix sed -E -i "s/(SOURCE_DATE_EPOCH = )[0-9]+/\1$releaseEpoch/" $SCRIPT_DIR/package.nix sed -E -i "s/(withAppleEmojis \? )false/\1true/" $SCRIPT_DIR/package.nix nix-update signal-desktop-source --subpackage sticker-creator --version="$latestVersion" sed -E -i "s/(withAppleEmojis \? )true/\1false/" $SCRIPT_DIR/package.nix update-source-version signal-desktop-source \ --ignore-same-version \ --source-key=pnpmDeps update-source-version signal-desktop-source.libsignal-node \ "$libsignalClientVersion" update-source-version signal-desktop-source.libsignal-node \ --ignore-same-version \ --source-key=cargoDeps.vendorStaging update-source-version signal-desktop-source.libsignal-node \ --ignore-same-version \ --source-key=npmDeps update-source-version signal-desktop-source.ringrtc-bin "$ringrtcVersion"