[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

Debbugs page

I
I
iyzsong wrote on 21 Apr 18:47 -0700
(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
宋
宋文武 wrote on 21 Apr 19:47 -0700
(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 05:42 -0700
[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
宋
宋文武 wrote on 22 Apr 06:05 -0700
(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 on 28 Apr 18:02 -0700
(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
?
Your comment

This issue is archived.

To comment on this conversation send an email to 70508@patchwise.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 70508
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch