From 82993db6f4352b636be27da202a6a54fdadb0552 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Mon, 5 Jan 2026 20:58:17 +0100 Subject: [PATCH 1/2] signal-desktop: determine SOURCE_DATE_EPOCH via git Signed-off-by: Marcin Serwin --- pkgs/by-name/si/signal-desktop/package.nix | 11 +++++++++-- pkgs/by-name/si/signal-desktop/update.sh | 3 --- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/si/signal-desktop/package.nix b/pkgs/by-name/si/signal-desktop/package.nix index bc85b6048099..20775382dc52 100644 --- a/pkgs/by-name/si/signal-desktop/package.nix +++ b/pkgs/by-name/si/signal-desktop/package.nix @@ -60,7 +60,11 @@ let owner = "signalapp"; repo = "Signal-Desktop"; tag = "v${version}"; - hash = "sha256-hzeioXrO9kdFFTGhhY4klrCxRgS1eoGY7+7fTGsN4cY="; + hash = "sha256-r1RB6vtG2mdRJifaKNrmQvxJxXOqkpHoWivvPPpesow="; + forceFetchGit = true; + postCheckout = '' + git -C "$out" show -s --format=%ct > "$out"/GIT_COMMIT_TIME + ''; }; sticker-creator = stdenv.mkDerivation (finalAttrs: { @@ -148,9 +152,12 @@ stdenv.mkDerivation (finalAttrs: { env = { ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; SIGNAL_ENV = "production"; - SOURCE_DATE_EPOCH = 1766066770; }; + preConfigure = '' + export SOURCE_DATE_EPOCH=`cat GIT_COMMIT_TIME` + ''; + preBuild = '' if [ "`jq -r '.engines.node' < package.json | cut -d. -f1`" != "${lib.versions.major nodejs.version}" ] then diff --git a/pkgs/by-name/si/signal-desktop/update.sh b/pkgs/by-name/si/signal-desktop/update.sh index d4dca6e74ef8..a39078678c1d 100755 --- a/pkgs/by-name/si/signal-desktop/update.sh +++ b/pkgs/by-name/si/signal-desktop/update.sh @@ -13,8 +13,6 @@ 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"`" @@ -29,7 +27,6 @@ webrtcVersion="`grep --only-matching "^webrtc.version=.*$" <<< $ringrtcVersionPr 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 --subpackage sticker-creator --version="$latestVersion" From 08a535c76be294a53a9e5c64fca9e4d3b7753b27 Mon Sep 17 00:00:00 2001 From: Marcin Serwin Date: Mon, 5 Jan 2026 21:49:03 +0100 Subject: [PATCH 2/2] signal-desktop: disable automatic updates Signed-off-by: Marcin Serwin --- pkgs/by-name/si/signal-desktop/package.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/si/signal-desktop/package.nix b/pkgs/by-name/si/signal-desktop/package.nix index 20775382dc52..9fd84b6a07e2 100644 --- a/pkgs/by-name/si/signal-desktop/package.nix +++ b/pkgs/by-name/si/signal-desktop/package.nix @@ -61,7 +61,6 @@ let repo = "Signal-Desktop"; tag = "v${version}"; hash = "sha256-r1RB6vtG2mdRJifaKNrmQvxJxXOqkpHoWivvPPpesow="; - forceFetchGit = true; postCheckout = '' git -C "$out" show -s --format=%ct > "$out"/GIT_COMMIT_TIME ''; @@ -131,6 +130,10 @@ stdenv.mkDerivation (finalAttrs: { # it at runtime. 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' ''; pnpmDeps = fetchPnpmDeps {