diff --git a/gvfs-burn-move.patch b/gvfs-burn-move.patch new file mode 100644 index 0000000..f49494f --- /dev/null +++ b/gvfs-burn-move.patch @@ -0,0 +1,62 @@ +Index: daemon/gvfsbackendburn.c +=================================================================== +--- daemon/gvfsbackendburn.c (revisione 2144) ++++ daemon/gvfsbackendburn.c (copia locale) +@@ -953,6 +953,49 @@ + return TRUE; + } + ++static gboolean ++try_move (GVfsBackend *backend, ++ GVfsJobMove *job, ++ const char *source, ++ const char *destination, ++ GFileCopyFlags flags, ++ GFileProgressCallback progress_callback, ++ gpointer progress_callback_data) ++{ ++ VirtualNode *source_node, *root_node, *source_dir, *dest_dir; ++ ++ root_node = G_VFS_BACKEND_BURN (backend)->root_node; ++ ++ source_node = virtual_node_lookup (root_node, source, &source_dir); ++ if (source_node == NULL) ++ { ++ g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, ++ G_IO_ERROR_NOT_FOUND, ++ _("No such file or directory")); ++ return TRUE; ++ } ++ ++ if (virtual_node_lookup (root_node, destination, &dest_dir) != NULL) ++ { ++ g_vfs_job_failed (G_VFS_JOB (job), G_IO_ERROR, ++ G_IO_ERROR_EXISTS, ++ _("File exists")); ++ return TRUE; ++ } ++ ++ g_free (source_node->filename); ++ source_node->filename = g_path_get_basename (destination); ++ ++ if (source_dir != dest_dir) { ++ source_dir->children = g_list_remove (source_dir->children, source_node); ++ dest_dir->children = g_list_append (dest_dir->children, source_node); ++ } ++ ++ g_vfs_job_succeeded (G_VFS_JOB (job)); ++ ++ return TRUE; ++} ++ + static void + g_vfs_backend_burn_class_init (GVfsBackendBurnClass *klass) + { +@@ -970,6 +1013,7 @@ + backend_class->try_set_display_name = try_set_display_name; + backend_class->try_push = try_push; + backend_class->try_delete = try_delete; ++ backend_class->try_move = try_move; + backend_class->read = do_read; + backend_class->seek_on_read = do_seek_on_read; + backend_class->close_read = do_close_read; diff --git a/gvfs.spec b/gvfs.spec index 98ae78d..51b6813 100644 --- a/gvfs.spec +++ b/gvfs.spec @@ -1,7 +1,7 @@ Summary: Backends for the gio framework in GLib Name: gvfs Version: 1.1.3 -Release: 1%{?dist} +Release: 2%{?dist} License: LGPLv2+ Group: System Environment/Libraries URL: http://www.gtk.org @@ -28,8 +28,11 @@ Requires(postun): desktop-file-utils # The patch touches Makefile.am files: BuildRequires: automake autoconf BuildRequires: libtool +# http://bugzilla.gnome.org/show_bug.cgi?id=567235 Patch1: gvfs-0.99.2-archive-integration.patch +# http://bugzilla.gnome.org/show_bug.cgi?id=565041 +Patch2: gvfs-burn-move.patch %description The gvfs package provides backend implementations for the gio @@ -112,6 +115,7 @@ media players (Media Transfer Protocol) to applications using gvfs. %prep %setup -q %patch1 -p0 -b .archive-integration +%patch2 -p0 -b .burn-move %build @@ -252,6 +256,9 @@ update-desktop-database &> /dev/null ||: %changelog +* Fri Jan 9 2009 Matthias Clasen - 1.1.3-2 +- Support moving files in the burn backend + * Tue Jan 6 2009 Tomas Bzatek - 1.1.3-1 - Update to 1.1.3