From Fedora Project Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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

  • 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.