From 72eed56b2f44eb7e7c3a1e27adece2967959596d Mon Sep 17 00:00:00 2001 From: FraioVeio Date: Sun, 10 May 2026 00:57:47 +0200 Subject: [PATCH] anydesk: fix broken updateScript, fix multi-arch hash update (cherry picked from commit 7adb433f357744311548fa36d158191539165628) --- pkgs/by-name/an/anydesk/package.nix | 21 ++-------------- pkgs/by-name/an/anydesk/update.sh | 39 +++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 19 deletions(-) create mode 100755 pkgs/by-name/an/anydesk/update.sh diff --git a/pkgs/by-name/an/anydesk/package.nix b/pkgs/by-name/an/anydesk/package.nix index 5e0d5804dbf2..28c2e9e83788 100644 --- a/pkgs/by-name/an/anydesk/package.nix +++ b/pkgs/by-name/an/anydesk/package.nix @@ -4,8 +4,8 @@ fetchurl, makeWrapper, makeDesktopItem, - genericUpdater, writeShellScript, + jq, atk, cairo, gdk-pixbuf, @@ -164,24 +164,7 @@ stdenv.mkDerivation (finalAttrs: { ''; passthru = { - updateScript = genericUpdater { - versionLister = - let - arch = - if system == "x86_64-linux" then - "amd64" - else if system == "aarch64-linux" then - "arm64" - else - throw "cannot update AnyDesk on ${system}"; - in - writeShellScript "anydesk-versionLister" '' - curl -s https://anydesk.com/en/downloads/linux \ - | grep "https://[a-z0-9._/-]*-${arch}.tar.gz" -o \ - | uniq \ - | sed 's,.*/anydesk-\(.*\)-${arch}.tar.gz,\1,g' - ''; - }; + updateScript = ./update.sh; }; meta = { diff --git a/pkgs/by-name/an/anydesk/update.sh b/pkgs/by-name/an/anydesk/update.sh new file mode 100755 index 000000000000..166540cf7b8b --- /dev/null +++ b/pkgs/by-name/an/anydesk/update.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env -S nix shell nixpkgs#curl nixpkgs#jq nixpkgs#nix --command bash + +set -euo pipefail + +directory="$(dirname $0 | xargs realpath)" + +new_version=$( + curl -s https://rpm.anydesk.com/rhel/x86_64/Packages/ \ + | grep -oP 'anydesk_\K[0-9]+\.[0-9]+\.[0-9]+(?=-[0-9]+_x86_64\.rpm)' \ + | sort -V \ + | tail -1 +) + +old_version=$(jq -r '.version' "$directory/pin.json") + +if [[ "$new_version" == "$old_version" ]]; then + echo "anydesk is already up to date ($old_version)" + exit 0 +fi + +echo "Updating anydesk: $old_version -> $new_version" + +hash_amd64=$(nix hash to-sri --type sha256 \ + "$(nix-prefetch-url --type sha256 \ + "https://download.anydesk.com/linux/anydesk-${new_version}-amd64.tar.gz")") + +hash_arm64=$(nix hash to-sri --type sha256 \ + "$(nix-prefetch-url --type sha256 \ + "https://download.anydesk.com/rpi/anydesk-${new_version}-arm64.tar.gz")") + +cat > "$directory/pin.json" << EOF +{ + "version": "$new_version", + "x86_64-linux": "$hash_amd64", + "aarch64-linux": "$hash_arm64" +} +EOF + +cat "$directory/pin.json"