unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#48326] [PATCH 0/0]: Add remmina.
@ 2021-05-10  3:05 Raghav Gururajan via Guix-patches via
  2021-05-10  3:10 ` [bug#48326] [PATCH v1] gnu: " Raghav Gururajan via Guix-patches via
                   ` (9 more replies)
  0 siblings, 10 replies; 13+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-05-10  3:05 UTC (permalink / raw)
  To: 48326


[-- Attachment #1.1: Type: text/plain, Size: 304 bytes --]

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.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [bug#48326] [PATCH v1] gnu: Add remmina.
  2021-05-10  3:05 [bug#48326] [PATCH 0/0]: Add remmina Raghav Gururajan via Guix-patches via
@ 2021-05-10  3:10 ` Raghav Gururajan via Guix-patches via
  2021-05-10 15:06 ` [bug#48326] [PATCH v2] " Raghav Gururajan via Guix-patches via
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 13+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-05-10  3:10 UTC (permalink / raw)
  To: 48326; +Cc: Raghav Gururajan

* 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@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





^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#48326] [PATCH v2] gnu: Add remmina.
  2021-05-10  3:05 [bug#48326] [PATCH 0/0]: Add remmina Raghav Gururajan via Guix-patches via
  2021-05-10  3:10 ` [bug#48326] [PATCH v1] gnu: " Raghav Gururajan via Guix-patches via
@ 2021-05-10 15:06 ` Raghav Gururajan via Guix-patches via
  2021-05-10 17:01 ` [bug#48326] [PATCH v3] " Raghav Gururajan via Guix-patches via
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 13+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-05-10 15:06 UTC (permalink / raw)
  To: 48326; +Cc: Raghav Gururajan

* 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@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





^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#48326] [PATCH v3] gnu: Add remmina.
  2021-05-10  3:05 [bug#48326] [PATCH 0/0]: Add remmina Raghav Gururajan via Guix-patches via
  2021-05-10  3:10 ` [bug#48326] [PATCH v1] gnu: " Raghav Gururajan via Guix-patches via
  2021-05-10 15:06 ` [bug#48326] [PATCH v2] " Raghav Gururajan via Guix-patches via
@ 2021-05-10 17:01 ` Raghav Gururajan via Guix-patches via
  2021-05-10 23:33 ` [bug#48326] [PATCH v4] " Raghav Gururajan via Guix-patches via
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 13+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-05-10 17:01 UTC (permalink / raw)
  To: 48326; +Cc: Raghav Gururajan

* 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@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





^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#48326] [PATCH v4] gnu: Add remmina.
  2021-05-10  3:05 [bug#48326] [PATCH 0/0]: Add remmina Raghav Gururajan via Guix-patches via
                   ` (2 preceding siblings ...)
  2021-05-10 17:01 ` [bug#48326] [PATCH v3] " Raghav Gururajan via Guix-patches via
@ 2021-05-10 23:33 ` Raghav Gururajan via Guix-patches via
  2021-05-11  6:02   ` Leo Prikler
  2021-05-11 15:29 ` [bug#48326] [PATCH v5] " Raghav Gururajan via Guix-patches via
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 13+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-05-10 23:33 UTC (permalink / raw)
  To: 48326; +Cc: Raghav Gururajan

* 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@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@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





^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#48326] [PATCH v4] gnu: Add remmina.
  2021-05-10 23:33 ` [bug#48326] [PATCH v4] " Raghav Gururajan via Guix-patches via
@ 2021-05-11  6:02   ` Leo Prikler
  2021-05-11 15:37     ` Raghav Gururajan via Guix-patches via
  0 siblings, 1 reply; 13+ messages in thread
From: Leo Prikler @ 2021-05-11  6:02 UTC (permalink / raw)
  To: Raghav Gururajan, 48326

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@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@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+)))





^ permalink raw reply	[flat|nested] 13+ messages in thread

* [bug#48326] [PATCH v5] gnu: Add remmina.
  2021-05-10  3:05 [bug#48326] [PATCH 0/0]: Add remmina Raghav Gururajan via Guix-patches via
                   ` (3 preceding siblings ...)
  2021-05-10 23:33 ` [bug#48326] [PATCH v4] " Raghav Gururajan via Guix-patches via
@ 2021-05-11 15:29 ` Raghav Gururajan via Guix-patches via
  2021-05-11 16:12 ` [bug#48326] [PATCH v6] " Raghav Gururajan via Guix-patches via
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 13+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-05-11 15:29 UTC (permalink / raw)
  To: 48326; +Cc: Raghav Gururajan

* 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@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@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





^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#48326] [PATCH v4] gnu: Add remmina.
  2021-05-11  6:02   ` Leo Prikler
@ 2021-05-11 15:37     ` Raghav Gururajan via Guix-patches via
  0 siblings, 0 replies; 13+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-05-11 15:37 UTC (permalink / raw)
  To: Leo Prikler, 48326


[-- Attachment #1.1: Type: text/plain, Size: 1039 bytes --]

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.


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [bug#48326] [PATCH v6] gnu: Add remmina.
  2021-05-10  3:05 [bug#48326] [PATCH 0/0]: Add remmina Raghav Gururajan via Guix-patches via
                   ` (4 preceding siblings ...)
  2021-05-11 15:29 ` [bug#48326] [PATCH v5] " Raghav Gururajan via Guix-patches via
@ 2021-05-11 16:12 ` Raghav Gururajan via Guix-patches via
  2021-05-11 18:04 ` [bug#48326] [PATCH v7] " Raghav Gururajan via Guix-patches via
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 13+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-05-11 16:12 UTC (permalink / raw)
  To: 48326; +Cc: Raghav Gururajan

* 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@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





^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#48326] [PATCH v7] gnu: Add remmina.
  2021-05-10  3:05 [bug#48326] [PATCH 0/0]: Add remmina Raghav Gururajan via Guix-patches via
                   ` (5 preceding siblings ...)
  2021-05-11 16:12 ` [bug#48326] [PATCH v6] " Raghav Gururajan via Guix-patches via
@ 2021-05-11 18:04 ` Raghav Gururajan via Guix-patches via
  2021-05-11 19:54 ` [bug#48326] [PATCH v8] " Raghav Gururajan via Guix-patches via
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 13+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-05-11 18:04 UTC (permalink / raw)
  To: 48326; +Cc: Raghav Gururajan

* 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@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





^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#48326] [PATCH v8] gnu: Add remmina.
  2021-05-10  3:05 [bug#48326] [PATCH 0/0]: Add remmina Raghav Gururajan via Guix-patches via
                   ` (6 preceding siblings ...)
  2021-05-11 18:04 ` [bug#48326] [PATCH v7] " Raghav Gururajan via Guix-patches via
@ 2021-05-11 19:54 ` Raghav Gururajan via Guix-patches via
  2021-05-11 20:04 ` [bug#48326] [PATCH v9] " Raghav Gururajan via Guix-patches via
  2021-05-11 22:33 ` bug#48326: (no subject) Raghav Gururajan via Guix-patches via
  9 siblings, 0 replies; 13+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-05-11 19:54 UTC (permalink / raw)
  To: 48326; +Cc: Raghav Gururajan

* 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





^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [bug#48326] [PATCH v9] gnu: Add remmina.
  2021-05-10  3:05 [bug#48326] [PATCH 0/0]: Add remmina Raghav Gururajan via Guix-patches via
                   ` (7 preceding siblings ...)
  2021-05-11 19:54 ` [bug#48326] [PATCH v8] " Raghav Gururajan via Guix-patches via
@ 2021-05-11 20:04 ` Raghav Gururajan via Guix-patches via
  2021-05-11 22:33 ` bug#48326: (no subject) Raghav Gururajan via Guix-patches via
  9 siblings, 0 replies; 13+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-05-11 20:04 UTC (permalink / raw)
  To: 48326; +Cc: Raghav Gururajan

* 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





^ permalink raw reply related	[flat|nested] 13+ messages in thread

* bug#48326: (no subject)
  2021-05-10  3:05 [bug#48326] [PATCH 0/0]: Add remmina Raghav Gururajan via Guix-patches via
                   ` (8 preceding siblings ...)
  2021-05-11 20:04 ` [bug#48326] [PATCH v9] " Raghav Gururajan via Guix-patches via
@ 2021-05-11 22:33 ` Raghav Gururajan via Guix-patches via
  9 siblings, 0 replies; 13+ messages in thread
From: Raghav Gururajan via Guix-patches via @ 2021-05-11 22:33 UTC (permalink / raw)
  To: 48326-done


[-- Attachment #1.1: Type: text/plain, Size: 54 bytes --]

pushed as c80627731bc100baa4b6c5d265df5465cee9498e


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2021-05-11 22:34 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-05-10  3:05 [bug#48326] [PATCH 0/0]: Add remmina Raghav Gururajan via Guix-patches via
2021-05-10  3:10 ` [bug#48326] [PATCH v1] gnu: " Raghav Gururajan via Guix-patches via
2021-05-10 15:06 ` [bug#48326] [PATCH v2] " Raghav Gururajan via Guix-patches via
2021-05-10 17:01 ` [bug#48326] [PATCH v3] " Raghav Gururajan via Guix-patches via
2021-05-10 23:33 ` [bug#48326] [PATCH v4] " Raghav Gururajan via Guix-patches via
2021-05-11  6:02   ` Leo Prikler
2021-05-11 15:37     ` Raghav Gururajan via Guix-patches via
2021-05-11 15:29 ` [bug#48326] [PATCH v5] " Raghav Gururajan via Guix-patches via
2021-05-11 16:12 ` [bug#48326] [PATCH v6] " Raghav Gururajan via Guix-patches via
2021-05-11 18:04 ` [bug#48326] [PATCH v7] " Raghav Gururajan via Guix-patches via
2021-05-11 19:54 ` [bug#48326] [PATCH v8] " Raghav Gururajan via Guix-patches via
2021-05-11 20:04 ` [bug#48326] [PATCH v9] " Raghav Gururajan via Guix-patches via
2021-05-11 22:33 ` bug#48326: (no subject) Raghav Gururajan via Guix-patches via

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).