From 60304c712e2f68a3331cd7af142035262effa218 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sat, 4 Apr 2026 17:10:46 +0200 Subject: [PATCH 1/5] signal-desktop: deprecate commandLineArgs override Changing default program arguments should be done via wrappers, not build time overrides. Signed-off-by: Marcin Serwin --- pkgs/by-name/si/signal-desktop/package.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkgs/by-name/si/signal-desktop/package.nix b/pkgs/by-name/si/signal-desktop/package.nix index 6ab2d19e689c..15d59b77e2ef 100644 --- a/pkgs/by-name/si/signal-desktop/package.nix +++ b/pkgs/by-name/si/signal-desktop/package.nix @@ -23,6 +23,9 @@ withAppleEmojis ? false, }: +assert lib.warnIf (commandLineArgs != "") + "`commandLineArgs` has been deprecated and will be removed in the future. Consider creating a wrapper script or a desktop entry with your desired flags." + true; let nodejs = nodejs_24; pnpm = pnpm_10_29_2; From 60d3dbf50633457946b5a256732e2e4b7501f430 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sat, 4 Apr 2026 17:28:01 +0200 Subject: [PATCH 2/5] signal-desktop: add comment explaining why Apple emojis are removed The comment is copied nearly verbatim from the dropped signal-desktop-bin recipe. Signed-off-by: Marcin Serwin --- pkgs/by-name/si/signal-desktop/package.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkgs/by-name/si/signal-desktop/package.nix b/pkgs/by-name/si/signal-desktop/package.nix index 15d59b77e2ef..4f0f373a598d 100644 --- a/pkgs/by-name/si/signal-desktop/package.nix +++ b/pkgs/by-name/si/signal-desktop/package.nix @@ -124,6 +124,18 @@ stdenv.mkDerivation (finalAttrs: { ./force-90-days-expiration.patch ] ++ lib.optional (!withAppleEmojis) ( + # Signal ships the Apple emoji set without a licence via an npm + # package and upstream does not seem terribly interested in fixing + # this; see: + # + # * + # * + # + # We work around this by replacing it with the Noto Color Emoji + # set, which is available under a FOSS licence and more likely to + # be used on a NixOS machine anyway. The Apple emoji are removed + # before `fetchPnpmDeps` to ensure that the build doesn’t cache the + # unlicensed emoji files. replaceVars ./replace-apple-emoji-with-noto-emoji.patch { noto-emoji-pngs = "${noto-fonts-color-emoji-png}/share/noto-fonts-color-emoji-png"; } From 91fa6175f48d15bb4d21e715b152264e50b5564d Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sat, 4 Apr 2026 17:36:52 +0200 Subject: [PATCH 3/5] signal-desktop: drop unused buildInputs Signed-off-by: Marcin Serwin --- pkgs/by-name/si/signal-desktop/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/si/signal-desktop/package.nix b/pkgs/by-name/si/signal-desktop/package.nix index 4f0f373a598d..5f85a549bd19 100644 --- a/pkgs/by-name/si/signal-desktop/package.nix +++ b/pkgs/by-name/si/signal-desktop/package.nix @@ -118,7 +118,6 @@ stdenv.mkDerivation (finalAttrs: { ++ lib.optionals stdenv.hostPlatform.isLinux [ copyDesktopItems ]; - buildInputs = (lib.optional (!withAppleEmojis) noto-fonts-color-emoji-png); patches = [ ./force-90-days-expiration.patch From 61038496cd309579927567c294bb3c0cc9152017 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sat, 4 Apr 2026 17:51:34 +0200 Subject: [PATCH 4/5] signal-desktop: disable the auto-updater via config file Signed-off-by: Marcin Serwin --- pkgs/by-name/si/signal-desktop/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/si/signal-desktop/package.nix b/pkgs/by-name/si/signal-desktop/package.nix index 5f85a549bd19..40d38851fc29 100644 --- a/pkgs/by-name/si/signal-desktop/package.nix +++ b/pkgs/by-name/si/signal-desktop/package.nix @@ -151,9 +151,9 @@ stdenv.mkDerivation (finalAttrs: { substituteInPlace app/updateDefaultSession.main.ts \ --replace-fail "\''${process.versions.electron}" "`jq -r '.devDependencies.electron' < package.json`" - # https://github.com/signalapp/Signal-Desktop/issues/7667 - substituteInPlace ts/util/version.std.ts \ - --replace-fail 'isAdhoc(version)' 'true' + # Disable auto-updater https://github.com/signalapp/Signal-Desktop/issues/7667 + substituteInPlace config/production.json \ + --replace-fail '"updatesEnabled": true' '"updatesEnabled": false' # Nix builds do not need upstream release hooks (notarization and # language-pack postprocessing), and they expect a different macOS From ec202975434198c3c90ecb21220fbf3ace19a9be Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Sat, 4 Apr 2026 18:06:19 +0200 Subject: [PATCH 5/5] signal-desktop: drop NIXOS_OZONE_WL related flags Signed-off-by: Marcin Serwin --- pkgs/by-name/si/signal-desktop/package.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/pkgs/by-name/si/signal-desktop/package.nix b/pkgs/by-name/si/signal-desktop/package.nix index 40d38851fc29..c452a132f4f7 100644 --- a/pkgs/by-name/si/signal-desktop/package.nix +++ b/pkgs/by-name/si/signal-desktop/package.nix @@ -288,7 +288,6 @@ stdenv.mkDerivation (finalAttrs: { makeWrapper '${lib.getExe electron}' "$out/bin/signal-desktop" \ --add-flags "$out/share/signal-desktop/app.asar" \ --set-default ELECTRON_FORCE_IS_PACKAGED 1 \ - --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \ --add-flags ${lib.escapeShellArg commandLineArgs} '' + ''