signal-desktop: 8.15.0 -> 8.18.0

This commit is contained in:
Angel J
2026-07-14 18:10:56 -07:00
parent 7c6100a02a
commit e3e2bc8c6f
6 changed files with 56 additions and 42 deletions

View File

@@ -1,12 +0,0 @@
diff --git a/scripts/generate-emoji-data.mjs b/scripts/generate-emoji-data.mjs
index 85fd8d484..23ca0bb72 100644
--- a/scripts/generate-emoji-data.mjs
+++ b/scripts/generate-emoji-data.mjs
@@ -207,7 +207,6 @@ for (const emojiSrc of SRC_EMOJIS_SORTED) {
}
const emoji = encodeUnified(emojiSrc.unified);
- assert(isEmoji(emoji), 'Unexpected invalid emoji');
if (isDeprecated(emoji)) {
continue; // drop deprecated emoji

View File

@@ -15,23 +15,23 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "libsignal-node";
version = "0.95.0";
version = "0.96.3";
src = fetchFromGitHub {
owner = "signalapp";
repo = "libsignal";
tag = "v${finalAttrs.version}";
hash = "sha256-stxakRw9CJQetkBcF2BfQh1EvEGurccP5/QLNLyEJz0=";
hash = "sha256-FOppsfocUvUfWa6AfBPOxAnntGJkzTbnPwqMzzbHnWQ=";
};
cargoHash = "sha256-bbOsE6vcFQpplzXAupcvp2oEoIFT3nk8Ug9QWbCe2yc=";
cargoHash = "sha256-wsXlCpNwO+E6rVNaD2R51Mi0sZUv2lhllGxDxzyptYA=";
npmRoot = "node";
npmDeps = fetchNpmDeps {
name = "${finalAttrs.pname}-npm-deps";
inherit (finalAttrs) version src;
sourceRoot = "${finalAttrs.src.name}/${finalAttrs.npmRoot}";
hash = "sha256-lCLM0qI11Ce9w2NNgXHalxa8Ks628nvTjZhy26PvNbM=";
hash = "sha256-p8udihRlXMTnG4BT60D2VlI7D/O3eHV/zCS7ucpeuO4=";
};
nativeBuildInputs = [

View File

@@ -4,6 +4,7 @@
lib,
nodejs_24,
pnpm_10,
pnpm_11,
node-gyp,
fetchPnpmDeps,
pnpmConfigHook,
@@ -32,22 +33,25 @@ assert lib.warnIf (commandLineArgs != "")
true;
let
nodejs = nodejs_24;
pnpm = pnpm_10;
pnpm = pnpm_11;
electron = electron_42;
libsignal-node = callPackage ./libsignal-node.nix { inherit nodejs; };
signal-sqlcipher = callPackage ./signal-sqlcipher.nix { inherit pnpm nodejs; };
signal-sqlcipher = callPackage ./signal-sqlcipher.nix {
pnpm = pnpm_10;
inherit nodejs;
};
webrtc = callPackage ./webrtc.nix { };
ringrtc = callPackage ./ringrtc.nix { inherit webrtc; };
version = "8.15.0";
version = "8.18.0";
src = fetchFromGitHub {
owner = "signalapp";
repo = "Signal-Desktop";
tag = "v${version}";
hash = "sha256-SiOgNUll6J+EZNlmM6yhXakOc5qFCFRE/GczhaH57Vo=";
hash = "sha256-fynCFGmch3UecT5esNfVVlf0+xDrCdCBGw2HMMqBzWw=";
# Emoji font files will be added in `postFetch` if `withAppleEmojis` is enabled. They
# are fetched separately below.
postFetch = ''
@@ -63,16 +67,28 @@ let
sticker-creator = stdenv.mkDerivation (finalAttrs: {
pname = "signal-desktop-sticker-creator";
inherit version;
src = src + "/sticker-creator";
inherit src version;
pnpmRoot = "sticker-creator";
pnpmWorkspaces = [ "signal-art-creator" ];
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname src version;
inherit (finalAttrs)
pname
src
version
postPatch
pnpmWorkspaces
;
inherit pnpm;
fetcherVersion = 4;
hash = "sha256-WmDSa4PrASaqs8X68LYaPBeE+i+Jh3FfWF30SseN74Y=";
hash = "sha256-bWNs5W2NPk55Sm7UqwWvXU7bY+AXzevU3o2ji23HxtU=";
};
postPatch = ''
rm sticker-creator/pnpm-lock.yaml
'';
strictDeps = true;
nativeBuildInputs = [
nodejs
@@ -83,7 +99,7 @@ let
installPhase = ''
runHook preInstall
cp -r dist $out
cp -r sticker-creator/dist $out
runHook postInstall
'';
});
@@ -113,9 +129,6 @@ stdenv.mkDerivation (finalAttrs: {
patches = [
./force-90-days-expiration.patch
# Drop once https://github.com/NixOS/nixpkgs/pull/520553 and https://github.com/NixOS/nixpkgs/pull/525241 land.
./dont-assert-unicode-17-emoji.patch
]
++ lib.optional (!withAppleEmojis) (
# Signal ships the Apple emoji set without a licence and upstream
@@ -149,6 +162,11 @@ stdenv.mkDerivation (finalAttrs: {
substituteInPlace config/production.json \
--replace-fail '"updatesEnabled": true' '"updatesEnabled": false'
# pnpm 11 verifies node_modules before every `pnpm run`, which fails
# after nixpkgs swaps in the prebuilt native modules below.
substituteInPlace pnpm-workspace.yaml \
--replace-fail "verifyDepsBeforeRun: prompt" "verifyDepsBeforeRun: false"
# Nix builds do not need upstream release hooks (notarization and
# language-pack postprocessing), and they expect a different macOS
# app layout than nixpkgs' Electron provides.
@@ -172,13 +190,13 @@ stdenv.mkDerivation (finalAttrs: {
;
inherit pnpm;
fetcherVersion = 4;
hash = "sha256-/z+P9mb7Cm3FzzMpV6Da6THcHd73JgPuuB0Gx8KwKcc=";
hash = "sha256-bWNs5W2NPk55Sm7UqwWvXU7bY+AXzevU3o2ji23HxtU=";
};
env = {
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
SIGNAL_ENV = "production";
SOURCE_DATE_EPOCH = 1781737260;
SOURCE_DATE_EPOCH = 1783606680;
};
preBuild = ''
@@ -233,6 +251,14 @@ stdenv.mkDerivation (finalAttrs: {
popd
test -f node_modules/fs-xattr/build/Release/xattr.node
# @signalapp/windows-ucv is imported on all platforms, but its TypeScript
# output is normally produced by its preinstall script. pnpmConfigHook runs
# `pnpm install --ignore-scripts`, so build it explicitly.
pushd packages/windows-ucv
pnpm run build
popd
test -f node_modules/@signalapp/windows-ucv/dist/index.js
cp -r ${electron.dist} electron-dist
chmod -R u+w electron-dist
cp -r ${sticker-creator} sticker-creator/dist

View File

@@ -1,13 +1,13 @@
diff --git a/app/AssetService.main.ts b/app/AssetService.main.ts
index 33b20b8d5..c122f8c67 100644
index a4a21b5bb..3d5ab1eb0 100644
--- a/app/AssetService.main.ts
+++ b/app/AssetService.main.ts
@@ -32,7 +32,6 @@ const LOCAL_ASSETS = new Set([
@@ -34,7 +34,6 @@ const OPTIONAL_ASSETS = new Map<string, string>([]);
// pathname to optional resource name
const OPTIONAL_ASSETS = new Map([
- ['optional-fonts/emoji-large.woff2', 'emoji-font.woff2'],
]);
if (!process.mas) {
LOCAL_ASSETS.add('fonts/emoji.woff2');
- OPTIONAL_ASSETS.set('optional-fonts/emoji-large.woff2', 'emoji-font.woff2');
}
export class AssetService {
diff --git a/app/protocol_filter.node.ts b/app/protocol_filter.node.ts

View File

@@ -19,16 +19,16 @@ let
in
rustPlatform.buildRustPackage (finalAttrs: {
pname = "ringrtc";
version = "2.69.3";
version = "2.69.4";
src = fetchFromGitHub {
owner = "signalapp";
repo = "ringrtc";
tag = "v${finalAttrs.version}";
hash = "sha256-ekSXEaAyVzd5957qoFakD33UYrUmvxZL19M6uflPR5U=";
hash = "sha256-z/9Y9rrlH4yziEVAXrCmkmP42hdDm3frGJnL1O/qOqg=";
};
cargoHash = "sha256-oNHT2owg3Ob2z8JxdYnICRdogK+XaasVgbF5RYYBJas=";
cargoHash = "sha256-a6CEUVW1HXqgIp/S+4Ype83N3QtNCBrutiEepHNW5pY=";
preConfigure = ''
# Check for matching webrtc version

View File

@@ -16,20 +16,20 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "node-sqlcipher";
version = "3.3.5";
version = "3.3.9";
src = fetchFromGitHub {
owner = "signalapp";
repo = "node-sqlcipher";
tag = "v${finalAttrs.version}";
hash = "sha256-RzuyUx0WEG8j8HwV5cepVJIeqYzJpNemFNtB+9NETto=";
hash = "sha256-eddDeNK8UA6CW1qXZtgS8QpuXVjFO6tVwpFDyYDnX+U=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
inherit pnpm; # may be different than top-level pnpm
fetcherVersion = 4;
hash = "sha256-HK3AetwGqFq/dhxX+aWgUww6eLCeQEkZIVsmmnYqdmM=";
hash = "sha256-avvXNPfN5YVqwCOU2RX8dos3LTlre1t/4COKb4zHkh4=";
};
cargoRoot = "deps/extension";