;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2021 Raghav Gururajan ;;; ;;; This file is part of GNU Guix. ;;; ;;; GNU Guix is free software; you can redistribute it and/or modify it ;;; under the terms of the GNU General Public License as published by ;;; the Free Software Foundation; either version 3 of the License, or (at ;;; your option) any later version. ;;; ;;; GNU Guix is distributed in the hope that it will be useful, but ;;; WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;;; GNU General Public License for more details. ;;; ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see . (define-module (gnu packages remmina) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix git-download) #:use-module (guix build utils) #:use-module (guix build-system cmake) #:use-module (guix build-system glib-or-gtk) #:use-module (gnu packages) #:use-module (gnu packages avahi) #:use-module (gnu packages crypto) #:use-module (gnu packages cups) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) #:use-module (gnu packages gnupg) #:use-module (gnu packages gtk) #:use-module (gnu packages pcre) #:use-module (gnu packages pkg-config) #:use-module (gnu packages rdesktop) #:use-module (gnu packages spice) #:use-module (gnu packages ssh) #:use-module (gnu packages tls) #:use-module (gnu packages video) #:use-module (gnu packages vnc) #:use-module (gnu packages webkit) #:use-module (gnu packages xorg)) (define-public remmina (package (name "remmina") (version "1.4.16") (source (origin (method git-fetch) (uri (git-reference (url "https://gitlab.com/Remmina/Remmina") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (patches (search-patches ;; To honor REMMINA_PLUGIN_PATH. "remmina-plugin-path.patch")) (sha256 (base32 "09sjsgvh13jnhs6mhj9icyka0ad3qlnkbzvg7djj9rajzaf1y048")))) (build-system cmake-build-system) (outputs '("out" "plugins")) (arguments `(#:tests? #f ; No target #:configure-flags (list ;; Install plugins in separate output. (string-append "-DREMMINA_PLUGINDIR=" (assoc-ref %outputs "plugins") "/lib/remmina/plugins") ;; Disable online version checking. "-DWITH_NEWS=OFF") #:imported-modules (,@%cmake-build-system-modules (guix build glib-or-gtk-build-system)) #:modules ((guix build cmake-build-system) ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:) (guix build utils)) #:phases (modify-phases %standard-phases (add-after 'install 'wrap-progs (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) (for-each (lambda (name) (let ((file (string-append out "/bin/" name)) (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) (wrap-program file `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))))) '("remmina" "remmina-file-wrapper"))) #t)) (add-after 'wrap-progs 'glib-or-gtk-compile-schemas (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas)) (add-after 'glib-or-gtk-compile-schemas 'glib-or-gtk-wrap (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))))) (native-inputs `(("gettext" ,gettext-minimal) ("glib:bin" ,glib "bin") ("gobject-introspection" ,gobject-introspection) ("gtk+:bin" ,gtk+ "bin") ("intl" ,intltool) ("pkg-config" ,pkg-config))) (inputs `(("app-indicator" ,libappindicator) ("atk" ,atk) ("avahi" ,avahi) ("cairo" ,cairo) ("cups" ,cups) ("ffmpeg" ,ffmpeg) ("freerdp" ,freerdp) ; for rdp plugin ("gcrypt" ,libgcrypt) ("gdk-pixbuf" ,gdk-pixbuf+svg) ("glib" ,glib) ("gnome-keyring" ,gnome-keyring) ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gtk+" ,gtk+) ("harfbuzz" ,harfbuzz) ("json-glib" ,json-glib) ("libsecret" ,libsecret) ; for secret plugin ("libsoup" ,libsoup) ("libssh" ,libssh) ; for ssh plugin ("libvnc" ,libvnc) ; for vnc plugin ("openssl" ,openssl) ("pango" ,pango) ("pcre" ,pcre) ("shared-mime-info" ,shared-mime-info) ("sodium" ,libsodium) ("spice-client-gtk" ,spice-gtk) ; for spice plugin ("telepathy" ,telepathy-glib) ; for telepathy plugin ("vte" ,vte) ("wayland" ,wayland) ("webkitgtk" ,webkitgtk) ; for www plugin ("x11" ,libx11) ("xext" ,libxext) ; for xdmcp plugin ("xdg-utils" ,xdg-utils) ("xkbfile" ,libxkbfile))) ; for nx plugin (propagated-inputs `(("dconf" ,dconf))) (native-search-paths (list ;; To load plugins when installed via 'plugins' output. (search-path-specification (variable "REMMINA_PLUGIN_PATH") (files (list "lib/remmina/plugins"))))) (search-paths native-search-paths) (home-page "https://remmina.org/") (synopsis "Remote Desktop Client") (description "Remmina is a client to use other desktops remotely. RDP, VNC, SPICE, NX, XDMCP, SSH and EXEC network protocols are supported.") (license license:gpl2+)))