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.