[PATCH] gnu: thunar: Use glib-or-gtk-build-system.

  • Done
  • quality assurance status badge
Details
One participant
  • iyzsong
Owner
unassigned
Submitted by
iyzsong
Severity
normal
I
I
iyzsong wrote on 22 Apr 03:47 +0200
(address . guix-patches@gnu.org)(name . ???)(address . iyzsong@member.fsf.org)
6e14dd7d2612569cef62640393bc4ebbb4196f70.1713750442.git.iyzsong@member.fsf.org
From: ??? <iyzsong@member.fsf.org>

This wraps 'thunar' with GIO_EXTRA_MODULES to enable support for "Trash" and
remote file systems via GVFS.

Fixes https://issues.guix.gnu.org/55781 and https://issues.guix.gnu.org/40885 .

* gnu/packages/xfce.scm (thunar)[build-system]: Switch to glib-or-gtk-build-system.

Change-Id: Ifa4bc931272380e7c98dea40edb683da523bbaea
---
gnu/packages/xfce.scm | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

Toggle diff (17 lines)
diff --git a/gnu/packages/xfce.scm b/gnu/packages/xfce.scm
index f9d9a81169..825b175140 100644
--- a/gnu/packages/xfce.scm
+++ b/gnu/packages/xfce.scm
@@ -736,7 +736,7 @@ (define-public thunar
(sha256
(base32
"020xrwzdnk5b7cli8vmv3yn7sfq6pg7bz57m4p0xh0ln2cgqlc78"))))
- (build-system gnu-build-system)
+ (build-system glib-or-gtk-build-system)
(arguments
'(#:configure-flags '("--with-custom-thunarx-dirs-enabled")))
(native-inputs

base-commit: 9fa34ad616b94ad881b5ca48ef88bd84f877a0e9
--
2.41.0
?
(address . 70508@debbugs.gnu.org)
87o7a23ygo.fsf@envs.net
iyzsong@envs.net writes:

Toggle quote (9 lines)
> From: ??? <iyzsong@member.fsf.org>
>
> This wraps 'thunar' with GIO_EXTRA_MODULES to enable support for "Trash" and
> remote file systems via GVFS.
>
> Fixes <https://issues.guix.gnu.org/55781> and <https://issues.guix.gnu.org/40885>.
>
> * gnu/packages/xfce.scm (thunar)[build-system]: Switch to glib-or-gtk-build-system.

Well, it turns out not enough. The system must also have 'udisks-service-type'
enalbed and gvfs have to be installed for activation via dbus user services.
I
I
iyzsong wrote on 22 Apr 14:42 +0200
[PATCH] services: Add gvfs-service-type.
(address . 70508@debbugs.gnu.org)(name . ???)(address . iyzsong@member.fsf.org)
d9f2d24c28021de758b35f3115d45c9ff70ffd09.1713789696.git.iyzsong@member.fsf.org
From: ??? <iyzsong@member.fsf.org>

* gnu/services/desktop.scm (gvfs-service-type): New variable.
(gvfs-configuration, make-gvfs-configuration, gvfs-configuration?,
gvfs-package): New procedures.
(<gvfs-configuration>): New record.
* doc/guix.texi (Desktop Services): Document it.

Change-Id: I584819500e2ce7d2b14e57dac238a96e9888e75e
---
doc/guix.texi | 19 +++++++++++++++++++
gnu/services/desktop.scm | 28 ++++++++++++++++++++++++++++
2 files changed, 47 insertions(+)

Toggle diff (80 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index 65af136e61..8a31bff121 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -24942,6 +24942,25 @@ Desktop Services
@end table
@end deftp
+@defvar gvfs-service-type
+Type for the service that provides virtual file systems for GIO
+applicaitons, which enables support for @code{trash:///}, @code{ftp://},
+@code{sftp://} and many other location schemas in file managers like
+Nautilus (GNOME Files) and Thunar.
+
+The value for this service is a @code{<gvfs-configuration>} object.
+@end defvar
+
+@deftp {Data Type} gvfs-configuration
+Data type representing the configuration for @code{gvfs-service-type}.
+
+@table @asis
+@item @code{gvfs} (default: @code{gvfs}) (type: file-like)
+Package object for GVfs.
+
+@end table
+@end deftp
+
@defvar colord-service-type
This is the type of the service that runs @command{colord}, a system
service with a D-Bus
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index 02a7802d58..d0b9728d4a 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -109,6 +109,10 @@ (define-module (gnu services desktop)
udisks-service ; deprecated
udisks-service-type
+ gvfs-configuration
+ gvfs-configuration?
+ gvfs-service-type
+
colord-service-type
geoclue-application
@@ -989,6 +993,30 @@ (define-deprecated (udisks-service #:key (udisks udisks))
(service udisks-service-type
(udisks-configuration (udisks udisks))))
+
+
+;;;
+;;; GVfs virtual file system.
+;;;
+
+(define-record-type* <gvfs-configuration>
+ gvfs-configuration make-gvfs-configuration
+ gvfs-configuration?
+ (gvfs gvfs-package (default gvfs)))
+
+(define gvfs-service-type
+ (service-type (name 'gvfs)
+ (extensions
+ (list
+ (service-extension profile-service-type
+ (compose list gvfs-package))
+ ;; Required for gvfs-udisks2-volume-monitor.
+ (service-extension udisks-service-type (const #t))))
+ (description
+ "Make GVfs virtual file systems (Trash, SFTP, SMB, HTTP,
+and many other) available for GIO applications.")
+ (default-value (gvfs-configuration))))
+
;;;
;;; Elogind login and seat management service.

base-commit: af4db17122d759705f3fd0ab03ef36c76ec90338
--
2.41.0
?
(address . 70508@debbugs.gnu.org)(name . ???)(address . iyzsong@member.fsf.org)
87frvd5z05.fsf@envs.net
From Patch1:
Toggle quote (3 lines)
> * gnu/packages/xfce.scm (thunar)[build-system]: Switch to glib-or-gtk-build-system.
>

From Patch2:
Toggle quote (6 lines)
> * gnu/services/desktop.scm (gvfs-service-type): New variable.
> (gvfs-configuration, make-gvfs-configuration, gvfs-configuration?,
> gvfs-package): New procedures.
> (<gvfs-configuration>): New record.
> * doc/guix.texi (Desktop Services): Document it.

Both patches are needed technically, as GIO applications needed to be
wrapped with GIO_EXTRA_MODULES; and udisks, gvfs available as dbus
services. While it will still works with only Patch2, due to
gvfs-service-type also introduces GIO_EXTRA_MODULES via
gvfs-service-type -> udisks-service->type -> udisks -> glib dependencies
by chance, but on a foreign system or when the system side
libgvfsdbus.so is not ABI compatible with applicaiton's GLib, I guess
Patch1 could make application works as long as the GVfs dbus interface
is compatible.
?
?
??? wrote 5 days ago
(name . ???)(address . iyzsong@member.fsf.org)
87frv5c774.fsf@envs.net
??? <iyzsong@envs.net> writes:

Toggle quote (11 lines)
>>From Patch1:
>> * gnu/packages/xfce.scm (thunar)[build-system]: Switch to glib-or-gtk-build-system.
>>
>
>>From Patch2:
>> * gnu/services/desktop.scm (gvfs-service-type): New variable.
>> (gvfs-configuration, make-gvfs-configuration, gvfs-configuration?,
>> gvfs-package): New procedures.
>> (<gvfs-configuration>): New record.
>> * doc/guix.texi (Desktop Services): Document it.

Pushed to master as commits 1fbbdef3c9..3bd8d238ab, 'gvfs-service-type'
is not enabled by default due to its closure size (webkitgtk, samba, etc.)
Closed
?