Subject: [PATCH gnome-team 02/44] gnu: gvfs: Patch mount, umount and lsof commands.

From: Maxim Cournoyer <[email-masked]>
Date: Mon, 11 Nov 2024 15:16:45 +0900

* gnu/packages/gnome.scm (gvfs) [phases]: New argument.
[inputs]: Add lsof and util-linux.

Change-Id: If9c72e6de96f008be9decb4b7d89b0052c0f8f43
---
 gnu/packages/freedesktop.scm |  9 +++++++++
 gnu/packages/gnome.scm       | 37 +++++++++++++++++++++++++++---------
 2 files changed, 37 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 604205cbbe..0128922295 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -1850,6 +1850,15 @@ (define-public udisks
               (string-append "--with-udevdir=" #$output "/lib/udev"))
       #:phases
       #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-commands
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* "src/udisksstate.c"
+               (("\"umount -l")
+                (string-append "\"" (search-input-file inputs "bin/umount")
+                               " -l")))
+             (substitute* "src/udiskslinuxdrive.c"
+               (("\"eject %s")
+                (string-append "\"" (search-input-file inputs "bin/eject"))))))
           (add-before 'configure 'fix-girdir
             (lambda _
               ;; Install introspection data to its own output.
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 36a8e99b02..775c6bf1fd 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -167,6 +167,7 @@ (define-module (gnu packages gnome)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages lirc)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages lsof)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages mail)
   #:use-module (gnu packages man)
@@ -7106,14 +7107,30 @@ (define-public gvfs
                 "0cgjlxrs4qr08igqjpkhfxpzydj8m9y9n92z091knkj5170x5bbj"))))
     (build-system meson-build-system)
     (arguments
-     (list #:glib-or-gtk? #t
-           #:configure-flags
-           #~(list "-Dsystemduserunitdir=no"
-                   "-Dtmpfilesdir=no"
-                   "-Dman=true"
-                   ;; Otherwise, the RUNPATH will lack the final path component.
-                   (string-append "-Dc_link_args=-Wl,-rpath="
-                                  #$output "/lib/gvfs"))))
+     (list
+      #:glib-or-gtk? #t
+      #:configure-flags
+      #~(list "-Dsystemduserunitdir=no"
+              "-Dtmpfilesdir=no"
+              "-Dman=true"
+              ;; Otherwise, the RUNPATH will lack the final path component.
+              (string-append "-Dc_link_args=-Wl,-rpath="
+                             #$output "/lib/gvfs"))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-commands
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "monitor/udisks2/gvfsudisks2mount.c"
+                (("\"lsof -t")
+                 (string-append "\"" (search-input-file inputs "bin/lsof")
+                                " -t"))
+                (("\"umount %s")
+                 (string-append "\"" (search-input-file inputs "bin/umount")
+                                " %s")))
+              (substitute* "monitor/udisks2/gvfsudisks2volume.c"
+                (("\"mount \\\\\"%s")
+                 (string-append "\"" (search-input-file inputs "bin/mount")
+                                " \\\"%s"))))))))
     (native-inputs
      (list `(,glib "bin")               ;for glib-genmarshal, etc.
            gettext-minimal
@@ -7143,12 +7160,14 @@ (define-public gvfs
            libmtp
            libnfs
            libsecret
+           lsof
            samba
            libsoup
            libxml2
            openssh
            polkit
-           udisks))
+           udisks
+           util-linux))
     (home-page "https://wiki.gnome.org/Projects/gvfs")
     (synopsis "Userspace virtual file system for GIO")
     (description
-- 
2.46.0