GNU bug report logs - #48326
[PATCH 0/0]: Add remmina.

Previous Next

Package: guix-patches;

Reported by: Raghav Gururajan <rg <at> raghavgururajan.name>

Date: Mon, 10 May 2021 03:07:02 UTC

Severity: normal

Tags: patch

Done: Raghav Gururajan <rg <at> raghavgururajan.name>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 48326 in the body.
You can then email your comments to 48326 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#48326; Package guix-patches. (Mon, 10 May 2021 03:07:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Raghav Gururajan <rg <at> raghavgururajan.name>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 10 May 2021 03:07:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: guix-patches <at> gnu.org
Subject: [PATCH 0/0]: Add remmina.
Date: Sun, 9 May 2021 23:05:50 -0400
[Message part 1 (text/plain, inline)]
Hello Guix,

I am opening this thread for packaging of Remmina. which is a remote 
desktop client.

This package is a candidate for the module rdesktop.scm. But if I add 
#:use-module (gnu packages vnc), it causes cyclic-dependency. So I have 
create a new module remmina.scm.

Regards,
RG.

[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#48326; Package guix-patches. (Mon, 10 May 2021 03:12:02 GMT) Full text and rfc822 format available.

Message #8 received at 48326 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 48326 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v1] gnu: Add remmina.
Date: Sun,  9 May 2021 23:10:37 -0400
* gnu/packages/remmina.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/remmina.scm (remmina): New variable.
---
 gnu/local.mk             |   1 +
 gnu/packages/remmina.scm | 146 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 147 insertions(+)
 create mode 100644 gnu/packages/remmina.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 37166bb2fc..0f3d33e1d5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -485,6 +485,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/readline.scm			\
   %D%/packages/rednotebook.scm			\
   %D%/packages/regex.scm				\
+  %D%/packages/remmina.scm                 \
   %D%/packages/robotics.scm			\
   %D%/packages/rpc.scm				\
   %D%/packages/rrdtool.scm			\
diff --git a/gnu/packages/remmina.scm b/gnu/packages/remmina.scm
new file mode 100644
index 0000000000..ccc954e27f
--- /dev/null
+++ b/gnu/packages/remmina.scm
@@ -0,0 +1,146 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+(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 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 python)
+  #: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.13")
+    (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))
+       (sha256
+        (base32 "1hc2r42hr34ksbxrybglw5caw0zjhwlybvb5c9s99dr761rmzr27"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        "-DWITH_NEWS=OFF"            ; Disable online version checking
+        "-DWITH_FREERDP3=OFF"        ; Not available in guix
+        "-DWITH_PYTHONLIBS=ON")      ; Enable python-plugins support
+       #: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"))
+                        (pythonpath (getenv "PYTHONPATH")))
+                    (wrap-program file
+                      `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path))
+                      `("PYTHONPATH" ":" prefix (,pythonpath)))))
+                '("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)
+       ("dconf" ,dconf)
+       ("ffmpeg" ,ffmpeg)
+       ("freerdp2" ,freerdp)
+       ;; ("freerdp3" ,freerdp)
+       ("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)
+       ("libsoup" ,libsoup)
+       ("libssh" ,libssh)
+       ("libvnc" ,libvnc)
+       ("openssl" ,openssl)
+       ("pango" ,pango)
+       ("pcre" ,pcre)
+       ("python" ,python)
+       ("shared-mime-info" ,shared-mime-info)
+       ("sodium" ,libsodium)
+       ("spice-client-gtk" ,spice-gtk)
+       ("telepathy" ,telepathy-glib)
+       ("vte" ,vte)
+       ("wayland" ,wayland)
+       ("webkitgtk" ,webkitgtk)
+       ("x11" ,libx11)
+       ("xext" ,libxext)
+       ("xdg-utils" ,xdg-utils)
+       ("xkbfile" ,libxkbfile)))
+    (propagated-inputs
+     `(("dconf" ,dconf)))
+    (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+)))
-- 
2.31.1





Information forwarded to guix-patches <at> gnu.org:
bug#48326; Package guix-patches. (Mon, 10 May 2021 15:07:02 GMT) Full text and rfc822 format available.

Message #11 received at 48326 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 48326 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v2] gnu: Add remmina.
Date: Mon, 10 May 2021 11:06:31 -0400
* gnu/packages/remmina.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/remmina.scm (remmina): New variable.
---
 gnu/local.mk             |   1 +
 gnu/packages/remmina.scm | 139 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 140 insertions(+)
 create mode 100644 gnu/packages/remmina.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 37166bb2fc..0f3d33e1d5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -485,6 +485,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/readline.scm			\
   %D%/packages/rednotebook.scm			\
   %D%/packages/regex.scm				\
+  %D%/packages/remmina.scm                 \
   %D%/packages/robotics.scm			\
   %D%/packages/rpc.scm				\
   %D%/packages/rrdtool.scm			\
diff --git a/gnu/packages/remmina.scm b/gnu/packages/remmina.scm
new file mode 100644
index 0000000000..5a438c8b30
--- /dev/null
+++ b/gnu/packages/remmina.scm
@@ -0,0 +1,139 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+(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 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.13")
+    (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))
+       (sha256
+        (base32 "1hc2r42hr34ksbxrybglw5caw0zjhwlybvb5c9s99dr761rmzr27"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        "-DWITH_NEWS=OFF")           ; Disable online version checking
+       #: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)
+       ("dconf" ,dconf)
+       ("ffmpeg" ,ffmpeg)
+       ("freerdp" ,freerdp)
+       ("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)
+       ("libsoup" ,libsoup)
+       ("libssh" ,libssh)
+       ("libvnc" ,libvnc)
+       ("openssl" ,openssl)
+       ("pango" ,pango)
+       ("pcre" ,pcre)
+       ("shared-mime-info" ,shared-mime-info)
+       ("sodium" ,libsodium)
+       ("spice-client-gtk" ,spice-gtk)
+       ("telepathy" ,telepathy-glib)
+       ("vte" ,vte)
+       ("wayland" ,wayland)
+       ("webkitgtk" ,webkitgtk)
+       ("x11" ,libx11)
+       ("xext" ,libxext)
+       ("xdg-utils" ,xdg-utils)
+       ("xkbfile" ,libxkbfile)))
+    (propagated-inputs
+     `(("dconf" ,dconf)))
+    (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+)))
-- 
2.31.1





