[packages/gvfs] up to 1.58.0

atler atler at pld-linux.org
Sun Nov 30 01:32:57 CET 2025


commit d007d20f6c15eaccb22205d99af1b4cc2e896834
Author: Jan Palus <atler at pld-linux.org>
Date:   Sun Nov 30 01:32:22 2025 +0100

    up to 1.58.0

 gvfs-libnfs.patch | 530 ------------------------------------------------------
 gvfs.spec         |  33 ++--
 2 files changed, 16 insertions(+), 547 deletions(-)
---
diff --git a/gvfs.spec b/gvfs.spec
index 633ef4f..1c7a4e9 100644
--- a/gvfs.spec
+++ b/gvfs.spec
@@ -39,13 +39,12 @@
 Summary:	gvfs - userspace virtual filesystem
 Summary(pl.UTF-8):	gvfs - wirtualny system plików w przestrzeni użytkownika
 Name:		gvfs
-Version:	1.56.1
-Release:	7
+Version:	1.58.0
+Release:	1
 License:	LGPL v2+
 Group:		Libraries
-Source0:	https://download.gnome.org/sources/gvfs/1.56/%{name}-%{version}.tar.xz
-# Source0-md5:	5ba12cd02b17c058aa71adc39c5eb6cf
-Patch0:		%{name}-libnfs.patch
+Source0:	https://download.gnome.org/sources/gvfs/1.58/%{name}-%{version}.tar.xz
+# Source0-md5:	00508bb91f4402c2953a531c6dcdf3f4
 URL:		https://wiki.gnome.org/Projects/gvfs
 %{?with_avahi:BuildRequires:	avahi-devel >= 0.6.22}
 %{?with_avahi:BuildRequires:	avahi-glib-devel >= 0.6.22}
@@ -54,9 +53,9 @@ BuildRequires:	dbus-devel
 %{?with_doc:BuildRequires:	docbook-style-xsl}
 BuildRequires:	gcr4-devel >= 4
 BuildRequires:	gettext-tools >= 0.19.4
-BuildRequires:	glib2-devel >= 1:2.80.0
+BuildRequires:	glib2-devel >= 1:2.83.0
 %if %{with goa} || %{with onedrive}
-BuildRequires:	gnome-online-accounts-devel >= 3.18.0
+BuildRequires:	gnome-online-accounts-devel >= 3.53.1
 %endif
 BuildRequires:	gsettings-desktop-schemas-devel >= 3.33.0
 BuildRequires:	gtk+3-devel >= 3.0
@@ -64,7 +63,7 @@ BuildRequires:	gtk+3-devel >= 3.0
 %{?with_bluray:BuildRequires:	libbluray-devel}
 %{?with_admin:BuildRequires:	libcap-devel}
 %{?with_cdda:BuildRequires:	libcdio-paranoia-devel >= 0.78.2}
-%{?with_fuse:BuildRequires:	libfuse3-devel >= 3.0.0}
+%{?with_fuse:BuildRequires:	libfuse3-devel >= 3.17.0}
 BuildRequires:	libgcrypt-devel >= 1.2.2
 %{?with_google:BuildRequires:	libgdata-devel >= 0.18.0}
 %{?with_gphoto2:BuildRequires:	libgphoto2-devel >= 2.5.0}
@@ -80,7 +79,7 @@ BuildRequires:	libusb-devel >= 1.0.21
 BuildRequires:	libxml2-devel >= 1:2.6.31
 %{?with_doc:BuildRequires:	libxslt-progs}
 BuildRequires:	meson >= 0.57.0
-%{?with_onedrive:BuildRequires:	msgraph-devel}
+%{?with_onedrive:BuildRequires:	msgraph-devel >= 0.3.0}
 BuildRequires:	ninja >= 1.5
 # find_program('ssh') for sftp
 BuildRequires:	openssh-clients
@@ -93,7 +92,7 @@ BuildRequires:	udev-devel >= 1:138
 %{?with_gudev:BuildRequires:	udev-glib-devel >= 1:147}
 %{?with_udisks2:BuildRequires:	udisks2-devel >= 1.97.0}
 BuildRequires:	xz
