Features/Gvfs

= Gvfs =

Summary
Gvfs is a userspace virtual filesystem with backends for things like sftp, ftp, dav, smb, obexftp, etc. It is the replacement/successor of gnome-vfs.

Owner

 * Name: AlexanderLarsson

Current status

 * Targeted release:  Fedora 9
 * Last updated: 2008-03-17
 * Percentage of completion: 100%

Detailed Description
Gvfs consists of two parts:


 * GIO, which is a new shared library that is part of GLib and provides the API for gvfs


 * Gvfs itself, which is a new package containing backends for various file system types and protocols such as sftp, dav, smb, obexftp.

The way gvfs works is that it runs a single master daemon (gvfsd) that keeps track of the current gvfs mounts. Each mount is run in a separate daemon (some mounts share a daemon process, but most don't). Clients talk to the mounts with a combination of dbus calls (on the session bus and using peer-to-peer dbus) and a custom protocol for file contents.

Gvfs comes into Fedora 9 as part of Gnome 2.22, but it is worth spelling it out as a feature, since it was largely conceived and written by Fedora people, namely Alexander Larsson (who did the bulk of the work), David Zeuthen, Dan Winship and Bastien Nocera.

Benefit to Fedora
A userspace virtual filesystem that can be used by all GTK+ applications without fear of undue dependencies (which is part of what prevented widespread gnome-vfs acceptance). Secondary benefits such as having Gnome and KDE use a shared spec for Trash (the gnome-vfs implementation predated the freedesktop.org Trash spec that is already implemented by KDE), and using a common mechanism for configuring mime handlers.

Scope
Gvfs is a new package that has been in rawhide for a while now. nautilus, the GTK+ filechooser and the trash applet have been ported to Gvfs. For the progress on porting all users of gnome-vfs over to Gvfs, see http://live.gnome.org/GioPort (note that it is not necessary to complete this port 100% immediately, gnome-vfs will still be available).

With the port to Gvfs, nautilus takes over the automount/autorun responsibilities from gnome-volume-manager.

Test Plan

 * Use nautilus for various file management tasks on different file system types, including removable media. Verify that things work as expected.


 * Trash/untrash some files and check that nautilus, the trash applet, KDE and XFCE all operate nicely together wrt. to Trash.


 * Check that the GTK+ file chooser is functioning as well as it did before the switch to gvfs.


 * Excercise the "Open with" features of nautilus. Check that you can add, change and remove handlers for mime types.


 * Excercise the new Media tab of the "File management" capplet, and verify that autolaunching e.g. gthumb or rhythmbox works on appropriate media.


 * Do a large copy operation in nautilus, and check that you get suitable progress report. Does cancelling it work ?

User Experience

 * The user experience of nautilus and the GTK+ file chooser should be mostly unchanged.


 * Automount/autorun configuration is now available in the file management capplet.


 * Unlike gnome-vfs, gvfs mounts have "state", they persist for the session. That means if you accessed e.g. a ftp location in nautilus, you won't have to enter the password again to use it in the file chooser afterwards.

Dependencies

 * Gvfs can optionally use fuse to make its mounts available to non-gvfs-enabled applications. These fuse mounts will appear in ~/.gvfs. For this to work, fuse must drop the fuse group membership requirement, or all users must automatically become members of the fuse group.

Contingency Plan

 * None, realistically. Gvfs is part of Gnome 2.22, and not shipping gvfs would mean we'd have to roll all of gnome back to 2.20, which is not very practical.

Documentation

 * API documentation for GIO is available here: http://library.gnome.org/devel/gio/unstable/


 * User documentation should be added in the Gnome users guide. The sections on "Using removable media" and "Nautilus Preferences" will have to be updated.

Release Notes

 * Depending on the pace of gvfs development, we may have to mention that some of the filesystem types supported by gnome-vfs are not (yet) supported by gvfs. Notable candidates for this are the themes:// and fonts:// schemes.