Information forwarded to guix-patches <at> gnu.org:
bug#48326; Package guix-patches. (Mon, 10 May 2021 17:02:01 GMT) Full text and rfc822 format available.

Message #14 received at 48326 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 48326 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v3] gnu: Add remmina.
Date: Mon, 10 May 2021 13:01:10 -0400
* gnu/packages/remmina.scm: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add it.
* gnu/packages/remmina.scm (remmina): New variable.
---
 gnu/local.mk             |   1 +
 gnu/packages/remmina.scm | 159 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 160 insertions(+)
 create mode 100644 gnu/packages/remmina.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 37166bb2fc..0f3d33e1d5 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -485,6 +485,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/readline.scm			\
   %D%/packages/rednotebook.scm			\
   %D%/packages/regex.scm				\
+  %D%/packages/remmina.scm                 \
   %D%/packages/robotics.scm			\
   %D%/packages/rpc.scm				\
   %D%/packages/rrdtool.scm			\
diff --git a/gnu/packages/remmina.scm b/gnu/packages/remmina.scm
new file mode 100644
index 0000000000..8309cb88af
--- /dev/null
+++ b/gnu/packages/remmina.scm
@@ -0,0 +1,159 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+(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 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.13")
+    (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))
+       (sha256
+        (base32 "1hc2r42hr34ksbxrybglw5caw0zjhwlybvb5c9s99dr761rmzr27"))))
+    (build-system cmake-build-system)
+    (outputs '("out" "plugins"))
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        "-DWITH_NEWS=OFF")           ; Disable online version checking
+       #: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 'unpack 'patch
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "CMakeLists.txt"
+               ;; To install plugins in separate output.
+               (("\\$\\{CMAKE_INSTALL_FULL_LIBDIR\\}/remmina/plugins")
+                (string-append (assoc-ref outputs "plugins")
+                               "/lib/remmina/plugins"))
+               ;; To prevent REMMINA_RUNTIME_PLUGINDIR set as RPATH.
+               ;; Else, it causes cycle between outputs.
+               (("[ \t]*set.*REMMINA_RUNTIME_PLUGINDIR.*$")
+                ""))))
+         (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 'plugin' output.
+      (search-path-specification
+       (variable "REMMINA_RUNTIME_PLUGINDIR")
+       (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+)))
-- 
2.31.1





Information forwarded to guix-patches <at> gnu.org:
bug#48326; Package guix-patches. (Mon, 10 May 2021 23:34:02 GMT) Full text and rfc822 format available.

