A common VFS and a Common conf-system [Part II]
Nicolai Haehnle
prefect_ at gmx.net
Tue Mar 8 20:28:29 EET 2005
On Tuesday 08 March 2005 18:01, Sean Middleditch wrote:
> On Tue, 2005-03-08 at 11:37 -0500, gtg990h at mail.gatech.edu wrote:
> > > They can patch GCC if they don't like any of those solutions. Nothing
> > > about D-VFS will make it impossible for non-desktop apps to use. It's
> > > just not something that a whole ton of time is being devoted to.
> >
> > That's not a very good answer. Like it or not, something like an IDE is
a
> > legitimate use-case here. Or something like a MySQL front-end, or a
number of
>
> It's the only answer feasible. What other answer is there? There's no
> other possible solution except FUSE, which is Linux-only, which means
> that it is completely unsuitable for our purposes. If an application
> wants to use D-VFS, nothing stops it from doing so except apathy or
> ignorance.
I hope you do realize that what you're expecting isn't exactly realistic.
And while FUSE is Linux-only, it would be foolish to reduce yourself to the
lowest common denominator of all systems. With that said, I think it should
be possible to find a way that doesn't affect the core design of D-VFS and
still allows cooperation with legacy applications via FUSE.
What I'm proposing is a two-way translation part in the D-VFS client library
that can turn "native OS paths" into "D-VFS URLs" and vice versa - just two
functions "native_to_dvfs" and "dvfs_to_native".
native_to_dvfs will always succeed, by returning something like
"file:///<the given path>", though some thought has to go into how the
current working directory and the user's home directory may be resolved in
the process.
dvfs_to_native must be allowed to fail, and the default implementation will
only work for file:// URLs. However, on Linux, this function could check
whether a working D-VFS-to-FUSE bridge exists and is mounted, and if so,
return a path into the right FUSE mount.
It is important to make it *very* clear to application developers that they
must not rely on dvfs_to_native to succeed.
This scheme has a number of advantages:
- It allows applications like IDEs to take advantage of FUSE without
impacting installations and systems that have nothing like FUSE.
- It is relatively simple to implement.
- It can easily be extended to work on other OSs as more D-VFS-to-native
bridges become available.
- Like it or not, desktop applications developers *will* come up with nasty
hacks to bridge with legacy applications. By supplying these two functions,
we can have a single hack in one place instead of many hacks in many
places. This leads to overall cleaner code and fewer bugs.
cu,
Nicolai
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/xdg/attachments/20050308/434f5454/attachment.pgp
More information about the xdg
mailing list