Accepting request 1096194 from GNOME:Factory
Forwarded request #1096132 from iznogood New stable rel OBS-URL: https://build.opensuse.org/request/show/1096194 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gvfs?expand=0&rev=185
This commit is contained in:
commit
4326733ada
@ -1,55 +0,0 @@
|
|||||||
From 41862c0179f834d8bc3bd84ce78ee495050f2676 Mon Sep 17 00:00:00 2001
|
|
||||||
From: rong wang <wangrong@uniontech.com>
|
|
||||||
Date: Thu, 23 Mar 2023 10:26:24 +0800
|
|
||||||
Subject: [PATCH] trash: Sync trash dir items when files change
|
|
||||||
|
|
||||||
In the case of an application monitoring the trash can, delete a file
|
|
||||||
on the mounted device to the trash can, and then unmount the device.
|
|
||||||
At this time, if you check the status of the trash can, you will find
|
|
||||||
that the number of files queried is inconsistent with the number of
|
|
||||||
files obtained through the enumeration job. This is because the number
|
|
||||||
of files queried includes some files that do not exist when the device
|
|
||||||
is unmounted. The solution is to synchronize the status of the trash
|
|
||||||
can in time to ensure that the trash can does not record files that do
|
|
||||||
not exist.
|
|
||||||
---
|
|
||||||
daemon/trashlib/trashdir.c | 21 +++++++++++++++++++--
|
|
||||||
1 file changed, 19 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/daemon/trashlib/trashdir.c b/daemon/trashlib/trashdir.c
|
|
||||||
index c470d3bdf..0d7d2b1be 100644
|
|
||||||
--- a/daemon/trashlib/trashdir.c
|
|
||||||
+++ b/daemon/trashlib/trashdir.c
|
|
||||||
@@ -163,10 +163,27 @@ trash_dir_changed (GFileMonitor *monitor,
|
|
||||||
TrashDir *dir = user_data;
|
|
||||||
|
|
||||||
if (event_type == G_FILE_MONITOR_EVENT_CREATED)
|
|
||||||
- trash_root_add_item (dir->root, file, dir->topdir, dir->is_homedir);
|
|
||||||
+ {
|
|
||||||
+ dir->items = g_slist_insert_sorted (dir->items,
|
|
||||||
+ g_object_ref (file),
|
|
||||||
+ (GCompareFunc) compare_basename);
|
|
||||||
+ trash_root_add_item (dir->root, file, dir->topdir, dir->is_homedir);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
else if (event_type == G_FILE_MONITOR_EVENT_DELETED)
|
|
||||||
- trash_root_remove_item (dir->root, file, dir->is_homedir);
|
|
||||||
+ {
|
|
||||||
+ GSList *node;
|
|
||||||
+
|
|
||||||
+ node = g_slist_find_custom (dir->items,
|
|
||||||
+ file,
|
|
||||||
+ (GCompareFunc) compare_basename);
|
|
||||||
+ if (node)
|
|
||||||
+ {
|
|
||||||
+ g_object_unref (node->data);
|
|
||||||
+ dir->items = g_slist_delete_link (dir->items, node);
|
|
||||||
+ }
|
|
||||||
+ trash_root_remove_item (dir->root, file, dir->is_homedir);
|
|
||||||
+ }
|
|
||||||
|
|
||||||
else if (event_type == G_FILE_MONITOR_EVENT_PRE_UNMOUNT ||
|
|
||||||
event_type == G_FILE_MONITOR_EVENT_UNMOUNTED ||
|
|
||||||
--
|
|
||||||
GitLab
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
|||||||
From 85bfb701fc95abeaa8a8ca3d9059378a9490f738 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Corey Berla <corey@berla.me>
|
|
||||||
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
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
From fc2669f63c5def1528dda2e7833db5774aa08e22 Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Ant=C3=B3nio=20Fernandes?= <antoniof@gnome.org>
|
|
||||||
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
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:ab9059a676a537edbea21388c2aafe1a7e2c8f1ac2dfdc6d64550233075457fd
|
|
||||||
size 1226728
|
|
3
gvfs-1.50.5.tar.xz
Normal file
3
gvfs-1.50.5.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b86f09b7331c8642ecebf46a3cda0692f5eb26086f132326a5483c2ebf86a4cb
|
||||||
|
size 1226548
|
20
gvfs.changes
20
gvfs.changes
@ -1,3 +1,23 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jun 30 12:49:52 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||||
|
|
||||||
|
- Update to version 1.50.5:
|
||||||
|
+ smbbrowse: Fix empty device listing after unrelated mount
|
||||||
|
failure.
|
||||||
|
+ udisks: Fix missing unmount notifications.
|
||||||
|
+ trash:
|
||||||
|
- Fix nfs4 and cifs monitoring.
|
||||||
|
- Fix wrongly reported item-count.
|
||||||
|
+ smb: Allow renaming a file to the same name with a different
|
||||||
|
case.
|
||||||
|
+ mtp: Emit delete event on device disconnection.
|
||||||
|
+ Some other fixes and improvements.
|
||||||
|
+ Updated translations.
|
||||||
|
- Drop patches fixed upstream:
|
||||||
|
+ fc2669f63c5def1528dda2e7833db5774aa08e22.patch
|
||||||
|
+ 85bfb701fc95abeaa8a8ca3d9059378a9490f738.patch
|
||||||
|
+ 41862c0179f834d8bc3bd84ce78ee495050f2676.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Sun Jun 11 20:55:10 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
Sun Jun 11 20:55:10 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||||
|
|
||||||
|
@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
%bcond_without cdda
|
%bcond_without cdda
|
||||||
Name: gvfs
|
Name: gvfs
|
||||||
Version: 1.50.4
|
Version: 1.50.5
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Virtual File System functionality for GLib
|
Summary: Virtual File System functionality for GLib
|
||||||
License: GPL-3.0-only AND LGPL-2.0-or-later
|
License: GPL-3.0-only AND LGPL-2.0-or-later
|
||||||
@ -27,13 +27,6 @@ URL: https://wiki.gnome.org/Projects/gvfs
|
|||||||
Source0: https://download.gnome.org/sources/gvfs/1.50/%{name}-%{version}.tar.xz
|
Source0: https://download.gnome.org/sources/gvfs/1.50/%{name}-%{version}.tar.xz
|
||||||
Source99: baselibs.conf
|
Source99: baselibs.conf
|
||||||
|
|
||||||
# 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).
|
### NOTE: Please, keep SLE-only patches at bottom (starting on 1000).
|
||||||
# PATCH-FEATURE-SLE gvfs-nds.patch ksamrat@novell.com -- Provides NDS browsing for nautilus
|
# PATCH-FEATURE-SLE gvfs-nds.patch ksamrat@novell.com -- Provides NDS browsing for nautilus
|
||||||
Patch1000: gvfs-nds.patch
|
Patch1000: gvfs-nds.patch
|
||||||
|
Loading…
Reference in New Issue
Block a user