Message #17 received at 48326 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 48326 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v4] gnu: Add remmina.
Date: Mon, 10 May 2021 19:33:22 -0400
* gnu/packages/remmina.scm: New file.
* gnu/packages/patches/remmina-plugin-path.patch: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES,dist_path_DATA): Adjust.
* gnu/packages/remmina.scm (remmina): New variable.
---
 gnu/local.mk                                  |   2 +
 .../patches/remmina-plugin-path.patch         |  79 +++++++++
 gnu/packages/remmina.scm                      | 158 ++++++++++++++++++
 3 files changed, 239 insertions(+)
 create mode 100644 gnu/packages/patches/remmina-plugin-path.patch
 create mode 100644 gnu/packages/remmina.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 37166bb2fc..3608f6e798 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -485,6 +485,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/readline.scm			\
   %D%/packages/rednotebook.scm			\
   %D%/packages/regex.scm				\
+  %D%/packages/remmina.scm                 \
   %D%/packages/robotics.scm			\
   %D%/packages/rpc.scm				\
   %D%/packages/rrdtool.scm			\
@@ -1643,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 <rg <at> raghavgururajan.name>
+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/remmina.scm b/gnu/packages/remmina.scm
new file mode 100644
index 0000000000..9611ff2513
--- /dev/null
+++ b/gnu/packages/remmina.scm
@@ -0,0 +1,158 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+(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.13")
+    (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 "1hc2r42hr34ksbxrybglw5caw0zjhwlybvb5c9s99dr761rmzr27"))))
+    (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+)))
-- 
2.31.1





Information forwarded to guix-patches <at> gnu.org:
bug#48326; Package guix-patches. (Tue, 11 May 2021 06:04:02 GMT) Full text and rfc822 format available.

Message #20 received at 48326 <at> debbugs.gnu.org (full text, mbox):

From: Leo Prikler <leo.prikler <at> student.tugraz.at>
To: Raghav Gururajan <rg <at> raghavgururajan.name>, 48326 <at> debbugs.gnu.org
Subject: Re: [PATCH v4] gnu: Add remmina.
Date: Tue, 11 May 2021 08:02:49 +0200
Am Montag, den 10.05.2021, 19:33 -0400 schrieb Raghav Gururajan:
> * gnu/packages/remmina.scm: New file.
I don't think an extra file is needed here.  Remmina can fit quite well
to the other VNC clients.
> * gnu/packages/patches/remmina-plugin-path.patch: New file.
> * gnu/local.mk (GNU_SYSTEM_MODULES,dist_path_DATA): Adjust.
Adjust how?
> * gnu/packages/remmina.scm (remmina): New variable.
You already have remmina.scm in your ChangeLog.
> ---
>  gnu/local.mk                                  |   2 +
>  .../patches/remmina-plugin-path.patch         |  79 +++++++++
>  gnu/packages/remmina.scm                      | 158
> ++++++++++++++++++
>  3 files changed, 239 insertions(+)
>  create mode 100644 gnu/packages/patches/remmina-plugin-path.patch
>  create mode 100644 gnu/packages/remmina.scm
> 
> diff --git a/gnu/local.mk b/gnu/local.mk
> index 37166bb2fc..3608f6e798 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -485,6 +485,7 @@ GNU_SYSTEM_MODULES =				
> \
>    %D%/packages/readline.scm			\
>    %D%/packages/rednotebook.scm			\
>    %D%/packages/regex.scm				\
> +  %D%/packages/remmina.scm                 \
>    %D%/packages/robotics.scm			\
>    %D%/packages/rpc.scm				\
>    %D%/packages/rrdtool.scm			\
> @@ -1643,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 <rg <at> raghavgururajan.name>
> +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_RUNT
> IME_DATADIR}"
> + #define REMMINA_RUNTIME_LOCALEDIR		"${REMMINA_RUNTIME_LOCA
> LEDIR}"
> +-#define REMMINA_RUNTIME_PLUGINDIR		"${REMMINA_RUNTIME_PLUG
> INDIR}"
> + #define REMMINA_RUNTIME_UIDIR			"${REMMINA_RUNT
> IME_UIDIR}"
> + #define REMMINA_RUNTIME_THEMEDIR		"${REMMINA_RUNTIME_THEM
> EDIR}"
> + #define REMMINA_RUNTIME_EXTERNAL_TOOLS_DIR	"${REMMINA_RUNTIME_EXTE
> RNAL_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);
I don't think this does, what you think it does.
"REMMINA_PLUGIN_PATH" is here interpreted as a single directory; usage
as a PATH variable is therefore dangerous.  (Consider a setting, where
REMINA_PLUGIN_PATH="guix-profile-a/...:guix-profile-b/...")

