nongnu: anydesk: Update to 7.0.2.

* nongnu/packages/anydesk.scm (anydesk-next): Update to 7.0.2.
[source]: Update uri and hash for new tar.gz format.
[arguments]: <#:patchelf-plan>: Add missing dependencies (harfbuzz, libepoxy,
at-spi2-core, libxkbcommon, wayland, libxcursor, libxcomposite, libxinerama,
libthai, libpng, pixman, libjpeg-turbo, util-linux:lib, libffi, pcre2,
libxau, libxdmcp, elogind, bzip2, expat, graphite2, libdatrie, libcap).
<#:install-plan>: Update file paths for new archive structure.
<#:phases>: Update 'binary-unpack' phase to handle tar.gz format instead of
.deb. Adjust 'fix-desktop-entry' phase to set GDK_BACKEND=x11 environment
variable. Add 'install-icon' phase for proper icon installation.
[inputs]: Add all new required dependencies for version 7.0.2.
This commit is contained in:
arkhan 2025-07-16 21:57:30 -05:00
parent 08aa901599
commit ccea5f501f

View file

@ -11,41 +11,46 @@
#:use-module (gnu packages gl) #:use-module (gnu packages gl)
#:use-module (gnu packages fontutils) #:use-module (gnu packages fontutils)
#:use-module (gnu packages polkit) #:use-module (gnu packages polkit)
#:use-module (gnu packages freedesktop)
#:use-module (gnu packages image)
#:use-module (gnu packages linux)
#:use-module (gnu packages libffi)
#:use-module (gnu packages pcre)
#:use-module (gnu packages pulseaudio) #:use-module (gnu packages pulseaudio)
#:use-module (gnu packages xml)
#:use-module (gnu packages xorg) #:use-module (gnu packages xorg)
#:use-module (gnu packages xdisorg)
#:use-module (guix download) #:use-module (guix download)
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (nonguix build-system binary) #:use-module (nonguix build-system binary)
#:use-module (nongnu packages anydesk)
#:use-module (nonguix licenses)) #:use-module (nonguix licenses))
(define-public anydesk (define-public anydesk
(package (package
(name "anydesk") (name "anydesk")
(version "6.3.2-1") (version "7.0.2")
(source (origin (source
(method url-fetch) (origin
(uri (string-append "https://download.anydesk.com/linux/anydesk_" (method url-fetch)
version "_amd64.deb")) (uri (string-append "https://download.anydesk.com/linux/anydesk-"
(sha256 version "-amd64.tar.gz"))
(base32 (sha256
"13b5ab4a889vz39d36f45mhv3mlaxb305wsh3plk3dbjcrkkkirb")))) (base32
"0jmrhcic5kmhxlw7rxw0d37fp9lzzz10qs8ar0dqjgfhbynkskm8"))))
(build-system binary-build-system) (build-system binary-build-system)
(arguments (arguments
`(#:validate-runpath? #f `(#:validate-runpath? #f
#:strip-binaries? #f ;; For some reason it breaks the program #:strip-binaries? #f
#:patchelf-plan #:patchelf-plan
`(("usr/bin/anydesk" ("atk" `(("anydesk" ("atk"
"cairo" "cairo"
"fontconfig" "fontconfig"
"freetype" "freetype"
"gcc:lib" "gcc:lib"
"gdk-pixbuf" "gdk-pixbuf"
"glib" "glib"
"glu"
"gtk+" "gtk+"
"gtkglext"
"libice"
"libsm"
"libx11" "libx11"
"libxcb" "libxcb"
"libxdamage" "libxdamage"
@ -53,62 +58,102 @@
"libxfixes" "libxfixes"
"libxi" "libxi"
"libxkbfile" "libxkbfile"
"libxmu"
"libxrandr" "libxrandr"
"libxrender" "libxrender"
"libxsts" "libxtst"
"libxt" "libxcursor"
"mesa" "libxcomposite"
"minizip" "libxinerama"
"libxau"
"libxdmcp"
"pango" "pango"
"pangox-compat" "harfbuzz"
"libepoxy"
"pixman"
"libjpeg-turbo"
"libpng"
"libthai"
"graphite2"
"libdatrie"
"polkit" "polkit"
"polkit-gnome" "zlib"
"pulseaudio"))) "dbus"
"at-spi2-core"
"libxkbcommon"
"wayland"
"util-linux:lib"
"libffi"
"pcre2"
"elogind"
"bzip2"
"expat"
"libcap")))
#:install-plan #:install-plan
`(("usr/bin/anydesk" "/bin/") `(("anydesk" "/bin/")
("usr/share/polkit-1/actions/com.anydesk.anydesk.policy" "/etc/polkit-1/actions/") ("polkit-1/com.anydesk.anydesk.policy" "/share/polkit-1/actions/")
("usr/share/icons" "/share/icons/")) ("icons" "/share/icons/")
("anydesk.desktop" "/share/applications/")
("copyright" "/share/licenses/anydesk/"))
#:phases #:phases
(modify-phases %standard-phases (modify-phases %standard-phases
(replace 'binary-unpack (replace 'binary-unpack
(lambda* (#:key source #:allow-other-keys) (lambda* (#:key source #:allow-other-keys)
(let* ((files (filter (lambda (f) (let* ((files (filter (lambda (f)
(not (string=? (basename f) "environment-variables"))) (not (string=? (basename f) "environment-variables")))
(find-files (getcwd)))) (find-files (getcwd))))
(binary-file (car files))) (binary-file (car files)))
(when (= 1 (length files)) (when (= 1 (length files))
(mkdir "binary") (mkdir "binary")
(chdir "binary") (chdir "binary")
(invoke "ar" "x" binary-file) (invoke "tar" "xvf" binary-file)
(invoke "tar" "xvf" "data.tar.gz") (chdir (string-append "anydesk-" ,(package-version this-package)))))))
(invoke "rm" "-rfv" "control.tar.gz" (add-after 'install 'fix-desktop-entry
"data.tar.gz"
binary-file
"debian-binary")))))
(add-after 'install 'install-desktop-entry
(lambda* (#:key outputs #:allow-other-keys) (lambda* (#:key outputs #:allow-other-keys)
(let* ((desktop-file "usr/share/applications/anydesk.desktop") (let* ((out (assoc-ref outputs "out"))
(out (assoc-ref outputs "out")) (desktop-file (string-append out "/share/applications/anydesk.desktop")))
(applications (string-append out "/share/applications")))
(substitute* desktop-file (substitute* desktop-file
(("^Exec=.*") (string-append "Exec=" out "/bin/anydesk\n")) (("^Exec=anydesk") (string-append "Exec=env GDK_BACKEND=x11 " out "/bin/anydesk"))
(("^Icon=.*") "Icon=anydesk\n")) (("^Icon=anydesk") "Icon=anydesk"))
(install-file desktop-file applications)) #t)))
#t))))) (add-after 'install 'install-icon
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(icon-src "icons/hicolor/scalable/apps/anydesk.svg")
(icon-dest (string-append out "/share/pixmaps/anydesk.svg")))
(when (file-exists? icon-src)
(install-file icon-src (dirname icon-dest)))
#t))))))
(inputs (inputs
`(("atk" ,atk) `(("atk" ,atk)
("cairo" ,cairo) ("cairo" ,cairo)
("fontconfig" ,fontconfig) ("fontconfig" ,fontconfig)
("freetype" ,freetype) ("freetype" ,freetype)
("gcc:lib" ,gcc "lib")
("gdk-pixbuf" ,gdk-pixbuf) ("gdk-pixbuf" ,gdk-pixbuf)
("glib" ,glib) ("glib" ,glib)
("glu" ,glu) ("gtk+" ,gtk+)
("gtk+" ,gtk+-2) ("pango" ,pango)
("gtkglext" ,gtkglext) ("harfbuzz" ,harfbuzz)
("libice" ,libice) ("libepoxy" ,libepoxy)
("libsm" ,libsm) ("pixman" ,pixman)
("libjpeg-turbo" ,libjpeg-turbo)
("libpng" ,libpng)
("libthai" ,libthai)
("graphite2" ,graphite2)
("libdatrie" ,libdatrie)
("gcc:lib" ,gcc "lib")
("polkit" ,polkit)
("zlib" ,zlib)
("dbus" ,dbus)
("at-spi2-core" ,at-spi2-core)
("libxkbcommon" ,libxkbcommon)
("wayland" ,wayland)
("util-linux:lib" ,util-linux "lib")
("libffi" ,libffi)
("pcre2" ,pcre2)
("elogind" ,elogind)
("bzip2" ,bzip2)
("expat" ,expat)
("libcap" ,libcap)
("libx11" ,libx11) ("libx11" ,libx11)
("libxcb" ,libxcb) ("libxcb" ,libxcb)
("libxdamage" ,libxdamage) ("libxdamage" ,libxdamage)
@ -116,19 +161,15 @@
("libxfixes" ,libxfixes) ("libxfixes" ,libxfixes)
("libxi" ,libxi) ("libxi" ,libxi)
("libxkbfile" ,libxkbfile) ("libxkbfile" ,libxkbfile)
("libxmu" ,libxmu)
("libxrandr" ,libxrandr) ("libxrandr" ,libxrandr)
("libxrender" ,libxrender) ("libxrender" ,libxrender)
("libxsts" ,libxtst) ("libxtst" ,libxtst)
("libxt" ,libxt) ("libxcursor" ,libxcursor)
("mesa" ,mesa) ("libxcomposite" ,libxcomposite)
("minizip" ,minizip) ("libxinerama" ,libxinerama)
("pango" ,pango) ("libxau" ,libxau)
("pangox-compat" ,pangox-compat) ("libxdmcp" ,libxdmcp)))
("polkit" ,polkit) (synopsis "Remote desktop software")
("polkit-gnome" ,polkit-gnome)
("pulseaudio" ,pulseaudio)))
(synopsis "Remote desktop software")
(supported-systems '("x86_64-linux")) (supported-systems '("x86_64-linux"))
(description "Connect to a computer remotely, be it from the other end of (description "Connect to a computer remotely, be it from the other end of
the office or halfway around the world. AnyDesk ensures secure and reliable the office or halfway around the world. AnyDesk ensures secure and reliable