Skip to content

Commit ad77064

Browse files
authored
signal-desktop: add darwin support (#348165)
1 parent 6f11b44 commit ad77064

File tree

4 files changed

+70
-1
lines changed

4 files changed

+70
-1
lines changed

pkgs/applications/networking/instant-messengers/signal-desktop/default.nix

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
signal-desktop =
44
if hostPlatform.system == "aarch64-linux" then
55
callPackage ./signal-desktop-aarch64.nix { }
6+
else if hostPlatform.isDarwin then
7+
callPackage ./signal-desktop-darwin.nix { }
68
else
79
callPackage ./signal-desktop.nix { };
810
signal-desktop-beta = (callPackage ./signal-desktop-beta.nix { }).overrideAttrs (old: {

pkgs/applications/networking/instant-messengers/signal-desktop/generic.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ stdenv.mkDerivation rec {
273273
emily
274274
];
275275
mainProgram = pname;
276-
platforms = [ "x86_64-linux" "aarch64-linux" ];
276+
platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
277277
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
278278
};
279279
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{
2+
stdenv,
3+
lib,
4+
fetchurl,
5+
_7zz,
6+
}:
7+
stdenv.mkDerivation (finalAttrs: {
8+
pname = "signal-desktop";
9+
version = "7.28.0";
10+
11+
src = fetchurl {
12+
url = "https://updates.signal.org/desktop/signal-desktop-mac-universal-${finalAttrs.version}.dmg";
13+
hash = "sha256-yPObHZPCXRycuf9VexooWkXDJLReEiTuFSmCxlHA/OU=";
14+
};
15+
sourceRoot = ".";
16+
17+
nativeBuildInputs = [ _7zz ];
18+
19+
dontConfigure = true;
20+
dontBuild = true;
21+
installPhase = ''
22+
runHook preInstall
23+
24+
mkdir -p $out/Applications
25+
cp -r Signal.app $out/Applications
26+
27+
runHook postInstall
28+
'';
29+
30+
passthru = {
31+
updateScript.command = [ ./update.sh ];
32+
};
33+
34+
meta = {
35+
description = "Private, simple, and secure messenger";
36+
longDescription = ''
37+
Signal Desktop is an Electron application that links with your
38+
"Signal Android" or "Signal iOS" app.
39+
'';
40+
homepage = "https://signal.org/";
41+
downloadPage = "https://signal.org/download/macos/";
42+
changelog = "https://github.com/signalapp/Signal-Desktop/releases/tag/v${finalAttrs.version}";
43+
license = with lib.licenses; [
44+
agpl3Only
45+
46+
# Various npm packages
47+
free
48+
49+
# has non-redistributable Apple emoji packaged, see main derivation
50+
unfree
51+
];
52+
maintainers = with lib.maintainers; [ nickhu ];
53+
platforms = [
54+
"x86_64-linux"
55+
"aarch64-linux"
56+
"x86_64-darwin"
57+
"aarch64-darwin"
58+
];
59+
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
60+
};
61+
})

pkgs/applications/networking/instant-messengers/signal-desktop/update.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@ signal-desktop)
2626
--system aarch64-linux \
2727
--override-filename "$SCRIPT_DIR/signal-desktop-aarch64.nix" \
2828
signal-desktop
29+
30+
echo "Updating signal-desktop for darwin"
31+
nix-update --version "$latestVersion" \
32+
--system aarch64-darwin \
33+
--override-filename "$SCRIPT_DIR/signal-desktop-darwin.nix" \
34+
signal-desktop
2935
;;
3036
signal-desktop-beta)
3137
latestTagBeta=$(curl_github https://api.github.com/repos/signalapp/Signal-Desktop/releases | jq -r ".[0].tag_name")

0 commit comments

Comments
 (0)