signal-desktop: refactor to make nix-update work
Co-authored-by: Arjun31415 <arjunp0710@gmail.com>
This commit is contained in:
parent
c721fa27b7
commit
17f6e20dc4
@ -1,17 +1,6 @@
|
||||
{ callPackage, stdenv }: builtins.mapAttrs (pname: attrs: callPackage ./generic.nix (attrs // { inherit pname; })) {
|
||||
signal-desktop = rec {
|
||||
dir = "Signal";
|
||||
version = "6.40.0";
|
||||
version-aarch64 = "6.40.0";
|
||||
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
|
||||
url-aarch64 = "https://github.com/0mniteck/Signal-Desktop-Mobian/raw/${version-aarch64}/builds/release/signal-desktop_${version-aarch64}_arm64.deb";
|
||||
hash = "sha256-vyXHlycPSyEyv938IKzGM6pdERHHerx2CLY/U+WMrH4=";
|
||||
hash-aarch64 = "sha256-3Pi0c+CGcJR1M4ll51m+B5PmGIcIjjlc0qa9b8rkMeU=";
|
||||
};
|
||||
signal-desktop-beta = rec {
|
||||
dir = "Signal Beta";
|
||||
version = "6.40.0-beta.2";
|
||||
hash = "sha256-pfedkxbZ25DFgz+/N7ZEb9LwKrHuoMM+Zi+Tc21QPsg=";
|
||||
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb";
|
||||
};
|
||||
{ hostPlatform, callPackage }: {
|
||||
signal-desktop = if hostPlatform.system == "aarch64-linux"
|
||||
then callPackage ./signal-desktop-aarch64.nix { }
|
||||
else callPackage ./signal-desktop.nix { };
|
||||
signal-desktop-beta = ./signal-desktop-beta.nix;
|
||||
}
|
||||
|
@ -1,12 +1,4 @@
|
||||
{ pname
|
||||
, dir
|
||||
, version
|
||||
, version-aarch64 ? ""
|
||||
, hash
|
||||
, hash-aarch64 ? ""
|
||||
, url
|
||||
, url-aarch64 ? ""
|
||||
, stdenv
|
||||
{ stdenv
|
||||
, lib
|
||||
, fetchurl
|
||||
, autoPatchelfHook
|
||||
@ -55,13 +47,18 @@
|
||||
, wayland
|
||||
}:
|
||||
|
||||
{ pname
|
||||
, dir
|
||||
, version
|
||||
, hash
|
||||
, url
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (stdenv) targetPlatform;
|
||||
ARCH = if targetPlatform.isAarch64 then "arm64" else "x64";
|
||||
final-version = if targetPlatform.isAarch64 then version-aarch64 else version;
|
||||
in stdenv.mkDerivation rec {
|
||||
inherit pname;
|
||||
version = final-version;
|
||||
inherit pname version;
|
||||
|
||||
# Please backport all updates to the stable channel.
|
||||
# All releases have a limited lifetime and "expire" 90 days after the release.
|
||||
@ -72,8 +69,7 @@ in stdenv.mkDerivation rec {
|
||||
# few additional steps and might not be the best idea.)
|
||||
|
||||
src = fetchurl {
|
||||
url = if targetPlatform.isAarch64 then url-aarch64 else url;
|
||||
hash = if targetPlatform.isAarch64 then hash-aarch64 else hash;
|
||||
inherit url hash;
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@ -177,8 +173,11 @@ in stdenv.mkDerivation rec {
|
||||
patchelf --add-needed ${libpulseaudio}/lib/libpulse.so "$out/lib/${dir}/resources/app.asar.unpacked/node_modules/@signalapp/ringrtc/build/linux/libringrtc-${ARCH}.node"
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
# Tests if the application launches and waits for "Link your phone to Signal Desktop":
|
||||
passthru.tests.application-launch = nixosTests.signal-desktop;
|
||||
tests.application-launch = nixosTests.signal-desktop;
|
||||
updateScript.command = [ ./update.sh ];
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Private, simple, and secure messenger";
|
||||
@ -187,11 +186,11 @@ in stdenv.mkDerivation rec {
|
||||
"Signal Android" or "Signal iOS" app.
|
||||
'';
|
||||
homepage = "https://signal.org/";
|
||||
changelog = "https://github.com/signalapp/Signal-Desktop/releases/tag/v${final-version}";
|
||||
changelog = "https://github.com/signalapp/Signal-Desktop/releases/tag/v${version}";
|
||||
license = lib.licenses.agpl3Only;
|
||||
maintainers = with lib.maintainers; [ mic92 equirosa urandom bkchr ];
|
||||
mainProgram = pname;
|
||||
platforms = if builtins.stringLength version-aarch64 > 0 then [ "x86_64-linux" "aarch64-linux" ] else [ "x86_64-linux" ];
|
||||
platforms = [ "x86_64-linux" "aarch64-linux" ];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
};
|
||||
}
|
||||
|
@ -0,0 +1,8 @@
|
||||
{ callPackage }:
|
||||
callPackage ./generic.nix { } rec {
|
||||
pname = "signal-desktop";
|
||||
dir = "Signal";
|
||||
version = "6.40.0";
|
||||
url = "https://github.com/0mniteck/Signal-Desktop-Mobian/raw/${version}/builds/release/signal-desktop_${version}_arm64.deb";
|
||||
hash = "sha256-3Pi0c+CGcJR1M4ll51m+B5PmGIcIjjlc0qa9b8rkMeU=";
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{ callPackage }:
|
||||
callPackage ./generic.nix {} rec {
|
||||
pname = "signal-desktop-beta";
|
||||
dir = "Signal Beta";
|
||||
version = "6.40.0-beta.2";
|
||||
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop-beta/signal-desktop-beta_${version}_amd64.deb";
|
||||
hash = "sha256-pfedkxbZ25DFgz+/N7ZEb9LwKrHuoMM+Zi+Tc21QPsg=";
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{ callPackage }:
|
||||
callPackage ./generic.nix {} rec {
|
||||
pname = "signal-desktop";
|
||||
dir = "Signal";
|
||||
version = "6.40.0";
|
||||
url = "https://updates.signal.org/desktop/apt/pool/s/signal-desktop/signal-desktop_${version}_amd64.deb";
|
||||
hash = "sha256-vyXHlycPSyEyv938IKzGM6pdERHHerx2CLY/U+WMrH4=";
|
||||
}
|
39
pkgs/applications/networking/instant-messengers/signal-desktop/update.sh
Executable file
39
pkgs/applications/networking/instant-messengers/signal-desktop/update.sh
Executable file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p bash nix-update curl coreutils
|
||||
|
||||
set -ex
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" &>/dev/null && pwd)"
|
||||
|
||||
curl_github() {
|
||||
curl ${GITHUB_TOKEN:+" -u \":$GITHUB_TOKEN\""} "$@"
|
||||
}
|
||||
|
||||
case "$UPDATE_NIX_ATTR_PATH" in
|
||||
signal-desktop)
|
||||
latestTag=$(curl_github https://api.github.com/repos/signalapp/Signal-Desktop/releases/latest | jq -r ".tag_name")
|
||||
latestVersion="$(expr "$latestTag" : 'v\(.*\)')"
|
||||
latestVersionAarch64=$(curl_github "https://api.github.com/repos/0mniteck/Signal-Desktop-Mobian/releases/latest" | jq -r ".tag_name")
|
||||
|
||||
echo "Updating signal-desktop for x86_64-linux"
|
||||
nix-update --version "$latestVersion" \
|
||||
--system x86_64-linux \
|
||||
--override-filename "$SCRIPT_DIR/signal-desktop.nix"
|
||||
signal-desktop
|
||||
|
||||
echo "Updating signal-desktop for aarch64-linux"
|
||||
nix-update --version "$latestVersionAarch64" \
|
||||
--system aarch64-linux \
|
||||
--override-filename "$SCRIPT_DIR/signal-desktop-aarch64.nix" \
|
||||
signal-desktop
|
||||
;;
|
||||
signal-desktop-beta)
|
||||
latestTagBeta=$(curl_github https://api.github.com/repos/signalapp/Signal-Desktop/releases | jq -r ".[0].tag_name")
|
||||
latestVersionBeta="$(expr "$latestTagBeta" : 'v\(.*\)')"
|
||||
echo "Updating signal-desktop-beta for x86_64-linux"
|
||||
nix-update --version "$latestVersionBeta" --system x86_64-linux --override-filename "$SCRIPT_DIR/signal-desktop-beta.nix" signal-desktop-beta
|
||||
;;
|
||||
*)
|
||||
echo "Unknown attr path $UPDATE_NIX_ATTR_PATH"
|
||||
;;
|
||||
esac
|
Loading…
Reference in New Issue
Block a user