nonguix-mirrors/nongnu/packages/anydesk.scm
2025-07-30 08:12:01 -05:00

178 lines
6.3 KiB
Scheme

;;; SPDX-License-Identifier: GPL-3.0-or-later
;;; Copyright © 2021 Korytov Pavel <thexcloud@gmail.com>
;;; Copyright © 2021 Jonathan Brielmaier <jonathan.brielmaier@web.de>
(define-module (nongnu packages anydesk)
#:use-module (gnu packages compression)
#:use-module (gnu packages gcc)
#:use-module (gnu packages gtk)
#:use-module (gnu packages glib)
#:use-module (gnu packages gnome)
#:use-module (gnu packages gl)
#:use-module (gnu packages fontutils)
#: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 xml)
#:use-module (gnu packages xorg)
#:use-module (gnu packages xdisorg)
#:use-module (guix download)
#:use-module (guix packages)
#:use-module (nonguix build-system binary)
#:use-module (nongnu packages anydesk)
#:use-module (nonguix licenses))
(define-public anydesk
(package
(name "anydesk")
(version "7.0.2")
(source
(origin
(method url-fetch)
(uri (string-append "https://download.anydesk.com/linux/anydesk-"
version "-amd64.tar.gz"))
(sha256
(base32
"0jmrhcic5kmhxlw7rxw0d37fp9lzzz10qs8ar0dqjgfhbynkskm8"))))
(build-system binary-build-system)
(arguments
`(#:validate-runpath? #f
#:strip-binaries? #f
#:patchelf-plan
`(("anydesk" ("atk"
"cairo"
"fontconfig"
"freetype"
"gcc:lib"
"gdk-pixbuf"
"glib"
"gtk+"
"libx11"
"libxcb"
"libxdamage"
"libxext"
"libxfixes"
"libxi"
"libxkbfile"
"libxrandr"
"libxrender"
"libxtst"
"libxcursor"
"libxcomposite"
"libxinerama"
"libxau"
"libxdmcp"
"pango"
"harfbuzz"
"libepoxy"
"pixman"
"libjpeg-turbo"
"libpng"
"libthai"
"graphite2"
"libdatrie"
"polkit"
"zlib"
"dbus"
"at-spi2-core"
"libxkbcommon"
"wayland"
"util-linux:lib"
"libffi"
"pcre2"
"elogind"
"bzip2"
"expat"
"libcap")))
#:install-plan
`(("anydesk" "/bin/")
("polkit-1/com.anydesk.anydesk.policy" "/share/polkit-1/actions/")
("icons" "/share/icons/")
("anydesk.desktop" "/share/applications/")
("copyright" "/share/licenses/anydesk/"))
#:phases
(modify-phases %standard-phases
(replace 'binary-unpack
(lambda* (#:key source #:allow-other-keys)
(let* ((files (filter (lambda (f)
(not (string=? (basename f) "environment-variables")))
(find-files (getcwd))))
(binary-file (car files)))
(when (= 1 (length files))
(mkdir "binary")
(chdir "binary")
(invoke "tar" "xvf" binary-file)
(chdir (string-append "anydesk-" ,(package-version this-package)))))))
(add-after 'install 'fix-desktop-entry
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(desktop-file (string-append out "/share/applications/anydesk.desktop")))
(substitute* desktop-file
(("^Exec=anydesk") (string-append "Exec=env GDK_BACKEND=x11 " out "/bin/anydesk"))
(("^Icon=anydesk") "Icon=anydesk"))
#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
`(("atk" ,atk)
("cairo" ,cairo)
("fontconfig" ,fontconfig)
("freetype" ,freetype)
("gdk-pixbuf" ,gdk-pixbuf)
("glib" ,glib)
("gtk+" ,gtk+)
("pango" ,pango)
("harfbuzz" ,harfbuzz)
("libepoxy" ,libepoxy)
("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)
("libxcb" ,libxcb)
("libxdamage" ,libxdamage)
("libxext" ,libxext)
("libxfixes" ,libxfixes)
("libxi" ,libxi)
("libxkbfile" ,libxkbfile)
("libxrandr" ,libxrandr)
("libxrender" ,libxrender)
("libxtst" ,libxtst)
("libxcursor" ,libxcursor)
("libxcomposite" ,libxcomposite)
("libxinerama" ,libxinerama)
("libxau" ,libxau)
("libxdmcp" ,libxdmcp)))
(synopsis "Remote desktop software")
(supported-systems '("x86_64-linux"))
(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
remote desktop connections for IT professionals and on-the-go individuals alike.")
(home-page "https://anydesk.com/")
(license (nonfree "https://anydesk.com/en/terms"))))