Hi,

On Wed, Aug 20, 2014 at 8:46 AM, Ross Lagerwall <rosslagerw...@gmail.com> wrote:
> On Wed, Aug 20, 2014 at 02:06:42AM +0200, Jehan Pagès wrote:
>> Hello,
>>
>> I have been experimenting a little with gio/gvfs. I have an archive
>> (tar, zip, whatever), and I mount it with
>> g_file_mount_enclosing_volume(). Well this works well. But then it
>> shows up in my file manager (Nemo in this case).
>> How can I request that this virtual file system is not shown in such
>> software? I could not find this in glib API. My use case would be some
>> app which just wants to open various archives and interact with files
>> in these transparently. If an app mounts an archive for its own usage,
>> you don't want to clutter the user UI (file manager, open/save
>> dialogs, etc.) with useless mount points, which are only for app
>> usage, not useful at all for user consumption.
>> How can I do this, is this possible?
>
> Not that I know of...

I see.

>> Basically I just want to read files in archives. I could also
>> uncompress them, that's another possibility, but I thought that
>> reading files without unarchiving in some temporary directory was a
>> nicer design. Is not gvfs at all good for such use case? Maybe I am on
>> the wrong path?
>> Thanks!
>>
>
> gvfs is explicitly designed for handling users' data files; consequently
> it is usually left to the user to handle mounting and unmounting of
> volumes and these volumes are visible to the user.  What happens if your

Ok. Well this part of the gvfs wasn't that explicit to me. At least
in-code doc or the website would not clearly say this, in my opinion.
But maybe I did not read the right doc.

> program dies unexpectedly while a whole bunch of volumes are mounted?
> They would hang around since mounts are per-session.

Well yes, but this is true for any data usage. What if instead, I just
used a decompressor, and unarchive in a temporary dir? Well if I crash
before deleting the dir, the data also hang around (even more annoying
 because the tmp dir is not emptied at each session; it usually is at
each boot, but not necessarily). There is hardly a perfect solution on
this matter. A program crashing has a lot of potential to leave things
messy. That's why crashes are bugs. ;-)

> Basically, although I like the fact that you're putting gvfs to some
> interesting use case, I don't think it's the right approach.

I see. Too bad, I hoped there would exist such an API in glib/gio
already. I would personally appreciate if gvfs' design could be
extended to be able to *also* handle non-user data. Without this, I
think the gvfs integration in gio lose quite a bit of interest. I
mean, it is still very awesome, but it leave this API limited to
create explicit mounting applications (like gvfs-mount), i.e.
file-oriented apps, not applications where browsing files is only a
mean to an end, not a goal (which are quite most of them!).
Do you think this could be done? If I were to report a feature request
on bugzilla, would a mounting option for hidden mount point be
considered, or it would be refused by design?

> The following may point you in the right direction for reading archives:
> http://www.hadess.net/2013/12/on-beauty-of-libarchive.html

Thanks. I'll have a look, though a quick skimming of the API seems to
tell me that's not what I wanted. This allows me to list and read data
in an archive, but I actually really wanted to be able to do various
things, like execute files in an archive and such (imagine for
instance a plugin system, where plugins are composed of scripts and
data packed in some archive. Running the script from inside the
archive, and this script still being able to access the rest of its
data in its own mount point — and communicating, through pipes or
whatever, with the main program — would be quite convenient).
I had not tested this part yet, but I imagine that since a mount point
was created for the archive, it would have been possible to run a
script this way through gio, without even getting it out of its
archive. Now though, since I know that anyway any mount point would be
cluttering user UI, I'll just explore other solutions.

But if you tell me a mount option could be done for this in some
future, I'll make a feature request on bugzilla, and maybe come back
to this solution if it's implemented.
Thanks anyway for the answer.

Jehan

> Regards
> --
> Ross Lagerwall
_______________________________________________
gvfs-list mailing list
gvfs-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gvfs-list

Reply via email to