Also consider packages like Emacs, where the inclusion of their own
outputs in their path variables was dangerous.  (Although in this case,
it's probably sane, since you're using an extra output, but do verify
Remmina to work as intended without it.)
> + 
> + 	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/remmina.scm b/gnu/packages/remmina.scm
> new file mode 100644
> index 0000000000..9611ff2513
> --- /dev/null
> +++ b/gnu/packages/remmina.scm
> @@ -0,0 +1,158 @@
> +;;; GNU Guix --- Functional package management for GNU
> +;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
> +;;;
> +;;; 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 <http://www.gnu.org/licenses/>
> ;.
> +
> +(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.13")
> +    (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
> "1hc2r42hr34ksbxrybglw5caw0zjhwlybvb5c9s99dr761rmzr27"))))
> +    (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+)))





Information forwarded to guix-patches <at> gnu.org:
bug#48326; Package guix-patches. (Tue, 11 May 2021 15:30:01 GMT) Full text and rfc822 format available.

Message #23 received at 48326 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 48326 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v5] gnu: Add remmina.
Date: Tue, 11 May 2021 11:29:37 -0400
* gnu/packages/remmina.scm: New file.
(remmina): New variable.
* gnu/packages/patches/remmina-plugin-path.patch: New file.
* gnu/local.mk (GNU_SYSTEM_MODULES,dist_path_DATA): Add them.
---
 gnu/local.mk                                  |   2 +
 .../patches/remmina-plugin-path.patch         |  79 +++++++++
 gnu/packages/remmina.scm                      | 158 ++++++++++++++++++
 3 files changed, 239 insertions(+)
 create mode 100644 gnu/packages/patches/remmina-plugin-path.patch
 create mode 100644 gnu/packages/remmina.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index c4bd88714c..c30de41d54 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -485,6 +485,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/readline.scm			\
   %D%/packages/rednotebook.scm			\
   %D%/packages/regex.scm				\
+  %D%/packages/remmina.scm                 \
   %D%/packages/robotics.scm			\
   %D%/packages/rpc.scm				\
   %D%/packages/rrdtool.scm			\
@@ -1644,6 +1645,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 <rg <at> raghavgururajan.name>
+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/remmina.scm b/gnu/packages/remmina.scm
new file mode 100644
index 0000000000..6b8b80653e
--- /dev/null
+++ b/gnu/packages/remmina.scm
@@ -0,0 +1,158 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2021 Raghav Gururajan <rg <at> raghavgururajan.name>
+;;;
+;;; 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 <http://www.gnu.org/licenses/>.
+
+(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+)))
-- 
2.31.1





Information forwarded to guix-patches <at> gnu.org:
bug#48326; Package guix-patches. (Tue, 11 May 2021 15:38:01 GMT) Full text and rfc822 format available.

Message #26 received at 48326 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: Leo Prikler <leo.prikler <at> student.tugraz.at>, 48326 <at> debbugs.gnu.org
Subject: Re: [PATCH v4] gnu: Add remmina.
Date: Tue, 11 May 2021 11:37:07 -0400
[Message part 1 (text/plain, inline)]
Hi Leo,

> I don't think an extra file is needed here.  Remmina can fit quite well
> to the other VNC clients.

True. But adding it in rdesktop.scm or vnc.scm causes cyclic-dependency, 
when I add #:use-module (gnu packages vnc) or #:use-module (gnu packages 
rdesktop); respectively.

> Adjust how? > You already have remmina.scm in your ChangeLog.

Corrected them in v5.

> I don't think this does, what you think it does.
> "REMMINA_PLUGIN_PATH" is here interpreted as a single directory; usage
> as a PATH variable is therefore dangerous.  (Consider a setting, where
> REMINA_PLUGIN_PATH="guix-profile-a/...:guix-profile-b/...")
> 
> Also consider packages like Emacs, where the inclusion of their own
> outputs in their path variables was dangerous.  (Although in this case,
> it's probably sane, since you're using an extra output, but do verify
> Remmina to work as intended without it.)

Thanks for the pointers. I tried running remmina without installing its 
other output, no hiccups.

Regards,
RG.

[OpenPGP_signature (application/pgp-signature, attachment)]

Information forwarded to guix-patches <at> gnu.org:
bug#48326; Package guix-patches. (Tue, 11 May 2021 16:13:01 GMT) Full text and rfc822 format available.

Message #29 received at 48326 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 48326 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v6] gnu: Add remmina.
Date: Tue, 11 May 2021 12:12:47 -0400
* 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 <rg <at> raghavgururajan.name>
+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")
-- 
2.31.1





Information forwarded to guix-patches <at> gnu.org:
bug#48326; Package guix-patches. (Tue, 11 May 2021 18:05:01 GMT) Full text and rfc822 format available.