-Requires(post,postun):	glib2 >= 1:2.80.0
+Requires(post,postun):	glib2 >= 1:2.83.0
 Requires:	%{name}-libs = %{version}-%{release}
 %{?with_avahi:Requires:	avahi-glib >= 0.6.22}
 Requires:	gsettings-desktop-schemas >= 3.33.0
@@ -136,7 +135,7 @@ gfvs-a do wszystkich aplikacji używających API gio.
 Summary:	Common GVFS shared libraries
 Summary(pl.UTF-8):	Wspólne biblioteki współdzielone GVFS
 Group:		Libraries
-Requires:	glib2 >= 1:2.80.0
+Requires:	glib2 >= 1:2.83.0
 Conflicts:	gvfs < 1.22.3-2
 
 %description libs
@@ -150,7 +149,7 @@ Summary:	Header files for gvfs library
 Summary(pl.UTF-8):	Pliki nagłówkowe biblioteki gvfs
 Group:		Development/Libraries
 Requires:	%{name}-libs = %{version}-%{release}
-Requires:	glib2-devel >= 1:2.80.0
+Requires:	glib2-devel >= 1:2.83.0
 
 %description devel
 Header files for gvfs library.
@@ -212,7 +211,7 @@ Summary:	FUSE support for gvfs
 Summary(pl.UTF-8):	Obsługa FUSE dla gvfs
 Group:		Libraries
 Requires:	%{name} = %{version}-%{release}
-Requires:	libfuse3
+Requires:	libfuse3 >= 3.17.0
 
 %description fuse
 This package provides support for applications not using gio to access
@@ -227,7 +226,7 @@ Summary:	GOA support for gvfs
 Summary(pl.UTF-8):	Obsługa GOA dla gvfs
 Group:		Libraries
 Requires:	%{name} = %{version}-%{release}
-Requires:	gnome-online-accounts-libs >= 3.18.0
+Requires:	gnome-online-accounts-libs >= 3.53.1
 
 %description goa
 This package provides seamless integration with gnome-online-accounts
@@ -242,7 +241,7 @@ Summary:	Google Drive support for gvfs
 Summary(pl.UTF-8):	Obsługa Google Drive dla gvfs
 Group:		Libraries
 Requires:	%{name} = %{version}-%{release}
-Requires:	gnome-online-accounts-libs >= 3.18.0
+Requires:	gnome-online-accounts-libs >= 3.53.1
 Requires:	libgdata >= 0.18.0
 
 %description google
@@ -292,7 +291,8 @@ Summary:	OneDrive support for gvfs
 Summary(pl.UTF-8):	Obsługa OneDrive dla gvfs
 Group:		Libraries
 Requires:	%{name} = %{version}-%{release}
-Requires:	gnome-online-accounts-libs >= 3.18.0
+Requires:	gnome-online-accounts-libs >= 3.53.1
+Requires:	msgraph >= 0.3.0
 
 %description onedrive
 This package provides support for OneDrive to applications using
@@ -318,7 +318,6 @@ sieciowych Windows (SMB) dla aplikacji wykorzystujących gvfs.
 
 %prep
 %setup -q
-%patch -P0 -p1
 
 %build
 %meson \
