From patchwork Tue May 11 16:12:47 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Raghav Gururajan X-Patchwork-Id: 29249 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 958F927BC82; Tue, 11 May 2021 17:13:30 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, MAILING_LIST_MULTI,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS, T_DKIM_INVALID,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id EA3E327BC81 for ; Tue, 11 May 2021 17:13:29 +0100 (BST) Received: from localhost ([::1]:44640 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lgV0j-00012u-3V for patchwork@mira.cbaines.net; Tue, 11 May 2021 12:13:29 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:43422) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lgV0I-0000bh-AO for guix-patches@gnu.org; Tue, 11 May 2021 12:13:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:53874) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lgV0I-0001NR-07 for guix-patches@gnu.org; Tue, 11 May 2021 12:13:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lgV0H-000351-Pf for guix-patches@gnu.org; Tue, 11 May 2021 12:13:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#48326] [PATCH v6] gnu: Add remmina. References: <70f225a0-3e3d-062c-510d-83c98cad7521@raghavgururajan.name> In-Reply-To: <70f225a0-3e3d-062c-510d-83c98cad7521@raghavgururajan.name> Resent-From: Raghav Gururajan Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 11 May 2021 16:13:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 48326 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 48326@debbugs.gnu.org Cc: Raghav Gururajan Received: via spool by 48326-submit@debbugs.gnu.org id=B48326.162074958011832 (code B ref 48326); Tue, 11 May 2021 16:13:01 +0000 Received: (at 48326) by debbugs.gnu.org; 11 May 2021 16:13:00 +0000 Received: from localhost ([127.0.0.1]:37187 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lgV0G-00034l-6H for submit@debbugs.gnu.org; Tue, 11 May 2021 12:13:00 -0400 Received: from out2.migadu.com ([188.165.223.204]:41946) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lgV0C-00034b-In for 48326@debbugs.gnu.org; Tue, 11 May 2021 12:12:58 -0400 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raghavgururajan.name; s=key1; t=1620749575; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=toAUUPrg+2LeuPiSTa6wRWbmaatzpzCXSFTHCjg0t68=; b=Cnng3eylukZhXUPe2lUKpTdeM5/dUPOPqU1NsM3zY6G6BW40e0ucsvVw3mMwye9LMLBoOS aOHu2xEC3Zz9Afhyt0f5cQMomrJRWYlFn1fnFm3TR5YMBzbBBGuB48adEch2vupxD2xWmj wfStGmGvpOe/zbc61MOX50WdQf4TQf50dY/I4aex5IsMJl6KKrSHgt51FTXAz+x9hU6hvR f3ntWH0tpmgFpOSvlwhlG+9knBeBwC6l4EoTKWoNY5936vI7J22IPoDeXqxLNVRbc3yR/q HKarTSJUVMPZJCZ2CHWRN0VERUq7HK9uAO/RZxlT1DpnTwH1i/x1chQAWdZvcg== Date: Tue, 11 May 2021 12:12:47 -0400 Message-Id: <20210511161247.20752-1-rg@raghavgururajan.name> MIME-Version: 1.0 X-Migadu-Flow: FLOW_OUT X-Migadu-Auth-User: rg@raghavgururajan.name X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" Reply-to: Raghav Gururajan X-ACL-Warn: , Raghav Gururajan via Guix-patches X-Patchwork-Original-From: Raghav Gururajan via Guix-patches via From: Raghav Gururajan X-getmail-retrieved-from-mailbox: Patches * gnu/packages/vnc.scm (remmina): New variable. * gnu/packages/patches/remmina-plugin-path.patch: New file. * gnu/local.mk (dist_path_DATA): Add it. --- gnu/local.mk | 1 + .../patches/remmina-plugin-path.patch | 79 +++++++++++ gnu/packages/vnc.scm | 126 ++++++++++++++++++ 3 files changed, 206 insertions(+) create mode 100644 gnu/packages/patches/remmina-plugin-path.patch diff --git a/gnu/local.mk b/gnu/local.mk index c4bd88714c..5dd39924ee 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1644,6 +1644,7 @@ dist_patch_DATA = \ %D%/packages/patches/rct-add-missing-headers.patch \ %D%/packages/patches/readline-link-ncurses.patch \ %D%/packages/patches/readline-6.2-CVE-2014-2524.patch \ + %D%/packages/patches/remmina-plugin-path.patch \ %D%/packages/patches/renpy-use-system-fribidi.patch \ %D%/packages/patches/reposurgeon-add-missing-docbook-files.patch \ %D%/packages/patches/r-httpuv-1.5.5-unvendor-libuv.patch \ diff --git a/gnu/packages/patches/remmina-plugin-path.patch b/gnu/packages/patches/remmina-plugin-path.patch new file mode 100644 index 0000000000..ce382be57a --- /dev/null +++ b/gnu/packages/patches/remmina-plugin-path.patch @@ -0,0 +1,79 @@ +From e6e3c454e380bc1e55a719907df43f73f491fca2 Mon Sep 17 00:00:00 2001 +From: Raghav Gururajan +Date: Mon, 10 May 2021 18:21:02 -0400 +Subject: [PATCH] [PATCH]: Change path variable for loading plugins. + +Remmina is coded to load plugins from path (REMMINA_RUNTIME_PLUGINDIR) +provided during compile-time. This causes cycle between outputs 'out' +and 'plugins'. Therefore, code it to load plugins from path +(REMMINA_PLUGIN_PATH) provided during run-time. +--- + CMakeLists.txt | 3 --- + config.h.in | 1 - + src/remmina_plugin_manager.c | 10 ++++++---- + 3 files changed, 6 insertions(+), 8 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 17a58b04..acbbe440 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -313,9 +313,6 @@ if(NOT REMMINA_LOCALEDIR) + endif() + if(NOT REMMINA_PLUGINDIR) + set(REMMINA_PLUGINDIR "${CMAKE_INSTALL_FULL_LIBDIR}/remmina/plugins") +- if(NOT REMMINA_RUNTIME_PLUGINDIR) +- set(REMMINA_RUNTIME_PLUGINDIR "${REMMINA_PLUGINDIR}") +- endif() + endif() + if(NOT REMMINA_UIDIR) + set(REMMINA_UIDIR "${REMMINA_DATADIR}/remmina/ui") +diff --git a/config.h.in b/config.h.in +index e59bf78a..8e8da940 100644 +--- a/config.h.in ++++ b/config.h.in +@@ -22,7 +22,6 @@ + + #define REMMINA_RUNTIME_DATADIR "${REMMINA_RUNTIME_DATADIR}" + #define REMMINA_RUNTIME_LOCALEDIR "${REMMINA_RUNTIME_LOCALEDIR}" +-#define REMMINA_RUNTIME_PLUGINDIR "${REMMINA_RUNTIME_PLUGINDIR}" + #define REMMINA_RUNTIME_UIDIR "${REMMINA_RUNTIME_UIDIR}" + #define REMMINA_RUNTIME_THEMEDIR "${REMMINA_RUNTIME_THEMEDIR}" + #define REMMINA_RUNTIME_EXTERNAL_TOOLS_DIR "${REMMINA_RUNTIME_EXTERNAL_TOOLS_DIR}" +diff --git a/src/remmina_plugin_manager.c b/src/remmina_plugin_manager.c +index a1b713a8..74e2c0f0 100644 +--- a/src/remmina_plugin_manager.c ++++ b/src/remmina_plugin_manager.c +@@ -294,7 +294,7 @@ void remmina_plugin_manager_init() + { + TRACE_CALL(__func__); + GDir *dir; +- const gchar *name, *ptr; ++ const gchar *remmina_plugin_path, *name, *ptr; + gchar *fullpath; + RemminaPlugin *plugin; + RemminaSecretPlugin *sp; +@@ -312,8 +312,10 @@ void remmina_plugin_manager_init() + return; + } + +- g_print("Load modules from %s\n", REMMINA_RUNTIME_PLUGINDIR); +- dir = g_dir_open(REMMINA_RUNTIME_PLUGINDIR, 0, NULL); ++ remmina_plugin_path = g_getenv("REMMINA_PLUGIN_PATH"); ++ ++ g_print("Load modules from %s\n", remmina_plugin_path); ++ dir = g_dir_open(remmina_plugin_path, 0, NULL); + + if (dir == NULL) + return; +@@ -323,7 +325,7 @@ void remmina_plugin_manager_init() + ptr++; + if (!remmina_plugin_manager_loader_supported(ptr)) + continue; +- fullpath = g_strdup_printf(REMMINA_RUNTIME_PLUGINDIR "/%s", name); ++ fullpath = g_strconcat(remmina_plugin_path, "/", name); + remmina_plugin_manager_load_plugin(fullpath); + g_free(fullpath); + } +-- +2.31.1 + diff --git a/gnu/packages/vnc.scm b/gnu/packages/vnc.scm index b8979b2921..93174fc9fc 100644 --- a/gnu/packages/vnc.scm +++ b/gnu/packages/vnc.scm @@ -29,22 +29,148 @@ #:use-module (guix utils) #:use-module (gnu packages) #:use-module (gnu packages autotools) + #:use-module (gnu packages avahi) #:use-module (gnu packages base) #:use-module (gnu packages cmake) #:use-module (gnu packages commencement) #:use-module (gnu packages compression) + #:use-module (gnu packages crypto) + #:use-module (gnu packages cups) #:use-module (gnu packages fltk) + #: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 image) #:use-module (gnu packages linux) + #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages rdesktop) #:use-module (gnu packages sdl) + #:use-module (gnu packages spice) + #:use-module (gnu packages ssh) #:use-module (gnu packages tls) + #:use-module (gnu packages video) + #:use-module (gnu packages webkit) #:use-module (gnu packages xdisorg) #: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+))) + (define-public tigervnc-client (package (name "tigervnc-client")