[fuse-devel] fuse desktop integration / management library

nf2 nf2 at scheinwelt.at
Tue Apr 24 05:56:44 PDT 2007


Miklos Szeredi wrote:
>> are there any plans (or ongoing efforts) for writing a fuse management 
>> library for desktop integration / gui based mounting/umounting?
>>     
>
> No, I don't have knowledge of such plans.
>   

ok. anyone who wants to help me? perhaps we could call it "libfusi" 
(fuse management interface)

>   
>> what IMHO the library should do:
>>
>> * maintain a list of "known" network shares/fuse mountpoints (like 
>> fstab, but as key/value config-files in the users home directory)
>>     
>
> Sounds sane.  Though I don't see anything wrong with using the fstab
> format for this
>   

don't know ... i thought key/value style is more flexible / easier to 
parse (glib). but fstab format would also be possible. also depends if a 
single process takes care of this (otherwise multiple config files in a 
directory (~/.config/fuse/tab ) are better)

>   
>> * create, mount, unmount, remove fuse mountpoints
>>     
>
> mkdir, exec filesystem, exec fusermount -u, rmdir
>
> I don't see what extra a library could do
>   

the main purpose of an API would be a wrapper layer for convenience, 
providing a consistent model to deal with all kind of fuse-modules. 
writing/parsing config-files, constructing cli args and launching 
processes is a difficult and error prone...

think of it as a kind of MVC (model-view-controller) design: the library 
provides the model/controller and the desktops the view (gui-interface).

AFAIK fuse also lacks a method to query which backends are installed, 
and how to launch them (description, name of the executable, 
parameters). i believe fuse-modules should perhaps install files in 
/etc/fuse/modules which describe their capabilities...

>   
>> * provide a list of currently mounted fuse mounts (like mtab)...
>>     
>
> What's wrong with mtab or /proc/mounts?
>   
nothing, but i believe filtering mtab and emitting change-signals should 
be handled by the management library internally...

>   
>> * password callbacks (needs support in libfuse or a second library 
>> linked into fuse modules, because the current way of specifying 
>> passwords as command line args is unsecure)
>>     
>
> A nice model for this is ssh-askpass, no need to support anything in
> libfuse for this to work.
>   
hmm. would there be other options to hide the password from the 
command-line? for instance setting the password in the environment or 
read it from stdin? i'm looking for a kind of generic model which works 
for all fuse-modules...

>   
>> * a progress/logging interface for fuse-modules to send messages to an 
>> ui-server
>>     
>
> Yeah, libfuse needs a logging interface.  fuse-2.8 maybe...
>
>   
>> * emit mount/umount events to all clients of the management system
>>     
>
> inotify supports this, doesn't it?
>   

sure - just for convenience this should be provided by the library... 
(because you have to monitor mtab, the fuse-fstab (or config files)...)

>   
>> * translate from uri's to mountpoints back and forth (by using the list 
>> of "known" fuse-mounts)
>>        ftp://user@server.org/dir/file -> 
>> ~/netvols/ftp_user_at_server/dir/file (i believe the dir-name of the 
>> mountpoint should be defined by the user, but we could offer him/her a 
>> "proposed name")
>>     
>
> Makes some sense, but this is definitely not libfuse stuff.
>   

sure. everything except fixing the authentication (hiding passwords) 
would be just a wrapper layer...

>   
>> * get meta-information about fuse-mounts
>>     
>
> Huh?
>   
not sure either ... perhaps things like the encoding of filenames, seek 
support,...

>   
>> * provide a "browsing" interface (smb network/servers)
>>     
>
> Why is this special?  Reading the directory should just list the
> servers, services, etc.  fusesmb for example does this without
> problems.
>   

i was referring to the thing called "crawler" in fusesmb. can you mount it?
http://www.ricardis.tudelft.nl/~vincent/fusesmb/

>   
>> the fuse management system should consist of three parts:
>>
>> * a glib main-loop based client library (async mount/umount operations, 
>> events)
>> * a dbus service (session bus)
>> * an (optionally linked) library used in fuse modules for authentication 
>> callbacks and progress/logging events
>>
>> a reference implementation of a GUI-based management client would also 
>> be cool... (GTK+ ?)
>>
>> i am working on a desktop independent vfs library 
>> (http://www.scheinwelt.at/~norbertf/devel/vio/),
>>     
>
> I don't quite understand what this is.  Is it a replacement for the
> kio/gnome-vfs stuff?
>
>   

yes. but i'm not sure how popular this "vio" project is going be. the 
new "gvfs", which is currently developed as replacement for Gnome-VFS, 
might also be an option. but that depends if KDE accepts "gvfs" as 
sub-system for KIO (i.e. "gvfs" becomes the standard library for desktop 
file-management)...

regards,
norbert





More information about the xdg mailing list