Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package gvfs for openSUSE:Factory checked in 
at 2023-06-14 16:29:05
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/gvfs (Old)
 and      /work/SRC/openSUSE:Factory/.gvfs.new.15902 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "gvfs"

Wed Jun 14 16:29:05 2023 rev:184 rq:1092847 version:1.50.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/gvfs/gvfs.changes        2023-04-13 
14:10:14.952124892 +0200
+++ /work/SRC/openSUSE:Factory/.gvfs.new.15902/gvfs.changes     2023-06-14 
16:29:46.578629353 +0200
@@ -1,0 +2,9 @@
+Sun Jun 11 20:55:10 UTC 2023 - Bjørn Lie <[email protected]>
+
+- Add upstream fixes from the stable branch:
+  + fc2669f63c5def1528dda2e7833db5774aa08e22.patch: mtp: Emit
+    delete event on device when disconnected
+  + 85bfb701fc95abeaa8a8ca3d9059378a9490f738.patch: smb: Allow
+    renaming a file to the same name with a different case
+
+-------------------------------------------------------------------

New:
----
  85bfb701fc95abeaa8a8ca3d9059378a9490f738.patch
  fc2669f63c5def1528dda2e7833db5774aa08e22.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ gvfs.spec ++++++
--- /var/tmp/diff_new_pack.GCO0q4/_old  2023-06-14 16:29:47.970637909 +0200
+++ /var/tmp/diff_new_pack.GCO0q4/_new  2023-06-14 16:29:47.970637909 +0200
@@ -29,6 +29,10 @@
 
 # PATCH-FIX-UPSTREAM 41862c0179f834d8bc3bd84ce78ee495050f2676.patch -- trash: 
Sync trash dir items when files change
 Patch0:         
https://gitlab.gnome.org/GNOME/gvfs/-/commit/41862c0179f834d8bc3bd84ce78ee495050f2676.patch
+# PATCH-FIX-UPSTREAM fc2669f63c5def1528dda2e7833db5774aa08e22.patch -- mtp: 
Emit delete event on device when disconnected
+Patch1:         
https://gitlab.gnome.org/GNOME/gvfs/-/commit/fc2669f63c5def1528dda2e7833db5774aa08e22.patch
+# PATCH-FIX-UPSTREAM 85bfb701fc95abeaa8a8ca3d9059378a9490f738.patch -- smb: 
Allow renaming a file to the same name with a different case
+Patch2:         
https://gitlab.gnome.org/GNOME/gvfs/-/commit/85bfb701fc95abeaa8a8ca3d9059378a9490f738.patch
 
 ### NOTE: Please, keep SLE-only patches at bottom (starting on 1000).
 # PATCH-FEATURE-SLE gvfs-nds.patch [email protected] -- Provides NDS browsing 
for nautilus

++++++ 85bfb701fc95abeaa8a8ca3d9059378a9490f738.patch ++++++
>From 85bfb701fc95abeaa8a8ca3d9059378a9490f738 Mon Sep 17 00:00:00 2001
From: Corey Berla <[email protected]>
Date: Tue, 11 Apr 2023 16:14:15 -0700
Subject: [PATCH] smb: Allow renaming a file to the same name with a different
 case

We check to see if the desired file name already exists before doing
a renaming by stat'ing the file (to prevent smb from destroying an
existing file).  Since smb is not case sensitive, the check for an
existing file mistakenly returns true if we are only changing the
filename's case.

Add a second check to see whether we are simply changing the
case of the filename.

Fixes: https://gitlab.gnome.org/GNOME/gvfs/-/issues/672


(cherry picked from commit a845ba0220fef72815ce091b92f74767d8025541)
---
 daemon/gvfsbackendsmb.c | 31 +++++++++++++++++++++----------
 1 file changed, 21 insertions(+), 10 deletions(-)