diff --git a/gvfs-libnfs.patch b/gvfs-libnfs.patch
deleted file mode 100644
index 7ff221f..0000000
--- a/gvfs-libnfs.patch
+++ /dev/null
@@ -1,530 +0,0 @@
-From b75208c86d842c7bc2f613f40bc80cc7594629aa Mon Sep 17 00:00:00 2001
-From: Ondrej Holy <oholy at redhat.com>
-Date: Mon, 4 Nov 2024 15:21:45 +0100
-Subject: [PATCH] nfs: Fail append with G_IO_ERROR_IS_DIRECTORY when dir exists
-
-Currently, the append/edit job succeeds for the NFS backend even though
-there is a directory. The consequent write operation fails with the
-invalid address error. As per the documentation, the append/edit
-operation should fail imediatelly with the `G_IO_ERROR_IS_DIRECTORY`
-error. Let's add an extra stat call to achieve that behavior.
----
- daemon/gvfsbackendnfs.c | 49 ++++++++++++++++++++++++++++++++++++-----
- 1 file changed, 43 insertions(+), 6 deletions(-)
-
-diff --git a/daemon/gvfsbackendnfs.c b/daemon/gvfsbackendnfs.c
-index c9e9ed60b..6219895a5 100644
---- a/daemon/gvfsbackendnfs.c
-+++ b/daemon/gvfsbackendnfs.c
-@@ -727,7 +727,10 @@ write_handle_free (WriteHandle *handle)
- }
- 
- static void
--append_cb (int err, struct nfs_context *ctx, void *data, void *private_data)
-+append_create_cb (int err,
-+                  struct nfs_context *ctx,
-+                  void *data,
-+                  void *private_data)
- {
-   GVfsJob *job = G_VFS_JOB (private_data);
-   if (err == 0)
-@@ -747,6 +750,42 @@ append_cb (int err, struct nfs_context *ctx, void *data, void *private_data)
-     }
- }
- 
-+static void
-+append_stat_cb (int err,
-+                struct nfs_context *ctx,
-+                void *data,
-+                void *private_data)
-+{
-+  GVfsJob *job = G_VFS_JOB (private_data);
-+  GVfsJobOpenForWrite *op_job = G_VFS_JOB_OPEN_FOR_WRITE (job);
-+  GVfsBackendNfs *op_backend = G_VFS_BACKEND_NFS (op_job->backend);
-+
-+  if (err == 0)
-+    {
-+      struct nfs_stat_64 *st = data;
-+
-+      if (S_ISDIR (st->nfs_mode))
-+        {
-+          g_vfs_job_failed_literal (job,
-+                                    G_IO_ERROR, G_IO_ERROR_IS_DIRECTORY,
-+                                    _("Target file is a directory"));
-+          return;
-+        }
-+    }
-+  else if (err != -ENOENT)
-+    {
-+      g_vfs_job_failed_from_errno (job, -err);
-+      return;
-+    }
-+
-+  nfs_create_async (op_backend->ctx,
-+                    op_job->filename,
-+                    O_APPEND,
-+                    (op_job->flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
-+                    append_create_cb,
-+                    job);
-+}
-+
- static gboolean
- try_append_to (GVfsBackend *backend,
-                GVfsJobOpenForWrite *job,
-@@ -755,11 +794,9 @@ try_append_to (GVfsBackend *backend,
- {
-   GVfsBackendNfs *op_backend = G_VFS_BACKEND_NFS (backend);
- 
--  nfs_create_async (op_backend->ctx,
--                    filename,
--                    O_APPEND,
--                    (flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
--                    append_cb, job);
-+  /* Check for existing directory because libnfs doesn't fail in this case. */
-+  nfs_stat64_async (op_backend->ctx, filename, append_stat_cb, job);
-+
-   return TRUE;
- }
- 
--- 
-GitLab
-
-From aa3eef707ae81cd8bab0d7eb94a8729c59061f61 Mon Sep 17 00:00:00 2001
-From: Ondrej Holy <oholy at redhat.com>
-Date: Thu, 28 Nov 2024 14:58:12 +0100
-Subject: [PATCH] nfs: Set intitial_offset when appending
-
-Currently the `initial_offset` is not set when appening. This is wrong
-as the `GDaemonOutputStream` implemetation relies on it to be set. Let's
-do so to fix the `g_seekable_tell` output.
----
- daemon/gvfsbackendnfs.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/daemon/gvfsbackendnfs.c b/daemon/gvfsbackendnfs.c
-index 6219895a..85632174 100644
---- a/daemon/gvfsbackendnfs.c
-+++ b/daemon/gvfsbackendnfs.c
-@@ -759,11 +759,10 @@ append_stat_cb (int err,
-   GVfsJob *job = G_VFS_JOB (private_data);
-   GVfsJobOpenForWrite *op_job = G_VFS_JOB_OPEN_FOR_WRITE (job);
-   GVfsBackendNfs *op_backend = G_VFS_BACKEND_NFS (op_job->backend);
-+  struct nfs_stat_64 *st = data;
- 
-   if (err == 0)
-     {
--      struct nfs_stat_64 *st = data;
--
-       if (S_ISDIR (st->nfs_mode))
-         {
-           g_vfs_job_failed_literal (job,
-@@ -778,6 +777,7 @@ append_stat_cb (int err,
-       return;
-     }
- 
-+  g_vfs_job_open_for_write_set_initial_offset (op_job, st->nfs_size);
-   nfs_create_async (op_backend->ctx,
-                     op_job->filename,
-                     O_APPEND,
--- 
-GitLab
-
-From 56f18838f0af940284af8f22afc5ce4d122df71e Mon Sep 17 00:00:00 2001
-From: Ondrej Holy <oholy at redhat.com>
-Date: Mon, 14 Oct 2024 14:15:12 +0200
-Subject: [PATCH] nfs: Implement support for edit mode
-
-Implement support for the newly added edit mode in the NFS backend.
-
-Related: https://gitlab.gnome.org/GNOME/gvfs/-/issues/249
----
- daemon/gvfsbackendnfs.c | 108 +++++++++++++++++++++++-----------------
- 1 file changed, 61 insertions(+), 47 deletions(-)
-
-diff --git a/daemon/gvfsbackendnfs.c b/daemon/gvfsbackendnfs.c
-index 85632174..925e894e 100644
---- a/daemon/gvfsbackendnfs.c
-+++ b/daemon/gvfsbackendnfs.c
-@@ -727,10 +727,10 @@ write_handle_free (WriteHandle *handle)
- }
- 
- static void
--append_create_cb (int err,
--                  struct nfs_context *ctx,
--                  void *data,
--                  void *private_data)
-+open_for_write_create_cb (int err,
-+                          struct nfs_context *ctx,
-+                          void *data,
-+                          void *private_data)
- {
-   GVfsJob *job = G_VFS_JOB (private_data);
-   if (err == 0)
-@@ -751,15 +751,32 @@ append_create_cb (int err,
- }
- 
- static void
--append_stat_cb (int err,
--                struct nfs_context *ctx,
--                void *data,
--                void *private_data)
-+open_for_write_create (GVfsBackend *backend,
-+                       GVfsJobOpenForWrite *job,
-+                       const char *filename,
-+                       GFileCreateFlags flags,
-+                       int open_flags)
-+{
-+  GVfsBackendNfs *op_backend = G_VFS_BACKEND_NFS (backend);
-+
-+  nfs_create_async (op_backend->ctx,
-+                    filename,
-+                    open_flags,
-+                    (flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
-+                    open_for_write_create_cb,
-+                    job);
-+}
-+
-+static void
-+open_for_write_stat_cb (int err,
-+                        struct nfs_context *ctx,
-+                        void *data,
-+                        void *private_data)
- {
-   GVfsJob *job = G_VFS_JOB (private_data);
-   GVfsJobOpenForWrite *op_job = G_VFS_JOB_OPEN_FOR_WRITE (job);
--  GVfsBackendNfs *op_backend = G_VFS_BACKEND_NFS (op_job->backend);
-   struct nfs_stat_64 *st = data;
-+  int open_flags = 0;
- 
-   if (err == 0)
-     {
-@@ -777,13 +794,28 @@ append_stat_cb (int err,
-       return;
-     }
- 
--  g_vfs_job_open_for_write_set_initial_offset (op_job, st->nfs_size);
--  nfs_create_async (op_backend->ctx,
--                    op_job->filename,
--                    O_APPEND,
--                    (op_job->flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
--                    append_create_cb,
--                    job);
-+  if (op_job->mode == OPEN_FOR_WRITE_APPEND)
-+    {
-+      open_flags = O_APPEND;
-+      g_vfs_job_open_for_write_set_initial_offset (op_job, st->nfs_size);
-+    }
-+
-+  open_for_write_create (op_job->backend,
-+                         op_job,
-+                         op_job->filename,
-+                         op_job->flags,
-+                         open_flags);
-+}
-+
-+static void
-+open_for_write (GVfsBackend *backend,
-+                GVfsJobOpenForWrite *job,
-+                const char *filename)
-+{
-+  GVfsBackendNfs *op_backend = G_VFS_BACKEND_NFS (backend);
-+
-+  /* Check for existing directory because libnfs doesn't fail in this case. */
-+  nfs_stat64_async (op_backend->ctx, filename, open_for_write_stat_cb, job);
- }
- 
- static gboolean
-@@ -792,10 +824,18 @@ try_append_to (GVfsBackend *backend,
-                const char *filename,
-                GFileCreateFlags flags)
- {
--  GVfsBackendNfs *op_backend = G_VFS_BACKEND_NFS (backend);
-+  open_for_write (backend, job, filename);
- 
--  /* Check for existing directory because libnfs doesn't fail in this case. */
--  nfs_stat64_async (op_backend->ctx, filename, append_stat_cb, job);
-+  return TRUE;
-+}
-+
-+static gboolean
-+try_edit (GVfsBackend *backend,
-+          GVfsJobOpenForWrite *job,
-+          const char *filename,
-+          GFileCreateFlags flags)
-+{
-+  open_for_write (backend, job, filename);
- 
-   return TRUE;
- }
-@@ -1344,41 +1384,14 @@ try_replace (GVfsBackend *backend,
-   return TRUE;
- }
- 
--static void
--create_cb (int err, struct nfs_context *ctx, void *data, void *private_data)
--{
--  GVfsJob *job = G_VFS_JOB (private_data);
--
--  if (err == 0)
--    {
--      GVfsJobOpenForWrite *op_job = G_VFS_JOB_OPEN_FOR_WRITE (job);
--      WriteHandle *handle = g_slice_new0 (WriteHandle);
--
--      handle->fh = data;
--      g_vfs_job_open_for_write_set_handle (op_job, handle);
--      g_vfs_job_open_for_write_set_can_seek (op_job, TRUE);
--      g_vfs_job_open_for_write_set_can_truncate (op_job, TRUE);
--      g_vfs_job_succeeded (job);
--    }
--  else
--    {
--      g_vfs_job_failed_from_errno (job, -err);
--    }
--}
--
- static gboolean
- try_create (GVfsBackend *backend,
-             GVfsJobOpenForWrite *job,
-             const char *filename,
-             GFileCreateFlags flags)
- {
--  GVfsBackendNfs *op_backend = G_VFS_BACKEND_NFS (backend);
-+  open_for_write_create (backend, job, filename, flags, O_EXCL);
- 
--  nfs_create_async (op_backend->ctx,
--                    filename,
--                    O_EXCL,
--                    (flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
--                    create_cb, job);
-   return TRUE;
- }
- 
-#@@ -2617,6 +2630,7 @@ g_vfs_backend_nfs_class_init (GVfsBackendNfsClass *klass)
-#   backend_class->try_make_symlink = try_make_symlink;
-#   backend_class->try_create = try_create;
-#   backend_class->try_append_to = try_append_to;
-#+  backend_class->try_edit = try_edit;
-#   backend_class->try_replace = try_replace;
-#   backend_class->try_write = try_write;
-#   backend_class->try_query_info_on_write = try_query_info_on_write;
--- 
-GitLab
-
-From 50c0845928983830ebe12d1d2ba82a6735cec77b Mon Sep 17 00:00:00 2001
-From: Jan Alexander Steffens <jan.steffens at gmail.com>
-Date: Mon, 20 Jan 2025 10:06:08 +0000
-Subject: [PATCH] nfs: Support libnfs 6
-
-Libnfs 6 brings version 2 of its API. It is not compatible with the earlier API.
-Let's use the LIBNFS_API_V2 symbol to handle differences.
-
-Fixes: https://gitlab.gnome.org/GNOME/gvfs/-/issues/781
----
- daemon/gvfsbackendnfs.c | 72 +++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 72 insertions(+)
-
-diff --git a/daemon/gvfsbackendnfs.c b/daemon/gvfsbackendnfs.c
-index 925e894e..b9db96ab 100644
---- a/daemon/gvfsbackendnfs.c
-+++ b/daemon/gvfsbackendnfs.c
-@@ -407,7 +407,9 @@ read_cb (int err, struct nfs_context *ctx, void *data, void *private_data)
-     {
-       GVfsJobRead *op_job = G_VFS_JOB_READ (job);
- 
-+#ifndef LIBNFS_API_V2
-       memcpy (op_job->buffer, data, err);
-+#endif
-       g_vfs_job_read_set_size (op_job, err);
-       g_vfs_job_succeeded (job);
-     }
-@@ -427,7 +429,11 @@ try_read (GVfsBackend *backend,
-   GVfsBackendNfs *op_backend = G_VFS_BACKEND_NFS (backend);
-   struct nfsfh *fh = _handle;
- 
-+#ifdef LIBNFS_API_V2
-+  nfs_read_async (op_backend->ctx, fh, buffer, bytes_requested, read_cb, job);
-+#else
-   nfs_read_async (op_backend->ctx, fh, bytes_requested, read_cb, job);
-+#endif
-   return TRUE;
- }
- 
-@@ -759,12 +765,21 @@ open_for_write_create (GVfsBackend *backend,
- {
-   GVfsBackendNfs *op_backend = G_VFS_BACKEND_NFS (backend);
- 
-+#ifdef LIBNFS_API_V2
-+  nfs_open2_async (op_backend->ctx,
-+                   filename,
-+                   O_CREAT | open_flags,
-+                   (flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
-+                   open_for_write_create_cb,
-+                   job);
-+#else
-   nfs_create_async (op_backend->ctx,
-                     filename,
-                     open_flags,
-                     (flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
-                     open_for_write_create_cb,
-                     job);
-+#endif
- }
- 
- static void
-@@ -855,6 +870,9 @@ typedef struct
-   int mode;
-   CopyFileCallback cb;
-   void *private_data;
-+#ifdef LIBNFS_API_V2
-+  char buffer[COPY_BLKSIZE];
-+#endif
- } CopyHandle;
- 
- static void
-@@ -882,7 +900,11 @@ copy_write_cb (int err,
-   CopyHandle *handle = private_data;
- 
-   if (err > 0)
-+#ifdef LIBNFS_API_V2
-+    nfs_read_async (ctx, handle->srcfh, handle->buffer, COPY_BLKSIZE, copy_read_cb, handle);
-+#else
-     nfs_read_async (ctx, handle->srcfh, COPY_BLKSIZE, copy_read_cb, handle);
-+#endif
-   else
-     copy_handle_complete (ctx, handle, FALSE);
- }
-@@ -895,7 +917,11 @@ copy_read_cb (int err, struct nfs_context *ctx, void *data, void *private_data)
-   if (err == 0)
-     copy_handle_complete (ctx, handle, TRUE);
-   else if (err > 0)
-+#ifdef LIBNFS_API_V2
-+    nfs_write_async (ctx, handle->destfh, handle->buffer, err, copy_write_cb, handle);
-+#else
-     nfs_write_async (ctx, handle->destfh, err, data, copy_write_cb, handle);
-+#endif
-   else
-     copy_handle_complete (ctx, handle, FALSE);
- }
-@@ -911,7 +937,11 @@ copy_open_dest_cb (int err,
-     {
-       handle->destfh = data;
- 
-+#ifdef LIBNFS_API_V2
-+      nfs_read_async (ctx, handle->srcfh, handle->buffer, COPY_BLKSIZE, copy_read_cb, handle);
-+#else
-       nfs_read_async (ctx, handle->srcfh, COPY_BLKSIZE, copy_read_cb, handle);
-+#endif
-     }
-   else
-     {
-@@ -929,9 +959,15 @@ copy_open_source_cb (int err,
-   if (err == 0)
-     {
-       handle->srcfh = data;
-+#ifdef LIBNFS_API_V2
-+      nfs_open2_async (ctx,
-+                       handle->dest, O_CREAT | O_TRUNC, handle->mode & 0777,
-+                       copy_open_dest_cb, handle);
-+#else
-       nfs_create_async (ctx,
-                         handle->dest, O_TRUNC, handle->mode & 0777,
-                         copy_open_dest_cb, handle);
-+#endif
-       g_free (handle->dest);
-     }
-   else
-@@ -1012,11 +1048,19 @@ replace_backup_chown_cb (int err,
-       GVfsJobOpenForWrite *op_job = G_VFS_JOB_OPEN_FOR_WRITE (job);
-       GVfsBackendNfs *op_backend = G_VFS_BACKEND_NFS (op_job->backend);
- 
-+#ifdef LIBNFS_API_V2
-+      nfs_open2_async (op_backend->ctx,
-+                       op_job->filename,
-+                       O_CREAT | O_TRUNC,
-+                       (op_job->flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
-+                       replace_trunc_cb, handle);
-+#else
-       nfs_create_async (op_backend->ctx,
-                         op_job->filename,
-                         O_TRUNC,
-                         (op_job->flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
-                         replace_trunc_cb, handle);
-+#endif
-     }
-   else
-     {
-@@ -1096,11 +1140,19 @@ replace_truncate (struct nfs_context *ctx, WriteHandle *handle)
-     }
-   else
-     {
-+#ifdef LIBNFS_API_V2
-+      nfs_open2_async (ctx,
-+                       op_job->filename,
-+                       O_CREAT | O_TRUNC,
-+                       (op_job->flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
-+                       replace_trunc_cb, handle);
-+#else
-       nfs_create_async (ctx,
-                         op_job->filename,
-                         O_TRUNC,
-                         (op_job->flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
-                         replace_trunc_cb, handle);
-+#endif
-     }
- }
- 
-@@ -1288,11 +1340,19 @@ replace_stat_cb (int err,
-               handle->tempname = g_build_filename (dirname, basename, NULL);
-               g_free (dirname);
- 
-+#ifdef LIBNFS_API_V2
-+              nfs_open2_async (ctx,
-+                               handle->tempname,
-+                               O_CREAT | O_EXCL,
-+                               (op_job->flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
-+                               replace_temp_cb, handle);
-+#else
-               nfs_create_async (ctx,
-                                 handle->tempname,
-                                 O_EXCL,
-                                 (op_job->flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
-                                 replace_temp_cb, handle);
-+#endif
-             }
-           else
-             {
-@@ -1376,11 +1436,19 @@ try_replace (GVfsBackend *backend,
- {
-   GVfsBackendNfs *op_backend = G_VFS_BACKEND_NFS (backend);
- 
-+#ifdef LIBNFS_API_V2
-+  nfs_open2_async (op_backend->ctx,
-+                   filename,
-+                   O_CREAT | O_EXCL,
-+                   (flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
-+                   replace_create_cb, job);
-+#else
-   nfs_create_async (op_backend->ctx,
-                     filename,
-                     O_EXCL,
-                     (flags & G_FILE_CREATE_PRIVATE ? 0600 : 0666) & ~op_backend->umask,
-                     replace_create_cb, job);
-+#endif
-   return TRUE;
- }
- 
-@@ -1422,7 +1490,11 @@ try_write (GVfsBackend *backend,
-   WriteHandle *handle = _handle;
-   struct nfsfh *fh = handle->fh;
- 
-+#ifdef LIBNFS_API_V2
-+  nfs_write_async (op_backend->ctx, fh, buffer, buffer_size, write_cb, job);
-+#else
-   nfs_write_async (op_backend->ctx, fh, buffer_size, buffer, write_cb, job);
-+#endif
-   return TRUE;
- }
- 
--- 
-GitLab
-
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gvfs.git/commitdiff/d007d20f6c15eaccb22205d99af1b4cc2e896834




More information about the pld-cvs-commit mailing list