Message #32 received at 48326 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 48326 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v7] gnu: Add remmina.
Date: Tue, 11 May 2021 14:04:34 -0400
* 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                          | 127 ++++++++++++++++++
 3 files changed, 207 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 <rg <at> raghavgururajan.name>
+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..8530ee97ce 100644
--- a/gnu/packages/vnc.scm
+++ b/gnu/packages/vnc.scm
@@ -29,22 +29,149 @@
   #: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")
+       (separator #f)                   ; single entry
+       (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")
-- 
2.31.1





Information forwarded to guix-patches <at> gnu.org:
bug#48326; Package guix-patches. (Tue, 11 May 2021 19:55:01 GMT) Full text and rfc822 format available.

Message #35 received at 48326 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 48326 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v8] gnu: Add remmina.
Date: Tue, 11 May 2021 15:54:25 -0400
* gnu/packages/vnc.scm (remmina): New variable.
---
 gnu/packages/vnc.scm | 108 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 108 insertions(+)

diff --git a/gnu/packages/vnc.scm b/gnu/packages/vnc.scm
index b8979b2921..82640f98f6 100644
--- a/gnu/packages/vnc.scm
+++ b/gnu/packages/vnc.scm
@@ -29,22 +29,130 @@
   #: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))
+       (sha256
+        (base32 "09sjsgvh13jnhs6mhj9icyka0ad3qlnkbzvg7djj9rajzaf1y048"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        ;; Disable online version checking.
+        "-DWITH_NEWS=OFF")
+       #:imported-modules
+       ((guix build glib-or-gtk-build-system)
+        ,@%cmake-build-system-modules)
+       #:modules
+       (((guix build glib-or-gtk-build-system)
+         #:prefix glib-or-gtk:)
+        (guix build cmake-build-system)
+        (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)))
+    (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")
-- 
2.31.1





Information forwarded to guix-patches <at> gnu.org:
bug#48326; Package guix-patches. (Tue, 11 May 2021 20:06:02 GMT) Full text and rfc822 format available.

Message #38 received at 48326 <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 48326 <at> debbugs.gnu.org
Cc: Raghav Gururajan <rg <at> raghavgururajan.name>
Subject: [PATCH v9] gnu: Add remmina.
Date: Tue, 11 May 2021 16:04:58 -0400
* gnu/packages/vnc.scm (remmina): New variable.
---
 gnu/packages/vnc.scm | 108 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 108 insertions(+)

diff --git a/gnu/packages/vnc.scm b/gnu/packages/vnc.scm
index b8979b2921..2fd1f7a9db 100644
--- a/gnu/packages/vnc.scm
+++ b/gnu/packages/vnc.scm
@@ -29,22 +29,130 @@
   #: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))
+       (sha256
+        (base32 "09sjsgvh13jnhs6mhj9icyka0ad3qlnkbzvg7djj9rajzaf1y048"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:tests? #f                      ; No target
+       #:configure-flags
+       (list
+        ;; Disable online version checking.
+        "-DWITH_NEWS=OFF")
+       #:imported-modules
+       ((guix build glib-or-gtk-build-system)
+        ,@%cmake-build-system-modules)
+       #:modules
+       (((guix build glib-or-gtk-build-system)
+         #:prefix glib-or-gtk:)
+        (guix build cmake-build-system)
+        (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)
+       ("pcre2" ,pcre2)                 ; for exec plugin
+       ("shared-mime-info" ,shared-mime-info)
+       ("sodium" ,libsodium)
+       ("spice-client-gtk" ,spice-gtk)  ; for spice plugin
+       ("telepathy" ,telepathy-glib)
+       ("vte" ,vte)                     ; for st plugin
+       ("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)))
+    (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")
-- 
2.31.1





Reply sent to Raghav Gururajan <rg <at> raghavgururajan.name>:
You have taken responsibility. (Tue, 11 May 2021 22:34:02 GMT) Full text and rfc822 format available.

Notification sent to Raghav Gururajan <rg <at> raghavgururajan.name>:
bug acknowledged by developer. (Tue, 11 May 2021 22:34:02 GMT) Full text and rfc822 format available.

Message #43 received at 48326-done <at> debbugs.gnu.org (full text, mbox):

From: Raghav Gururajan <rg <at> raghavgururajan.name>
To: 48326-done <at> debbugs.gnu.org
Date: Tue, 11 May 2021 18:33:34 -0400
[Message part 1 (text/plain, inline)]
pushed as c80627731bc100baa4b6c5d265df5465cee9498e

[OpenPGP_signature (application/pgp-signature, attachment)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 09 Jun 2021 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 2 years and 320 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.