diff --git a/daemon/gvfsbackendsmb.c b/daemon/gvfsbackendsmb.c
index d999a2a6..87cb2cae 100644
--- a/daemon/gvfsbackendsmb.c
+++ b/daemon/gvfsbackendsmb.c
@@ -1892,6 +1892,9 @@ do_set_display_name (GVfsBackend *backend,
 {
   GVfsBackendSmb *op_backend = G_VFS_BACKEND_SMB (backend);
   char *from_uri, *to_uri;
+  g_autofree char *basename = NULL;
+  g_autofree char *old_name_case = NULL;
+  g_autofree char *new_name_case = NULL;
   char *dirname, *new_path;
   int res, errsv;
   struct stat st;
@@ -1899,6 +1902,7 @@ do_set_display_name (GVfsBackend *backend,
   smbc_stat_fn smbc_stat;
 
   dirname = g_path_get_dirname (filename);
+  basename = g_path_get_basename (filename);
 
   /* TODO: display name is in utf8, atm we assume libsmb uris
      are in utf8, but this might not be true if the user changed
@@ -1910,18 +1914,25 @@ do_set_display_name (GVfsBackend *backend,
   from_uri = create_smb_uri (op_backend->server, op_backend->port, 
op_backend->share, filename);
   to_uri = create_smb_uri (op_backend->server, op_backend->port, 
op_backend->share, new_path);
   
-
-  /* We can't rely on libsmbclient reporting EEXIST, let's always stat first.
-   * https://bugzilla.gnome.org/show_bug.cgi?id=616645
+  /* If we are simply changing the case of an existing file, we don't need to
+   * worry about overwriting another file.
    */
-  smbc_stat = smbc_getFunctionStat (op_backend->smb_context);
-  res = smbc_stat (op_backend->smb_context, to_uri, &st);
-  if (res == 0)
+  old_name_case = g_utf8_casefold (basename, -1);
+  new_name_case = g_utf8_casefold (display_name, -1);
+  if (g_strcmp0 (old_name_case, new_name_case) != 0)
     {
-      g_vfs_job_failed (G_VFS_JOB (job),
-                        G_IO_ERROR, G_IO_ERROR_EXISTS,
-                        _("Can’t rename file, filename already exists"));
-      goto out;
+      /* We can't rely on libsmbclient reporting EEXIST, let's always stat 
first.
+       * https://bugzilla.gnome.org/show_bug.cgi?id=616645
+       */
+      smbc_stat = smbc_getFunctionStat (op_backend->smb_context);
+      res = smbc_stat (op_backend->smb_context, to_uri, &st);
+      if (res == 0)
+        {
+          g_vfs_job_failed (G_VFS_JOB (job),
+                            G_IO_ERROR, G_IO_ERROR_EXISTS,
+                            _("Can’t rename file, filename already exists"));
+          goto out;
+        }
     }
 
   smbc_rename = smbc_getFunctionRename (op_backend->smb_context);
-- 
GitLab


++++++ fc2669f63c5def1528dda2e7833db5774aa08e22.patch ++++++
>From fc2669f63c5def1528dda2e7833db5774aa08e22 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ant=C3=B3nio=20Fernandes?= <[email protected]>
Date: Sat, 29 Apr 2023 22:30:36 +0000
Subject: [PATCH] mtp: Emit delete event on device when disconnected

Otherwise clients won't realize the root file is gone.

Related to https://gitlab.gnome.org/GNOME/nautilus/-/issues/371
---
 daemon/gvfsbackendmtp.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/daemon/gvfsbackendmtp.c b/daemon/gvfsbackendmtp.c
index fd297be1d..0bc35b7ab 100644
--- a/daemon/gvfsbackendmtp.c
+++ b/daemon/gvfsbackendmtp.c
@@ -638,6 +638,11 @@ on_uevent (GUdevClient *client, gchar *action, GUdevDevice 
*device, gpointer use
                            (char *)path);
     }
 
+    /* Finally, emit delete event to tell the clients the device root file is 
gone. */
+    g_hash_table_foreach (op_backend->monitors,
+                          emit_delete_event,
+                          (char *)"/");
+
     op_backend->force_unmounted = TRUE;
     g_atomic_int_set (&op_backend->unmount_started, TRUE);
     g_vfs_backend_force_unmount ((GVfsBackend*)op_backend);
-- 
GitLab

Reply via email to