GVfs status report



After some time away from GVfs I'm now back working on it. In order to
get people to start looking at it I'm sending this status report. I'll
also try to send more regular status reports in the future.

Yesterday I split the gvfs repository into two parts, "gio" and
"gvfs":

"gio" is an architecture-independent library for file i/o that is
targeted for inclusion in glib. It depends on gobject, and optionally on
a few system libs like libselinux and libfam. The library contains
interfaces and base classes for abstract file I/O, an implementation
that works for local files, and a module system so that you can
insert other implementations.

"gvfs" is a plugin for libgio that extends the types of files gio can
write to. The plugin uses dbus to talk to out-of-process daemons that
implement the various kinds of file shares. Its designed for unix-like
systems, and is not meant to work for e.g. Windows (which could instead
implement their own libgio extensions for their native extended vfs:es).

The repositories for these two are now:
http://www.gnome.org/~alexl/git/gio.git
http://www.gnome.org/~alexl/git/gvfs.git

I've requested subversion modules for them, so eventually they will be
in gnome svn.

I think libgio is getting close to a final form. The API is pretty
full, and the implementation is pretty fleshed out. Its lacking
asynchronous versions of a few functions, and it doesn't have much
docs yet. But otherwise there are just a few things in the TODO, and
they don't really affect the API (in theory). It would be nice if
people could take a better look at the API and try to use it for
stuff. Even without the gvfs part it should be a nice API for file
I/O.

GVfs is a bit more raw atm. Its got the basic parts working, but quite a
few calls are not implemented yet. There is also only one backend
(smb). I think we want to spend some time adding a few more backends
now, to validate the design for different types of protocols. If
people are interested in helping out with this that would be cool.

It might be time to start discussing how to merge gio and get gnome to
use it at this point. Since libgio is supposed to ship with glib this
would mean that the first public release of it would be in the next
glib/gtk+ release, which is approximately in June 2008. This means we
can't use gvfs in Gnome 2.21, which is unfortunate.

If we want to use gvfs in Gnome 2.21 there are two possibilities:
1) Release next glib before the next Gtk+ release
2) Temporary ship gio in a separate module, which we later move to glib
  (pkg-config should magically make this work for users as long as the 
  packages etc conflict properly) 

Both of these have the disadvantage that we can't use gio in
Gtk+. There are a bunch of UI helper dialogs etc that would be nice to
have there, but they are not critical.

Opinions?

Anyway, please check out at least the gio module and have a look at
it. Please. Pretty Please.






[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]