From bosshrap at zhwin.ch Tue Jun 13 10:40:36 2006 From: bosshrap at zhwin.ch (Raphael Bosshard) Date: Tue, 13 Jun 2006 16:40:36 +0200 Subject: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) Message-ID: <448ECE64.9030800@zhwin.ch> See http://bugzilla.gnome.org/show_bug.cgi?id=344296 This patch changes the human readable filesizes (gnome_vfs_format_file_size_for_display) which are curently displayed (rather missleading) with binary prefix multipliers (such as Kilo, Mega, Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). The IEC approved standard symbols (KiB, MiB, GiB) are used. For more information please read http://en.wikipedia.org/wiki/Binary_prefix So long, Raphael -------------- next part -------------- A non-text attachment was scrubbed... Name: gnome-vfs-display-binary-prefix.patch Type: text/x-patch Size: 1814 bytes Desc: not available Url : http://mail.gnome.org/archives/gnome-vfs-list/attachments/20060613/e6cecfd1/attachment.bin From alexl at redhat.com Sat Jun 17 04:57:21 2006 From: alexl at redhat.com (Alexander Larsson) Date: Sat, 17 Jun 2006 10:57:21 +0200 Subject: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) In-Reply-To: <448ECE64.9030800@zhwin.ch> References: <448ECE64.9030800@zhwin.ch> Message-ID: <1150534641.1962.19.camel@greebo> On Tue, 2006-06-13 at 16:40 +0200, Raphael Bosshard wrote: > See http://bugzilla.gnome.org/show_bug.cgi?id=344296 > > This patch changes the human readable filesizes > (gnome_vfs_format_file_size_for_display) which are curently displayed > (rather missleading) with binary prefix multipliers (such as Kilo, Mega, > Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). > The IEC approved standard symbols (KiB, MiB, GiB) are used. > > For more information please read http://en.wikipedia.org/wiki/Binary_prefix This has already been denied in bugs like: http://bugzilla.gnome.org/show_bug.cgi?id=127175 Which references mails like: http://mail.gnome.org/archives/gnome-doc-list/2003-December/msg00004.html and the gnome docs style guides: http://developer.gnome.org/documents/style-guide/units.html For what its worth I very much agree with Patrick. The binary prefixes are silly and nobody but anal-retentive ultra-geeks will understand them, thus confusing the general userbase (who haven't seen them before). =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl at redhat.com alla at lysator.liu.se He's a sword-wielding pirate librarian searching for his wife's true killer. She's a time-travelling junkie Hell's Angel in the wrong place at the wrong time. They fight crime! From nf2 at scheinwelt.at Sun Jun 18 18:53:56 2006 From: nf2 at scheinwelt.at (nf2) Date: Mon, 19 Jun 2006 00:53:56 +0200 Subject: libxdg-vfs and Gtk-Filechooser Message-ID: <4495D984.5090705@scheinwelt.at> Hi, The experimental "libxdg-vfs" provides a generic interface to VFS libraries. It tries to autodetect the current desktop and then connects to Gnome-VFS or KIO by launching the backend executables xdg_vfs_gnome or xdg_vfs_kde. http://www.scheinwelt.at/~norbertf/dadapt/files/xdg_utils/doc/libxdg-vfs.html The target of "libxdg-vfs" would be giving applications access to ftp/smb shares etc... Of course this also involves bringing VFS access to filechoosers. AFAIK Gtk-Filechooser has pluggable backends (GtkFilesystem). It would be interesting if it could also run on top of "libxdg-vfs". The problem is, that i couldn't find any documentation how to implement a GtkFilesystem module. Could you please give me an introduction and maybe tell me about the specific requirements for a GtkFilesystem? Perhaps i need to provide more functions through "libxdg-vfs": listing and mounting Volumes, obtaining icon-paths,... Regards, Norbert From chris at gnome-de.org Sun Jun 18 13:36:47 2006 From: chris at gnome-de.org (Christian Neumair) Date: Sun, 18 Jun 2006 19:36:47 +0200 Subject: [PATCH] Improve docs, new attempt Message-ID: <1150652208.22660.3.camel@localhost.localdomain> I've spent some more hours on GnomeVFS docs and the Xfer docs should be in a way better shape now. I got commit permission for the last one already, but this one is significantly larger (240 kB, but including the tmpl/ regeneration garbage). -- Christian Neumair -------------- next part -------------- A non-text attachment was scrubbed... Name: gnome-vfs-doc-3.diff.gz Type: application/x-gzip Size: 49984 bytes Desc: not available Url : http://mail.gnome.org/archives/gnome-vfs-list/attachments/20060618/b91d751b/attachment-0001.bin From ensonic at hora-obscura.de Mon Jun 19 18:30:37 2006 From: ensonic at hora-obscura.de (Stefan Kost) Date: Tue, 20 Jun 2006 01:30:37 +0300 Subject: [PATCH] Improve docs, new attempt In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> References: <1150652208.22660.3.camel@localhost.localdomain> Message-ID: <1150756237.15396.6.camel@fluffy.local> Hi Christian, Am Sonntag, den 18.06.2006, 19:36 +0200 schrieb Christian Neumair: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). I strongly recommend to move all docs to the source files and remove the tmpl files from cvs totaly. If developers use different versions of gtk-doc, commiting partialy generated files such as the files under tmpl/ can often cause conflicts like those we know with po/*.po files. Besides developers will more likely update docs when they are close to the sources. In case you are not aware, even the section docs can be added to the sources (see the gtk-doc manual in yelp). Stefan From chipzz at ULYSSIS.Org Mon Jun 19 21:42:19 2006 From: chipzz at ULYSSIS.Org (Chipzz) Date: Tue, 20 Jun 2006 03:42:19 +0200 (CEST) Subject: [PATCH] Improve docs, new attempt In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> References: <1150652208.22660.3.camel@localhost.localdomain> Message-ID: I only read about half of your patch, and not even all of it carefully, but here are a couple of suggestions: + * Either way, it acts like #GnomeVFSXferProgressCallback + * would act in non-asynchronous mode. The differences in + * invocation are explained in the gnome_vfs_async_xfer() + * documentation documentation. -> 2x documentation. + * @GNOME_VFS_FILE_TYPE_REGULAR: The file is regular (stat: %S_ISDIR). + * @GNOME_VFS_FILE_TYPE_DIRECTORY: The file is a directory (stat: %S_ISREG). -> "The file is a regular file" -> %S_ISDIR and %S_ISREG are swapped. + * @GNOME_VFS_PERM_USER_READ: Owner has read permission. etc... -> permission*s* ? + * @GNOME_VFS_PERM_OTHER_ALL: Others have all permissionss. -> permission*ss* ! + * @block_count: The size of the file in 512-byte blocks (a #GnomeVFSFileSize), -> I may be totally wrong here, but isn't this filesystem dependant? kr, On Sun, 18 Jun 2006, Christian Neumair wrote: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). Chipzz AKA Jan Van Buggenhout -- ------------------------------------------------------------------------ UNIX isn't dead - It just smells funny Chipzz at ULYSSIS.Org ------------------------------------------------------------------------ "Baldric, you wouldn't recognize a subtle plan if it painted itself pur- ple and danced naked on a harpsicord singing 'subtle plans are here a- gain'." From bosshrap at zhwin.ch Tue Jun 20 09:24:20 2006 From: bosshrap at zhwin.ch (Raphael Bosshard) Date: Tue, 20 Jun 2006 15:24:20 +0200 Subject: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) In-Reply-To: <1150534641.1962.19.camel@greebo> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> Message-ID: <1150809860.15905.28.camel@numenor> Hello there! > For what its worth I very much agree with Patrick. The binary prefixes > are silly and nobody but anal-retentive ultra-geeks will understand > them, thus confusing the general userbase (who haven't seen them > before). Well, that's strange. I never considered myself a "anal-retentive ultra-geek". And I certainly never thought that my sister would fit into the category of "anal-retentive ultra-geeks". And yet she was the one who brought up the topic when we upgraded her computer with a new hard disk last week. The disk was labeled "250 Gigabyte". Yet when we installed it,"only" 238 Gigabytes were available. I explained her that the disk manufacturer interpreted the term "Giga" in a other way then the software manufacturer. Being an "anal-retentive ultra-geek", she was bothered by this. My sister is by no means a technical person. But to her european decimalised mind "Kilo" means "a thousand" and not "a thousand and twenty four", just in the way that "Mega" means "a million" and not "one million four hundred forty nine thousand six hundred sixteen". It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean "Giga". But I always thought that only "anal-retentive ultra-geeks" know that and I recently noticed it confuses the the general userbase (who haven't heard of that before). The strange thing is that almost everyone seems to agree (even Patrick) that binary prefixes are a good Idea. However; everyone seems to wait with the adaption of binary prefixes until everyone around has adapted them. Funny thing. I see no need to bother the documentation team; there is to much resistance against binary prefixes. So long, Raphael From alexl at redhat.com Tue Jun 20 09:49:59 2006 From: alexl at redhat.com (Alexander Larsson) Date: Tue, 20 Jun 2006 15:49:59 +0200 Subject: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) In-Reply-To: <1150809860.15905.28.camel@numenor> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> <1150809860.15905.28.camel@numenor> Message-ID: <1150811399.16397.51.camel@greebo> On Tue, 2006-06-20 at 15:24 +0200, Raphael Bosshard wrote: > > For what its worth I very much agree with Patrick. The binary prefixes > > are silly and nobody but anal-retentive ultra-geeks will understand > > them, thus confusing the general userbase (who haven't seen them > > before). > > Well, that's strange. I never considered myself a "anal-retentive > ultra-geek". And I certainly never thought that my sister would fit into > the category of "anal-retentive ultra-geeks". And yet she was the one > who brought up the topic when we upgraded her computer with a new hard > disk last week. The disk was labeled "250 Gigabyte". Yet when we > installed it,"only" 238 Gigabytes were available. I explained her that > the disk manufacturer interpreted the term "Giga" in a other way then > the software manufacturer. Being an "anal-retentive ultra-geek", she was > bothered by this. > > My sister is by no means a technical person. But to her european > decimalised mind "Kilo" means "a thousand" and not "a thousand and > twenty four", just in the way that "Mega" means "a million" and not "one > million four hundred forty nine thousand six hundred sixteen". I'm well aware of the problems with 1000/1024 multipliers. However, consider your sisters case if we used 238 gibibyte instead of 238 gigabyte. 1) We'd still show 238 instead of 250 which is listed which would cause your sister to wonder where the space went. 2) There would be a strange acronym in the UI that she had never seen before and didn't match what is commonly in use in ads, docs, hardware specifications etc. Its unfortunately true that terms like gigabyte and megabyte are very widespread and in active use by people who don't really know exactly what they mean. Changing this use is slow and hard. > It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean > "Giga". But I always thought that only "anal-retentive ultra-geeks" know > that and I recently noticed it confuses the the general userbase (who > haven't heard of that before). > > The strange thing is that almost everyone seems to agree (even Patrick) > that binary prefixes are a good Idea. However; everyone seems to wait > with the adaption of binary prefixes until everyone around has adapted > them. Funny thing. This is almost always the case with such large (in terms of number of places/organizations it has to be changed) changes. I think its partly because the net gain of doing the change isn't really that large. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl at redhat.com alla at lysator.liu.se He's a one-legged soccer-playing rock star who hangs with the wrong crowd. She's a plucky goth nun from Mars. They fight crime! From alexl@redhat.com Thu Jun 1 04:19:18 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 680983B0C81 for ; Thu, 1 Jun 2006 04:19:18 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16118-02 for ; Thu, 1 Jun 2006 04:19:15 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id D2B843B0C95 for ; Thu, 1 Jun 2006 04:19:14 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518JCYk032595; Thu, 1 Jun 2006 04:19:12 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518JCBf005878; Thu, 1 Jun 2006 04:19:12 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518J9Kt016649; Thu, 1 Jun 2006 04:19:10 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149115005.2331.18.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Date: Thu, 01 Jun 2006 10:19:10 +0200 Message-Id: <1149149950.5416.49.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 08:19:18 -0000 On Wed, 2006-05-31 at 18:36 -0400, David Zeuthen wrote: > Hi, > > Any reason this is not on the list? Also, please use my david@fubar.dk > email address since that's what I'm using for GNOME stuff. I dunno, it got removed at some point. I'm adding it back. > On Mon, 2006-05-29 at 14:04 +0200, Alexander Larsson wrote: > > On Wed, 2006-05-24 at 21:38 +0200, Xavier Claessens wrote: > > > Le mercredi 24 mai 2006 à 17:59 +0200, Alexander Larsson a écrit : > > > > Here is the thing. I don't expect there to be a GnomeVFSDrive for > > > > the /home volume (which i assume is a normal mountpoint on another > > > > partition). We should only have drive objects for real removable media > > > > mountpoints. > > > > > > I join a simple program I made which lists all your drives and volumes > > > and says if they are user visible. It's what helped me understand how > > > GnomeVFS works :-) > > > > This seems to be a bug in the hal version of the monitoring. We're not > > supposed to be creating drive objects for all harddrives in the system. > > A Drive is supposed to be something you can insert a removable volume > > in, like a cdrom reader, a floppy reader, or a usb card reader. On my > > system hal creates a drive for e.g. /mnt/hdb1 which is a normal ext3 > > filesystem mounted at roottime and not user-mountable. This shouldn't > > only exist in the volume monitor as a non-user_visible volume, not as a > > drive. This used to be papered over in computer:// since the volumes for > > the drives were always mounted and not user-visible, so they got > > hidden. > > > > David, I don't really know the hal stuff. Could you look into this? > > So I'm not really sure why we want this difference you are describing. > In fact I'd argue that we indeed want to show volumes from e.g. the > internal hard disk for e.g. your Windows and OS X partitions. > > And this indeed requires a GnomeVFSDrive because the partition may not > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > the partition the GnomeVFSDrive represents is actually mounted (that's > my understanding of the how Gnome VFS works). The initial design for drives was to represent devices that use removable media (such as cdrom drives, floppy drives, usb card readers, etc). For these devices the operations on the device are "natural" to the user. Its true that one can also view them as just "possible mountpoints for volumes", which means you could have a drive for your OSX or windows partition. However, when you expose this in the UI you suddenly turn a very explicit obvious hardware mapping into a way to expose the much more vague and complicated unix operation of "mounting a filesystem". I.E. you remove the mapping from icons in the UI to hardware units you can put stuff into. If you take the view of a non-unix person (i.e. one unaware of the details of mountpoints etc) using a Gnome desktop with a separate HD you have basically three cases. Either the partition is mounted, the user is allowed to mount the partition, or the user isn't allowed to mount the partition. In the first case we clearly should show a volume icon, and in the last case i argue that we should never show a drive icon (it would do nothing but confuse people). The question is what to in the second case. In an ideal desktop system I don't think that state really is very useful. What non-sysadmin-related use would you have for not mounting that volume if you are allowed to mount it anyway? In the case on a non-ideal unix system the question gets complicated and turns into a question about whether the mountpoint is an "internal implementation detail" of the filesystem mount tree or not, and this becomes very similar to the question whether to expand symlinks or not (don't expand /home to /mnt/hdb/home, but expand ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for others things are not so easy. I have for instance /mnt/hdb1 on my system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want to display this. Whether to show such drives or not is clearly a complicated, system-dependent issue and should be solved in the lower layers, and not solved in each app using gnome-vfs. The change that resulted in this being an acute problem was that we decided to hide drives that support auto-mount in all places but computer:// by using the is_user_visible flag of the drive. Doing this means that flag is used for that and can't also be used to flag whether a drive is "internal" or not. I think just not having drive objects for internal mountpoints is the easiest solution to this. > So I think what you want is to hide is exactly volumes that are mounted > on traditional FHS mount points, e.g. /, /usr. I can't see why we should > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > Filechooser) can handle this much better? I don't understand how you think nautilus can handle this better? =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a gun-slinging voodoo master criminal whom everyone believes is mad. She's a strong-willed impetuous detective descended from a line of powerful witches. They fight crime! From xclaesse@gmail.com Sun Jun 4 17:08:44 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 948253B01AC for ; Sun, 4 Jun 2006 17:08:44 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10855-08 for ; Sun, 4 Jun 2006 17:08:43 -0400 (EDT) Received: from outmx018.isp.belgacom.be (outmx018.isp.belgacom.be [195.238.4.117]) by menubar.gnome.org (Postfix) with ESMTP id 7837F3B016C for ; Sun, 4 Jun 2006 17:08:42 -0400 (EDT) Received: from outmx018.isp.belgacom.be (localhost [127.0.0.1]) by outmx018.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54L8WOP014717 for ; Sun, 4 Jun 2006 23:08:32 +0200 (envelope-from ) Received: from [10.0.0.3] (85-212.242.81.adsl.skynet.be [81.242.212.85]) by outmx018.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54L8V56014703; Sun, 4 Jun 2006 23:08:31 +0200 (envelope-from ) From: Xavier Claessens To: Alexander Larsson In-Reply-To: <1149149950.5416.49.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-OBWowAwOL3MMyW2FiPT8" Date: Sun, 04 Jun 2006 23:08:31 +0200 Message-Id: <1149455311.15249.18.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.005 tagged_above=-999 required=2 tests=[AWL=-0.475, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.005 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , David Zeuthen Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 21:08:44 -0000 --=-OBWowAwOL3MMyW2FiPT8 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Le jeudi 01 juin 2006 =C3=A0 10:19 +0200, Alexander Larsson a =C3=A9crit : > On Wed, 2006-05-31 at 18:36 -0400, David Zeuthen wrote: > > Hi, > >=20 > > Any reason this is not on the list? Also, please use my david@fubar.dk > > email address since that's what I'm using for GNOME stuff. >=20 > I dunno, it got removed at some point. I'm adding it back. >=20 > > On Mon, 2006-05-29 at 14:04 +0200, Alexander Larsson wrote: > > > On Wed, 2006-05-24 at 21:38 +0200, Xavier Claessens wrote: > > > > Le mercredi 24 mai 2006 =C3=A0 17:59 +0200, Alexander Larsson a =C3= =A9crit : > > > > > Here is the thing. I don't expect there to be a GnomeVFSDrive for > > > > > the /home volume (which i assume is a normal mountpoint on anothe= r > > > > > partition). We should only have drive objects for real removable = media > > > > > mountpoints. > > > >=20 > > > > I join a simple program I made which lists all your drives and volu= mes > > > > and says if they are user visible. It's what helped me understand h= ow > > > > GnomeVFS works :-) > > >=20 > > > This seems to be a bug in the hal version of the monitoring. We're no= t > > > supposed to be creating drive objects for all harddrives in the syste= m. > > > A Drive is supposed to be something you can insert a removable volume > > > in, like a cdrom reader, a floppy reader, or a usb card reader. On my > > > system hal creates a drive for e.g. /mnt/hdb1 which is a normal ext3 > > > filesystem mounted at roottime and not user-mountable. This shouldn't > > > only exist in the volume monitor as a non-user_visible volume, not as= a > > > drive. This used to be papered over in computer:// since the volumes = for > > > the drives were always mounted and not user-visible, so they got > > > hidden.=20 > > >=20 > > > David, I don't really know the hal stuff. Could you look into this? > >=20 > > So I'm not really sure why we want this difference you are describing. > > In fact I'd argue that we indeed want to show volumes from e.g. the > > internal hard disk for e.g. your Windows and OS X partitions.=20 > >=20 > > And this indeed requires a GnomeVFSDrive because the partition may not > > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > > the partition the GnomeVFSDrive represents is actually mounted (that's > > my understanding of the how Gnome VFS works). >=20 > The initial design for drives was to represent devices that use > removable media (such as cdrom drives, floppy drives, usb card readers, > etc). For these devices the operations on the device are "natural" to > the user. Its true that one can also view them as just "possible > mountpoints for volumes", which means you could have a drive for your > OSX or windows partition. However, when you expose this in the UI you > suddenly turn a very explicit obvious hardware mapping into a way to > expose the much more vague and complicated unix operation of "mounting a > filesystem". I.E. you remove the mapping from icons in the UI to > hardware units you can put stuff into. >=20 > If you take the view of a non-unix person (i.e. one unaware of the > details of mountpoints etc) using a Gnome desktop with a separate HD > you have basically three cases. Either the partition is mounted, the > user is allowed to mount the partition, or the user isn't allowed to > mount the partition. In the first case we clearly should show a volume > icon, and in the last case i argue that we should never show a drive > icon (it would do nothing but confuse people).=20 >=20 > The question is what to in the second case. In an ideal desktop system I > don't think that state really is very useful. What non-sysadmin-related > use would you have for not mounting that volume if you are allowed to > mount it anyway? In the case on a non-ideal unix system the question > gets complicated and turns into a question about whether the mountpoint > is an "internal implementation detail" of the filesystem mount tree or > not, and this becomes very similar to the question whether to expand > symlinks or not (don't expand /home to /mnt/hdb/home, but expand > ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you > never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for > others things are not so easy. I have for instance /mnt/hdb1 on my > system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want > to display this. >=20 > Whether to show such drives or not is clearly a complicated, > system-dependent issue and should be solved in the lower layers, and not > solved in each app using gnome-vfs. >=20 > The change that resulted in this being an acute problem was that we > decided to hide drives that support auto-mount in all places but > computer:// by using the is_user_visible flag of the drive. Doing this > means that flag is used for that and can't also be used to flag whether > a drive is "internal" or not. I think just not having drive objects for > internal mountpoints is the easiest solution to this. >=20 > > So I think what you want is to hide is exactly volumes that are mounted > > on traditional FHS mount points, e.g. /, /usr. I can't see why we shoul= d > > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > > Filechooser) can handle this much better? >=20 > I don't understand how you think nautilus can handle this better?=20 >=20 I think we can't do everything with only an user_visible flag. There is 2 different concepts: first the user_visible itself which should be used to hide partition's drives and other useless drives, second the auto-mountable property. I suggest to make something like: gboolean gnome_vfs_drive_is_auto_mountable (GnomeVFSDrive*); Like that we display all user_visible drives in computer:/// (including unmounted cdroms) but we only show user_visible && !auto_moutable drive in nautilus's place sidebar. I don't know how will GtkFileChooser work with that, because it should so see the auto_mount flag and hide automountable drives... Currently it seems that it follows the user_visible flag, at least when using gnomeVFS backend. I you are OK with this idea I can make patches for GnomeVFS/Nautilus 2.15.x For the other problem, which is computer:/// doesn't handle multi-volume drives, what about just updating the drive's icon when the first volume comes (like now in most cases) and if we get more volumes we add files like I did in my first patch. What do you think about that ? Xavier Claessens. --=-OBWowAwOL3MMyW2FiPT8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEg0vO6dEBUn2qPAMRAvTuAJ9ntPlAFivY6fFkxmdvJcY47+BPFgCfU8uo 02AtDX37Xa3rjeu3Tck07hg= =Mgs1 -----END PGP SIGNATURE----- --=-OBWowAwOL3MMyW2FiPT8-- From xclaesse@gmail.com Sun Jun 4 17:19:35 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 373613B0311 for ; Sun, 4 Jun 2006 17:19:35 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 11487-02 for ; Sun, 4 Jun 2006 17:19:34 -0400 (EDT) Received: from outmx006.isp.belgacom.be (outmx006.isp.belgacom.be [195.238.4.99]) by menubar.gnome.org (Postfix) with ESMTP id A36623B01B7 for ; Sun, 4 Jun 2006 17:19:33 -0400 (EDT) Received: from outmx006.isp.belgacom.be (localhost [127.0.0.1]) by outmx006.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54LJTW9004701 for ; Sun, 4 Jun 2006 23:19:30 +0200 (envelope-from ) Received: from [10.0.0.3] (85-212.242.81.adsl.skynet.be [81.242.212.85]) by outmx006.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54LJQOB004670 for ; Sun, 4 Jun 2006 23:19:27 +0200 (envelope-from ) From: Xavier Claessens To: gnome-vfs-list@gnome.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-H/k/fxPKXIxMmyFvNdyr" Date: Sun, 04 Jun 2006 23:19:26 +0200 Message-Id: <1149455967.15249.30.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.003 tagged_above=-999 required=2 tests=[AWL=-0.473, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.003 X-Spam-Level: Subject: volume-unmounted signal on GnomeVFSDrive X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 21:19:35 -0000 --=-H/k/fxPKXIxMmyFvNdyr Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hello, As I understand the "volume-unmounted" signal is emitted before the volume unmounted is really removed from the drive. So in the callback, if we run gnome_vfs_drive_get_mounted_volumes() it will return a GList still containing the unmounted GnomeVFSVolume. I think it should be very useful to have a callback after everything is done. For example in nautilus'places sidebar when we get the "volume-unmounted" callback we can't update the sidebar yet because the drive still has the volume connected... so we add a g_idle_add() to have a callback after everything is done and then we can update the sidebar. I think that's more a workaround than a real solution. What about adding in GnomeVFSDrive and GnomeVFSVolumeMonitor a "volume-post-unmount" callback (we already have a "volume-pre-unmount" cb) ? I you are OK with the idea I can make a patch. Xavier Claessens. --=-H/k/fxPKXIxMmyFvNdyr Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEg05e6dEBUn2qPAMRArR9AKCAmWMgqHE/lg5Ub8z2UhNQafssNgCffgDr h5y25qZ9aTpyf3qPuFAFv0w= =yGzq -----END PGP SIGNATURE----- --=-H/k/fxPKXIxMmyFvNdyr-- From keni4i@yahoo.com Sun Jun 4 15:51:57 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 5BB533B017A for ; Sun, 4 Jun 2006 15:51:57 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07508-01 for ; Sun, 4 Jun 2006 15:51:54 -0400 (EDT) Received: from web61323.mail.yahoo.com (web61323.mail.yahoo.com [209.73.179.77]) by menubar.gnome.org (Postfix) with SMTP id 530A33B0101 for ; Sun, 4 Jun 2006 15:51:54 -0400 (EDT) Received: (qmail 83293 invoked by uid 60001); 4 Jun 2006 19:51:53 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=prZjog0TXPnF+wlE8LBjO9ySalKcONTauN625ePWqsxA6/eYIQZOrZWunGBSRW20iSnr/iiWsHPBFthOeIqLOsLexDW7T3aTYgwjucP/yQ1qjDWlisdhLiDAzsEwmX8lzYFi+yno63B1RiIoGz7A13QEW8nvwxcZyJ8QEYBNRec= ; Message-ID: <20060604195153.83291.qmail@web61323.mail.yahoo.com> Received: from [68.100.226.12] by web61323.mail.yahoo.com via HTTP; Sun, 04 Jun 2006 12:51:53 PDT Date: Sun, 4 Jun 2006 12:51:53 -0700 (PDT) From: Ken Ishii To: gnome-vfs-list@gnome.org MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.119 tagged_above=-999 required=2 tests=[AWL=-1.767, BAYES_50=0.001, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447] X-Spam-Score: -0.119 X-Spam-Level: X-Mailman-Approved-At: Sun, 04 Jun 2006 18:29:01 -0400 Subject: gnome_vfs_uri_hash() bug? X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 19:51:57 -0000 gnome_vfs_uri_hash() has the following code section: for (uri_p = uri; uri_p != NULL; uri_p = uri_p->parent) { HASH_STRING (hash_value, uri_p->text); HASH_STRING (hash_value, uri_p->method_string); if (uri_p->parent != NULL) { const GnomeVFSToplevelURI *toplevel; toplevel = (const GnomeVFSToplevelURI *) uri_p; Since GnomeVFSToplevelURI is defined to be an URI without a parent, shouldn't if (uri_p->parent != NULL) be if (uri_p->parent == NULL) instead? Ken Ishii __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From david@fubar.dk Mon Jun 5 17:57:05 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 6E8BB3B0625 for ; Mon, 5 Jun 2006 17:57:05 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02934-09 for ; Mon, 5 Jun 2006 17:57:01 -0400 (EDT) Received: from davidz.fubar.dk (unknown [208.184.5.49]) by menubar.gnome.org (Postfix) with ESMTP id 264F33B03A0 for ; Mon, 5 Jun 2006 17:57:00 -0400 (EDT) Received: from [192.168.1.115] (unknown [127.0.0.1]) by davidz.fubar.dk (Postfix) with ESMTP id C71269CE06B; Mon, 5 Jun 2006 17:56:59 -0400 (EDT) From: David Zeuthen To: Alexander Larsson In-Reply-To: <1149149950.5416.49.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> Content-Type: text/plain Date: Mon, 05 Jun 2006 17:58:06 -0400 Message-Id: <1149544687.5951.56.camel@daxter.boston.redhat.com> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.567 tagged_above=-999 required=2 tests=[AWL=0.032, BAYES_00=-2.599] X-Spam-Score: -2.567 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 21:57:05 -0000 Hi, Sorry for the late reply, On Thu, 2006-06-01 at 10:19 +0200, Alexander Larsson wrote: > > So I'm not really sure why we want this difference you are describing. > > In fact I'd argue that we indeed want to show volumes from e.g. the > > internal hard disk for e.g. your Windows and OS X partitions. > > > > And this indeed requires a GnomeVFSDrive because the partition may not > > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > > the partition the GnomeVFSDrive represents is actually mounted (that's > > my understanding of the how Gnome VFS works). > > The initial design for drives was to represent devices that use > removable media (such as cdrom drives, floppy drives, usb card readers, > etc). For these devices the operations on the device are "natural" to > the user. Its true that one can also view them as just "possible > mountpoints for volumes", which means you could have a drive for your > OSX or windows partition. However, when you expose this in the UI you > suddenly turn a very explicit obvious hardware mapping into a way to > expose the much more vague and complicated unix operation of "mounting a > filesystem". I.E. you remove the mapping from icons in the UI to > hardware units you can put stuff into. As a user I'm not really sure there is a huge difference between "Macintosh HD" and "1GB Compact Flash media". Both contains files I'm interested in using, I don't care where they come from. > If you take the view of a non-unix person (i.e. one unaware of the > details of mountpoints etc) using a Gnome desktop with a separate HD > you have basically three cases. Either the partition is mounted, the > user is allowed to mount the partition, or the user isn't allowed to > mount the partition. In the first case we clearly should show a volume > icon, and in the last case i argue that we should never show a drive > icon (it would do nothing but confuse people). > > The question is what to in the second case. In an ideal desktop system I > don't think that state really is very useful. What non-sysadmin-related > use would you have for not mounting that volume if you are allowed to > mount it anyway? In the case on a non-ideal unix system the question > gets complicated and turns into a question about whether the mountpoint > is an "internal implementation detail" of the filesystem mount tree or > not, and this becomes very similar to the question whether to expand > symlinks or not (don't expand /home to /mnt/hdb/home, but expand > ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you > never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for > others things are not so easy. I have for instance /mnt/hdb1 on my > system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want > to display this. > > Whether to show such drives or not is clearly a complicated, > system-dependent issue and should be solved in the lower layers, and not > solved in each app using gnome-vfs. > > The change that resulted in this being an acute problem was that we > decided to hide drives that support auto-mount in all places but > computer:// by using the is_user_visible flag of the drive. Doing this > means that flag is used for that and can't also be used to flag whether > a drive is "internal" or not. I think just not having drive objects for > internal mountpoints is the easiest solution to this. Well, the reality is that lots of people dual or triple boot and they have files they care about on the Macintosh and Windows hard drives. And I don't think it's uncommon at all to attach removable drives formatted with e.g. HFS+ or NTFS. If security (we can't let the user automatically get full read access to e.g. an hfs+ fs on the Mac harddisk) and availability of file system driver code (NTFS write support is still not widely available) wasn't a concern this would be easy; we'd simply automount these with uid=500 and be done with it. We want this such that the user can access his files in e.g. /Users/davidz which has a different uid on the Mac OS X system (such as uid=1000). However, things are a lot more complicated. For example, if you have full write access (like when you mount with uid=500) to the root partition of another operating system as an unprivileged user (with uid=500) you can essentially change the password database on that fs and, bingo, what was previously a secure system before you put Linux (or whatever on it) now has issues. There's also things like EAL [1] that is important, e.g. we should be able to totally lock down the system such that you can't use it for anything, not even access your removable media. Surely, in this situation, we want to still show to the user that he got a card reader plugged in but that the organizational policy of his employer (or whatever) prevents him from using it. Perhaps, in the name of usability, we might give him a button titled "Request permission to use device" (would file a request to the IT department) when he clicks it or, if it's an administrator, he can put in his password or authenticate in other ways. This is where usability and security meets, fighting each other like cats and dogs. Can you see the dilemma? Like it or not, this is from the real world [2] and bills like Sarbanes-Oxley etc. don't make this *any* easier. This is why I started PolicyKit. PolicyKit and gnome-mount will help solve this problem though not in a very elegant way [3] but it will provide a "one-time-click" "solution" to the problem. Some might say the user looses here (just look at the recent Microsoft Vista reviews where the user is bombarded with dialogs) but we're still left with the dilemma mentioned above. And we do want (I believe) GNOME to be a viable contender on the desktop and that means we need to support lock-down and things like EAL and Sarbanes-Oxley. Just as we want it to work for home users who just wants to access that movie on the NTFS or hfs+ partition from his home directory on "that other operating system". The approach taken by PolicyKit and gnome-mount is best compromise I've come up with so far. I'm not convinced it's perfect though, and I haven't had time to complete it yet though things are slowly moving forward. So what am I trying to say? I'm trying to say it makes sense to show all drives and their mountable file systems notwithstanding the user might be allowed to access them. Because if they're not privileged they should at least get a chance to see the drive is there (otherwise you get "My drive didn't show up! Is the computer broken?") along with an explanation why they can't access it maybe even with a possibility to auth for access. > > So I think what you want is to hide is exactly volumes that are mounted > > on traditional FHS mount points, e.g. /, /usr. I can't see why we should > > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > > Filechooser) can handle this much better? > > I don't understand how you think nautilus can handle this better? Agreed, yea, probably GNOME VFS would know best. David [1] : http://en.wikipedia.org/wiki/Evaluation_Assurance_Level [2] : http://www.pbs.org/cringely/pulpit/pulpit20040916.html Search for "epoxy". [3] : See http://people.freedesktop.org/~david/perm-override/gnome-mount-perm-override-1.png http://people.freedesktop.org/~david/perm-override/gnome-mount-perm-override-2.png From alexl@redhat.com Wed Jun 7 02:58:31 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 730983B0342 for ; Wed, 7 Jun 2006 02:58:31 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20729-09 for ; Wed, 7 Jun 2006 02:58:30 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id C47583B01B2 for ; Wed, 7 Jun 2006 02:58:29 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wSRX026164; Wed, 7 Jun 2006 02:58:28 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wNdo031791; Wed, 7 Jun 2006 02:58:23 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wMrc020424; Wed, 7 Jun 2006 02:58:23 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149544687.5951.56.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> Content-Type: text/plain Date: Wed, 07 Jun 2006 08:58:24 +0200 Message-Id: <1149663504.5416.123.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 06:58:31 -0000 On Mon, 2006-06-05 at 17:58 -0400, David Zeuthen wrote: > So what am I trying to say? I'm trying to say it makes sense to show all > drives and their mountable file systems notwithstanding the user might > be allowed to access them. Because if they're not privileged they should > at least get a chance to see the drive is there (otherwise you get "My > drive didn't show up! Is the computer broken?") along with an > explanation why they can't access it maybe even with a possibility to > auth for access. I don't really follow your reasoning fully. I agree that users want to see their OSX and/or windows mounts from linux, but I think you over-empasize the "single user, dual boot, home desktop" usecase. In the case of more traditional sysadmined unix setups (at universities and whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs mounts, tmpfs, /usr, /home, extra drives/partitions, etc). If we were to show all these, then I think things would look pretty confusing. I really think we need to hide a bunch of mountpoints. Some mountpoints can probably be hardcoded (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never think of all possibilities, so we should probably have a way to mark them. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a benighted playboy dog-catcher whom everyone believes is mad. She's a sarcastic extravagent former first lady from a family of eight older brothers. They fight crime! From xclaesse@gmail.com Wed Jun 7 08:51:14 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 546413B0B28 for ; Wed, 7 Jun 2006 08:51:14 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13070-01 for ; Wed, 7 Jun 2006 08:51:13 -0400 (EDT) Received: from outmx007.isp.belgacom.be (outmx007.isp.belgacom.be [195.238.5.234]) by menubar.gnome.org (Postfix) with ESMTP id A19F93B03C4 for ; Wed, 7 Jun 2006 08:51:12 -0400 (EDT) Received: from outmx007.isp.belgacom.be (localhost [127.0.0.1]) by outmx007.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k57Cow2U030006 for ; Wed, 7 Jun 2006 14:51:03 +0200 (envelope-from ) Received: from [10.0.0.3] (68-220.242.81.adsl.skynet.be [81.242.220.68]) by outmx007.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k57CovMd029978; Wed, 7 Jun 2006 14:50:57 +0200 (envelope-from ) From: Xavier Claessens To: Alexander Larsson In-Reply-To: <1149663504.5416.123.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-hOGtOF5lpypbLjK1X4t7" Date: Wed, 07 Jun 2006 14:51:08 +0200 Message-Id: <1149684668.5095.1.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.001 tagged_above=-999 required=2 tests=[AWL=-0.471, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.001 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , David Zeuthen Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 12:51:14 -0000 --=-hOGtOF5lpypbLjK1X4t7 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Le mercredi 07 juin 2006 =C3=A0 08:58 +0200, Alexander Larsson a =C3=A9crit= : > On Mon, 2006-06-05 at 17:58 -0400, David Zeuthen wrote: >=20 > > So what am I trying to say? I'm trying to say it makes sense to show al= l > > drives and their mountable file systems notwithstanding the user might > > be allowed to access them. Because if they're not privileged they shoul= d > > at least get a chance to see the drive is there (otherwise you get "My > > drive didn't show up! Is the computer broken?") along with an > > explanation why they can't access it maybe even with a possibility to > > auth for access. >=20 > I don't really follow your reasoning fully. I agree that users want to > see their OSX and/or windows mounts from linux, but I think you > over-empasize the "single user, dual boot, home desktop" usecase. In the > case of more traditional sysadmined unix setups (at universities and > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > mounts, tmpfs, /usr, /home, extra drives/partitions, etc).=20 >=20 > If we were to show all these, then I think things would look pretty > confusing. I really think we need to hide a bunch of mountpoints. Some > mountpoints can probably be hardcoded > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > think of all possibilities, so we should probably have a way to mark > them. >=20 We should only display "/media/*" and "/mnt/*" Xavier. --=-hOGtOF5lpypbLjK1X4t7 Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEhsu76dEBUn2qPAMRApRBAJwNCLBuPyxCtkh0sIbICQBqpRGDFACfaN00 Kc9Uz6ZIjQ4wxsbbHO74ZG0= =Wmaq -----END PGP SIGNATURE----- --=-hOGtOF5lpypbLjK1X4t7-- From tomasek@ebed.etf.cuni.cz Wed Jun 7 08:55:00 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 864A63B0C97 for ; Wed, 7 Jun 2006 08:55:00 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13300-04 for ; Wed, 7 Jun 2006 08:54:57 -0400 (EDT) Received: from ebed.etf.cuni.cz (ebed.etf.cuni.cz [195.113.5.3]) by menubar.gnome.org (Postfix) with ESMTP id E66983B03C4 for ; Wed, 7 Jun 2006 08:54:56 -0400 (EDT) Received: from ebed.etf.cuni.cz (localhost.localdomain [127.0.0.1]) by ebed.etf.cuni.cz (8.12.11.20060308/8.12.11) with ESMTP id k57ChDPX029737 for ; Wed, 7 Jun 2006 14:43:13 +0200 Received: (from tomasek@localhost) by ebed.etf.cuni.cz (8.12.11.20060308/8.12.11/Submit) id k57ChDrV029735 for gnome-vfs-list@gnome.org; Wed, 7 Jun 2006 14:43:13 +0200 Date: Wed, 7 Jun 2006 14:43:13 +0200 From: Petr Tomasek To: gnome-vfs-list@gnome.org Message-ID: <20060607124313.GA29329@ebed.etf.cuni.cz> References: <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1149684668.5095.1.camel@zdra-desktop> User-Agent: Mutt/1.4.1i X-Homepage: http://www.etf.cuni.cz/~tomasek/ X-Echelon: bomb Arafat Intifada bus kach drugs mafia boss heroin spy Semtex Saddam Al-Qaida Usama bin Ladin Bush Sharon X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.535 tagged_above=-999 required=2 tests=[AWL=0.064, BAYES_00=-2.599] X-Spam-Score: -2.535 X-Spam-Level: Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 12:55:00 -0000 > > I don't really follow your reasoning fully. I agree that users want to > > see their OSX and/or windows mounts from linux, but I think you > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > case of more traditional sysadmined unix setups (at universities and > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > If we were to show all these, then I think things would look pretty > > confusing. I really think we need to hide a bunch of mountpoints. Some > > mountpoints can probably be hardcoded > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > think of all possibilities, so we should probably have a way to mark > > them. > > > > We should only display "/media/*" and "/mnt/*" > > Xavier. Please, let it be configurable! There are people who prefer mounting media under "/" (like "/cdrom", etc.) P.T. -- Petr Tomasek From david@fubar.dk Wed Jun 7 09:42:51 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 565EE3B03C1 for ; Wed, 7 Jun 2006 09:42:51 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17395-02 for ; Wed, 7 Jun 2006 09:42:48 -0400 (EDT) Received: from davidz.fubar.dk (unknown [208.184.5.49]) by menubar.gnome.org (Postfix) with ESMTP id 8057D3B0229 for ; Wed, 7 Jun 2006 09:42:48 -0400 (EDT) Received: from [192.168.1.115] (unknown [127.0.0.1]) by davidz.fubar.dk (Postfix) with ESMTP id 6CDC19CE06F; Wed, 7 Jun 2006 09:42:47 -0400 (EDT) From: David Zeuthen To: Xavier Claessens In-Reply-To: <1149684668.5095.1.camel@zdra-desktop> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> Content-Type: text/plain Date: Wed, 07 Jun 2006 09:43:54 -0400 Message-Id: <1149687834.2424.24.camel@daxter.boston.redhat.com> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.57 tagged_above=-999 required=2 tests=[AWL=0.029, BAYES_00=-2.599] X-Spam-Score: -2.57 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , Alexander Larsson Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 13:42:51 -0000 On Wed, 2006-06-07 at 14:51 +0200, Xavier Claessens wrote: > > I don't really follow your reasoning fully. I agree that users want to > > see their OSX and/or windows mounts from linux, but I think you > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > case of more traditional sysadmined unix setups (at universities and > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > If we were to show all these, then I think things would look pretty > > confusing. I really think we need to hide a bunch of mountpoints. Some > > mountpoints can probably be hardcoded > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > think of all possibilities, so we should probably have a way to mark > > them. Yea, of course we should hide such bizarre mount points. My point was merely we ought to show drives/mounts even if the user is not privileged to mount them. > > > > We should only display "/media/*" and "/mnt/*" Yup, that's one option, maybe just resort to showing entries from /media then alexl's /mnt/hdb1 drive won't be shown (and if alexl wants it to be shown he can move the mount point to /media). Personally I think we should just hide all the directories and subdirs as defined by FHS2.3. We do that here http://cvs.gnome.org/viewcvs/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c?view=markup in function _hal_volume_policy_check() though I'm unsure whether this code is used at the moment (will look into that). David From alexl@redhat.com Fri Jun 9 07:20:04 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id CF0E53B0097 for ; Fri, 9 Jun 2006 07:20:04 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18633-05 for ; Fri, 9 Jun 2006 07:20:00 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 1AB843B011C for ; Fri, 9 Jun 2006 07:20:00 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJwQm005302; Fri, 9 Jun 2006 07:19:58 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJwLZ006488; Fri, 9 Jun 2006 07:19:58 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJvoV024293; Fri, 9 Jun 2006 07:19:57 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149687834.2424.24.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> <1149687834.2424.24.camel@daxter.boston.redhat.com> Content-Type: text/plain Date: Fri, 09 Jun 2006 13:19:57 +0200 Message-Id: <1149851997.3023.51.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 11:20:05 -0000 On Wed, 2006-06-07 at 09:43 -0400, David Zeuthen wrote: > On Wed, 2006-06-07 at 14:51 +0200, Xavier Claessens wrote: > > > I don't really follow your reasoning fully. I agree that users want to > > > see their OSX and/or windows mounts from linux, but I think you > > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > > case of more traditional sysadmined unix setups (at universities and > > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > > > If we were to show all these, then I think things would look pretty > > > confusing. I really think we need to hide a bunch of mountpoints. Some > > > mountpoints can probably be hardcoded > > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > > think of all possibilities, so we should probably have a way to mark > > > them. > > Yea, of course we should hide such bizarre mount points. My point was > merely we ought to show drives/mounts even if the user is not privileged > to mount them. > > > > > > > > We should only display "/media/*" and "/mnt/*" > > Yup, that's one option, maybe just resort to showing entries from /media > then alexl's /mnt/hdb1 drive won't be shown (and if alexl wants it to be > shown he can move the mount point to /media). Personally I think we > should just hide all the directories and subdirs as defined by FHS2.3. > We do that here > > http://cvs.gnome.org/viewcvs/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c?view=markup > > in function _hal_volume_policy_check() though I'm unsure whether this > code is used at the moment (will look into that). Well, the bug report: http://bugzilla.gnome.org/show_bug.cgi?id=341446 showed drives for things like / and /home. So something is going wrong here. I see a _hal_drive_policy_check that is empty though. Anyway, what i think we should do is: Have a policy for what mountpoints to create drives for. Be it by blacklisting or whitelisting. If the policy says the mountpoint shouldn't have a drive then we don't even create one. Set is_user_visible to false on drives that support auto-mounting, so we can hide them everywhere but in computer:///. I think blacklisting will probably work well enough, but you probably need to add more stuff than just the toplevel FHS mountpoints, for instance /dev/shmem and common non-linux mountpoints. Also, it looks like you create drives based on currently mounted volumes that are not in fstab? This will generate a bunch of drives when using things like autofs for separate /home/ mountpoints and cause things like /proc/bus/usb to get drives. Does it ever make sense to create a drive object for a volume like this? It'll only live as long as the volume and you can't really use it for anything. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a time-tossed coffee-fuelled inventor on his last day in the job. She's a warm-hearted mutant research scientist from a different time and place. They fight crime! From alexl@redhat.com Fri Jun 9 07:21:46 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id A75453B0121 for ; Fri, 9 Jun 2006 07:21:46 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18661-08 for ; Fri, 9 Jun 2006 07:21:45 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 573C53B006A for ; Fri, 9 Jun 2006 07:21:45 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLiIX005951; Fri, 9 Jun 2006 07:21:44 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLiWa006890; Fri, 9 Jun 2006 07:21:44 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLh8I024410; Fri, 9 Jun 2006 07:21:44 -0400 From: Alexander Larsson To: Ken Ishii In-Reply-To: <20060604195153.83291.qmail@web61323.mail.yahoo.com> References: <20060604195153.83291.qmail@web61323.mail.yahoo.com> Content-Type: text/plain Date: Fri, 09 Jun 2006 13:21:43 +0200 Message-Id: <1149852104.3023.53.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: gnome-vfs-list@gnome.org Subject: Re: gnome_vfs_uri_hash() bug? X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 11:21:46 -0000 On Sun, 2006-06-04 at 12:51 -0700, Ken Ishii wrote: > gnome_vfs_uri_hash() has the following code section: > > for (uri_p = uri; uri_p != NULL; uri_p = uri_p->parent) { > HASH_STRING (hash_value, uri_p->text); > HASH_STRING (hash_value, uri_p->method_string); > > if (uri_p->parent != NULL) { > const GnomeVFSToplevelURI *toplevel; > > toplevel = (const GnomeVFSToplevelURI *) uri_p; > > Since GnomeVFSToplevelURI is defined to be an URI without a parent, > shouldn't > if (uri_p->parent != NULL) > be > if (uri_p->parent == NULL) > instead? Yeah. That looks wrong. I'm fixing it in cvs. Thanks. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's an old-fashioned white trash romance novelist She's a bloodthirsty Buddhist bodyguard prone to fits of savage, blood-crazed rage. They fight crime! From alexl@redhat.com Mon Jun 12 05:38:16 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 296D33B00A7 for ; Mon, 12 Jun 2006 05:38:16 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28453-10 for ; Mon, 12 Jun 2006 05:38:14 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 8A0A33B008D for ; Mon, 12 Jun 2006 05:38:14 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bL45019802; Mon, 12 Jun 2006 05:37:21 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bG0T011686; Mon, 12 Jun 2006 05:37:16 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bF3C014485; Mon, 12 Jun 2006 05:37:15 -0400 From: Alexander Larsson To: Xavier Claessens In-Reply-To: <1149455967.15249.30.camel@zdra-desktop> References: <1149455967.15249.30.camel@zdra-desktop> Content-Type: text/plain Date: Mon, 12 Jun 2006 11:37:15 +0200 Message-Id: <1150105036.3023.95.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: gnome-vfs-list@gnome.org Subject: Re: volume-unmounted signal on GnomeVFSDrive X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jun 2006 09:38:16 -0000 On Sun, 2006-06-04 at 23:19 +0200, Xavier Claessens wrote: > Hello, > > As I understand the "volume-unmounted" signal is emitted before the > volume unmounted is really removed from the drive. So in the callback, > if we run gnome_vfs_drive_get_mounted_volumes() it will return a GList > still containing the unmounted GnomeVFSVolume. > > I think it should be very useful to have a callback after everything is > done. For example in nautilus'places sidebar when we get the > "volume-unmounted" callback we can't update the sidebar yet because the > drive still has the volume connected... so we add a g_idle_add() to have > a callback after everything is done and then we can update the sidebar. > > I think that's more a workaround than a real solution. What about adding > in GnomeVFSDrive and GnomeVFSVolumeMonitor a "volume-post-unmount" > callback (we already have a "volume-pre-unmount" cb) ? > > I you are OK with the idea I can make a patch. You could just look at gnome_vfs_volume_is_mounted() in the volume-unmounted call and ignore things that are not mounted. We do set is_mounted before emitting the signal for things like this. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a deeply religious umbrella-wielding astronaut looking for a cure to the poison coursing through his veins. She's a green-fingered snooty femme fatale who can talk to animals. They fight crime! From alexl@redhat.com Mon Jun 12 06:12:18 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 084B93B0078 for ; Mon, 12 Jun 2006 06:12:18 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 29802-04 for ; Mon, 12 Jun 2006 06:12:16 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 2BF913B009D for ; Mon, 12 Jun 2006 06:12:16 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TFho017434; Mon, 12 Jun 2006 05:29:15 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TF93010182; Mon, 12 Jun 2006 05:29:15 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TEb4013434; Mon, 12 Jun 2006 05:29:14 -0400 From: Alexander Larsson To: Christian Neumair In-Reply-To: <1149010547.5256.19.camel@localhost.localdomain> References: <1149010547.5256.19.camel@localhost.localdomain> Content-Type: text/plain Date: Mon, 12 Jun 2006 11:29:14 +0200 Message-Id: <1150104554.3023.93.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.549 tagged_above=-999 required=2 tests=[AWL=-0.025, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, TW_FD=0.077] X-Spam-Score: -2.549 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , Ken Ishii Subject: Re: Proposed (unfinished) ZIP module available on Bugzilla X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jun 2006 10:12:18 -0000 On Tue, 2006-05-30 at 19:35 +0200, Christian Neumair wrote: > Dear GnomeVFS development community, > > as requested by Ken Ishii who needs a ZIP module, I'm publishing a > prelimitary version of a GnomeVFS ZIP module in Bugzilla [1]. People who > are interested in development should check out the bug report and help > out :). > > [1] http://bugzilla.gnome.org/show_bug.cgi?id=343419 It seems this uncompresses the file on open and then reads from that. I think this is the right approach, but there are some tricks you could use to make this nicer. What you do is create the uncompressed temp files (in /tmp) and then unlink the file, keeping the file descriptor around. This means the file is not visible in the filesystem, but the data for it is kept around until the last fd referencing it is closed. You store this fd in a cache, and then use dup() to get a new independent file descriptor to the file in do_open(). When the app is closed the kernel will close all fds and deallocate the filesystem space. So, doing things this way means you'll never leak tempfiles. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a lounge-singing albino vampire hunter who knows the secret of the alien invasion. She's a virginal punk traffic cop with an MBA from Harvard. They fight crime! From mclasen@redhat.com Mon Jun 12 22:40:48 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 4BAD63B0009 for ; Mon, 12 Jun 2006 22:40:48 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07590-05 for ; Mon, 12 Jun 2006 22:40:46 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 3251E3B000C for ; Mon, 12 Jun 2006 22:40:46 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5D2MFId000486 for ; Mon, 12 Jun 2006 22:22:15 -0400 Received: from lacrosse.corp.redhat.com (lacrosse.corp.redhat.com [172.16.52.154]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5D2MFG6018613 for ; Mon, 12 Jun 2006 22:22:15 -0400 Received: from [172.16.83.145] (vpn83-145.boston.redhat.com [172.16.83.145]) by lacrosse.corp.redhat.com (8.12.11.20060308/8.11.6) with ESMTP id k5D2MEWJ003165 for ; Mon, 12 Jun 2006 22:22:14 -0400 From: Matthias Clasen To: gnome-vfs-list@gnome.org Content-Type: text/plain Organization: Red Hat Date: Mon, 12 Jun 2006 22:24:01 -0400 Message-Id: <1150165441.4081.7.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.541 tagged_above=-999 required=2 tests=[AWL=0.060, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.541 X-Spam-Level: Subject: gnome-mime-data dependency X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jun 2006 02:40:48 -0000 During some Fedora package work I noticed that gnome-vfs still pulls in gnome-mime-data, which seems to be old and unmaintained. Alex tells me that it is needed for some deprecated mime apis. I think it would be nice to get rid of that dependency in 2.16. Matthias From bosshrap@zhwin.ch Tue Jun 13 10:41:32 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 2D47B3B000C for ; Tue, 13 Jun 2006 10:41:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26639-07 for ; Tue, 13 Jun 2006 10:41:30 -0400 (EDT) Received: from a.mx.projectdream.org (eth0-0.yuffie.projectdream.org [194.88.212.200]) by menubar.gnome.org (Postfix) with ESMTP id 2806B3B00A5 for ; Tue, 13 Jun 2006 10:41:29 -0400 (EDT) Received: from [10.0.0.11] (d213-103-155-97.cust.tele2.ch [213.103.155.97]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a.mx.projectdream.org (Postfix) with ESMTP id BD3548811A for ; Tue, 13 Jun 2006 16:40:29 +0200 (CEST) Message-ID: <448ECE64.9030800@zhwin.ch> Date: Tue, 13 Jun 2006 16:40:36 +0200 From: Raphael Bosshard User-Agent: Thunderbird 1.5.0.4 (X11/20060612) MIME-Version: 1.0 To: gnome-vfs-list@gnome.org Subject: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) Content-Type: multipart/mixed; boundary="------------000304070805010006040703" X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: X-Mailman-Approved-At: Thu, 15 Jun 2006 08:09:00 -0400 X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jun 2006 14:41:32 -0000 This is a multi-part message in MIME format. --------------000304070805010006040703 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit See http://bugzilla.gnome.org/show_bug.cgi?id=344296 This patch changes the human readable filesizes (gnome_vfs_format_file_size_for_display) which are curently displayed (rather missleading) with binary prefix multipliers (such as Kilo, Mega, Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). The IEC approved standard symbols (KiB, MiB, GiB) are used. For more information please read http://en.wikipedia.org/wiki/Binary_prefix So long, Raphael --------------000304070805010006040703 Content-Type: text/x-patch; name="gnome-vfs-display-binary-prefix.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="gnome-vfs-display-binary-prefix.patch" --- gnome-vfs-2.14.2/libgnomevfs/gnome-vfs-utils.c 2006-03-03 10:28:21.000000000 +0100 +++ gnome-vfs-2.14.2-work/libgnomevfs/gnome-vfs-utils.c 2006-06-10 23:03:40.983116272 +0200 @@ -51,9 +51,9 @@ #include #include -#define KILOBYTE_FACTOR 1024.0 -#define MEGABYTE_FACTOR (1024.0 * 1024.0) -#define GIGABYTE_FACTOR (1024.0 * 1024.0 * 1024.0) +#define KIBIBYTE_FACTOR 1024.0 +#define MEBIBYTE_FACTOR (1024.0 * 1024.0) +#define GIBIBYTE_FACTORFACTOR (1024.0 * 1024.0 * 1024.0) #define READ_CHUNK_SIZE 8192 @@ -74,22 +74,22 @@ gchar* gnome_vfs_format_file_size_for_display (GnomeVFSFileSize size) { - if (size < (GnomeVFSFileSize) KILOBYTE_FACTOR) { + if (size < (GnomeVFSFileSize) KIBIBYTE_FACTOR) { return g_strdup_printf (dngettext(GETTEXT_PACKAGE, "%u byte", "%u bytes",(guint) size), (guint) size); } else { gdouble displayed_size; - if (size < (GnomeVFSFileSize) MEGABYTE_FACTOR) { - displayed_size = (gdouble) size / KILOBYTE_FACTOR; - return g_strdup_printf (_("%.1f KB"), + if (size < (GnomeVFSFileSize) MEBIBYTE_FACTOR) { + displayed_size = (gdouble) size / KIBIBYTE_FACTOR; + return g_strdup_printf (_("%.1f KiB"), displayed_size); - } else if (size < (GnomeVFSFileSize) GIGABYTE_FACTOR) { - displayed_size = (gdouble) size / MEGABYTE_FACTOR; - return g_strdup_printf (_("%.1f MB"), + } else if (size < (GnomeVFSFileSize) GIBIBYTE_FACTORFACTOR) { + displayed_size = (gdouble) size / MEBIBYTE_FACTOR; + return g_strdup_printf (_("%.1f MiB"), displayed_size); } else { - displayed_size = (gdouble) size / GIGABYTE_FACTOR; - return g_strdup_printf (_("%.1f GB"), + displayed_size = (gdouble) size / GIBIBYTE_FACTORFACTOR; + return g_strdup_printf (_("%.1f GiB"), displayed_size); } } --------------000304070805010006040703-- From alexl@redhat.com Sat Jun 17 04:58:04 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 361533B042A for ; Sat, 17 Jun 2006 04:58:04 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15153-02 for ; Sat, 17 Jun 2006 04:58:02 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 676533B010F for ; Sat, 17 Jun 2006 04:58:02 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vMS8009846; Sat, 17 Jun 2006 04:57:22 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vMxp026394; Sat, 17 Jun 2006 04:57:22 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vL4b023197; Sat, 17 Jun 2006 04:57:21 -0400 Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Alexander Larsson To: Raphael Bosshard In-Reply-To: <448ECE64.9030800@zhwin.ch> References: <448ECE64.9030800@zhwin.ch> Content-Type: text/plain Date: Sat, 17 Jun 2006 10:57:21 +0200 Message-Id: <1150534641.1962.19.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.588 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.588 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jun 2006 08:58:04 -0000 On Tue, 2006-06-13 at 16:40 +0200, Raphael Bosshard wrote: > See http://bugzilla.gnome.org/show_bug.cgi?id=344296 > > This patch changes the human readable filesizes > (gnome_vfs_format_file_size_for_display) which are curently displayed > (rather missleading) with binary prefix multipliers (such as Kilo, Mega, > Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). > The IEC approved standard symbols (KiB, MiB, GiB) are used. > > For more information please read http://en.wikipedia.org/wiki/Binary_prefix This has already been denied in bugs like: http://bugzilla.gnome.org/show_bug.cgi?id=127175 Which references mails like: http://mail.gnome.org/archives/gnome-doc-list/2003-December/msg00004.html and the gnome docs style guides: http://developer.gnome.org/documents/style-guide/units.html For what its worth I very much agree with Patrick. The binary prefixes are silly and nobody but anal-retentive ultra-geeks will understand them, thus confusing the general userbase (who haven't seen them before). =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a sword-wielding pirate librarian searching for his wife's true killer. She's a time-travelling junkie Hell's Angel in the wrong place at the wrong time. They fight crime! From nf2@scheinwelt.at Sun Jun 18 18:55:34 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 462013B00AF; Sun, 18 Jun 2006 18:55:34 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 12908-03; Sun, 18 Jun 2006 18:55:31 -0400 (EDT) Received: from mx-01.sil.at (mx-01.sil.at [86.59.12.198]) by menubar.gnome.org (Postfix) with ESMTP id 208EC3B00B2; Sun, 18 Jun 2006 18:55:30 -0400 (EDT) Received: from vie-062-116-122-020.dsl.sil.at ([62.116.122.20] helo=[192.168.5.82]) by mx-01.sil.at with esmtp (Exim 4.60) (envelope-from ) id 1Fs69X-0004Oc-Kv; Mon, 19 Jun 2006 00:54:01 +0200 Message-ID: <4495D984.5090705@scheinwelt.at> Date: Mon, 19 Jun 2006 00:53:56 +0200 From: nf2 User-Agent: Thunderbird 1.5 (X11/20051201) MIME-Version: 1.0 To: gtk-list@gnome.org, gnome vfs list Subject: libxdg-vfs and Gtk-Filechooser Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scan-Signature: 9d02a3267670e8bb77f537b38fda5a39 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.51 tagged_above=-999 required=2 tests=[AWL=0.012, BAYES_00=-2.599, TW_XD=0.077] X-Spam-Score: -2.51 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jun 2006 22:55:34 -0000 Hi, The experimental "libxdg-vfs" provides a generic interface to VFS libraries. It tries to autodetect the current desktop and then connects to Gnome-VFS or KIO by launching the backend executables xdg_vfs_gnome or xdg_vfs_kde. http://www.scheinwelt.at/~norbertf/dadapt/files/xdg_utils/doc/libxdg-vfs.html The target of "libxdg-vfs" would be giving applications access to ftp/smb shares etc... Of course this also involves bringing VFS access to filechoosers. AFAIK Gtk-Filechooser has pluggable backends (GtkFilesystem). It would be interesting if it could also run on top of "libxdg-vfs". The problem is, that i couldn't find any documentation how to implement a GtkFilesystem module. Could you please give me an introduction and maybe tell me about the specific requirements for a GtkFilesystem? Perhaps i need to provide more functions through "libxdg-vfs": listing and mounting Volumes, obtaining icon-paths,... Regards, Norbert From chris@gnome-de.org Sun Jun 18 13:44:45 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 349513B00E5 for ; Sun, 18 Jun 2006 13:44:45 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05823-10 for ; Sun, 18 Jun 2006 13:44:41 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id E77BC3B0009 for ; Sun, 18 Jun 2006 13:44:39 -0400 (EDT) Received: (qmail 45357 invoked by uid 85); 18 Jun 2006 17:36:58 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.153.121):. Processed in 7.089351 secs); 18 Jun 2006 17:36:58 -0000 Received: from p54969979.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.153.121) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 18 Jun 2006 17:36:51 -0000 Subject: [PATCH] Improve docs, new attempt From: Christian Neumair To: "gnome-vfs-list@gnome.org" Content-Type: multipart/mixed; boundary="=-4cYgbTZAmh2zlaadTQGz" Date: Sun, 18 Jun 2006 19:36:47 +0200 Message-Id: <1150652208.22660.3.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: X-Mailman-Approved-At: Mon, 19 Jun 2006 14:27:21 -0400 X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jun 2006 17:44:45 -0000 --=-4cYgbTZAmh2zlaadTQGz Content-Type: text/plain Content-Transfer-Encoding: 7bit I've spent some more hours on GnomeVFS docs and the Xfer docs should be in a way better shape now. I got commit permission for the last one already, but this one is significantly larger (240 kB, but including the tmpl/ regeneration garbage). -- Christian Neumair --=-4cYgbTZAmh2zlaadTQGz Content-Disposition: attachment; filename=gnome-vfs-doc-3.diff.gz Content-Type: application/x-gzip; name=gnome-vfs-doc-3.diff.gz Content-Transfer-Encoding: base64 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 --=-4cYgbTZAmh2zlaadTQGz-- From ensonic@hora-obscura.de Mon Jun 19 18:38:50 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0E7D03B03FC for ; Mon, 19 Jun 2006 18:38:50 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05344-05 for ; Mon, 19 Jun 2006 18:38:47 -0400 (EDT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by menubar.gnome.org (Postfix) with ESMTP id D01C83B03EE for ; Mon, 19 Jun 2006 18:38:46 -0400 (EDT) Received: from [82.165.27.189] (helo=hora-obscura.de) by mrelayeu.kundenserver.de (node=mrelayeu0) with ESMTP (Nemesis), id 0MKwh2-1FsSHG2Dgc-0000IG; Tue, 20 Jun 2006 00:31:26 +0200 Received: from localhost (localhost [127.0.0.1]) by smtp.hora-obscura.de (Postfix) with ESMTP id 48519878042; Tue, 20 Jun 2006 00:31:26 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by smtp.hora-obscura.de (Postfix) with ESMTP id 768D4878023; Tue, 20 Jun 2006 00:31:19 +0200 (CEST) Subject: Re: [PATCH] Improve docs, new attempt From: Stefan Kost To: Christian Neumair In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> References: <1150652208.22660.3.camel@localhost.localdomain> Content-Type: text/plain Date: Tue, 20 Jun 2006 01:30:37 +0300 Message-Id: <1150756237.15396.6.camel@fluffy.local> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new using ClamAV at hora-obscura.de X-Provags-ID: kundenserver.de abuse@kundenserver.de login:8eea7ddcf9c0cceb26830fe517b7ade3 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.496 tagged_above=-999 required=2 tests=[AWL=0.026, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.496 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 22:38:50 -0000 Hi Christian, Am Sonntag, den 18.06.2006, 19:36 +0200 schrieb Christian Neumair: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). I strongly recommend to move all docs to the source files and remove the tmpl files from cvs totaly. If developers use different versions of gtk-doc, commiting partialy generated files such as the files under tmpl/ can often cause conflicts like those we know with po/*.po files. Besides developers will more likely update docs when they are close to the sources. In case you are not aware, even the section docs can be added to the sources (see the gtk-doc manual in yelp). Stefan From chipzz@ULYSSIS.Org Mon Jun 19 21:43:10 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 471F03B015D for ; Mon, 19 Jun 2006 21:43:10 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15440-03 for ; Mon, 19 Jun 2006 21:43:07 -0400 (EDT) Received: from rusty.kulnet.kuleuven.ac.be (rusty.kulnet.kuleuven.ac.be [134.58.240.42]) by menubar.gnome.org (Postfix) with ESMTP id A4EC63B00D9 for ; Mon, 19 Jun 2006 21:43:06 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by rusty.kulnet.kuleuven.ac.be (Postfix) with ESMTP id 43E5F1D75E5 for ; Tue, 20 Jun 2006 03:42:23 +0200 (CEST) Received: from smtp03.kuleuven.be (antonius.kulnet.kuleuven.ac.be [134.58.240.73]) by rusty.kulnet.kuleuven.ac.be (Postfix) with ESMTP id 4E13C1D75DF for ; Tue, 20 Jun 2006 03:42:20 +0200 (CEST) Received: from smtp.ulyssis.student.kuleuven.be (ray.ulyssis.student.kuleuven.be [193.190.253.198]) by smtp03.kuleuven.be (Postfix) with ESMTP id 47261332762 for ; Tue, 20 Jun 2006 03:42:20 +0200 (CEST) Received: (qmail 30541 invoked from network); 20 Jun 2006 01:42:20 -0000 Received: from ace.ulyssis.student.kuleuven.be (HELO ace.ulyssis.org) (193.190.253.208) by smtp.ulyssis.student.kuleuven.be with SMTP; 20 Jun 2006 01:42:20 -0000 Received: by ace.ulyssis.org (Postfix, from userid 1275) id 050F92EFE4; Tue, 20 Jun 2006 03:42:19 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by ace.ulyssis.org (Postfix) with ESMTP id E85052EFE3; Tue, 20 Jun 2006 03:42:19 +0200 (CEST) Date: Tue, 20 Jun 2006 03:42:19 +0200 (CEST) From: Chipzz To: Christian Neumair Subject: Re: [PATCH] Improve docs, new attempt In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> Message-ID: References: <1150652208.22660.3.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: by KULeuven Antivirus Cluster X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.419 tagged_above=-999 required=2 tests=[AWL=0.045, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.419 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: Chipzz@ULYSSIS.Org List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 01:43:10 -0000 I only read about half of your patch, and not even all of it carefully, but here are a couple of suggestions: + * Either way, it acts like #GnomeVFSXferProgressCallback + * would act in non-asynchronous mode. The differences in + * invocation are explained in the gnome_vfs_async_xfer() + * documentation documentation. -> 2x documentation. + * @GNOME_VFS_FILE_TYPE_REGULAR: The file is regular (stat: %S_ISDIR). + * @GNOME_VFS_FILE_TYPE_DIRECTORY: The file is a directory (stat: %S_ISREG). -> "The file is a regular file" -> %S_ISDIR and %S_ISREG are swapped. + * @GNOME_VFS_PERM_USER_READ: Owner has read permission. etc... -> permission*s* ? + * @GNOME_VFS_PERM_OTHER_ALL: Others have all permissionss. -> permission*ss* ! + * @block_count: The size of the file in 512-byte blocks (a #GnomeVFSFileSize), -> I may be totally wrong here, but isn't this filesystem dependant? kr, On Sun, 18 Jun 2006, Christian Neumair wrote: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). Chipzz AKA Jan Van Buggenhout -- ------------------------------------------------------------------------ UNIX isn't dead - It just smells funny Chipzz@ULYSSIS.Org ------------------------------------------------------------------------ "Baldric, you wouldn't recognize a subtle plan if it painted itself pur- ple and danced naked on a harpsicord singing 'subtle plans are here a- gain'." From bosshrap@zhwin.ch Tue Jun 20 09:25:20 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8A5FA3B01A8 for ; Tue, 20 Jun 2006 09:25:20 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17592-03 for ; Tue, 20 Jun 2006 09:25:17 -0400 (EDT) Received: from a.mx.projectdream.org (eth0-0.yuffie.projectdream.org [194.88.212.200]) by menubar.gnome.org (Postfix) with ESMTP id 765663B017D for ; Tue, 20 Jun 2006 09:25:17 -0400 (EDT) Received: from dskt6433.zhwin.ch (dskt6433.zhwin.ch [160.85.162.206]) by a.mx.projectdream.org (Postfix) with ESMTP id 048688803B; Tue, 20 Jun 2006 15:24:23 +0200 (CEST) Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Raphael Bosshard To: Alexander Larsson In-Reply-To: <1150534641.1962.19.camel@greebo> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> Content-Type: text/plain Date: Tue, 20 Jun 2006 15:24:20 +0200 Message-Id: <1150809860.15905.28.camel@numenor> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.11 tagged_above=-999 required=2 tests=[BAYES_05=-1.11] X-Spam-Score: -1.11 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 13:25:20 -0000 Hello there! > For what its worth I very much agree with Patrick. The binary prefixes > are silly and nobody but anal-retentive ultra-geeks will understand > them, thus confusing the general userbase (who haven't seen them > before). Well, that's strange. I never considered myself a "anal-retentive ultra-geek". And I certainly never thought that my sister would fit into the category of "anal-retentive ultra-geeks". And yet she was the one who brought up the topic when we upgraded her computer with a new hard disk last week. The disk was labeled "250 Gigabyte". Yet when we installed it,"only" 238 Gigabytes were available. I explained her that the disk manufacturer interpreted the term "Giga" in a other way then the software manufacturer. Being an "anal-retentive ultra-geek", she was bothered by this. My sister is by no means a technical person. But to her european decimalised mind "Kilo" means "a thousand" and not "a thousand and twenty four", just in the way that "Mega" means "a million" and not "one million four hundred forty nine thousand six hundred sixteen". It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean "Giga". But I always thought that only "anal-retentive ultra-geeks" know that and I recently noticed it confuses the the general userbase (who haven't heard of that before). The strange thing is that almost everyone seems to agree (even Patrick) that binary prefixes are a good Idea. However; everyone seems to wait with the adaption of binary prefixes until everyone around has adapted them. Funny thing. I see no need to bother the documentation team; there is to much resistance against binary prefixes. So long, Raphael From alexl@redhat.com Tue Jun 20 09:50:54 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id C6D663B01A8 for ; Tue, 20 Jun 2006 09:50:54 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18291-09 for ; Tue, 20 Jun 2006 09:50:53 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 3030F3B020B for ; Tue, 20 Jun 2006 09:50:53 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDo05r027617; Tue, 20 Jun 2006 09:50:00 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDo0Fm009656; Tue, 20 Jun 2006 09:50:00 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDnxEP016163; Tue, 20 Jun 2006 09:49:59 -0400 Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Alexander Larsson To: Raphael Bosshard In-Reply-To: <1150809860.15905.28.camel@numenor> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> <1150809860.15905.28.camel@numenor> Content-Type: text/plain Date: Tue, 20 Jun 2006 15:49:59 +0200 Message-Id: <1150811399.16397.51.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.588 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.588 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 13:50:55 -0000 On Tue, 2006-06-20 at 15:24 +0200, Raphael Bosshard wrote: > > For what its worth I very much agree with Patrick. The binary prefixes > > are silly and nobody but anal-retentive ultra-geeks will understand > > them, thus confusing the general userbase (who haven't seen them > > before). > > Well, that's strange. I never considered myself a "anal-retentive > ultra-geek". And I certainly never thought that my sister would fit into > the category of "anal-retentive ultra-geeks". And yet she was the one > who brought up the topic when we upgraded her computer with a new hard > disk last week. The disk was labeled "250 Gigabyte". Yet when we > installed it,"only" 238 Gigabytes were available. I explained her that > the disk manufacturer interpreted the term "Giga" in a other way then > the software manufacturer. Being an "anal-retentive ultra-geek", she was > bothered by this. > > My sister is by no means a technical person. But to her european > decimalised mind "Kilo" means "a thousand" and not "a thousand and > twenty four", just in the way that "Mega" means "a million" and not "one > million four hundred forty nine thousand six hundred sixteen". I'm well aware of the problems with 1000/1024 multipliers. However, consider your sisters case if we used 238 gibibyte instead of 238 gigabyte. 1) We'd still show 238 instead of 250 which is listed which would cause your sister to wonder where the space went. 2) There would be a strange acronym in the UI that she had never seen before and didn't match what is commonly in use in ads, docs, hardware specifications etc. Its unfortunately true that terms like gigabyte and megabyte are very widespread and in active use by people who don't really know exactly what they mean. Changing this use is slow and hard. > It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean > "Giga". But I always thought that only "anal-retentive ultra-geeks" know > that and I recently noticed it confuses the the general userbase (who > haven't heard of that before). > > The strange thing is that almost everyone seems to agree (even Patrick) > that binary prefixes are a good Idea. However; everyone seems to wait > with the adaption of binary prefixes until everyone around has adapted > them. Funny thing. This is almost always the case with such large (in terms of number of places/organizations it has to be changed) changes. I think its partly because the net gain of doing the change isn't really that large. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a one-legged soccer-playing rock star who hangs with the wrong crowd. She's a plucky goth nun from Mars. They fight crime! From lifewarped@yahoo.com Wed Jun 21 15:50:32 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8F91D3B0266 for ; Wed, 21 Jun 2006 15:50:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01152-09 for ; Wed, 21 Jun 2006 15:50:31 -0400 (EDT) Received: from smtp109.plus.mail.re2.yahoo.com (smtp109.plus.mail.re2.yahoo.com [206.190.53.34]) by menubar.gnome.org (Postfix) with SMTP id 424163B015F for ; Wed, 21 Jun 2006 15:50:31 -0400 (EDT) Received: (qmail 56956 invoked from network); 21 Jun 2006 19:50:30 -0000 Received: from unknown (HELO ?192.168.1.85?) (lifewarped@64.252.203.251 with plain) by smtp109.plus.mail.re2.yahoo.com with SMTP; 21 Jun 2006 19:50:29 -0000 Mime-Version: 1.0 (Apple Message framework v750) To: gnome-vfs-list@gnome.org Message-Id: <647A0248-B8FA-4F26-8652-17718BEDAF37@yahoo.com> Content-Type: multipart/alternative; boundary=Apple-Mail-1-813535700 From: "Glenn R. Martin" Subject: IP6 and MacOS X Date: Wed, 21 Jun 2006 15:50:27 -0400 X-Mailer: Apple Mail (2.750) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.417 tagged_above=-999 required=2 tests=[AWL=-1.880, BAYES_40=-0.185, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447, HTML_MESSAGE=0.001] X-Spam-Score: -0.417 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jun 2006 19:50:32 -0000 --Apple-Mail-1-813535700 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Apple's Mac OS X predefines a macro named SIN6_LEN... However this macro appears to be nothing. I was wondering if i wouldnt be too much trouble to add the following to your gnome-vfs-address.c file so i would not have to add it next time? (im using todays CVS) Line 55, libgnomevfs/gnome-vfs-address.c : #ifdef SIN6_LEN && __APPLE__ # undef SIN6_LEN #endif # define SIN6_LEN sizeof (struct sockaddr_in6) Thanks --- Glenn R. Martin lifewarped@yahoo.com http://www.xargos.com http://www.myspace.com/grmartin C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. -- Bjarne Stroustrup --Apple-Mail-1-813535700 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 Apple's Mac OS X predefines a = macro named SIN6_LEN... However this macro appears to be nothing. I was = wondering if i wouldnt be too much trouble to add the following to your = gnome-vfs-address.c file so i would not have to add it next = time?

(im using = todays CVS)

Line = 55,=A0libgnomevfs/gnome-vfs-address.c :

#ifdef SIN6_LEN = &&=A0__APPLE__
# undef = SIN6_LEN
#endif

# define SIN6_LEN=A0= =A0=A0 sizeof (struct sockaddr_in6)

Thanks

---
Glenn R. = Martin
C makes it easy to shoot yourself in = the foot; C++ makes it harder, but when you do, it blows away your whole = leg. -- Bjarne Stroustrup

=

= --Apple-Mail-1-813535700-- From lifewarped@yahoo.com Wed Jun 21 15:58:02 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0CF823B0192 for ; Wed, 21 Jun 2006 15:58:02 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02062-01 for ; Wed, 21 Jun 2006 15:58:01 -0400 (EDT) Received: from smtp104.plus.mail.re2.yahoo.com (smtp104.plus.mail.re2.yahoo.com [206.190.53.29]) by menubar.gnome.org (Postfix) with SMTP id AF9573B035A for ; Wed, 21 Jun 2006 15:58:00 -0400 (EDT) Received: (qmail 63776 invoked from network); 21 Jun 2006 19:57:59 -0000 Received: from unknown (HELO ?192.168.1.85?) (lifewarped@64.252.203.251 with plain) by smtp104.plus.mail.re2.yahoo.com with SMTP; 21 Jun 2006 19:57:59 -0000 Mime-Version: 1.0 (Apple Message framework v750) To: gnome-vfs-list@gnome.org Message-Id: <2766644B-5FDA-44BF-BFA9-F0C4295F117E@yahoo.com> Content-Type: multipart/alternative; boundary=Apple-Mail-2-813985806 From: "Glenn R. Martin" Subject: login_tty on Mac OS X Date: Wed, 21 Jun 2006 15:57:57 -0400 X-Mailer: Apple Mail (2.750) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.823 tagged_above=-999 required=2 tests=[AWL=-1.361, BAYES_05=-1.11, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447, HTML_MESSAGE=0.001] X-Spam-Score: -0.823 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jun 2006 19:58:02 -0000 --Apple-Mail-2-813985806 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed MacOS X has the login_tty() definition in its header which does not seem to be included by your libgnomevfs/gnome-vfs-pty.{c,h} file. Mind doing so, if i run in to anything else, ill hold it back for a complete email. again my copy is from the CVS. --- Glenn R. Martin lifewarped@yahoo.com http://www.xargos.com http://www.myspace.com/grmartin C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. -- Bjarne Stroustrup --Apple-Mail-2-813985806 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 MacOS X has the login_tty() = definition in its <util.h> header which does not seem to be = included by your=A0libgnomevfs/gnome-vfs-pty.{c,h} file. Mind doing so, = if i run in to anything else, ill hold it back for a complete = email.

again my copy is from the = CVS.

---
Glenn R. = Martin
C makes it easy to shoot yourself in = the foot; C++ makes it harder, but when you do, it blows away your whole = leg. -- Bjarne Stroustrup

=

= --Apple-Mail-2-813985806-- From chris@gnome-de.org Thu Jun 22 08:11:59 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 99F493B0691 for ; Thu, 22 Jun 2006 08:11:59 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 23409-09 for ; Thu, 22 Jun 2006 08:11:58 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id C20CC3B05EE for ; Thu, 22 Jun 2006 08:11:57 -0400 (EDT) Received: (qmail 40576 invoked by uid 85); 22 Jun 2006 12:11:51 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.143.65):. Processed in 0.019744 secs); 22 Jun 2006 12:11:51 -0000 Received: from p54968f41.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.143.65) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 22 Jun 2006 12:11:51 -0000 Subject: Re: [PATCH] Improve docs, new attempt From: Christian Neumair To: Chipzz@ULYSSIS.Org In-Reply-To: References: <1150652208.22660.3.camel@localhost.localdomain> Content-Type: text/plain Date: Thu, 22 Jun 2006 14:11:45 +0200 Message-Id: <1150978306.5236.14.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Jun 2006 12:11:59 -0000 Am Dienstag, den 20.06.2006, 03:42 +0200 schrieb Chipzz: > I only read about half of your patch, and not even all of it carefully, but > here are a couple of suggestions: > (...) > -> "The file is a regular file" > -> %S_ISDIR and %S_ISREG are swapped. > > + * @GNOME_VFS_PERM_USER_READ: Owner has read permission. > etc... > > -> permission*s* ? Permission*s* for ALL but permission (without a trailing s) for the rest, i.e. READ, WRITE, EXECUTE. > (...) Thanks for your worthy suggestions, I've included almost all of them. Alex just looked through the patch as well and allowed me to commit it :). -- Christian Neumair From alexl@redhat.com Thu Jun 1 04:19:18 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 680983B0C81 for ; Thu, 1 Jun 2006 04:19:18 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16118-02 for ; Thu, 1 Jun 2006 04:19:15 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id D2B843B0C95 for ; Thu, 1 Jun 2006 04:19:14 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518JCYk032595; Thu, 1 Jun 2006 04:19:12 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518JCBf005878; Thu, 1 Jun 2006 04:19:12 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518J9Kt016649; Thu, 1 Jun 2006 04:19:10 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149115005.2331.18.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Date: Thu, 01 Jun 2006 10:19:10 +0200 Message-Id: <1149149950.5416.49.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 08:19:18 -0000 On Wed, 2006-05-31 at 18:36 -0400, David Zeuthen wrote: > Hi, > > Any reason this is not on the list? Also, please use my david@fubar.dk > email address since that's what I'm using for GNOME stuff. I dunno, it got removed at some point. I'm adding it back. > On Mon, 2006-05-29 at 14:04 +0200, Alexander Larsson wrote: > > On Wed, 2006-05-24 at 21:38 +0200, Xavier Claessens wrote: > > > Le mercredi 24 mai 2006 à 17:59 +0200, Alexander Larsson a écrit : > > > > Here is the thing. I don't expect there to be a GnomeVFSDrive for > > > > the /home volume (which i assume is a normal mountpoint on another > > > > partition). We should only have drive objects for real removable media > > > > mountpoints. > > > > > > I join a simple program I made which lists all your drives and volumes > > > and says if they are user visible. It's what helped me understand how > > > GnomeVFS works :-) > > > > This seems to be a bug in the hal version of the monitoring. We're not > > supposed to be creating drive objects for all harddrives in the system. > > A Drive is supposed to be something you can insert a removable volume > > in, like a cdrom reader, a floppy reader, or a usb card reader. On my > > system hal creates a drive for e.g. /mnt/hdb1 which is a normal ext3 > > filesystem mounted at roottime and not user-mountable. This shouldn't > > only exist in the volume monitor as a non-user_visible volume, not as a > > drive. This used to be papered over in computer:// since the volumes for > > the drives were always mounted and not user-visible, so they got > > hidden. > > > > David, I don't really know the hal stuff. Could you look into this? > > So I'm not really sure why we want this difference you are describing. > In fact I'd argue that we indeed want to show volumes from e.g. the > internal hard disk for e.g. your Windows and OS X partitions. > > And this indeed requires a GnomeVFSDrive because the partition may not > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > the partition the GnomeVFSDrive represents is actually mounted (that's > my understanding of the how Gnome VFS works). The initial design for drives was to represent devices that use removable media (such as cdrom drives, floppy drives, usb card readers, etc). For these devices the operations on the device are "natural" to the user. Its true that one can also view them as just "possible mountpoints for volumes", which means you could have a drive for your OSX or windows partition. However, when you expose this in the UI you suddenly turn a very explicit obvious hardware mapping into a way to expose the much more vague and complicated unix operation of "mounting a filesystem". I.E. you remove the mapping from icons in the UI to hardware units you can put stuff into. If you take the view of a non-unix person (i.e. one unaware of the details of mountpoints etc) using a Gnome desktop with a separate HD you have basically three cases. Either the partition is mounted, the user is allowed to mount the partition, or the user isn't allowed to mount the partition. In the first case we clearly should show a volume icon, and in the last case i argue that we should never show a drive icon (it would do nothing but confuse people). The question is what to in the second case. In an ideal desktop system I don't think that state really is very useful. What non-sysadmin-related use would you have for not mounting that volume if you are allowed to mount it anyway? In the case on a non-ideal unix system the question gets complicated and turns into a question about whether the mountpoint is an "internal implementation detail" of the filesystem mount tree or not, and this becomes very similar to the question whether to expand symlinks or not (don't expand /home to /mnt/hdb/home, but expand ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for others things are not so easy. I have for instance /mnt/hdb1 on my system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want to display this. Whether to show such drives or not is clearly a complicated, system-dependent issue and should be solved in the lower layers, and not solved in each app using gnome-vfs. The change that resulted in this being an acute problem was that we decided to hide drives that support auto-mount in all places but computer:// by using the is_user_visible flag of the drive. Doing this means that flag is used for that and can't also be used to flag whether a drive is "internal" or not. I think just not having drive objects for internal mountpoints is the easiest solution to this. > So I think what you want is to hide is exactly volumes that are mounted > on traditional FHS mount points, e.g. /, /usr. I can't see why we should > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > Filechooser) can handle this much better? I don't understand how you think nautilus can handle this better? =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a gun-slinging voodoo master criminal whom everyone believes is mad. She's a strong-willed impetuous detective descended from a line of powerful witches. They fight crime! From xclaesse@gmail.com Sun Jun 4 17:08:44 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 948253B01AC for ; Sun, 4 Jun 2006 17:08:44 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10855-08 for ; Sun, 4 Jun 2006 17:08:43 -0400 (EDT) Received: from outmx018.isp.belgacom.be (outmx018.isp.belgacom.be [195.238.4.117]) by menubar.gnome.org (Postfix) with ESMTP id 7837F3B016C for ; Sun, 4 Jun 2006 17:08:42 -0400 (EDT) Received: from outmx018.isp.belgacom.be (localhost [127.0.0.1]) by outmx018.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54L8WOP014717 for ; Sun, 4 Jun 2006 23:08:32 +0200 (envelope-from ) Received: from [10.0.0.3] (85-212.242.81.adsl.skynet.be [81.242.212.85]) by outmx018.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54L8V56014703; Sun, 4 Jun 2006 23:08:31 +0200 (envelope-from ) From: Xavier Claessens To: Alexander Larsson In-Reply-To: <1149149950.5416.49.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-OBWowAwOL3MMyW2FiPT8" Date: Sun, 04 Jun 2006 23:08:31 +0200 Message-Id: <1149455311.15249.18.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.005 tagged_above=-999 required=2 tests=[AWL=-0.475, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.005 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , David Zeuthen Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 21:08:44 -0000 --=-OBWowAwOL3MMyW2FiPT8 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Le jeudi 01 juin 2006 =C3=A0 10:19 +0200, Alexander Larsson a =C3=A9crit : > On Wed, 2006-05-31 at 18:36 -0400, David Zeuthen wrote: > > Hi, > >=20 > > Any reason this is not on the list? Also, please use my david@fubar.dk > > email address since that's what I'm using for GNOME stuff. >=20 > I dunno, it got removed at some point. I'm adding it back. >=20 > > On Mon, 2006-05-29 at 14:04 +0200, Alexander Larsson wrote: > > > On Wed, 2006-05-24 at 21:38 +0200, Xavier Claessens wrote: > > > > Le mercredi 24 mai 2006 =C3=A0 17:59 +0200, Alexander Larsson a =C3= =A9crit : > > > > > Here is the thing. I don't expect there to be a GnomeVFSDrive for > > > > > the /home volume (which i assume is a normal mountpoint on anothe= r > > > > > partition). We should only have drive objects for real removable = media > > > > > mountpoints. > > > >=20 > > > > I join a simple program I made which lists all your drives and volu= mes > > > > and says if they are user visible. It's what helped me understand h= ow > > > > GnomeVFS works :-) > > >=20 > > > This seems to be a bug in the hal version of the monitoring. We're no= t > > > supposed to be creating drive objects for all harddrives in the syste= m. > > > A Drive is supposed to be something you can insert a removable volume > > > in, like a cdrom reader, a floppy reader, or a usb card reader. On my > > > system hal creates a drive for e.g. /mnt/hdb1 which is a normal ext3 > > > filesystem mounted at roottime and not user-mountable. This shouldn't > > > only exist in the volume monitor as a non-user_visible volume, not as= a > > > drive. This used to be papered over in computer:// since the volumes = for > > > the drives were always mounted and not user-visible, so they got > > > hidden.=20 > > >=20 > > > David, I don't really know the hal stuff. Could you look into this? > >=20 > > So I'm not really sure why we want this difference you are describing. > > In fact I'd argue that we indeed want to show volumes from e.g. the > > internal hard disk for e.g. your Windows and OS X partitions.=20 > >=20 > > And this indeed requires a GnomeVFSDrive because the partition may not > > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > > the partition the GnomeVFSDrive represents is actually mounted (that's > > my understanding of the how Gnome VFS works). >=20 > The initial design for drives was to represent devices that use > removable media (such as cdrom drives, floppy drives, usb card readers, > etc). For these devices the operations on the device are "natural" to > the user. Its true that one can also view them as just "possible > mountpoints for volumes", which means you could have a drive for your > OSX or windows partition. However, when you expose this in the UI you > suddenly turn a very explicit obvious hardware mapping into a way to > expose the much more vague and complicated unix operation of "mounting a > filesystem". I.E. you remove the mapping from icons in the UI to > hardware units you can put stuff into. >=20 > If you take the view of a non-unix person (i.e. one unaware of the > details of mountpoints etc) using a Gnome desktop with a separate HD > you have basically three cases. Either the partition is mounted, the > user is allowed to mount the partition, or the user isn't allowed to > mount the partition. In the first case we clearly should show a volume > icon, and in the last case i argue that we should never show a drive > icon (it would do nothing but confuse people).=20 >=20 > The question is what to in the second case. In an ideal desktop system I > don't think that state really is very useful. What non-sysadmin-related > use would you have for not mounting that volume if you are allowed to > mount it anyway? In the case on a non-ideal unix system the question > gets complicated and turns into a question about whether the mountpoint > is an "internal implementation detail" of the filesystem mount tree or > not, and this becomes very similar to the question whether to expand > symlinks or not (don't expand /home to /mnt/hdb/home, but expand > ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you > never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for > others things are not so easy. I have for instance /mnt/hdb1 on my > system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want > to display this. >=20 > Whether to show such drives or not is clearly a complicated, > system-dependent issue and should be solved in the lower layers, and not > solved in each app using gnome-vfs. >=20 > The change that resulted in this being an acute problem was that we > decided to hide drives that support auto-mount in all places but > computer:// by using the is_user_visible flag of the drive. Doing this > means that flag is used for that and can't also be used to flag whether > a drive is "internal" or not. I think just not having drive objects for > internal mountpoints is the easiest solution to this. >=20 > > So I think what you want is to hide is exactly volumes that are mounted > > on traditional FHS mount points, e.g. /, /usr. I can't see why we shoul= d > > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > > Filechooser) can handle this much better? >=20 > I don't understand how you think nautilus can handle this better?=20 >=20 I think we can't do everything with only an user_visible flag. There is 2 different concepts: first the user_visible itself which should be used to hide partition's drives and other useless drives, second the auto-mountable property. I suggest to make something like: gboolean gnome_vfs_drive_is_auto_mountable (GnomeVFSDrive*); Like that we display all user_visible drives in computer:/// (including unmounted cdroms) but we only show user_visible && !auto_moutable drive in nautilus's place sidebar. I don't know how will GtkFileChooser work with that, because it should so see the auto_mount flag and hide automountable drives... Currently it seems that it follows the user_visible flag, at least when using gnomeVFS backend. I you are OK with this idea I can make patches for GnomeVFS/Nautilus 2.15.x For the other problem, which is computer:/// doesn't handle multi-volume drives, what about just updating the drive's icon when the first volume comes (like now in most cases) and if we get more volumes we add files like I did in my first patch. What do you think about that ? Xavier Claessens. --=-OBWowAwOL3MMyW2FiPT8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEg0vO6dEBUn2qPAMRAvTuAJ9ntPlAFivY6fFkxmdvJcY47+BPFgCfU8uo 02AtDX37Xa3rjeu3Tck07hg= =Mgs1 -----END PGP SIGNATURE----- --=-OBWowAwOL3MMyW2FiPT8-- From xclaesse@gmail.com Sun Jun 4 17:19:35 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 373613B0311 for ; Sun, 4 Jun 2006 17:19:35 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 11487-02 for ; Sun, 4 Jun 2006 17:19:34 -0400 (EDT) Received: from outmx006.isp.belgacom.be (outmx006.isp.belgacom.be [195.238.4.99]) by menubar.gnome.org (Postfix) with ESMTP id A36623B01B7 for ; Sun, 4 Jun 2006 17:19:33 -0400 (EDT) Received: from outmx006.isp.belgacom.be (localhost [127.0.0.1]) by outmx006.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54LJTW9004701 for ; Sun, 4 Jun 2006 23:19:30 +0200 (envelope-from ) Received: from [10.0.0.3] (85-212.242.81.adsl.skynet.be [81.242.212.85]) by outmx006.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54LJQOB004670 for ; Sun, 4 Jun 2006 23:19:27 +0200 (envelope-from ) From: Xavier Claessens To: gnome-vfs-list@gnome.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-H/k/fxPKXIxMmyFvNdyr" Date: Sun, 04 Jun 2006 23:19:26 +0200 Message-Id: <1149455967.15249.30.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.003 tagged_above=-999 required=2 tests=[AWL=-0.473, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.003 X-Spam-Level: Subject: volume-unmounted signal on GnomeVFSDrive X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 21:19:35 -0000 --=-H/k/fxPKXIxMmyFvNdyr Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hello, As I understand the "volume-unmounted" signal is emitted before the volume unmounted is really removed from the drive. So in the callback, if we run gnome_vfs_drive_get_mounted_volumes() it will return a GList still containing the unmounted GnomeVFSVolume. I think it should be very useful to have a callback after everything is done. For example in nautilus'places sidebar when we get the "volume-unmounted" callback we can't update the sidebar yet because the drive still has the volume connected... so we add a g_idle_add() to have a callback after everything is done and then we can update the sidebar. I think that's more a workaround than a real solution. What about adding in GnomeVFSDrive and GnomeVFSVolumeMonitor a "volume-post-unmount" callback (we already have a "volume-pre-unmount" cb) ? I you are OK with the idea I can make a patch. Xavier Claessens. --=-H/k/fxPKXIxMmyFvNdyr Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEg05e6dEBUn2qPAMRArR9AKCAmWMgqHE/lg5Ub8z2UhNQafssNgCffgDr h5y25qZ9aTpyf3qPuFAFv0w= =yGzq -----END PGP SIGNATURE----- --=-H/k/fxPKXIxMmyFvNdyr-- From keni4i@yahoo.com Sun Jun 4 15:51:57 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 5BB533B017A for ; Sun, 4 Jun 2006 15:51:57 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07508-01 for ; Sun, 4 Jun 2006 15:51:54 -0400 (EDT) Received: from web61323.mail.yahoo.com (web61323.mail.yahoo.com [209.73.179.77]) by menubar.gnome.org (Postfix) with SMTP id 530A33B0101 for ; Sun, 4 Jun 2006 15:51:54 -0400 (EDT) Received: (qmail 83293 invoked by uid 60001); 4 Jun 2006 19:51:53 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=prZjog0TXPnF+wlE8LBjO9ySalKcONTauN625ePWqsxA6/eYIQZOrZWunGBSRW20iSnr/iiWsHPBFthOeIqLOsLexDW7T3aTYgwjucP/yQ1qjDWlisdhLiDAzsEwmX8lzYFi+yno63B1RiIoGz7A13QEW8nvwxcZyJ8QEYBNRec= ; Message-ID: <20060604195153.83291.qmail@web61323.mail.yahoo.com> Received: from [68.100.226.12] by web61323.mail.yahoo.com via HTTP; Sun, 04 Jun 2006 12:51:53 PDT Date: Sun, 4 Jun 2006 12:51:53 -0700 (PDT) From: Ken Ishii To: gnome-vfs-list@gnome.org MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.119 tagged_above=-999 required=2 tests=[AWL=-1.767, BAYES_50=0.001, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447] X-Spam-Score: -0.119 X-Spam-Level: X-Mailman-Approved-At: Sun, 04 Jun 2006 18:29:01 -0400 Subject: gnome_vfs_uri_hash() bug? X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 19:51:57 -0000 gnome_vfs_uri_hash() has the following code section: for (uri_p = uri; uri_p != NULL; uri_p = uri_p->parent) { HASH_STRING (hash_value, uri_p->text); HASH_STRING (hash_value, uri_p->method_string); if (uri_p->parent != NULL) { const GnomeVFSToplevelURI *toplevel; toplevel = (const GnomeVFSToplevelURI *) uri_p; Since GnomeVFSToplevelURI is defined to be an URI without a parent, shouldn't if (uri_p->parent != NULL) be if (uri_p->parent == NULL) instead? Ken Ishii __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From david@fubar.dk Mon Jun 5 17:57:05 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 6E8BB3B0625 for ; Mon, 5 Jun 2006 17:57:05 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02934-09 for ; Mon, 5 Jun 2006 17:57:01 -0400 (EDT) Received: from davidz.fubar.dk (unknown [208.184.5.49]) by menubar.gnome.org (Postfix) with ESMTP id 264F33B03A0 for ; Mon, 5 Jun 2006 17:57:00 -0400 (EDT) Received: from [192.168.1.115] (unknown [127.0.0.1]) by davidz.fubar.dk (Postfix) with ESMTP id C71269CE06B; Mon, 5 Jun 2006 17:56:59 -0400 (EDT) From: David Zeuthen To: Alexander Larsson In-Reply-To: <1149149950.5416.49.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> Content-Type: text/plain Date: Mon, 05 Jun 2006 17:58:06 -0400 Message-Id: <1149544687.5951.56.camel@daxter.boston.redhat.com> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.567 tagged_above=-999 required=2 tests=[AWL=0.032, BAYES_00=-2.599] X-Spam-Score: -2.567 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 21:57:05 -0000 Hi, Sorry for the late reply, On Thu, 2006-06-01 at 10:19 +0200, Alexander Larsson wrote: > > So I'm not really sure why we want this difference you are describing. > > In fact I'd argue that we indeed want to show volumes from e.g. the > > internal hard disk for e.g. your Windows and OS X partitions. > > > > And this indeed requires a GnomeVFSDrive because the partition may not > > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > > the partition the GnomeVFSDrive represents is actually mounted (that's > > my understanding of the how Gnome VFS works). > > The initial design for drives was to represent devices that use > removable media (such as cdrom drives, floppy drives, usb card readers, > etc). For these devices the operations on the device are "natural" to > the user. Its true that one can also view them as just "possible > mountpoints for volumes", which means you could have a drive for your > OSX or windows partition. However, when you expose this in the UI you > suddenly turn a very explicit obvious hardware mapping into a way to > expose the much more vague and complicated unix operation of "mounting a > filesystem". I.E. you remove the mapping from icons in the UI to > hardware units you can put stuff into. As a user I'm not really sure there is a huge difference between "Macintosh HD" and "1GB Compact Flash media". Both contains files I'm interested in using, I don't care where they come from. > If you take the view of a non-unix person (i.e. one unaware of the > details of mountpoints etc) using a Gnome desktop with a separate HD > you have basically three cases. Either the partition is mounted, the > user is allowed to mount the partition, or the user isn't allowed to > mount the partition. In the first case we clearly should show a volume > icon, and in the last case i argue that we should never show a drive > icon (it would do nothing but confuse people). > > The question is what to in the second case. In an ideal desktop system I > don't think that state really is very useful. What non-sysadmin-related > use would you have for not mounting that volume if you are allowed to > mount it anyway? In the case on a non-ideal unix system the question > gets complicated and turns into a question about whether the mountpoint > is an "internal implementation detail" of the filesystem mount tree or > not, and this becomes very similar to the question whether to expand > symlinks or not (don't expand /home to /mnt/hdb/home, but expand > ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you > never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for > others things are not so easy. I have for instance /mnt/hdb1 on my > system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want > to display this. > > Whether to show such drives or not is clearly a complicated, > system-dependent issue and should be solved in the lower layers, and not > solved in each app using gnome-vfs. > > The change that resulted in this being an acute problem was that we > decided to hide drives that support auto-mount in all places but > computer:// by using the is_user_visible flag of the drive. Doing this > means that flag is used for that and can't also be used to flag whether > a drive is "internal" or not. I think just not having drive objects for > internal mountpoints is the easiest solution to this. Well, the reality is that lots of people dual or triple boot and they have files they care about on the Macintosh and Windows hard drives. And I don't think it's uncommon at all to attach removable drives formatted with e.g. HFS+ or NTFS. If security (we can't let the user automatically get full read access to e.g. an hfs+ fs on the Mac harddisk) and availability of file system driver code (NTFS write support is still not widely available) wasn't a concern this would be easy; we'd simply automount these with uid=500 and be done with it. We want this such that the user can access his files in e.g. /Users/davidz which has a different uid on the Mac OS X system (such as uid=1000). However, things are a lot more complicated. For example, if you have full write access (like when you mount with uid=500) to the root partition of another operating system as an unprivileged user (with uid=500) you can essentially change the password database on that fs and, bingo, what was previously a secure system before you put Linux (or whatever on it) now has issues. There's also things like EAL [1] that is important, e.g. we should be able to totally lock down the system such that you can't use it for anything, not even access your removable media. Surely, in this situation, we want to still show to the user that he got a card reader plugged in but that the organizational policy of his employer (or whatever) prevents him from using it. Perhaps, in the name of usability, we might give him a button titled "Request permission to use device" (would file a request to the IT department) when he clicks it or, if it's an administrator, he can put in his password or authenticate in other ways. This is where usability and security meets, fighting each other like cats and dogs. Can you see the dilemma? Like it or not, this is from the real world [2] and bills like Sarbanes-Oxley etc. don't make this *any* easier. This is why I started PolicyKit. PolicyKit and gnome-mount will help solve this problem though not in a very elegant way [3] but it will provide a "one-time-click" "solution" to the problem. Some might say the user looses here (just look at the recent Microsoft Vista reviews where the user is bombarded with dialogs) but we're still left with the dilemma mentioned above. And we do want (I believe) GNOME to be a viable contender on the desktop and that means we need to support lock-down and things like EAL and Sarbanes-Oxley. Just as we want it to work for home users who just wants to access that movie on the NTFS or hfs+ partition from his home directory on "that other operating system". The approach taken by PolicyKit and gnome-mount is best compromise I've come up with so far. I'm not convinced it's perfect though, and I haven't had time to complete it yet though things are slowly moving forward. So what am I trying to say? I'm trying to say it makes sense to show all drives and their mountable file systems notwithstanding the user might be allowed to access them. Because if they're not privileged they should at least get a chance to see the drive is there (otherwise you get "My drive didn't show up! Is the computer broken?") along with an explanation why they can't access it maybe even with a possibility to auth for access. > > So I think what you want is to hide is exactly volumes that are mounted > > on traditional FHS mount points, e.g. /, /usr. I can't see why we should > > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > > Filechooser) can handle this much better? > > I don't understand how you think nautilus can handle this better? Agreed, yea, probably GNOME VFS would know best. David [1] : http://en.wikipedia.org/wiki/Evaluation_Assurance_Level [2] : http://www.pbs.org/cringely/pulpit/pulpit20040916.html Search for "epoxy". [3] : See http://people.freedesktop.org/~david/perm-override/gnome-mount-perm-override-1.png http://people.freedesktop.org/~david/perm-override/gnome-mount-perm-override-2.png From alexl@redhat.com Wed Jun 7 02:58:31 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 730983B0342 for ; Wed, 7 Jun 2006 02:58:31 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20729-09 for ; Wed, 7 Jun 2006 02:58:30 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id C47583B01B2 for ; Wed, 7 Jun 2006 02:58:29 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wSRX026164; Wed, 7 Jun 2006 02:58:28 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wNdo031791; Wed, 7 Jun 2006 02:58:23 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wMrc020424; Wed, 7 Jun 2006 02:58:23 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149544687.5951.56.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> Content-Type: text/plain Date: Wed, 07 Jun 2006 08:58:24 +0200 Message-Id: <1149663504.5416.123.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 06:58:31 -0000 On Mon, 2006-06-05 at 17:58 -0400, David Zeuthen wrote: > So what am I trying to say? I'm trying to say it makes sense to show all > drives and their mountable file systems notwithstanding the user might > be allowed to access them. Because if they're not privileged they should > at least get a chance to see the drive is there (otherwise you get "My > drive didn't show up! Is the computer broken?") along with an > explanation why they can't access it maybe even with a possibility to > auth for access. I don't really follow your reasoning fully. I agree that users want to see their OSX and/or windows mounts from linux, but I think you over-empasize the "single user, dual boot, home desktop" usecase. In the case of more traditional sysadmined unix setups (at universities and whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs mounts, tmpfs, /usr, /home, extra drives/partitions, etc). If we were to show all these, then I think things would look pretty confusing. I really think we need to hide a bunch of mountpoints. Some mountpoints can probably be hardcoded (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never think of all possibilities, so we should probably have a way to mark them. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a benighted playboy dog-catcher whom everyone believes is mad. She's a sarcastic extravagent former first lady from a family of eight older brothers. They fight crime! From xclaesse@gmail.com Wed Jun 7 08:51:14 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 546413B0B28 for ; Wed, 7 Jun 2006 08:51:14 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13070-01 for ; Wed, 7 Jun 2006 08:51:13 -0400 (EDT) Received: from outmx007.isp.belgacom.be (outmx007.isp.belgacom.be [195.238.5.234]) by menubar.gnome.org (Postfix) with ESMTP id A19F93B03C4 for ; Wed, 7 Jun 2006 08:51:12 -0400 (EDT) Received: from outmx007.isp.belgacom.be (localhost [127.0.0.1]) by outmx007.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k57Cow2U030006 for ; Wed, 7 Jun 2006 14:51:03 +0200 (envelope-from ) Received: from [10.0.0.3] (68-220.242.81.adsl.skynet.be [81.242.220.68]) by outmx007.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k57CovMd029978; Wed, 7 Jun 2006 14:50:57 +0200 (envelope-from ) From: Xavier Claessens To: Alexander Larsson In-Reply-To: <1149663504.5416.123.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-hOGtOF5lpypbLjK1X4t7" Date: Wed, 07 Jun 2006 14:51:08 +0200 Message-Id: <1149684668.5095.1.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.001 tagged_above=-999 required=2 tests=[AWL=-0.471, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.001 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , David Zeuthen Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 12:51:14 -0000 --=-hOGtOF5lpypbLjK1X4t7 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Le mercredi 07 juin 2006 =C3=A0 08:58 +0200, Alexander Larsson a =C3=A9crit= : > On Mon, 2006-06-05 at 17:58 -0400, David Zeuthen wrote: >=20 > > So what am I trying to say? I'm trying to say it makes sense to show al= l > > drives and their mountable file systems notwithstanding the user might > > be allowed to access them. Because if they're not privileged they shoul= d > > at least get a chance to see the drive is there (otherwise you get "My > > drive didn't show up! Is the computer broken?") along with an > > explanation why they can't access it maybe even with a possibility to > > auth for access. >=20 > I don't really follow your reasoning fully. I agree that users want to > see their OSX and/or windows mounts from linux, but I think you > over-empasize the "single user, dual boot, home desktop" usecase. In the > case of more traditional sysadmined unix setups (at universities and > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > mounts, tmpfs, /usr, /home, extra drives/partitions, etc).=20 >=20 > If we were to show all these, then I think things would look pretty > confusing. I really think we need to hide a bunch of mountpoints. Some > mountpoints can probably be hardcoded > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > think of all possibilities, so we should probably have a way to mark > them. >=20 We should only display "/media/*" and "/mnt/*" Xavier. --=-hOGtOF5lpypbLjK1X4t7 Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEhsu76dEBUn2qPAMRApRBAJwNCLBuPyxCtkh0sIbICQBqpRGDFACfaN00 Kc9Uz6ZIjQ4wxsbbHO74ZG0= =Wmaq -----END PGP SIGNATURE----- --=-hOGtOF5lpypbLjK1X4t7-- From tomasek@ebed.etf.cuni.cz Wed Jun 7 08:55:00 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 864A63B0C97 for ; Wed, 7 Jun 2006 08:55:00 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13300-04 for ; Wed, 7 Jun 2006 08:54:57 -0400 (EDT) Received: from ebed.etf.cuni.cz (ebed.etf.cuni.cz [195.113.5.3]) by menubar.gnome.org (Postfix) with ESMTP id E66983B03C4 for ; Wed, 7 Jun 2006 08:54:56 -0400 (EDT) Received: from ebed.etf.cuni.cz (localhost.localdomain [127.0.0.1]) by ebed.etf.cuni.cz (8.12.11.20060308/8.12.11) with ESMTP id k57ChDPX029737 for ; Wed, 7 Jun 2006 14:43:13 +0200 Received: (from tomasek@localhost) by ebed.etf.cuni.cz (8.12.11.20060308/8.12.11/Submit) id k57ChDrV029735 for gnome-vfs-list@gnome.org; Wed, 7 Jun 2006 14:43:13 +0200 Date: Wed, 7 Jun 2006 14:43:13 +0200 From: Petr Tomasek To: gnome-vfs-list@gnome.org Message-ID: <20060607124313.GA29329@ebed.etf.cuni.cz> References: <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1149684668.5095.1.camel@zdra-desktop> User-Agent: Mutt/1.4.1i X-Homepage: http://www.etf.cuni.cz/~tomasek/ X-Echelon: bomb Arafat Intifada bus kach drugs mafia boss heroin spy Semtex Saddam Al-Qaida Usama bin Ladin Bush Sharon X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.535 tagged_above=-999 required=2 tests=[AWL=0.064, BAYES_00=-2.599] X-Spam-Score: -2.535 X-Spam-Level: Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 12:55:00 -0000 > > I don't really follow your reasoning fully. I agree that users want to > > see their OSX and/or windows mounts from linux, but I think you > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > case of more traditional sysadmined unix setups (at universities and > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > If we were to show all these, then I think things would look pretty > > confusing. I really think we need to hide a bunch of mountpoints. Some > > mountpoints can probably be hardcoded > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > think of all possibilities, so we should probably have a way to mark > > them. > > > > We should only display "/media/*" and "/mnt/*" > > Xavier. Please, let it be configurable! There are people who prefer mounting media under "/" (like "/cdrom", etc.) P.T. -- Petr Tomasek From david@fubar.dk Wed Jun 7 09:42:51 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 565EE3B03C1 for ; Wed, 7 Jun 2006 09:42:51 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17395-02 for ; Wed, 7 Jun 2006 09:42:48 -0400 (EDT) Received: from davidz.fubar.dk (unknown [208.184.5.49]) by menubar.gnome.org (Postfix) with ESMTP id 8057D3B0229 for ; Wed, 7 Jun 2006 09:42:48 -0400 (EDT) Received: from [192.168.1.115] (unknown [127.0.0.1]) by davidz.fubar.dk (Postfix) with ESMTP id 6CDC19CE06F; Wed, 7 Jun 2006 09:42:47 -0400 (EDT) From: David Zeuthen To: Xavier Claessens In-Reply-To: <1149684668.5095.1.camel@zdra-desktop> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> Content-Type: text/plain Date: Wed, 07 Jun 2006 09:43:54 -0400 Message-Id: <1149687834.2424.24.camel@daxter.boston.redhat.com> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.57 tagged_above=-999 required=2 tests=[AWL=0.029, BAYES_00=-2.599] X-Spam-Score: -2.57 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , Alexander Larsson Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 13:42:51 -0000 On Wed, 2006-06-07 at 14:51 +0200, Xavier Claessens wrote: > > I don't really follow your reasoning fully. I agree that users want to > > see their OSX and/or windows mounts from linux, but I think you > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > case of more traditional sysadmined unix setups (at universities and > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > If we were to show all these, then I think things would look pretty > > confusing. I really think we need to hide a bunch of mountpoints. Some > > mountpoints can probably be hardcoded > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > think of all possibilities, so we should probably have a way to mark > > them. Yea, of course we should hide such bizarre mount points. My point was merely we ought to show drives/mounts even if the user is not privileged to mount them. > > > > We should only display "/media/*" and "/mnt/*" Yup, that's one option, maybe just resort to showing entries from /media then alexl's /mnt/hdb1 drive won't be shown (and if alexl wants it to be shown he can move the mount point to /media). Personally I think we should just hide all the directories and subdirs as defined by FHS2.3. We do that here http://cvs.gnome.org/viewcvs/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c?view=markup in function _hal_volume_policy_check() though I'm unsure whether this code is used at the moment (will look into that). David From alexl@redhat.com Fri Jun 9 07:20:04 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id CF0E53B0097 for ; Fri, 9 Jun 2006 07:20:04 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18633-05 for ; Fri, 9 Jun 2006 07:20:00 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 1AB843B011C for ; Fri, 9 Jun 2006 07:20:00 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJwQm005302; Fri, 9 Jun 2006 07:19:58 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJwLZ006488; Fri, 9 Jun 2006 07:19:58 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJvoV024293; Fri, 9 Jun 2006 07:19:57 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149687834.2424.24.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> <1149687834.2424.24.camel@daxter.boston.redhat.com> Content-Type: text/plain Date: Fri, 09 Jun 2006 13:19:57 +0200 Message-Id: <1149851997.3023.51.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 11:20:05 -0000 On Wed, 2006-06-07 at 09:43 -0400, David Zeuthen wrote: > On Wed, 2006-06-07 at 14:51 +0200, Xavier Claessens wrote: > > > I don't really follow your reasoning fully. I agree that users want to > > > see their OSX and/or windows mounts from linux, but I think you > > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > > case of more traditional sysadmined unix setups (at universities and > > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > > > If we were to show all these, then I think things would look pretty > > > confusing. I really think we need to hide a bunch of mountpoints. Some > > > mountpoints can probably be hardcoded > > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > > think of all possibilities, so we should probably have a way to mark > > > them. > > Yea, of course we should hide such bizarre mount points. My point was > merely we ought to show drives/mounts even if the user is not privileged > to mount them. > > > > > > > > We should only display "/media/*" and "/mnt/*" > > Yup, that's one option, maybe just resort to showing entries from /media > then alexl's /mnt/hdb1 drive won't be shown (and if alexl wants it to be > shown he can move the mount point to /media). Personally I think we > should just hide all the directories and subdirs as defined by FHS2.3. > We do that here > > http://cvs.gnome.org/viewcvs/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c?view=markup > > in function _hal_volume_policy_check() though I'm unsure whether this > code is used at the moment (will look into that). Well, the bug report: http://bugzilla.gnome.org/show_bug.cgi?id=341446 showed drives for things like / and /home. So something is going wrong here. I see a _hal_drive_policy_check that is empty though. Anyway, what i think we should do is: Have a policy for what mountpoints to create drives for. Be it by blacklisting or whitelisting. If the policy says the mountpoint shouldn't have a drive then we don't even create one. Set is_user_visible to false on drives that support auto-mounting, so we can hide them everywhere but in computer:///. I think blacklisting will probably work well enough, but you probably need to add more stuff than just the toplevel FHS mountpoints, for instance /dev/shmem and common non-linux mountpoints. Also, it looks like you create drives based on currently mounted volumes that are not in fstab? This will generate a bunch of drives when using things like autofs for separate /home/ mountpoints and cause things like /proc/bus/usb to get drives. Does it ever make sense to create a drive object for a volume like this? It'll only live as long as the volume and you can't really use it for anything. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a time-tossed coffee-fuelled inventor on his last day in the job. She's a warm-hearted mutant research scientist from a different time and place. They fight crime! From alexl@redhat.com Fri Jun 9 07:21:46 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id A75453B0121 for ; Fri, 9 Jun 2006 07:21:46 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18661-08 for ; Fri, 9 Jun 2006 07:21:45 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 573C53B006A for ; Fri, 9 Jun 2006 07:21:45 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLiIX005951; Fri, 9 Jun 2006 07:21:44 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLiWa006890; Fri, 9 Jun 2006 07:21:44 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLh8I024410; Fri, 9 Jun 2006 07:21:44 -0400 From: Alexander Larsson To: Ken Ishii In-Reply-To: <20060604195153.83291.qmail@web61323.mail.yahoo.com> References: <20060604195153.83291.qmail@web61323.mail.yahoo.com> Content-Type: text/plain Date: Fri, 09 Jun 2006 13:21:43 +0200 Message-Id: <1149852104.3023.53.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: gnome-vfs-list@gnome.org Subject: Re: gnome_vfs_uri_hash() bug? X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 11:21:46 -0000 On Sun, 2006-06-04 at 12:51 -0700, Ken Ishii wrote: > gnome_vfs_uri_hash() has the following code section: > > for (uri_p = uri; uri_p != NULL; uri_p = uri_p->parent) { > HASH_STRING (hash_value, uri_p->text); > HASH_STRING (hash_value, uri_p->method_string); > > if (uri_p->parent != NULL) { > const GnomeVFSToplevelURI *toplevel; > > toplevel = (const GnomeVFSToplevelURI *) uri_p; > > Since GnomeVFSToplevelURI is defined to be an URI without a parent, > shouldn't > if (uri_p->parent != NULL) > be > if (uri_p->parent == NULL) > instead? Yeah. That looks wrong. I'm fixing it in cvs. Thanks. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's an old-fashioned white trash romance novelist She's a bloodthirsty Buddhist bodyguard prone to fits of savage, blood-crazed rage. They fight crime! From alexl@redhat.com Mon Jun 12 05:38:16 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 296D33B00A7 for ; Mon, 12 Jun 2006 05:38:16 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28453-10 for ; Mon, 12 Jun 2006 05:38:14 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 8A0A33B008D for ; Mon, 12 Jun 2006 05:38:14 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bL45019802; Mon, 12 Jun 2006 05:37:21 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bG0T011686; Mon, 12 Jun 2006 05:37:16 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bF3C014485; Mon, 12 Jun 2006 05:37:15 -0400 From: Alexander Larsson To: Xavier Claessens In-Reply-To: <1149455967.15249.30.camel@zdra-desktop> References: <1149455967.15249.30.camel@zdra-desktop> Content-Type: text/plain Date: Mon, 12 Jun 2006 11:37:15 +0200 Message-Id: <1150105036.3023.95.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: gnome-vfs-list@gnome.org Subject: Re: volume-unmounted signal on GnomeVFSDrive X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jun 2006 09:38:16 -0000 On Sun, 2006-06-04 at 23:19 +0200, Xavier Claessens wrote: > Hello, > > As I understand the "volume-unmounted" signal is emitted before the > volume unmounted is really removed from the drive. So in the callback, > if we run gnome_vfs_drive_get_mounted_volumes() it will return a GList > still containing the unmounted GnomeVFSVolume. > > I think it should be very useful to have a callback after everything is > done. For example in nautilus'places sidebar when we get the > "volume-unmounted" callback we can't update the sidebar yet because the > drive still has the volume connected... so we add a g_idle_add() to have > a callback after everything is done and then we can update the sidebar. > > I think that's more a workaround than a real solution. What about adding > in GnomeVFSDrive and GnomeVFSVolumeMonitor a "volume-post-unmount" > callback (we already have a "volume-pre-unmount" cb) ? > > I you are OK with the idea I can make a patch. You could just look at gnome_vfs_volume_is_mounted() in the volume-unmounted call and ignore things that are not mounted. We do set is_mounted before emitting the signal for things like this. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a deeply religious umbrella-wielding astronaut looking for a cure to the poison coursing through his veins. She's a green-fingered snooty femme fatale who can talk to animals. They fight crime! From alexl@redhat.com Mon Jun 12 06:12:18 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 084B93B0078 for ; Mon, 12 Jun 2006 06:12:18 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 29802-04 for ; Mon, 12 Jun 2006 06:12:16 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 2BF913B009D for ; Mon, 12 Jun 2006 06:12:16 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TFho017434; Mon, 12 Jun 2006 05:29:15 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TF93010182; Mon, 12 Jun 2006 05:29:15 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TEb4013434; Mon, 12 Jun 2006 05:29:14 -0400 From: Alexander Larsson To: Christian Neumair In-Reply-To: <1149010547.5256.19.camel@localhost.localdomain> References: <1149010547.5256.19.camel@localhost.localdomain> Content-Type: text/plain Date: Mon, 12 Jun 2006 11:29:14 +0200 Message-Id: <1150104554.3023.93.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.549 tagged_above=-999 required=2 tests=[AWL=-0.025, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, TW_FD=0.077] X-Spam-Score: -2.549 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , Ken Ishii Subject: Re: Proposed (unfinished) ZIP module available on Bugzilla X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jun 2006 10:12:18 -0000 On Tue, 2006-05-30 at 19:35 +0200, Christian Neumair wrote: > Dear GnomeVFS development community, > > as requested by Ken Ishii who needs a ZIP module, I'm publishing a > prelimitary version of a GnomeVFS ZIP module in Bugzilla [1]. People who > are interested in development should check out the bug report and help > out :). > > [1] http://bugzilla.gnome.org/show_bug.cgi?id=343419 It seems this uncompresses the file on open and then reads from that. I think this is the right approach, but there are some tricks you could use to make this nicer. What you do is create the uncompressed temp files (in /tmp) and then unlink the file, keeping the file descriptor around. This means the file is not visible in the filesystem, but the data for it is kept around until the last fd referencing it is closed. You store this fd in a cache, and then use dup() to get a new independent file descriptor to the file in do_open(). When the app is closed the kernel will close all fds and deallocate the filesystem space. So, doing things this way means you'll never leak tempfiles. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a lounge-singing albino vampire hunter who knows the secret of the alien invasion. She's a virginal punk traffic cop with an MBA from Harvard. They fight crime! From mclasen@redhat.com Mon Jun 12 22:40:48 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 4BAD63B0009 for ; Mon, 12 Jun 2006 22:40:48 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07590-05 for ; Mon, 12 Jun 2006 22:40:46 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 3251E3B000C for ; Mon, 12 Jun 2006 22:40:46 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5D2MFId000486 for ; Mon, 12 Jun 2006 22:22:15 -0400 Received: from lacrosse.corp.redhat.com (lacrosse.corp.redhat.com [172.16.52.154]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5D2MFG6018613 for ; Mon, 12 Jun 2006 22:22:15 -0400 Received: from [172.16.83.145] (vpn83-145.boston.redhat.com [172.16.83.145]) by lacrosse.corp.redhat.com (8.12.11.20060308/8.11.6) with ESMTP id k5D2MEWJ003165 for ; Mon, 12 Jun 2006 22:22:14 -0400 From: Matthias Clasen To: gnome-vfs-list@gnome.org Content-Type: text/plain Organization: Red Hat Date: Mon, 12 Jun 2006 22:24:01 -0400 Message-Id: <1150165441.4081.7.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.541 tagged_above=-999 required=2 tests=[AWL=0.060, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.541 X-Spam-Level: Subject: gnome-mime-data dependency X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jun 2006 02:40:48 -0000 During some Fedora package work I noticed that gnome-vfs still pulls in gnome-mime-data, which seems to be old and unmaintained. Alex tells me that it is needed for some deprecated mime apis. I think it would be nice to get rid of that dependency in 2.16. Matthias From bosshrap@zhwin.ch Tue Jun 13 10:41:32 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 2D47B3B000C for ; Tue, 13 Jun 2006 10:41:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26639-07 for ; Tue, 13 Jun 2006 10:41:30 -0400 (EDT) Received: from a.mx.projectdream.org (eth0-0.yuffie.projectdream.org [194.88.212.200]) by menubar.gnome.org (Postfix) with ESMTP id 2806B3B00A5 for ; Tue, 13 Jun 2006 10:41:29 -0400 (EDT) Received: from [10.0.0.11] (d213-103-155-97.cust.tele2.ch [213.103.155.97]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a.mx.projectdream.org (Postfix) with ESMTP id BD3548811A for ; Tue, 13 Jun 2006 16:40:29 +0200 (CEST) Message-ID: <448ECE64.9030800@zhwin.ch> Date: Tue, 13 Jun 2006 16:40:36 +0200 From: Raphael Bosshard User-Agent: Thunderbird 1.5.0.4 (X11/20060612) MIME-Version: 1.0 To: gnome-vfs-list@gnome.org Subject: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) Content-Type: multipart/mixed; boundary="------------000304070805010006040703" X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: X-Mailman-Approved-At: Thu, 15 Jun 2006 08:09:00 -0400 X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jun 2006 14:41:32 -0000 This is a multi-part message in MIME format. --------------000304070805010006040703 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit See http://bugzilla.gnome.org/show_bug.cgi?id=344296 This patch changes the human readable filesizes (gnome_vfs_format_file_size_for_display) which are curently displayed (rather missleading) with binary prefix multipliers (such as Kilo, Mega, Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). The IEC approved standard symbols (KiB, MiB, GiB) are used. For more information please read http://en.wikipedia.org/wiki/Binary_prefix So long, Raphael --------------000304070805010006040703 Content-Type: text/x-patch; name="gnome-vfs-display-binary-prefix.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="gnome-vfs-display-binary-prefix.patch" --- gnome-vfs-2.14.2/libgnomevfs/gnome-vfs-utils.c 2006-03-03 10:28:21.000000000 +0100 +++ gnome-vfs-2.14.2-work/libgnomevfs/gnome-vfs-utils.c 2006-06-10 23:03:40.983116272 +0200 @@ -51,9 +51,9 @@ #include #include -#define KILOBYTE_FACTOR 1024.0 -#define MEGABYTE_FACTOR (1024.0 * 1024.0) -#define GIGABYTE_FACTOR (1024.0 * 1024.0 * 1024.0) +#define KIBIBYTE_FACTOR 1024.0 +#define MEBIBYTE_FACTOR (1024.0 * 1024.0) +#define GIBIBYTE_FACTORFACTOR (1024.0 * 1024.0 * 1024.0) #define READ_CHUNK_SIZE 8192 @@ -74,22 +74,22 @@ gchar* gnome_vfs_format_file_size_for_display (GnomeVFSFileSize size) { - if (size < (GnomeVFSFileSize) KILOBYTE_FACTOR) { + if (size < (GnomeVFSFileSize) KIBIBYTE_FACTOR) { return g_strdup_printf (dngettext(GETTEXT_PACKAGE, "%u byte", "%u bytes",(guint) size), (guint) size); } else { gdouble displayed_size; - if (size < (GnomeVFSFileSize) MEGABYTE_FACTOR) { - displayed_size = (gdouble) size / KILOBYTE_FACTOR; - return g_strdup_printf (_("%.1f KB"), + if (size < (GnomeVFSFileSize) MEBIBYTE_FACTOR) { + displayed_size = (gdouble) size / KIBIBYTE_FACTOR; + return g_strdup_printf (_("%.1f KiB"), displayed_size); - } else if (size < (GnomeVFSFileSize) GIGABYTE_FACTOR) { - displayed_size = (gdouble) size / MEGABYTE_FACTOR; - return g_strdup_printf (_("%.1f MB"), + } else if (size < (GnomeVFSFileSize) GIBIBYTE_FACTORFACTOR) { + displayed_size = (gdouble) size / MEBIBYTE_FACTOR; + return g_strdup_printf (_("%.1f MiB"), displayed_size); } else { - displayed_size = (gdouble) size / GIGABYTE_FACTOR; - return g_strdup_printf (_("%.1f GB"), + displayed_size = (gdouble) size / GIBIBYTE_FACTORFACTOR; + return g_strdup_printf (_("%.1f GiB"), displayed_size); } } --------------000304070805010006040703-- From alexl@redhat.com Sat Jun 17 04:58:04 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 361533B042A for ; Sat, 17 Jun 2006 04:58:04 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15153-02 for ; Sat, 17 Jun 2006 04:58:02 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 676533B010F for ; Sat, 17 Jun 2006 04:58:02 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vMS8009846; Sat, 17 Jun 2006 04:57:22 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vMxp026394; Sat, 17 Jun 2006 04:57:22 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vL4b023197; Sat, 17 Jun 2006 04:57:21 -0400 Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Alexander Larsson To: Raphael Bosshard In-Reply-To: <448ECE64.9030800@zhwin.ch> References: <448ECE64.9030800@zhwin.ch> Content-Type: text/plain Date: Sat, 17 Jun 2006 10:57:21 +0200 Message-Id: <1150534641.1962.19.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.588 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.588 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jun 2006 08:58:04 -0000 On Tue, 2006-06-13 at 16:40 +0200, Raphael Bosshard wrote: > See http://bugzilla.gnome.org/show_bug.cgi?id=344296 > > This patch changes the human readable filesizes > (gnome_vfs_format_file_size_for_display) which are curently displayed > (rather missleading) with binary prefix multipliers (such as Kilo, Mega, > Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). > The IEC approved standard symbols (KiB, MiB, GiB) are used. > > For more information please read http://en.wikipedia.org/wiki/Binary_prefix This has already been denied in bugs like: http://bugzilla.gnome.org/show_bug.cgi?id=127175 Which references mails like: http://mail.gnome.org/archives/gnome-doc-list/2003-December/msg00004.html and the gnome docs style guides: http://developer.gnome.org/documents/style-guide/units.html For what its worth I very much agree with Patrick. The binary prefixes are silly and nobody but anal-retentive ultra-geeks will understand them, thus confusing the general userbase (who haven't seen them before). =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a sword-wielding pirate librarian searching for his wife's true killer. She's a time-travelling junkie Hell's Angel in the wrong place at the wrong time. They fight crime! From nf2@scheinwelt.at Sun Jun 18 18:55:34 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 462013B00AF; Sun, 18 Jun 2006 18:55:34 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 12908-03; Sun, 18 Jun 2006 18:55:31 -0400 (EDT) Received: from mx-01.sil.at (mx-01.sil.at [86.59.12.198]) by menubar.gnome.org (Postfix) with ESMTP id 208EC3B00B2; Sun, 18 Jun 2006 18:55:30 -0400 (EDT) Received: from vie-062-116-122-020.dsl.sil.at ([62.116.122.20] helo=[192.168.5.82]) by mx-01.sil.at with esmtp (Exim 4.60) (envelope-from ) id 1Fs69X-0004Oc-Kv; Mon, 19 Jun 2006 00:54:01 +0200 Message-ID: <4495D984.5090705@scheinwelt.at> Date: Mon, 19 Jun 2006 00:53:56 +0200 From: nf2 User-Agent: Thunderbird 1.5 (X11/20051201) MIME-Version: 1.0 To: gtk-list@gnome.org, gnome vfs list Subject: libxdg-vfs and Gtk-Filechooser Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scan-Signature: 9d02a3267670e8bb77f537b38fda5a39 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.51 tagged_above=-999 required=2 tests=[AWL=0.012, BAYES_00=-2.599, TW_XD=0.077] X-Spam-Score: -2.51 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jun 2006 22:55:34 -0000 Hi, The experimental "libxdg-vfs" provides a generic interface to VFS libraries. It tries to autodetect the current desktop and then connects to Gnome-VFS or KIO by launching the backend executables xdg_vfs_gnome or xdg_vfs_kde. http://www.scheinwelt.at/~norbertf/dadapt/files/xdg_utils/doc/libxdg-vfs.html The target of "libxdg-vfs" would be giving applications access to ftp/smb shares etc... Of course this also involves bringing VFS access to filechoosers. AFAIK Gtk-Filechooser has pluggable backends (GtkFilesystem). It would be interesting if it could also run on top of "libxdg-vfs". The problem is, that i couldn't find any documentation how to implement a GtkFilesystem module. Could you please give me an introduction and maybe tell me about the specific requirements for a GtkFilesystem? Perhaps i need to provide more functions through "libxdg-vfs": listing and mounting Volumes, obtaining icon-paths,... Regards, Norbert From chris@gnome-de.org Sun Jun 18 13:44:45 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 349513B00E5 for ; Sun, 18 Jun 2006 13:44:45 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05823-10 for ; Sun, 18 Jun 2006 13:44:41 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id E77BC3B0009 for ; Sun, 18 Jun 2006 13:44:39 -0400 (EDT) Received: (qmail 45357 invoked by uid 85); 18 Jun 2006 17:36:58 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.153.121):. Processed in 7.089351 secs); 18 Jun 2006 17:36:58 -0000 Received: from p54969979.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.153.121) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 18 Jun 2006 17:36:51 -0000 Subject: [PATCH] Improve docs, new attempt From: Christian Neumair To: "gnome-vfs-list@gnome.org" Content-Type: multipart/mixed; boundary="=-4cYgbTZAmh2zlaadTQGz" Date: Sun, 18 Jun 2006 19:36:47 +0200 Message-Id: <1150652208.22660.3.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: X-Mailman-Approved-At: Mon, 19 Jun 2006 14:27:21 -0400 X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jun 2006 17:44:45 -0000 --=-4cYgbTZAmh2zlaadTQGz Content-Type: text/plain Content-Transfer-Encoding: 7bit I've spent some more hours on GnomeVFS docs and the Xfer docs should be in a way better shape now. I got commit permission for the last one already, but this one is significantly larger (240 kB, but including the tmpl/ regeneration garbage). -- Christian Neumair --=-4cYgbTZAmh2zlaadTQGz Content-Disposition: attachment; filename=gnome-vfs-doc-3.diff.gz Content-Type: application/x-gzip; name=gnome-vfs-doc-3.diff.gz Content-Transfer-Encoding: base64 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 --=-4cYgbTZAmh2zlaadTQGz-- From ensonic@hora-obscura.de Mon Jun 19 18:38:50 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0E7D03B03FC for ; Mon, 19 Jun 2006 18:38:50 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05344-05 for ; Mon, 19 Jun 2006 18:38:47 -0400 (EDT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by menubar.gnome.org (Postfix) with ESMTP id D01C83B03EE for ; Mon, 19 Jun 2006 18:38:46 -0400 (EDT) Received: from [82.165.27.189] (helo=hora-obscura.de) by mrelayeu.kundenserver.de (node=mrelayeu0) with ESMTP (Nemesis), id 0MKwh2-1FsSHG2Dgc-0000IG; Tue, 20 Jun 2006 00:31:26 +0200 Received: from localhost (localhost [127.0.0.1]) by smtp.hora-obscura.de (Postfix) with ESMTP id 48519878042; Tue, 20 Jun 2006 00:31:26 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by smtp.hora-obscura.de (Postfix) with ESMTP id 768D4878023; Tue, 20 Jun 2006 00:31:19 +0200 (CEST) Subject: Re: [PATCH] Improve docs, new attempt From: Stefan Kost To: Christian Neumair In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> References: <1150652208.22660.3.camel@localhost.localdomain> Content-Type: text/plain Date: Tue, 20 Jun 2006 01:30:37 +0300 Message-Id: <1150756237.15396.6.camel@fluffy.local> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new using ClamAV at hora-obscura.de X-Provags-ID: kundenserver.de abuse@kundenserver.de login:8eea7ddcf9c0cceb26830fe517b7ade3 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.496 tagged_above=-999 required=2 tests=[AWL=0.026, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.496 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 22:38:50 -0000 Hi Christian, Am Sonntag, den 18.06.2006, 19:36 +0200 schrieb Christian Neumair: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). I strongly recommend to move all docs to the source files and remove the tmpl files from cvs totaly. If developers use different versions of gtk-doc, commiting partialy generated files such as the files under tmpl/ can often cause conflicts like those we know with po/*.po files. Besides developers will more likely update docs when they are close to the sources. In case you are not aware, even the section docs can be added to the sources (see the gtk-doc manual in yelp). Stefan From chipzz@ULYSSIS.Org Mon Jun 19 21:43:10 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 471F03B015D for ; Mon, 19 Jun 2006 21:43:10 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15440-03 for ; Mon, 19 Jun 2006 21:43:07 -0400 (EDT) Received: from rusty.kulnet.kuleuven.ac.be (rusty.kulnet.kuleuven.ac.be [134.58.240.42]) by menubar.gnome.org (Postfix) with ESMTP id A4EC63B00D9 for ; Mon, 19 Jun 2006 21:43:06 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by rusty.kulnet.kuleuven.ac.be (Postfix) with ESMTP id 43E5F1D75E5 for ; Tue, 20 Jun 2006 03:42:23 +0200 (CEST) Received: from smtp03.kuleuven.be (antonius.kulnet.kuleuven.ac.be [134.58.240.73]) by rusty.kulnet.kuleuven.ac.be (Postfix) with ESMTP id 4E13C1D75DF for ; Tue, 20 Jun 2006 03:42:20 +0200 (CEST) Received: from smtp.ulyssis.student.kuleuven.be (ray.ulyssis.student.kuleuven.be [193.190.253.198]) by smtp03.kuleuven.be (Postfix) with ESMTP id 47261332762 for ; Tue, 20 Jun 2006 03:42:20 +0200 (CEST) Received: (qmail 30541 invoked from network); 20 Jun 2006 01:42:20 -0000 Received: from ace.ulyssis.student.kuleuven.be (HELO ace.ulyssis.org) (193.190.253.208) by smtp.ulyssis.student.kuleuven.be with SMTP; 20 Jun 2006 01:42:20 -0000 Received: by ace.ulyssis.org (Postfix, from userid 1275) id 050F92EFE4; Tue, 20 Jun 2006 03:42:19 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by ace.ulyssis.org (Postfix) with ESMTP id E85052EFE3; Tue, 20 Jun 2006 03:42:19 +0200 (CEST) Date: Tue, 20 Jun 2006 03:42:19 +0200 (CEST) From: Chipzz To: Christian Neumair Subject: Re: [PATCH] Improve docs, new attempt In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> Message-ID: References: <1150652208.22660.3.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: by KULeuven Antivirus Cluster X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.419 tagged_above=-999 required=2 tests=[AWL=0.045, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.419 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: Chipzz@ULYSSIS.Org List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 01:43:10 -0000 I only read about half of your patch, and not even all of it carefully, but here are a couple of suggestions: + * Either way, it acts like #GnomeVFSXferProgressCallback + * would act in non-asynchronous mode. The differences in + * invocation are explained in the gnome_vfs_async_xfer() + * documentation documentation. -> 2x documentation. + * @GNOME_VFS_FILE_TYPE_REGULAR: The file is regular (stat: %S_ISDIR). + * @GNOME_VFS_FILE_TYPE_DIRECTORY: The file is a directory (stat: %S_ISREG). -> "The file is a regular file" -> %S_ISDIR and %S_ISREG are swapped. + * @GNOME_VFS_PERM_USER_READ: Owner has read permission. etc... -> permission*s* ? + * @GNOME_VFS_PERM_OTHER_ALL: Others have all permissionss. -> permission*ss* ! + * @block_count: The size of the file in 512-byte blocks (a #GnomeVFSFileSize), -> I may be totally wrong here, but isn't this filesystem dependant? kr, On Sun, 18 Jun 2006, Christian Neumair wrote: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). Chipzz AKA Jan Van Buggenhout -- ------------------------------------------------------------------------ UNIX isn't dead - It just smells funny Chipzz@ULYSSIS.Org ------------------------------------------------------------------------ "Baldric, you wouldn't recognize a subtle plan if it painted itself pur- ple and danced naked on a harpsicord singing 'subtle plans are here a- gain'." From bosshrap@zhwin.ch Tue Jun 20 09:25:20 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8A5FA3B01A8 for ; Tue, 20 Jun 2006 09:25:20 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17592-03 for ; Tue, 20 Jun 2006 09:25:17 -0400 (EDT) Received: from a.mx.projectdream.org (eth0-0.yuffie.projectdream.org [194.88.212.200]) by menubar.gnome.org (Postfix) with ESMTP id 765663B017D for ; Tue, 20 Jun 2006 09:25:17 -0400 (EDT) Received: from dskt6433.zhwin.ch (dskt6433.zhwin.ch [160.85.162.206]) by a.mx.projectdream.org (Postfix) with ESMTP id 048688803B; Tue, 20 Jun 2006 15:24:23 +0200 (CEST) Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Raphael Bosshard To: Alexander Larsson In-Reply-To: <1150534641.1962.19.camel@greebo> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> Content-Type: text/plain Date: Tue, 20 Jun 2006 15:24:20 +0200 Message-Id: <1150809860.15905.28.camel@numenor> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.11 tagged_above=-999 required=2 tests=[BAYES_05=-1.11] X-Spam-Score: -1.11 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 13:25:20 -0000 Hello there! > For what its worth I very much agree with Patrick. The binary prefixes > are silly and nobody but anal-retentive ultra-geeks will understand > them, thus confusing the general userbase (who haven't seen them > before). Well, that's strange. I never considered myself a "anal-retentive ultra-geek". And I certainly never thought that my sister would fit into the category of "anal-retentive ultra-geeks". And yet she was the one who brought up the topic when we upgraded her computer with a new hard disk last week. The disk was labeled "250 Gigabyte". Yet when we installed it,"only" 238 Gigabytes were available. I explained her that the disk manufacturer interpreted the term "Giga" in a other way then the software manufacturer. Being an "anal-retentive ultra-geek", she was bothered by this. My sister is by no means a technical person. But to her european decimalised mind "Kilo" means "a thousand" and not "a thousand and twenty four", just in the way that "Mega" means "a million" and not "one million four hundred forty nine thousand six hundred sixteen". It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean "Giga". But I always thought that only "anal-retentive ultra-geeks" know that and I recently noticed it confuses the the general userbase (who haven't heard of that before). The strange thing is that almost everyone seems to agree (even Patrick) that binary prefixes are a good Idea. However; everyone seems to wait with the adaption of binary prefixes until everyone around has adapted them. Funny thing. I see no need to bother the documentation team; there is to much resistance against binary prefixes. So long, Raphael From alexl@redhat.com Tue Jun 20 09:50:54 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id C6D663B01A8 for ; Tue, 20 Jun 2006 09:50:54 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18291-09 for ; Tue, 20 Jun 2006 09:50:53 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 3030F3B020B for ; Tue, 20 Jun 2006 09:50:53 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDo05r027617; Tue, 20 Jun 2006 09:50:00 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDo0Fm009656; Tue, 20 Jun 2006 09:50:00 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDnxEP016163; Tue, 20 Jun 2006 09:49:59 -0400 Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Alexander Larsson To: Raphael Bosshard In-Reply-To: <1150809860.15905.28.camel@numenor> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> <1150809860.15905.28.camel@numenor> Content-Type: text/plain Date: Tue, 20 Jun 2006 15:49:59 +0200 Message-Id: <1150811399.16397.51.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.588 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.588 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 13:50:55 -0000 On Tue, 2006-06-20 at 15:24 +0200, Raphael Bosshard wrote: > > For what its worth I very much agree with Patrick. The binary prefixes > > are silly and nobody but anal-retentive ultra-geeks will understand > > them, thus confusing the general userbase (who haven't seen them > > before). > > Well, that's strange. I never considered myself a "anal-retentive > ultra-geek". And I certainly never thought that my sister would fit into > the category of "anal-retentive ultra-geeks". And yet she was the one > who brought up the topic when we upgraded her computer with a new hard > disk last week. The disk was labeled "250 Gigabyte". Yet when we > installed it,"only" 238 Gigabytes were available. I explained her that > the disk manufacturer interpreted the term "Giga" in a other way then > the software manufacturer. Being an "anal-retentive ultra-geek", she was > bothered by this. > > My sister is by no means a technical person. But to her european > decimalised mind "Kilo" means "a thousand" and not "a thousand and > twenty four", just in the way that "Mega" means "a million" and not "one > million four hundred forty nine thousand six hundred sixteen". I'm well aware of the problems with 1000/1024 multipliers. However, consider your sisters case if we used 238 gibibyte instead of 238 gigabyte. 1) We'd still show 238 instead of 250 which is listed which would cause your sister to wonder where the space went. 2) There would be a strange acronym in the UI that she had never seen before and didn't match what is commonly in use in ads, docs, hardware specifications etc. Its unfortunately true that terms like gigabyte and megabyte are very widespread and in active use by people who don't really know exactly what they mean. Changing this use is slow and hard. > It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean > "Giga". But I always thought that only "anal-retentive ultra-geeks" know > that and I recently noticed it confuses the the general userbase (who > haven't heard of that before). > > The strange thing is that almost everyone seems to agree (even Patrick) > that binary prefixes are a good Idea. However; everyone seems to wait > with the adaption of binary prefixes until everyone around has adapted > them. Funny thing. This is almost always the case with such large (in terms of number of places/organizations it has to be changed) changes. I think its partly because the net gain of doing the change isn't really that large. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a one-legged soccer-playing rock star who hangs with the wrong crowd. She's a plucky goth nun from Mars. They fight crime! From lifewarped@yahoo.com Wed Jun 21 15:50:32 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8F91D3B0266 for ; Wed, 21 Jun 2006 15:50:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01152-09 for ; Wed, 21 Jun 2006 15:50:31 -0400 (EDT) Received: from smtp109.plus.mail.re2.yahoo.com (smtp109.plus.mail.re2.yahoo.com [206.190.53.34]) by menubar.gnome.org (Postfix) with SMTP id 424163B015F for ; Wed, 21 Jun 2006 15:50:31 -0400 (EDT) Received: (qmail 56956 invoked from network); 21 Jun 2006 19:50:30 -0000 Received: from unknown (HELO ?192.168.1.85?) (lifewarped@64.252.203.251 with plain) by smtp109.plus.mail.re2.yahoo.com with SMTP; 21 Jun 2006 19:50:29 -0000 Mime-Version: 1.0 (Apple Message framework v750) To: gnome-vfs-list@gnome.org Message-Id: <647A0248-B8FA-4F26-8652-17718BEDAF37@yahoo.com> Content-Type: multipart/alternative; boundary=Apple-Mail-1-813535700 From: "Glenn R. Martin" Subject: IP6 and MacOS X Date: Wed, 21 Jun 2006 15:50:27 -0400 X-Mailer: Apple Mail (2.750) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.417 tagged_above=-999 required=2 tests=[AWL=-1.880, BAYES_40=-0.185, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447, HTML_MESSAGE=0.001] X-Spam-Score: -0.417 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jun 2006 19:50:32 -0000 --Apple-Mail-1-813535700 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Apple's Mac OS X predefines a macro named SIN6_LEN... However this macro appears to be nothing. I was wondering if i wouldnt be too much trouble to add the following to your gnome-vfs-address.c file so i would not have to add it next time? (im using todays CVS) Line 55, libgnomevfs/gnome-vfs-address.c : #ifdef SIN6_LEN && __APPLE__ # undef SIN6_LEN #endif # define SIN6_LEN sizeof (struct sockaddr_in6) Thanks --- Glenn R. Martin lifewarped@yahoo.com http://www.xargos.com http://www.myspace.com/grmartin C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. -- Bjarne Stroustrup --Apple-Mail-1-813535700 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 Apple's Mac OS X predefines a = macro named SIN6_LEN... However this macro appears to be nothing. I was = wondering if i wouldnt be too much trouble to add the following to your = gnome-vfs-address.c file so i would not have to add it next = time?

(im using = todays CVS)

Line = 55,=A0libgnomevfs/gnome-vfs-address.c :

#ifdef SIN6_LEN = &&=A0__APPLE__
# undef = SIN6_LEN
#endif

# define SIN6_LEN=A0= =A0=A0 sizeof (struct sockaddr_in6)

Thanks

---
Glenn R. = Martin
C makes it easy to shoot yourself in = the foot; C++ makes it harder, but when you do, it blows away your whole = leg. -- Bjarne Stroustrup

=

= --Apple-Mail-1-813535700-- From lifewarped@yahoo.com Wed Jun 21 15:58:02 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0CF823B0192 for ; Wed, 21 Jun 2006 15:58:02 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02062-01 for ; Wed, 21 Jun 2006 15:58:01 -0400 (EDT) Received: from smtp104.plus.mail.re2.yahoo.com (smtp104.plus.mail.re2.yahoo.com [206.190.53.29]) by menubar.gnome.org (Postfix) with SMTP id AF9573B035A for ; Wed, 21 Jun 2006 15:58:00 -0400 (EDT) Received: (qmail 63776 invoked from network); 21 Jun 2006 19:57:59 -0000 Received: from unknown (HELO ?192.168.1.85?) (lifewarped@64.252.203.251 with plain) by smtp104.plus.mail.re2.yahoo.com with SMTP; 21 Jun 2006 19:57:59 -0000 Mime-Version: 1.0 (Apple Message framework v750) To: gnome-vfs-list@gnome.org Message-Id: <2766644B-5FDA-44BF-BFA9-F0C4295F117E@yahoo.com> Content-Type: multipart/alternative; boundary=Apple-Mail-2-813985806 From: "Glenn R. Martin" Subject: login_tty on Mac OS X Date: Wed, 21 Jun 2006 15:57:57 -0400 X-Mailer: Apple Mail (2.750) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.823 tagged_above=-999 required=2 tests=[AWL=-1.361, BAYES_05=-1.11, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447, HTML_MESSAGE=0.001] X-Spam-Score: -0.823 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jun 2006 19:58:02 -0000 --Apple-Mail-2-813985806 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed MacOS X has the login_tty() definition in its header which does not seem to be included by your libgnomevfs/gnome-vfs-pty.{c,h} file. Mind doing so, if i run in to anything else, ill hold it back for a complete email. again my copy is from the CVS. --- Glenn R. Martin lifewarped@yahoo.com http://www.xargos.com http://www.myspace.com/grmartin C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. -- Bjarne Stroustrup --Apple-Mail-2-813985806 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 MacOS X has the login_tty() = definition in its <util.h> header which does not seem to be = included by your=A0libgnomevfs/gnome-vfs-pty.{c,h} file. Mind doing so, = if i run in to anything else, ill hold it back for a complete = email.

again my copy is from the = CVS.

---
Glenn R. = Martin
C makes it easy to shoot yourself in = the foot; C++ makes it harder, but when you do, it blows away your whole = leg. -- Bjarne Stroustrup

=

= --Apple-Mail-2-813985806-- From chris@gnome-de.org Thu Jun 22 08:11:59 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 99F493B0691 for ; Thu, 22 Jun 2006 08:11:59 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 23409-09 for ; Thu, 22 Jun 2006 08:11:58 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id C20CC3B05EE for ; Thu, 22 Jun 2006 08:11:57 -0400 (EDT) Received: (qmail 40576 invoked by uid 85); 22 Jun 2006 12:11:51 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.143.65):. Processed in 0.019744 secs); 22 Jun 2006 12:11:51 -0000 Received: from p54968f41.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.143.65) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 22 Jun 2006 12:11:51 -0000 Subject: Re: [PATCH] Improve docs, new attempt From: Christian Neumair To: Chipzz@ULYSSIS.Org In-Reply-To: References: <1150652208.22660.3.camel@localhost.localdomain> Content-Type: text/plain Date: Thu, 22 Jun 2006 14:11:45 +0200 Message-Id: <1150978306.5236.14.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Jun 2006 12:11:59 -0000 Am Dienstag, den 20.06.2006, 03:42 +0200 schrieb Chipzz: > I only read about half of your patch, and not even all of it carefully, but > here are a couple of suggestions: > (...) > -> "The file is a regular file" > -> %S_ISDIR and %S_ISREG are swapped. > > + * @GNOME_VFS_PERM_USER_READ: Owner has read permission. > etc... > > -> permission*s* ? Permission*s* for ALL but permission (without a trailing s) for the rest, i.e. READ, WRITE, EXECUTE. > (...) Thanks for your worthy suggestions, I've included almost all of them. Alex just looked through the patch as well and allowed me to commit it :). -- Christian Neumair From alexl@redhat.com Thu Jun 1 04:19:18 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 680983B0C81 for ; Thu, 1 Jun 2006 04:19:18 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16118-02 for ; Thu, 1 Jun 2006 04:19:15 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id D2B843B0C95 for ; Thu, 1 Jun 2006 04:19:14 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518JCYk032595; Thu, 1 Jun 2006 04:19:12 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518JCBf005878; Thu, 1 Jun 2006 04:19:12 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518J9Kt016649; Thu, 1 Jun 2006 04:19:10 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149115005.2331.18.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Date: Thu, 01 Jun 2006 10:19:10 +0200 Message-Id: <1149149950.5416.49.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 08:19:18 -0000 On Wed, 2006-05-31 at 18:36 -0400, David Zeuthen wrote: > Hi, > > Any reason this is not on the list? Also, please use my david@fubar.dk > email address since that's what I'm using for GNOME stuff. I dunno, it got removed at some point. I'm adding it back. > On Mon, 2006-05-29 at 14:04 +0200, Alexander Larsson wrote: > > On Wed, 2006-05-24 at 21:38 +0200, Xavier Claessens wrote: > > > Le mercredi 24 mai 2006 à 17:59 +0200, Alexander Larsson a écrit : > > > > Here is the thing. I don't expect there to be a GnomeVFSDrive for > > > > the /home volume (which i assume is a normal mountpoint on another > > > > partition). We should only have drive objects for real removable media > > > > mountpoints. > > > > > > I join a simple program I made which lists all your drives and volumes > > > and says if they are user visible. It's what helped me understand how > > > GnomeVFS works :-) > > > > This seems to be a bug in the hal version of the monitoring. We're not > > supposed to be creating drive objects for all harddrives in the system. > > A Drive is supposed to be something you can insert a removable volume > > in, like a cdrom reader, a floppy reader, or a usb card reader. On my > > system hal creates a drive for e.g. /mnt/hdb1 which is a normal ext3 > > filesystem mounted at roottime and not user-mountable. This shouldn't > > only exist in the volume monitor as a non-user_visible volume, not as a > > drive. This used to be papered over in computer:// since the volumes for > > the drives were always mounted and not user-visible, so they got > > hidden. > > > > David, I don't really know the hal stuff. Could you look into this? > > So I'm not really sure why we want this difference you are describing. > In fact I'd argue that we indeed want to show volumes from e.g. the > internal hard disk for e.g. your Windows and OS X partitions. > > And this indeed requires a GnomeVFSDrive because the partition may not > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > the partition the GnomeVFSDrive represents is actually mounted (that's > my understanding of the how Gnome VFS works). The initial design for drives was to represent devices that use removable media (such as cdrom drives, floppy drives, usb card readers, etc). For these devices the operations on the device are "natural" to the user. Its true that one can also view them as just "possible mountpoints for volumes", which means you could have a drive for your OSX or windows partition. However, when you expose this in the UI you suddenly turn a very explicit obvious hardware mapping into a way to expose the much more vague and complicated unix operation of "mounting a filesystem". I.E. you remove the mapping from icons in the UI to hardware units you can put stuff into. If you take the view of a non-unix person (i.e. one unaware of the details of mountpoints etc) using a Gnome desktop with a separate HD you have basically three cases. Either the partition is mounted, the user is allowed to mount the partition, or the user isn't allowed to mount the partition. In the first case we clearly should show a volume icon, and in the last case i argue that we should never show a drive icon (it would do nothing but confuse people). The question is what to in the second case. In an ideal desktop system I don't think that state really is very useful. What non-sysadmin-related use would you have for not mounting that volume if you are allowed to mount it anyway? In the case on a non-ideal unix system the question gets complicated and turns into a question about whether the mountpoint is an "internal implementation detail" of the filesystem mount tree or not, and this becomes very similar to the question whether to expand symlinks or not (don't expand /home to /mnt/hdb/home, but expand ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for others things are not so easy. I have for instance /mnt/hdb1 on my system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want to display this. Whether to show such drives or not is clearly a complicated, system-dependent issue and should be solved in the lower layers, and not solved in each app using gnome-vfs. The change that resulted in this being an acute problem was that we decided to hide drives that support auto-mount in all places but computer:// by using the is_user_visible flag of the drive. Doing this means that flag is used for that and can't also be used to flag whether a drive is "internal" or not. I think just not having drive objects for internal mountpoints is the easiest solution to this. > So I think what you want is to hide is exactly volumes that are mounted > on traditional FHS mount points, e.g. /, /usr. I can't see why we should > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > Filechooser) can handle this much better? I don't understand how you think nautilus can handle this better? =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a gun-slinging voodoo master criminal whom everyone believes is mad. She's a strong-willed impetuous detective descended from a line of powerful witches. They fight crime! From xclaesse@gmail.com Sun Jun 4 17:08:44 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 948253B01AC for ; Sun, 4 Jun 2006 17:08:44 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10855-08 for ; Sun, 4 Jun 2006 17:08:43 -0400 (EDT) Received: from outmx018.isp.belgacom.be (outmx018.isp.belgacom.be [195.238.4.117]) by menubar.gnome.org (Postfix) with ESMTP id 7837F3B016C for ; Sun, 4 Jun 2006 17:08:42 -0400 (EDT) Received: from outmx018.isp.belgacom.be (localhost [127.0.0.1]) by outmx018.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54L8WOP014717 for ; Sun, 4 Jun 2006 23:08:32 +0200 (envelope-from ) Received: from [10.0.0.3] (85-212.242.81.adsl.skynet.be [81.242.212.85]) by outmx018.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54L8V56014703; Sun, 4 Jun 2006 23:08:31 +0200 (envelope-from ) From: Xavier Claessens To: Alexander Larsson In-Reply-To: <1149149950.5416.49.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-OBWowAwOL3MMyW2FiPT8" Date: Sun, 04 Jun 2006 23:08:31 +0200 Message-Id: <1149455311.15249.18.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.005 tagged_above=-999 required=2 tests=[AWL=-0.475, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.005 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , David Zeuthen Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 21:08:44 -0000 --=-OBWowAwOL3MMyW2FiPT8 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Le jeudi 01 juin 2006 =C3=A0 10:19 +0200, Alexander Larsson a =C3=A9crit : > On Wed, 2006-05-31 at 18:36 -0400, David Zeuthen wrote: > > Hi, > >=20 > > Any reason this is not on the list? Also, please use my david@fubar.dk > > email address since that's what I'm using for GNOME stuff. >=20 > I dunno, it got removed at some point. I'm adding it back. >=20 > > On Mon, 2006-05-29 at 14:04 +0200, Alexander Larsson wrote: > > > On Wed, 2006-05-24 at 21:38 +0200, Xavier Claessens wrote: > > > > Le mercredi 24 mai 2006 =C3=A0 17:59 +0200, Alexander Larsson a =C3= =A9crit : > > > > > Here is the thing. I don't expect there to be a GnomeVFSDrive for > > > > > the /home volume (which i assume is a normal mountpoint on anothe= r > > > > > partition). We should only have drive objects for real removable = media > > > > > mountpoints. > > > >=20 > > > > I join a simple program I made which lists all your drives and volu= mes > > > > and says if they are user visible. It's what helped me understand h= ow > > > > GnomeVFS works :-) > > >=20 > > > This seems to be a bug in the hal version of the monitoring. We're no= t > > > supposed to be creating drive objects for all harddrives in the syste= m. > > > A Drive is supposed to be something you can insert a removable volume > > > in, like a cdrom reader, a floppy reader, or a usb card reader. On my > > > system hal creates a drive for e.g. /mnt/hdb1 which is a normal ext3 > > > filesystem mounted at roottime and not user-mountable. This shouldn't > > > only exist in the volume monitor as a non-user_visible volume, not as= a > > > drive. This used to be papered over in computer:// since the volumes = for > > > the drives were always mounted and not user-visible, so they got > > > hidden.=20 > > >=20 > > > David, I don't really know the hal stuff. Could you look into this? > >=20 > > So I'm not really sure why we want this difference you are describing. > > In fact I'd argue that we indeed want to show volumes from e.g. the > > internal hard disk for e.g. your Windows and OS X partitions.=20 > >=20 > > And this indeed requires a GnomeVFSDrive because the partition may not > > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > > the partition the GnomeVFSDrive represents is actually mounted (that's > > my understanding of the how Gnome VFS works). >=20 > The initial design for drives was to represent devices that use > removable media (such as cdrom drives, floppy drives, usb card readers, > etc). For these devices the operations on the device are "natural" to > the user. Its true that one can also view them as just "possible > mountpoints for volumes", which means you could have a drive for your > OSX or windows partition. However, when you expose this in the UI you > suddenly turn a very explicit obvious hardware mapping into a way to > expose the much more vague and complicated unix operation of "mounting a > filesystem". I.E. you remove the mapping from icons in the UI to > hardware units you can put stuff into. >=20 > If you take the view of a non-unix person (i.e. one unaware of the > details of mountpoints etc) using a Gnome desktop with a separate HD > you have basically three cases. Either the partition is mounted, the > user is allowed to mount the partition, or the user isn't allowed to > mount the partition. In the first case we clearly should show a volume > icon, and in the last case i argue that we should never show a drive > icon (it would do nothing but confuse people).=20 >=20 > The question is what to in the second case. In an ideal desktop system I > don't think that state really is very useful. What non-sysadmin-related > use would you have for not mounting that volume if you are allowed to > mount it anyway? In the case on a non-ideal unix system the question > gets complicated and turns into a question about whether the mountpoint > is an "internal implementation detail" of the filesystem mount tree or > not, and this becomes very similar to the question whether to expand > symlinks or not (don't expand /home to /mnt/hdb/home, but expand > ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you > never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for > others things are not so easy. I have for instance /mnt/hdb1 on my > system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want > to display this. >=20 > Whether to show such drives or not is clearly a complicated, > system-dependent issue and should be solved in the lower layers, and not > solved in each app using gnome-vfs. >=20 > The change that resulted in this being an acute problem was that we > decided to hide drives that support auto-mount in all places but > computer:// by using the is_user_visible flag of the drive. Doing this > means that flag is used for that and can't also be used to flag whether > a drive is "internal" or not. I think just not having drive objects for > internal mountpoints is the easiest solution to this. >=20 > > So I think what you want is to hide is exactly volumes that are mounted > > on traditional FHS mount points, e.g. /, /usr. I can't see why we shoul= d > > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > > Filechooser) can handle this much better? >=20 > I don't understand how you think nautilus can handle this better?=20 >=20 I think we can't do everything with only an user_visible flag. There is 2 different concepts: first the user_visible itself which should be used to hide partition's drives and other useless drives, second the auto-mountable property. I suggest to make something like: gboolean gnome_vfs_drive_is_auto_mountable (GnomeVFSDrive*); Like that we display all user_visible drives in computer:/// (including unmounted cdroms) but we only show user_visible && !auto_moutable drive in nautilus's place sidebar. I don't know how will GtkFileChooser work with that, because it should so see the auto_mount flag and hide automountable drives... Currently it seems that it follows the user_visible flag, at least when using gnomeVFS backend. I you are OK with this idea I can make patches for GnomeVFS/Nautilus 2.15.x For the other problem, which is computer:/// doesn't handle multi-volume drives, what about just updating the drive's icon when the first volume comes (like now in most cases) and if we get more volumes we add files like I did in my first patch. What do you think about that ? Xavier Claessens. --=-OBWowAwOL3MMyW2FiPT8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEg0vO6dEBUn2qPAMRAvTuAJ9ntPlAFivY6fFkxmdvJcY47+BPFgCfU8uo 02AtDX37Xa3rjeu3Tck07hg= =Mgs1 -----END PGP SIGNATURE----- --=-OBWowAwOL3MMyW2FiPT8-- From xclaesse@gmail.com Sun Jun 4 17:19:35 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 373613B0311 for ; Sun, 4 Jun 2006 17:19:35 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 11487-02 for ; Sun, 4 Jun 2006 17:19:34 -0400 (EDT) Received: from outmx006.isp.belgacom.be (outmx006.isp.belgacom.be [195.238.4.99]) by menubar.gnome.org (Postfix) with ESMTP id A36623B01B7 for ; Sun, 4 Jun 2006 17:19:33 -0400 (EDT) Received: from outmx006.isp.belgacom.be (localhost [127.0.0.1]) by outmx006.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54LJTW9004701 for ; Sun, 4 Jun 2006 23:19:30 +0200 (envelope-from ) Received: from [10.0.0.3] (85-212.242.81.adsl.skynet.be [81.242.212.85]) by outmx006.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54LJQOB004670 for ; Sun, 4 Jun 2006 23:19:27 +0200 (envelope-from ) From: Xavier Claessens To: gnome-vfs-list@gnome.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-H/k/fxPKXIxMmyFvNdyr" Date: Sun, 04 Jun 2006 23:19:26 +0200 Message-Id: <1149455967.15249.30.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.003 tagged_above=-999 required=2 tests=[AWL=-0.473, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.003 X-Spam-Level: Subject: volume-unmounted signal on GnomeVFSDrive X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 21:19:35 -0000 --=-H/k/fxPKXIxMmyFvNdyr Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hello, As I understand the "volume-unmounted" signal is emitted before the volume unmounted is really removed from the drive. So in the callback, if we run gnome_vfs_drive_get_mounted_volumes() it will return a GList still containing the unmounted GnomeVFSVolume. I think it should be very useful to have a callback after everything is done. For example in nautilus'places sidebar when we get the "volume-unmounted" callback we can't update the sidebar yet because the drive still has the volume connected... so we add a g_idle_add() to have a callback after everything is done and then we can update the sidebar. I think that's more a workaround than a real solution. What about adding in GnomeVFSDrive and GnomeVFSVolumeMonitor a "volume-post-unmount" callback (we already have a "volume-pre-unmount" cb) ? I you are OK with the idea I can make a patch. Xavier Claessens. --=-H/k/fxPKXIxMmyFvNdyr Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEg05e6dEBUn2qPAMRArR9AKCAmWMgqHE/lg5Ub8z2UhNQafssNgCffgDr h5y25qZ9aTpyf3qPuFAFv0w= =yGzq -----END PGP SIGNATURE----- --=-H/k/fxPKXIxMmyFvNdyr-- From keni4i@yahoo.com Sun Jun 4 15:51:57 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 5BB533B017A for ; Sun, 4 Jun 2006 15:51:57 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07508-01 for ; Sun, 4 Jun 2006 15:51:54 -0400 (EDT) Received: from web61323.mail.yahoo.com (web61323.mail.yahoo.com [209.73.179.77]) by menubar.gnome.org (Postfix) with SMTP id 530A33B0101 for ; Sun, 4 Jun 2006 15:51:54 -0400 (EDT) Received: (qmail 83293 invoked by uid 60001); 4 Jun 2006 19:51:53 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=prZjog0TXPnF+wlE8LBjO9ySalKcONTauN625ePWqsxA6/eYIQZOrZWunGBSRW20iSnr/iiWsHPBFthOeIqLOsLexDW7T3aTYgwjucP/yQ1qjDWlisdhLiDAzsEwmX8lzYFi+yno63B1RiIoGz7A13QEW8nvwxcZyJ8QEYBNRec= ; Message-ID: <20060604195153.83291.qmail@web61323.mail.yahoo.com> Received: from [68.100.226.12] by web61323.mail.yahoo.com via HTTP; Sun, 04 Jun 2006 12:51:53 PDT Date: Sun, 4 Jun 2006 12:51:53 -0700 (PDT) From: Ken Ishii To: gnome-vfs-list@gnome.org MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.119 tagged_above=-999 required=2 tests=[AWL=-1.767, BAYES_50=0.001, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447] X-Spam-Score: -0.119 X-Spam-Level: X-Mailman-Approved-At: Sun, 04 Jun 2006 18:29:01 -0400 Subject: gnome_vfs_uri_hash() bug? X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 19:51:57 -0000 gnome_vfs_uri_hash() has the following code section: for (uri_p = uri; uri_p != NULL; uri_p = uri_p->parent) { HASH_STRING (hash_value, uri_p->text); HASH_STRING (hash_value, uri_p->method_string); if (uri_p->parent != NULL) { const GnomeVFSToplevelURI *toplevel; toplevel = (const GnomeVFSToplevelURI *) uri_p; Since GnomeVFSToplevelURI is defined to be an URI without a parent, shouldn't if (uri_p->parent != NULL) be if (uri_p->parent == NULL) instead? Ken Ishii __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From david@fubar.dk Mon Jun 5 17:57:05 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 6E8BB3B0625 for ; Mon, 5 Jun 2006 17:57:05 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02934-09 for ; Mon, 5 Jun 2006 17:57:01 -0400 (EDT) Received: from davidz.fubar.dk (unknown [208.184.5.49]) by menubar.gnome.org (Postfix) with ESMTP id 264F33B03A0 for ; Mon, 5 Jun 2006 17:57:00 -0400 (EDT) Received: from [192.168.1.115] (unknown [127.0.0.1]) by davidz.fubar.dk (Postfix) with ESMTP id C71269CE06B; Mon, 5 Jun 2006 17:56:59 -0400 (EDT) From: David Zeuthen To: Alexander Larsson In-Reply-To: <1149149950.5416.49.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> Content-Type: text/plain Date: Mon, 05 Jun 2006 17:58:06 -0400 Message-Id: <1149544687.5951.56.camel@daxter.boston.redhat.com> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.567 tagged_above=-999 required=2 tests=[AWL=0.032, BAYES_00=-2.599] X-Spam-Score: -2.567 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 21:57:05 -0000 Hi, Sorry for the late reply, On Thu, 2006-06-01 at 10:19 +0200, Alexander Larsson wrote: > > So I'm not really sure why we want this difference you are describing. > > In fact I'd argue that we indeed want to show volumes from e.g. the > > internal hard disk for e.g. your Windows and OS X partitions. > > > > And this indeed requires a GnomeVFSDrive because the partition may not > > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > > the partition the GnomeVFSDrive represents is actually mounted (that's > > my understanding of the how Gnome VFS works). > > The initial design for drives was to represent devices that use > removable media (such as cdrom drives, floppy drives, usb card readers, > etc). For these devices the operations on the device are "natural" to > the user. Its true that one can also view them as just "possible > mountpoints for volumes", which means you could have a drive for your > OSX or windows partition. However, when you expose this in the UI you > suddenly turn a very explicit obvious hardware mapping into a way to > expose the much more vague and complicated unix operation of "mounting a > filesystem". I.E. you remove the mapping from icons in the UI to > hardware units you can put stuff into. As a user I'm not really sure there is a huge difference between "Macintosh HD" and "1GB Compact Flash media". Both contains files I'm interested in using, I don't care where they come from. > If you take the view of a non-unix person (i.e. one unaware of the > details of mountpoints etc) using a Gnome desktop with a separate HD > you have basically three cases. Either the partition is mounted, the > user is allowed to mount the partition, or the user isn't allowed to > mount the partition. In the first case we clearly should show a volume > icon, and in the last case i argue that we should never show a drive > icon (it would do nothing but confuse people). > > The question is what to in the second case. In an ideal desktop system I > don't think that state really is very useful. What non-sysadmin-related > use would you have for not mounting that volume if you are allowed to > mount it anyway? In the case on a non-ideal unix system the question > gets complicated and turns into a question about whether the mountpoint > is an "internal implementation detail" of the filesystem mount tree or > not, and this becomes very similar to the question whether to expand > symlinks or not (don't expand /home to /mnt/hdb/home, but expand > ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you > never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for > others things are not so easy. I have for instance /mnt/hdb1 on my > system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want > to display this. > > Whether to show such drives or not is clearly a complicated, > system-dependent issue and should be solved in the lower layers, and not > solved in each app using gnome-vfs. > > The change that resulted in this being an acute problem was that we > decided to hide drives that support auto-mount in all places but > computer:// by using the is_user_visible flag of the drive. Doing this > means that flag is used for that and can't also be used to flag whether > a drive is "internal" or not. I think just not having drive objects for > internal mountpoints is the easiest solution to this. Well, the reality is that lots of people dual or triple boot and they have files they care about on the Macintosh and Windows hard drives. And I don't think it's uncommon at all to attach removable drives formatted with e.g. HFS+ or NTFS. If security (we can't let the user automatically get full read access to e.g. an hfs+ fs on the Mac harddisk) and availability of file system driver code (NTFS write support is still not widely available) wasn't a concern this would be easy; we'd simply automount these with uid=500 and be done with it. We want this such that the user can access his files in e.g. /Users/davidz which has a different uid on the Mac OS X system (such as uid=1000). However, things are a lot more complicated. For example, if you have full write access (like when you mount with uid=500) to the root partition of another operating system as an unprivileged user (with uid=500) you can essentially change the password database on that fs and, bingo, what was previously a secure system before you put Linux (or whatever on it) now has issues. There's also things like EAL [1] that is important, e.g. we should be able to totally lock down the system such that you can't use it for anything, not even access your removable media. Surely, in this situation, we want to still show to the user that he got a card reader plugged in but that the organizational policy of his employer (or whatever) prevents him from using it. Perhaps, in the name of usability, we might give him a button titled "Request permission to use device" (would file a request to the IT department) when he clicks it or, if it's an administrator, he can put in his password or authenticate in other ways. This is where usability and security meets, fighting each other like cats and dogs. Can you see the dilemma? Like it or not, this is from the real world [2] and bills like Sarbanes-Oxley etc. don't make this *any* easier. This is why I started PolicyKit. PolicyKit and gnome-mount will help solve this problem though not in a very elegant way [3] but it will provide a "one-time-click" "solution" to the problem. Some might say the user looses here (just look at the recent Microsoft Vista reviews where the user is bombarded with dialogs) but we're still left with the dilemma mentioned above. And we do want (I believe) GNOME to be a viable contender on the desktop and that means we need to support lock-down and things like EAL and Sarbanes-Oxley. Just as we want it to work for home users who just wants to access that movie on the NTFS or hfs+ partition from his home directory on "that other operating system". The approach taken by PolicyKit and gnome-mount is best compromise I've come up with so far. I'm not convinced it's perfect though, and I haven't had time to complete it yet though things are slowly moving forward. So what am I trying to say? I'm trying to say it makes sense to show all drives and their mountable file systems notwithstanding the user might be allowed to access them. Because if they're not privileged they should at least get a chance to see the drive is there (otherwise you get "My drive didn't show up! Is the computer broken?") along with an explanation why they can't access it maybe even with a possibility to auth for access. > > So I think what you want is to hide is exactly volumes that are mounted > > on traditional FHS mount points, e.g. /, /usr. I can't see why we should > > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > > Filechooser) can handle this much better? > > I don't understand how you think nautilus can handle this better? Agreed, yea, probably GNOME VFS would know best. David [1] : http://en.wikipedia.org/wiki/Evaluation_Assurance_Level [2] : http://www.pbs.org/cringely/pulpit/pulpit20040916.html Search for "epoxy". [3] : See http://people.freedesktop.org/~david/perm-override/gnome-mount-perm-override-1.png http://people.freedesktop.org/~david/perm-override/gnome-mount-perm-override-2.png From alexl@redhat.com Wed Jun 7 02:58:31 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 730983B0342 for ; Wed, 7 Jun 2006 02:58:31 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20729-09 for ; Wed, 7 Jun 2006 02:58:30 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id C47583B01B2 for ; Wed, 7 Jun 2006 02:58:29 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wSRX026164; Wed, 7 Jun 2006 02:58:28 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wNdo031791; Wed, 7 Jun 2006 02:58:23 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wMrc020424; Wed, 7 Jun 2006 02:58:23 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149544687.5951.56.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> Content-Type: text/plain Date: Wed, 07 Jun 2006 08:58:24 +0200 Message-Id: <1149663504.5416.123.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 06:58:31 -0000 On Mon, 2006-06-05 at 17:58 -0400, David Zeuthen wrote: > So what am I trying to say? I'm trying to say it makes sense to show all > drives and their mountable file systems notwithstanding the user might > be allowed to access them. Because if they're not privileged they should > at least get a chance to see the drive is there (otherwise you get "My > drive didn't show up! Is the computer broken?") along with an > explanation why they can't access it maybe even with a possibility to > auth for access. I don't really follow your reasoning fully. I agree that users want to see their OSX and/or windows mounts from linux, but I think you over-empasize the "single user, dual boot, home desktop" usecase. In the case of more traditional sysadmined unix setups (at universities and whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs mounts, tmpfs, /usr, /home, extra drives/partitions, etc). If we were to show all these, then I think things would look pretty confusing. I really think we need to hide a bunch of mountpoints. Some mountpoints can probably be hardcoded (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never think of all possibilities, so we should probably have a way to mark them. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a benighted playboy dog-catcher whom everyone believes is mad. She's a sarcastic extravagent former first lady from a family of eight older brothers. They fight crime! From xclaesse@gmail.com Wed Jun 7 08:51:14 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 546413B0B28 for ; Wed, 7 Jun 2006 08:51:14 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13070-01 for ; Wed, 7 Jun 2006 08:51:13 -0400 (EDT) Received: from outmx007.isp.belgacom.be (outmx007.isp.belgacom.be [195.238.5.234]) by menubar.gnome.org (Postfix) with ESMTP id A19F93B03C4 for ; Wed, 7 Jun 2006 08:51:12 -0400 (EDT) Received: from outmx007.isp.belgacom.be (localhost [127.0.0.1]) by outmx007.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k57Cow2U030006 for ; Wed, 7 Jun 2006 14:51:03 +0200 (envelope-from ) Received: from [10.0.0.3] (68-220.242.81.adsl.skynet.be [81.242.220.68]) by outmx007.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k57CovMd029978; Wed, 7 Jun 2006 14:50:57 +0200 (envelope-from ) From: Xavier Claessens To: Alexander Larsson In-Reply-To: <1149663504.5416.123.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-hOGtOF5lpypbLjK1X4t7" Date: Wed, 07 Jun 2006 14:51:08 +0200 Message-Id: <1149684668.5095.1.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.001 tagged_above=-999 required=2 tests=[AWL=-0.471, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.001 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , David Zeuthen Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 12:51:14 -0000 --=-hOGtOF5lpypbLjK1X4t7 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Le mercredi 07 juin 2006 =C3=A0 08:58 +0200, Alexander Larsson a =C3=A9crit= : > On Mon, 2006-06-05 at 17:58 -0400, David Zeuthen wrote: >=20 > > So what am I trying to say? I'm trying to say it makes sense to show al= l > > drives and their mountable file systems notwithstanding the user might > > be allowed to access them. Because if they're not privileged they shoul= d > > at least get a chance to see the drive is there (otherwise you get "My > > drive didn't show up! Is the computer broken?") along with an > > explanation why they can't access it maybe even with a possibility to > > auth for access. >=20 > I don't really follow your reasoning fully. I agree that users want to > see their OSX and/or windows mounts from linux, but I think you > over-empasize the "single user, dual boot, home desktop" usecase. In the > case of more traditional sysadmined unix setups (at universities and > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > mounts, tmpfs, /usr, /home, extra drives/partitions, etc).=20 >=20 > If we were to show all these, then I think things would look pretty > confusing. I really think we need to hide a bunch of mountpoints. Some > mountpoints can probably be hardcoded > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > think of all possibilities, so we should probably have a way to mark > them. >=20 We should only display "/media/*" and "/mnt/*" Xavier. --=-hOGtOF5lpypbLjK1X4t7 Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEhsu76dEBUn2qPAMRApRBAJwNCLBuPyxCtkh0sIbICQBqpRGDFACfaN00 Kc9Uz6ZIjQ4wxsbbHO74ZG0= =Wmaq -----END PGP SIGNATURE----- --=-hOGtOF5lpypbLjK1X4t7-- From tomasek@ebed.etf.cuni.cz Wed Jun 7 08:55:00 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 864A63B0C97 for ; Wed, 7 Jun 2006 08:55:00 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13300-04 for ; Wed, 7 Jun 2006 08:54:57 -0400 (EDT) Received: from ebed.etf.cuni.cz (ebed.etf.cuni.cz [195.113.5.3]) by menubar.gnome.org (Postfix) with ESMTP id E66983B03C4 for ; Wed, 7 Jun 2006 08:54:56 -0400 (EDT) Received: from ebed.etf.cuni.cz (localhost.localdomain [127.0.0.1]) by ebed.etf.cuni.cz (8.12.11.20060308/8.12.11) with ESMTP id k57ChDPX029737 for ; Wed, 7 Jun 2006 14:43:13 +0200 Received: (from tomasek@localhost) by ebed.etf.cuni.cz (8.12.11.20060308/8.12.11/Submit) id k57ChDrV029735 for gnome-vfs-list@gnome.org; Wed, 7 Jun 2006 14:43:13 +0200 Date: Wed, 7 Jun 2006 14:43:13 +0200 From: Petr Tomasek To: gnome-vfs-list@gnome.org Message-ID: <20060607124313.GA29329@ebed.etf.cuni.cz> References: <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1149684668.5095.1.camel@zdra-desktop> User-Agent: Mutt/1.4.1i X-Homepage: http://www.etf.cuni.cz/~tomasek/ X-Echelon: bomb Arafat Intifada bus kach drugs mafia boss heroin spy Semtex Saddam Al-Qaida Usama bin Ladin Bush Sharon X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.535 tagged_above=-999 required=2 tests=[AWL=0.064, BAYES_00=-2.599] X-Spam-Score: -2.535 X-Spam-Level: Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 12:55:00 -0000 > > I don't really follow your reasoning fully. I agree that users want to > > see their OSX and/or windows mounts from linux, but I think you > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > case of more traditional sysadmined unix setups (at universities and > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > If we were to show all these, then I think things would look pretty > > confusing. I really think we need to hide a bunch of mountpoints. Some > > mountpoints can probably be hardcoded > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > think of all possibilities, so we should probably have a way to mark > > them. > > > > We should only display "/media/*" and "/mnt/*" > > Xavier. Please, let it be configurable! There are people who prefer mounting media under "/" (like "/cdrom", etc.) P.T. -- Petr Tomasek From david@fubar.dk Wed Jun 7 09:42:51 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 565EE3B03C1 for ; Wed, 7 Jun 2006 09:42:51 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17395-02 for ; Wed, 7 Jun 2006 09:42:48 -0400 (EDT) Received: from davidz.fubar.dk (unknown [208.184.5.49]) by menubar.gnome.org (Postfix) with ESMTP id 8057D3B0229 for ; Wed, 7 Jun 2006 09:42:48 -0400 (EDT) Received: from [192.168.1.115] (unknown [127.0.0.1]) by davidz.fubar.dk (Postfix) with ESMTP id 6CDC19CE06F; Wed, 7 Jun 2006 09:42:47 -0400 (EDT) From: David Zeuthen To: Xavier Claessens In-Reply-To: <1149684668.5095.1.camel@zdra-desktop> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> Content-Type: text/plain Date: Wed, 07 Jun 2006 09:43:54 -0400 Message-Id: <1149687834.2424.24.camel@daxter.boston.redhat.com> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.57 tagged_above=-999 required=2 tests=[AWL=0.029, BAYES_00=-2.599] X-Spam-Score: -2.57 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , Alexander Larsson Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 13:42:51 -0000 On Wed, 2006-06-07 at 14:51 +0200, Xavier Claessens wrote: > > I don't really follow your reasoning fully. I agree that users want to > > see their OSX and/or windows mounts from linux, but I think you > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > case of more traditional sysadmined unix setups (at universities and > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > If we were to show all these, then I think things would look pretty > > confusing. I really think we need to hide a bunch of mountpoints. Some > > mountpoints can probably be hardcoded > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > think of all possibilities, so we should probably have a way to mark > > them. Yea, of course we should hide such bizarre mount points. My point was merely we ought to show drives/mounts even if the user is not privileged to mount them. > > > > We should only display "/media/*" and "/mnt/*" Yup, that's one option, maybe just resort to showing entries from /media then alexl's /mnt/hdb1 drive won't be shown (and if alexl wants it to be shown he can move the mount point to /media). Personally I think we should just hide all the directories and subdirs as defined by FHS2.3. We do that here http://cvs.gnome.org/viewcvs/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c?view=markup in function _hal_volume_policy_check() though I'm unsure whether this code is used at the moment (will look into that). David From alexl@redhat.com Fri Jun 9 07:20:04 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id CF0E53B0097 for ; Fri, 9 Jun 2006 07:20:04 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18633-05 for ; Fri, 9 Jun 2006 07:20:00 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 1AB843B011C for ; Fri, 9 Jun 2006 07:20:00 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJwQm005302; Fri, 9 Jun 2006 07:19:58 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJwLZ006488; Fri, 9 Jun 2006 07:19:58 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJvoV024293; Fri, 9 Jun 2006 07:19:57 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149687834.2424.24.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> <1149687834.2424.24.camel@daxter.boston.redhat.com> Content-Type: text/plain Date: Fri, 09 Jun 2006 13:19:57 +0200 Message-Id: <1149851997.3023.51.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 11:20:05 -0000 On Wed, 2006-06-07 at 09:43 -0400, David Zeuthen wrote: > On Wed, 2006-06-07 at 14:51 +0200, Xavier Claessens wrote: > > > I don't really follow your reasoning fully. I agree that users want to > > > see their OSX and/or windows mounts from linux, but I think you > > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > > case of more traditional sysadmined unix setups (at universities and > > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > > > If we were to show all these, then I think things would look pretty > > > confusing. I really think we need to hide a bunch of mountpoints. Some > > > mountpoints can probably be hardcoded > > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > > think of all possibilities, so we should probably have a way to mark > > > them. > > Yea, of course we should hide such bizarre mount points. My point was > merely we ought to show drives/mounts even if the user is not privileged > to mount them. > > > > > > > > We should only display "/media/*" and "/mnt/*" > > Yup, that's one option, maybe just resort to showing entries from /media > then alexl's /mnt/hdb1 drive won't be shown (and if alexl wants it to be > shown he can move the mount point to /media). Personally I think we > should just hide all the directories and subdirs as defined by FHS2.3. > We do that here > > http://cvs.gnome.org/viewcvs/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c?view=markup > > in function _hal_volume_policy_check() though I'm unsure whether this > code is used at the moment (will look into that). Well, the bug report: http://bugzilla.gnome.org/show_bug.cgi?id=341446 showed drives for things like / and /home. So something is going wrong here. I see a _hal_drive_policy_check that is empty though. Anyway, what i think we should do is: Have a policy for what mountpoints to create drives for. Be it by blacklisting or whitelisting. If the policy says the mountpoint shouldn't have a drive then we don't even create one. Set is_user_visible to false on drives that support auto-mounting, so we can hide them everywhere but in computer:///. I think blacklisting will probably work well enough, but you probably need to add more stuff than just the toplevel FHS mountpoints, for instance /dev/shmem and common non-linux mountpoints. Also, it looks like you create drives based on currently mounted volumes that are not in fstab? This will generate a bunch of drives when using things like autofs for separate /home/ mountpoints and cause things like /proc/bus/usb to get drives. Does it ever make sense to create a drive object for a volume like this? It'll only live as long as the volume and you can't really use it for anything. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a time-tossed coffee-fuelled inventor on his last day in the job. She's a warm-hearted mutant research scientist from a different time and place. They fight crime! From alexl@redhat.com Fri Jun 9 07:21:46 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id A75453B0121 for ; Fri, 9 Jun 2006 07:21:46 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18661-08 for ; Fri, 9 Jun 2006 07:21:45 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 573C53B006A for ; Fri, 9 Jun 2006 07:21:45 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLiIX005951; Fri, 9 Jun 2006 07:21:44 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLiWa006890; Fri, 9 Jun 2006 07:21:44 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLh8I024410; Fri, 9 Jun 2006 07:21:44 -0400 From: Alexander Larsson To: Ken Ishii In-Reply-To: <20060604195153.83291.qmail@web61323.mail.yahoo.com> References: <20060604195153.83291.qmail@web61323.mail.yahoo.com> Content-Type: text/plain Date: Fri, 09 Jun 2006 13:21:43 +0200 Message-Id: <1149852104.3023.53.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: gnome-vfs-list@gnome.org Subject: Re: gnome_vfs_uri_hash() bug? X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 11:21:46 -0000 On Sun, 2006-06-04 at 12:51 -0700, Ken Ishii wrote: > gnome_vfs_uri_hash() has the following code section: > > for (uri_p = uri; uri_p != NULL; uri_p = uri_p->parent) { > HASH_STRING (hash_value, uri_p->text); > HASH_STRING (hash_value, uri_p->method_string); > > if (uri_p->parent != NULL) { > const GnomeVFSToplevelURI *toplevel; > > toplevel = (const GnomeVFSToplevelURI *) uri_p; > > Since GnomeVFSToplevelURI is defined to be an URI without a parent, > shouldn't > if (uri_p->parent != NULL) > be > if (uri_p->parent == NULL) > instead? Yeah. That looks wrong. I'm fixing it in cvs. Thanks. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's an old-fashioned white trash romance novelist She's a bloodthirsty Buddhist bodyguard prone to fits of savage, blood-crazed rage. They fight crime! From alexl@redhat.com Mon Jun 12 05:38:16 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 296D33B00A7 for ; Mon, 12 Jun 2006 05:38:16 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28453-10 for ; Mon, 12 Jun 2006 05:38:14 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 8A0A33B008D for ; Mon, 12 Jun 2006 05:38:14 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bL45019802; Mon, 12 Jun 2006 05:37:21 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bG0T011686; Mon, 12 Jun 2006 05:37:16 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bF3C014485; Mon, 12 Jun 2006 05:37:15 -0400 From: Alexander Larsson To: Xavier Claessens In-Reply-To: <1149455967.15249.30.camel@zdra-desktop> References: <1149455967.15249.30.camel@zdra-desktop> Content-Type: text/plain Date: Mon, 12 Jun 2006 11:37:15 +0200 Message-Id: <1150105036.3023.95.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: gnome-vfs-list@gnome.org Subject: Re: volume-unmounted signal on GnomeVFSDrive X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jun 2006 09:38:16 -0000 On Sun, 2006-06-04 at 23:19 +0200, Xavier Claessens wrote: > Hello, > > As I understand the "volume-unmounted" signal is emitted before the > volume unmounted is really removed from the drive. So in the callback, > if we run gnome_vfs_drive_get_mounted_volumes() it will return a GList > still containing the unmounted GnomeVFSVolume. > > I think it should be very useful to have a callback after everything is > done. For example in nautilus'places sidebar when we get the > "volume-unmounted" callback we can't update the sidebar yet because the > drive still has the volume connected... so we add a g_idle_add() to have > a callback after everything is done and then we can update the sidebar. > > I think that's more a workaround than a real solution. What about adding > in GnomeVFSDrive and GnomeVFSVolumeMonitor a "volume-post-unmount" > callback (we already have a "volume-pre-unmount" cb) ? > > I you are OK with the idea I can make a patch. You could just look at gnome_vfs_volume_is_mounted() in the volume-unmounted call and ignore things that are not mounted. We do set is_mounted before emitting the signal for things like this. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a deeply religious umbrella-wielding astronaut looking for a cure to the poison coursing through his veins. She's a green-fingered snooty femme fatale who can talk to animals. They fight crime! From alexl@redhat.com Mon Jun 12 06:12:18 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 084B93B0078 for ; Mon, 12 Jun 2006 06:12:18 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 29802-04 for ; Mon, 12 Jun 2006 06:12:16 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 2BF913B009D for ; Mon, 12 Jun 2006 06:12:16 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TFho017434; Mon, 12 Jun 2006 05:29:15 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TF93010182; Mon, 12 Jun 2006 05:29:15 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TEb4013434; Mon, 12 Jun 2006 05:29:14 -0400 From: Alexander Larsson To: Christian Neumair In-Reply-To: <1149010547.5256.19.camel@localhost.localdomain> References: <1149010547.5256.19.camel@localhost.localdomain> Content-Type: text/plain Date: Mon, 12 Jun 2006 11:29:14 +0200 Message-Id: <1150104554.3023.93.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.549 tagged_above=-999 required=2 tests=[AWL=-0.025, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, TW_FD=0.077] X-Spam-Score: -2.549 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , Ken Ishii Subject: Re: Proposed (unfinished) ZIP module available on Bugzilla X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jun 2006 10:12:18 -0000 On Tue, 2006-05-30 at 19:35 +0200, Christian Neumair wrote: > Dear GnomeVFS development community, > > as requested by Ken Ishii who needs a ZIP module, I'm publishing a > prelimitary version of a GnomeVFS ZIP module in Bugzilla [1]. People who > are interested in development should check out the bug report and help > out :). > > [1] http://bugzilla.gnome.org/show_bug.cgi?id=343419 It seems this uncompresses the file on open and then reads from that. I think this is the right approach, but there are some tricks you could use to make this nicer. What you do is create the uncompressed temp files (in /tmp) and then unlink the file, keeping the file descriptor around. This means the file is not visible in the filesystem, but the data for it is kept around until the last fd referencing it is closed. You store this fd in a cache, and then use dup() to get a new independent file descriptor to the file in do_open(). When the app is closed the kernel will close all fds and deallocate the filesystem space. So, doing things this way means you'll never leak tempfiles. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a lounge-singing albino vampire hunter who knows the secret of the alien invasion. She's a virginal punk traffic cop with an MBA from Harvard. They fight crime! From mclasen@redhat.com Mon Jun 12 22:40:48 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 4BAD63B0009 for ; Mon, 12 Jun 2006 22:40:48 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07590-05 for ; Mon, 12 Jun 2006 22:40:46 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 3251E3B000C for ; Mon, 12 Jun 2006 22:40:46 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5D2MFId000486 for ; Mon, 12 Jun 2006 22:22:15 -0400 Received: from lacrosse.corp.redhat.com (lacrosse.corp.redhat.com [172.16.52.154]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5D2MFG6018613 for ; Mon, 12 Jun 2006 22:22:15 -0400 Received: from [172.16.83.145] (vpn83-145.boston.redhat.com [172.16.83.145]) by lacrosse.corp.redhat.com (8.12.11.20060308/8.11.6) with ESMTP id k5D2MEWJ003165 for ; Mon, 12 Jun 2006 22:22:14 -0400 From: Matthias Clasen To: gnome-vfs-list@gnome.org Content-Type: text/plain Organization: Red Hat Date: Mon, 12 Jun 2006 22:24:01 -0400 Message-Id: <1150165441.4081.7.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.541 tagged_above=-999 required=2 tests=[AWL=0.060, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.541 X-Spam-Level: Subject: gnome-mime-data dependency X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jun 2006 02:40:48 -0000 During some Fedora package work I noticed that gnome-vfs still pulls in gnome-mime-data, which seems to be old and unmaintained. Alex tells me that it is needed for some deprecated mime apis. I think it would be nice to get rid of that dependency in 2.16. Matthias From bosshrap@zhwin.ch Tue Jun 13 10:41:32 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 2D47B3B000C for ; Tue, 13 Jun 2006 10:41:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26639-07 for ; Tue, 13 Jun 2006 10:41:30 -0400 (EDT) Received: from a.mx.projectdream.org (eth0-0.yuffie.projectdream.org [194.88.212.200]) by menubar.gnome.org (Postfix) with ESMTP id 2806B3B00A5 for ; Tue, 13 Jun 2006 10:41:29 -0400 (EDT) Received: from [10.0.0.11] (d213-103-155-97.cust.tele2.ch [213.103.155.97]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a.mx.projectdream.org (Postfix) with ESMTP id BD3548811A for ; Tue, 13 Jun 2006 16:40:29 +0200 (CEST) Message-ID: <448ECE64.9030800@zhwin.ch> Date: Tue, 13 Jun 2006 16:40:36 +0200 From: Raphael Bosshard User-Agent: Thunderbird 1.5.0.4 (X11/20060612) MIME-Version: 1.0 To: gnome-vfs-list@gnome.org Subject: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) Content-Type: multipart/mixed; boundary="------------000304070805010006040703" X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: X-Mailman-Approved-At: Thu, 15 Jun 2006 08:09:00 -0400 X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jun 2006 14:41:32 -0000 This is a multi-part message in MIME format. --------------000304070805010006040703 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit See http://bugzilla.gnome.org/show_bug.cgi?id=344296 This patch changes the human readable filesizes (gnome_vfs_format_file_size_for_display) which are curently displayed (rather missleading) with binary prefix multipliers (such as Kilo, Mega, Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). The IEC approved standard symbols (KiB, MiB, GiB) are used. For more information please read http://en.wikipedia.org/wiki/Binary_prefix So long, Raphael --------------000304070805010006040703 Content-Type: text/x-patch; name="gnome-vfs-display-binary-prefix.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="gnome-vfs-display-binary-prefix.patch" --- gnome-vfs-2.14.2/libgnomevfs/gnome-vfs-utils.c 2006-03-03 10:28:21.000000000 +0100 +++ gnome-vfs-2.14.2-work/libgnomevfs/gnome-vfs-utils.c 2006-06-10 23:03:40.983116272 +0200 @@ -51,9 +51,9 @@ #include #include -#define KILOBYTE_FACTOR 1024.0 -#define MEGABYTE_FACTOR (1024.0 * 1024.0) -#define GIGABYTE_FACTOR (1024.0 * 1024.0 * 1024.0) +#define KIBIBYTE_FACTOR 1024.0 +#define MEBIBYTE_FACTOR (1024.0 * 1024.0) +#define GIBIBYTE_FACTORFACTOR (1024.0 * 1024.0 * 1024.0) #define READ_CHUNK_SIZE 8192 @@ -74,22 +74,22 @@ gchar* gnome_vfs_format_file_size_for_display (GnomeVFSFileSize size) { - if (size < (GnomeVFSFileSize) KILOBYTE_FACTOR) { + if (size < (GnomeVFSFileSize) KIBIBYTE_FACTOR) { return g_strdup_printf (dngettext(GETTEXT_PACKAGE, "%u byte", "%u bytes",(guint) size), (guint) size); } else { gdouble displayed_size; - if (size < (GnomeVFSFileSize) MEGABYTE_FACTOR) { - displayed_size = (gdouble) size / KILOBYTE_FACTOR; - return g_strdup_printf (_("%.1f KB"), + if (size < (GnomeVFSFileSize) MEBIBYTE_FACTOR) { + displayed_size = (gdouble) size / KIBIBYTE_FACTOR; + return g_strdup_printf (_("%.1f KiB"), displayed_size); - } else if (size < (GnomeVFSFileSize) GIGABYTE_FACTOR) { - displayed_size = (gdouble) size / MEGABYTE_FACTOR; - return g_strdup_printf (_("%.1f MB"), + } else if (size < (GnomeVFSFileSize) GIBIBYTE_FACTORFACTOR) { + displayed_size = (gdouble) size / MEBIBYTE_FACTOR; + return g_strdup_printf (_("%.1f MiB"), displayed_size); } else { - displayed_size = (gdouble) size / GIGABYTE_FACTOR; - return g_strdup_printf (_("%.1f GB"), + displayed_size = (gdouble) size / GIBIBYTE_FACTORFACTOR; + return g_strdup_printf (_("%.1f GiB"), displayed_size); } } --------------000304070805010006040703-- From alexl@redhat.com Sat Jun 17 04:58:04 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 361533B042A for ; Sat, 17 Jun 2006 04:58:04 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15153-02 for ; Sat, 17 Jun 2006 04:58:02 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 676533B010F for ; Sat, 17 Jun 2006 04:58:02 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vMS8009846; Sat, 17 Jun 2006 04:57:22 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vMxp026394; Sat, 17 Jun 2006 04:57:22 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vL4b023197; Sat, 17 Jun 2006 04:57:21 -0400 Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Alexander Larsson To: Raphael Bosshard In-Reply-To: <448ECE64.9030800@zhwin.ch> References: <448ECE64.9030800@zhwin.ch> Content-Type: text/plain Date: Sat, 17 Jun 2006 10:57:21 +0200 Message-Id: <1150534641.1962.19.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.588 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.588 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jun 2006 08:58:04 -0000 On Tue, 2006-06-13 at 16:40 +0200, Raphael Bosshard wrote: > See http://bugzilla.gnome.org/show_bug.cgi?id=344296 > > This patch changes the human readable filesizes > (gnome_vfs_format_file_size_for_display) which are curently displayed > (rather missleading) with binary prefix multipliers (such as Kilo, Mega, > Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). > The IEC approved standard symbols (KiB, MiB, GiB) are used. > > For more information please read http://en.wikipedia.org/wiki/Binary_prefix This has already been denied in bugs like: http://bugzilla.gnome.org/show_bug.cgi?id=127175 Which references mails like: http://mail.gnome.org/archives/gnome-doc-list/2003-December/msg00004.html and the gnome docs style guides: http://developer.gnome.org/documents/style-guide/units.html For what its worth I very much agree with Patrick. The binary prefixes are silly and nobody but anal-retentive ultra-geeks will understand them, thus confusing the general userbase (who haven't seen them before). =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a sword-wielding pirate librarian searching for his wife's true killer. She's a time-travelling junkie Hell's Angel in the wrong place at the wrong time. They fight crime! From nf2@scheinwelt.at Sun Jun 18 18:55:34 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 462013B00AF; Sun, 18 Jun 2006 18:55:34 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 12908-03; Sun, 18 Jun 2006 18:55:31 -0400 (EDT) Received: from mx-01.sil.at (mx-01.sil.at [86.59.12.198]) by menubar.gnome.org (Postfix) with ESMTP id 208EC3B00B2; Sun, 18 Jun 2006 18:55:30 -0400 (EDT) Received: from vie-062-116-122-020.dsl.sil.at ([62.116.122.20] helo=[192.168.5.82]) by mx-01.sil.at with esmtp (Exim 4.60) (envelope-from ) id 1Fs69X-0004Oc-Kv; Mon, 19 Jun 2006 00:54:01 +0200 Message-ID: <4495D984.5090705@scheinwelt.at> Date: Mon, 19 Jun 2006 00:53:56 +0200 From: nf2 User-Agent: Thunderbird 1.5 (X11/20051201) MIME-Version: 1.0 To: gtk-list@gnome.org, gnome vfs list Subject: libxdg-vfs and Gtk-Filechooser Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scan-Signature: 9d02a3267670e8bb77f537b38fda5a39 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.51 tagged_above=-999 required=2 tests=[AWL=0.012, BAYES_00=-2.599, TW_XD=0.077] X-Spam-Score: -2.51 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jun 2006 22:55:34 -0000 Hi, The experimental "libxdg-vfs" provides a generic interface to VFS libraries. It tries to autodetect the current desktop and then connects to Gnome-VFS or KIO by launching the backend executables xdg_vfs_gnome or xdg_vfs_kde. http://www.scheinwelt.at/~norbertf/dadapt/files/xdg_utils/doc/libxdg-vfs.html The target of "libxdg-vfs" would be giving applications access to ftp/smb shares etc... Of course this also involves bringing VFS access to filechoosers. AFAIK Gtk-Filechooser has pluggable backends (GtkFilesystem). It would be interesting if it could also run on top of "libxdg-vfs". The problem is, that i couldn't find any documentation how to implement a GtkFilesystem module. Could you please give me an introduction and maybe tell me about the specific requirements for a GtkFilesystem? Perhaps i need to provide more functions through "libxdg-vfs": listing and mounting Volumes, obtaining icon-paths,... Regards, Norbert From chris@gnome-de.org Sun Jun 18 13:44:45 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 349513B00E5 for ; Sun, 18 Jun 2006 13:44:45 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05823-10 for ; Sun, 18 Jun 2006 13:44:41 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id E77BC3B0009 for ; Sun, 18 Jun 2006 13:44:39 -0400 (EDT) Received: (qmail 45357 invoked by uid 85); 18 Jun 2006 17:36:58 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.153.121):. Processed in 7.089351 secs); 18 Jun 2006 17:36:58 -0000 Received: from p54969979.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.153.121) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 18 Jun 2006 17:36:51 -0000 Subject: [PATCH] Improve docs, new attempt From: Christian Neumair To: "gnome-vfs-list@gnome.org" Content-Type: multipart/mixed; boundary="=-4cYgbTZAmh2zlaadTQGz" Date: Sun, 18 Jun 2006 19:36:47 +0200 Message-Id: <1150652208.22660.3.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: X-Mailman-Approved-At: Mon, 19 Jun 2006 14:27:21 -0400 X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jun 2006 17:44:45 -0000 --=-4cYgbTZAmh2zlaadTQGz Content-Type: text/plain Content-Transfer-Encoding: 7bit I've spent some more hours on GnomeVFS docs and the Xfer docs should be in a way better shape now. I got commit permission for the last one already, but this one is significantly larger (240 kB, but including the tmpl/ regeneration garbage). -- Christian Neumair --=-4cYgbTZAmh2zlaadTQGz Content-Disposition: attachment; filename=gnome-vfs-doc-3.diff.gz Content-Type: application/x-gzip; name=gnome-vfs-doc-3.diff.gz Content-Transfer-Encoding: base64 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 --=-4cYgbTZAmh2zlaadTQGz-- From ensonic@hora-obscura.de Mon Jun 19 18:38:50 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0E7D03B03FC for ; Mon, 19 Jun 2006 18:38:50 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05344-05 for ; Mon, 19 Jun 2006 18:38:47 -0400 (EDT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by menubar.gnome.org (Postfix) with ESMTP id D01C83B03EE for ; Mon, 19 Jun 2006 18:38:46 -0400 (EDT) Received: from [82.165.27.189] (helo=hora-obscura.de) by mrelayeu.kundenserver.de (node=mrelayeu0) with ESMTP (Nemesis), id 0MKwh2-1FsSHG2Dgc-0000IG; Tue, 20 Jun 2006 00:31:26 +0200 Received: from localhost (localhost [127.0.0.1]) by smtp.hora-obscura.de (Postfix) with ESMTP id 48519878042; Tue, 20 Jun 2006 00:31:26 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by smtp.hora-obscura.de (Postfix) with ESMTP id 768D4878023; Tue, 20 Jun 2006 00:31:19 +0200 (CEST) Subject: Re: [PATCH] Improve docs, new attempt From: Stefan Kost To: Christian Neumair In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> References: <1150652208.22660.3.camel@localhost.localdomain> Content-Type: text/plain Date: Tue, 20 Jun 2006 01:30:37 +0300 Message-Id: <1150756237.15396.6.camel@fluffy.local> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new using ClamAV at hora-obscura.de X-Provags-ID: kundenserver.de abuse@kundenserver.de login:8eea7ddcf9c0cceb26830fe517b7ade3 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.496 tagged_above=-999 required=2 tests=[AWL=0.026, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.496 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 22:38:50 -0000 Hi Christian, Am Sonntag, den 18.06.2006, 19:36 +0200 schrieb Christian Neumair: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). I strongly recommend to move all docs to the source files and remove the tmpl files from cvs totaly. If developers use different versions of gtk-doc, commiting partialy generated files such as the files under tmpl/ can often cause conflicts like those we know with po/*.po files. Besides developers will more likely update docs when they are close to the sources. In case you are not aware, even the section docs can be added to the sources (see the gtk-doc manual in yelp). Stefan From chipzz@ULYSSIS.Org Mon Jun 19 21:43:10 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 471F03B015D for ; Mon, 19 Jun 2006 21:43:10 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15440-03 for ; Mon, 19 Jun 2006 21:43:07 -0400 (EDT) Received: from rusty.kulnet.kuleuven.ac.be (rusty.kulnet.kuleuven.ac.be [134.58.240.42]) by menubar.gnome.org (Postfix) with ESMTP id A4EC63B00D9 for ; Mon, 19 Jun 2006 21:43:06 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by rusty.kulnet.kuleuven.ac.be (Postfix) with ESMTP id 43E5F1D75E5 for ; Tue, 20 Jun 2006 03:42:23 +0200 (CEST) Received: from smtp03.kuleuven.be (antonius.kulnet.kuleuven.ac.be [134.58.240.73]) by rusty.kulnet.kuleuven.ac.be (Postfix) with ESMTP id 4E13C1D75DF for ; Tue, 20 Jun 2006 03:42:20 +0200 (CEST) Received: from smtp.ulyssis.student.kuleuven.be (ray.ulyssis.student.kuleuven.be [193.190.253.198]) by smtp03.kuleuven.be (Postfix) with ESMTP id 47261332762 for ; Tue, 20 Jun 2006 03:42:20 +0200 (CEST) Received: (qmail 30541 invoked from network); 20 Jun 2006 01:42:20 -0000 Received: from ace.ulyssis.student.kuleuven.be (HELO ace.ulyssis.org) (193.190.253.208) by smtp.ulyssis.student.kuleuven.be with SMTP; 20 Jun 2006 01:42:20 -0000 Received: by ace.ulyssis.org (Postfix, from userid 1275) id 050F92EFE4; Tue, 20 Jun 2006 03:42:19 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by ace.ulyssis.org (Postfix) with ESMTP id E85052EFE3; Tue, 20 Jun 2006 03:42:19 +0200 (CEST) Date: Tue, 20 Jun 2006 03:42:19 +0200 (CEST) From: Chipzz To: Christian Neumair Subject: Re: [PATCH] Improve docs, new attempt In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> Message-ID: References: <1150652208.22660.3.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: by KULeuven Antivirus Cluster X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.419 tagged_above=-999 required=2 tests=[AWL=0.045, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.419 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: Chipzz@ULYSSIS.Org List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 01:43:10 -0000 I only read about half of your patch, and not even all of it carefully, but here are a couple of suggestions: + * Either way, it acts like #GnomeVFSXferProgressCallback + * would act in non-asynchronous mode. The differences in + * invocation are explained in the gnome_vfs_async_xfer() + * documentation documentation. -> 2x documentation. + * @GNOME_VFS_FILE_TYPE_REGULAR: The file is regular (stat: %S_ISDIR). + * @GNOME_VFS_FILE_TYPE_DIRECTORY: The file is a directory (stat: %S_ISREG). -> "The file is a regular file" -> %S_ISDIR and %S_ISREG are swapped. + * @GNOME_VFS_PERM_USER_READ: Owner has read permission. etc... -> permission*s* ? + * @GNOME_VFS_PERM_OTHER_ALL: Others have all permissionss. -> permission*ss* ! + * @block_count: The size of the file in 512-byte blocks (a #GnomeVFSFileSize), -> I may be totally wrong here, but isn't this filesystem dependant? kr, On Sun, 18 Jun 2006, Christian Neumair wrote: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). Chipzz AKA Jan Van Buggenhout -- ------------------------------------------------------------------------ UNIX isn't dead - It just smells funny Chipzz@ULYSSIS.Org ------------------------------------------------------------------------ "Baldric, you wouldn't recognize a subtle plan if it painted itself pur- ple and danced naked on a harpsicord singing 'subtle plans are here a- gain'." From bosshrap@zhwin.ch Tue Jun 20 09:25:20 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8A5FA3B01A8 for ; Tue, 20 Jun 2006 09:25:20 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17592-03 for ; Tue, 20 Jun 2006 09:25:17 -0400 (EDT) Received: from a.mx.projectdream.org (eth0-0.yuffie.projectdream.org [194.88.212.200]) by menubar.gnome.org (Postfix) with ESMTP id 765663B017D for ; Tue, 20 Jun 2006 09:25:17 -0400 (EDT) Received: from dskt6433.zhwin.ch (dskt6433.zhwin.ch [160.85.162.206]) by a.mx.projectdream.org (Postfix) with ESMTP id 048688803B; Tue, 20 Jun 2006 15:24:23 +0200 (CEST) Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Raphael Bosshard To: Alexander Larsson In-Reply-To: <1150534641.1962.19.camel@greebo> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> Content-Type: text/plain Date: Tue, 20 Jun 2006 15:24:20 +0200 Message-Id: <1150809860.15905.28.camel@numenor> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.11 tagged_above=-999 required=2 tests=[BAYES_05=-1.11] X-Spam-Score: -1.11 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 13:25:20 -0000 Hello there! > For what its worth I very much agree with Patrick. The binary prefixes > are silly and nobody but anal-retentive ultra-geeks will understand > them, thus confusing the general userbase (who haven't seen them > before). Well, that's strange. I never considered myself a "anal-retentive ultra-geek". And I certainly never thought that my sister would fit into the category of "anal-retentive ultra-geeks". And yet she was the one who brought up the topic when we upgraded her computer with a new hard disk last week. The disk was labeled "250 Gigabyte". Yet when we installed it,"only" 238 Gigabytes were available. I explained her that the disk manufacturer interpreted the term "Giga" in a other way then the software manufacturer. Being an "anal-retentive ultra-geek", she was bothered by this. My sister is by no means a technical person. But to her european decimalised mind "Kilo" means "a thousand" and not "a thousand and twenty four", just in the way that "Mega" means "a million" and not "one million four hundred forty nine thousand six hundred sixteen". It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean "Giga". But I always thought that only "anal-retentive ultra-geeks" know that and I recently noticed it confuses the the general userbase (who haven't heard of that before). The strange thing is that almost everyone seems to agree (even Patrick) that binary prefixes are a good Idea. However; everyone seems to wait with the adaption of binary prefixes until everyone around has adapted them. Funny thing. I see no need to bother the documentation team; there is to much resistance against binary prefixes. So long, Raphael From alexl@redhat.com Tue Jun 20 09:50:54 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id C6D663B01A8 for ; Tue, 20 Jun 2006 09:50:54 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18291-09 for ; Tue, 20 Jun 2006 09:50:53 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 3030F3B020B for ; Tue, 20 Jun 2006 09:50:53 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDo05r027617; Tue, 20 Jun 2006 09:50:00 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDo0Fm009656; Tue, 20 Jun 2006 09:50:00 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDnxEP016163; Tue, 20 Jun 2006 09:49:59 -0400 Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Alexander Larsson To: Raphael Bosshard In-Reply-To: <1150809860.15905.28.camel@numenor> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> <1150809860.15905.28.camel@numenor> Content-Type: text/plain Date: Tue, 20 Jun 2006 15:49:59 +0200 Message-Id: <1150811399.16397.51.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.588 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.588 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 13:50:55 -0000 On Tue, 2006-06-20 at 15:24 +0200, Raphael Bosshard wrote: > > For what its worth I very much agree with Patrick. The binary prefixes > > are silly and nobody but anal-retentive ultra-geeks will understand > > them, thus confusing the general userbase (who haven't seen them > > before). > > Well, that's strange. I never considered myself a "anal-retentive > ultra-geek". And I certainly never thought that my sister would fit into > the category of "anal-retentive ultra-geeks". And yet she was the one > who brought up the topic when we upgraded her computer with a new hard > disk last week. The disk was labeled "250 Gigabyte". Yet when we > installed it,"only" 238 Gigabytes were available. I explained her that > the disk manufacturer interpreted the term "Giga" in a other way then > the software manufacturer. Being an "anal-retentive ultra-geek", she was > bothered by this. > > My sister is by no means a technical person. But to her european > decimalised mind "Kilo" means "a thousand" and not "a thousand and > twenty four", just in the way that "Mega" means "a million" and not "one > million four hundred forty nine thousand six hundred sixteen". I'm well aware of the problems with 1000/1024 multipliers. However, consider your sisters case if we used 238 gibibyte instead of 238 gigabyte. 1) We'd still show 238 instead of 250 which is listed which would cause your sister to wonder where the space went. 2) There would be a strange acronym in the UI that she had never seen before and didn't match what is commonly in use in ads, docs, hardware specifications etc. Its unfortunately true that terms like gigabyte and megabyte are very widespread and in active use by people who don't really know exactly what they mean. Changing this use is slow and hard. > It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean > "Giga". But I always thought that only "anal-retentive ultra-geeks" know > that and I recently noticed it confuses the the general userbase (who > haven't heard of that before). > > The strange thing is that almost everyone seems to agree (even Patrick) > that binary prefixes are a good Idea. However; everyone seems to wait > with the adaption of binary prefixes until everyone around has adapted > them. Funny thing. This is almost always the case with such large (in terms of number of places/organizations it has to be changed) changes. I think its partly because the net gain of doing the change isn't really that large. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a one-legged soccer-playing rock star who hangs with the wrong crowd. She's a plucky goth nun from Mars. They fight crime! From lifewarped@yahoo.com Wed Jun 21 15:50:32 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8F91D3B0266 for ; Wed, 21 Jun 2006 15:50:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01152-09 for ; Wed, 21 Jun 2006 15:50:31 -0400 (EDT) Received: from smtp109.plus.mail.re2.yahoo.com (smtp109.plus.mail.re2.yahoo.com [206.190.53.34]) by menubar.gnome.org (Postfix) with SMTP id 424163B015F for ; Wed, 21 Jun 2006 15:50:31 -0400 (EDT) Received: (qmail 56956 invoked from network); 21 Jun 2006 19:50:30 -0000 Received: from unknown (HELO ?192.168.1.85?) (lifewarped@64.252.203.251 with plain) by smtp109.plus.mail.re2.yahoo.com with SMTP; 21 Jun 2006 19:50:29 -0000 Mime-Version: 1.0 (Apple Message framework v750) To: gnome-vfs-list@gnome.org Message-Id: <647A0248-B8FA-4F26-8652-17718BEDAF37@yahoo.com> Content-Type: multipart/alternative; boundary=Apple-Mail-1-813535700 From: "Glenn R. Martin" Subject: IP6 and MacOS X Date: Wed, 21 Jun 2006 15:50:27 -0400 X-Mailer: Apple Mail (2.750) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.417 tagged_above=-999 required=2 tests=[AWL=-1.880, BAYES_40=-0.185, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447, HTML_MESSAGE=0.001] X-Spam-Score: -0.417 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jun 2006 19:50:32 -0000 --Apple-Mail-1-813535700 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Apple's Mac OS X predefines a macro named SIN6_LEN... However this macro appears to be nothing. I was wondering if i wouldnt be too much trouble to add the following to your gnome-vfs-address.c file so i would not have to add it next time? (im using todays CVS) Line 55, libgnomevfs/gnome-vfs-address.c : #ifdef SIN6_LEN && __APPLE__ # undef SIN6_LEN #endif # define SIN6_LEN sizeof (struct sockaddr_in6) Thanks --- Glenn R. Martin lifewarped@yahoo.com http://www.xargos.com http://www.myspace.com/grmartin C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. -- Bjarne Stroustrup --Apple-Mail-1-813535700 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 Apple's Mac OS X predefines a = macro named SIN6_LEN... However this macro appears to be nothing. I was = wondering if i wouldnt be too much trouble to add the following to your = gnome-vfs-address.c file so i would not have to add it next = time?

(im using = todays CVS)

Line = 55,=A0libgnomevfs/gnome-vfs-address.c :

#ifdef SIN6_LEN = &&=A0__APPLE__
# undef = SIN6_LEN
#endif

# define SIN6_LEN=A0= =A0=A0 sizeof (struct sockaddr_in6)

Thanks

---
Glenn R. = Martin
C makes it easy to shoot yourself in = the foot; C++ makes it harder, but when you do, it blows away your whole = leg. -- Bjarne Stroustrup

=

= --Apple-Mail-1-813535700-- From lifewarped@yahoo.com Wed Jun 21 15:58:02 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0CF823B0192 for ; Wed, 21 Jun 2006 15:58:02 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02062-01 for ; Wed, 21 Jun 2006 15:58:01 -0400 (EDT) Received: from smtp104.plus.mail.re2.yahoo.com (smtp104.plus.mail.re2.yahoo.com [206.190.53.29]) by menubar.gnome.org (Postfix) with SMTP id AF9573B035A for ; Wed, 21 Jun 2006 15:58:00 -0400 (EDT) Received: (qmail 63776 invoked from network); 21 Jun 2006 19:57:59 -0000 Received: from unknown (HELO ?192.168.1.85?) (lifewarped@64.252.203.251 with plain) by smtp104.plus.mail.re2.yahoo.com with SMTP; 21 Jun 2006 19:57:59 -0000 Mime-Version: 1.0 (Apple Message framework v750) To: gnome-vfs-list@gnome.org Message-Id: <2766644B-5FDA-44BF-BFA9-F0C4295F117E@yahoo.com> Content-Type: multipart/alternative; boundary=Apple-Mail-2-813985806 From: "Glenn R. Martin" Subject: login_tty on Mac OS X Date: Wed, 21 Jun 2006 15:57:57 -0400 X-Mailer: Apple Mail (2.750) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.823 tagged_above=-999 required=2 tests=[AWL=-1.361, BAYES_05=-1.11, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447, HTML_MESSAGE=0.001] X-Spam-Score: -0.823 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jun 2006 19:58:02 -0000 --Apple-Mail-2-813985806 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed MacOS X has the login_tty() definition in its header which does not seem to be included by your libgnomevfs/gnome-vfs-pty.{c,h} file. Mind doing so, if i run in to anything else, ill hold it back for a complete email. again my copy is from the CVS. --- Glenn R. Martin lifewarped@yahoo.com http://www.xargos.com http://www.myspace.com/grmartin C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. -- Bjarne Stroustrup --Apple-Mail-2-813985806 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 MacOS X has the login_tty() = definition in its <util.h> header which does not seem to be = included by your=A0libgnomevfs/gnome-vfs-pty.{c,h} file. Mind doing so, = if i run in to anything else, ill hold it back for a complete = email.

again my copy is from the = CVS.

---
Glenn R. = Martin
C makes it easy to shoot yourself in = the foot; C++ makes it harder, but when you do, it blows away your whole = leg. -- Bjarne Stroustrup

=

= --Apple-Mail-2-813985806-- From chris@gnome-de.org Thu Jun 22 08:11:59 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 99F493B0691 for ; Thu, 22 Jun 2006 08:11:59 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 23409-09 for ; Thu, 22 Jun 2006 08:11:58 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id C20CC3B05EE for ; Thu, 22 Jun 2006 08:11:57 -0400 (EDT) Received: (qmail 40576 invoked by uid 85); 22 Jun 2006 12:11:51 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.143.65):. Processed in 0.019744 secs); 22 Jun 2006 12:11:51 -0000 Received: from p54968f41.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.143.65) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 22 Jun 2006 12:11:51 -0000 Subject: Re: [PATCH] Improve docs, new attempt From: Christian Neumair To: Chipzz@ULYSSIS.Org In-Reply-To: References: <1150652208.22660.3.camel@localhost.localdomain> Content-Type: text/plain Date: Thu, 22 Jun 2006 14:11:45 +0200 Message-Id: <1150978306.5236.14.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Jun 2006 12:11:59 -0000 Am Dienstag, den 20.06.2006, 03:42 +0200 schrieb Chipzz: > I only read about half of your patch, and not even all of it carefully, but > here are a couple of suggestions: > (...) > -> "The file is a regular file" > -> %S_ISDIR and %S_ISREG are swapped. > > + * @GNOME_VFS_PERM_USER_READ: Owner has read permission. > etc... > > -> permission*s* ? Permission*s* for ALL but permission (without a trailing s) for the rest, i.e. READ, WRITE, EXECUTE. > (...) Thanks for your worthy suggestions, I've included almost all of them. Alex just looked through the patch as well and allowed me to commit it :). -- Christian Neumair From chris@gnome-de.org Fri Jun 30 06:36:08 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id EE3B03B024A for ; Fri, 30 Jun 2006 06:36:07 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 11809-10 for ; Fri, 30 Jun 2006 06:36:04 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id 138D63B02A2 for ; Fri, 30 Jun 2006 06:36:03 -0400 (EDT) Received: (qmail 59971 invoked by uid 85); 30 Jun 2006 10:36:00 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.198.8):. Processed in 0.219132 secs); 30 Jun 2006 10:36:00 -0000 Received: from p5496c608.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.198.8) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 30 Jun 2006 10:35:59 -0000 Subject: proposed asynchronous gnome_vfs_url_show implementation waiting for review From: Christian Neumair To: "gnome-vfs-list@gnome.org" Content-Type: text/plain Date: Fri, 30 Jun 2006 12:35:57 +0200 Message-Id: <1151663758.5262.1.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jun 2006 10:36:08 -0000 See http://bugzilla.gnome.org/show_bug.cgi?id=337002 We need this both for the Panel and for Nautilus. -- Christian Neumair From alexl@redhat.com Thu Jun 1 04:19:18 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 680983B0C81 for ; Thu, 1 Jun 2006 04:19:18 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16118-02 for ; Thu, 1 Jun 2006 04:19:15 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id D2B843B0C95 for ; Thu, 1 Jun 2006 04:19:14 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518JCYk032595; Thu, 1 Jun 2006 04:19:12 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518JCBf005878; Thu, 1 Jun 2006 04:19:12 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518J9Kt016649; Thu, 1 Jun 2006 04:19:10 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149115005.2331.18.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Date: Thu, 01 Jun 2006 10:19:10 +0200 Message-Id: <1149149950.5416.49.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 08:19:18 -0000 On Wed, 2006-05-31 at 18:36 -0400, David Zeuthen wrote: > Hi, > > Any reason this is not on the list? Also, please use my david@fubar.dk > email address since that's what I'm using for GNOME stuff. I dunno, it got removed at some point. I'm adding it back. > On Mon, 2006-05-29 at 14:04 +0200, Alexander Larsson wrote: > > On Wed, 2006-05-24 at 21:38 +0200, Xavier Claessens wrote: > > > Le mercredi 24 mai 2006 à 17:59 +0200, Alexander Larsson a écrit : > > > > Here is the thing. I don't expect there to be a GnomeVFSDrive for > > > > the /home volume (which i assume is a normal mountpoint on another > > > > partition). We should only have drive objects for real removable media > > > > mountpoints. > > > > > > I join a simple program I made which lists all your drives and volumes > > > and says if they are user visible. It's what helped me understand how > > > GnomeVFS works :-) > > > > This seems to be a bug in the hal version of the monitoring. We're not > > supposed to be creating drive objects for all harddrives in the system. > > A Drive is supposed to be something you can insert a removable volume > > in, like a cdrom reader, a floppy reader, or a usb card reader. On my > > system hal creates a drive for e.g. /mnt/hdb1 which is a normal ext3 > > filesystem mounted at roottime and not user-mountable. This shouldn't > > only exist in the volume monitor as a non-user_visible volume, not as a > > drive. This used to be papered over in computer:// since the volumes for > > the drives were always mounted and not user-visible, so they got > > hidden. > > > > David, I don't really know the hal stuff. Could you look into this? > > So I'm not really sure why we want this difference you are describing. > In fact I'd argue that we indeed want to show volumes from e.g. the > internal hard disk for e.g. your Windows and OS X partitions. > > And this indeed requires a GnomeVFSDrive because the partition may not > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > the partition the GnomeVFSDrive represents is actually mounted (that's > my understanding of the how Gnome VFS works). The initial design for drives was to represent devices that use removable media (such as cdrom drives, floppy drives, usb card readers, etc). For these devices the operations on the device are "natural" to the user. Its true that one can also view them as just "possible mountpoints for volumes", which means you could have a drive for your OSX or windows partition. However, when you expose this in the UI you suddenly turn a very explicit obvious hardware mapping into a way to expose the much more vague and complicated unix operation of "mounting a filesystem". I.E. you remove the mapping from icons in the UI to hardware units you can put stuff into. If you take the view of a non-unix person (i.e. one unaware of the details of mountpoints etc) using a Gnome desktop with a separate HD you have basically three cases. Either the partition is mounted, the user is allowed to mount the partition, or the user isn't allowed to mount the partition. In the first case we clearly should show a volume icon, and in the last case i argue that we should never show a drive icon (it would do nothing but confuse people). The question is what to in the second case. In an ideal desktop system I don't think that state really is very useful. What non-sysadmin-related use would you have for not mounting that volume if you are allowed to mount it anyway? In the case on a non-ideal unix system the question gets complicated and turns into a question about whether the mountpoint is an "internal implementation detail" of the filesystem mount tree or not, and this becomes very similar to the question whether to expand symlinks or not (don't expand /home to /mnt/hdb/home, but expand ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for others things are not so easy. I have for instance /mnt/hdb1 on my system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want to display this. Whether to show such drives or not is clearly a complicated, system-dependent issue and should be solved in the lower layers, and not solved in each app using gnome-vfs. The change that resulted in this being an acute problem was that we decided to hide drives that support auto-mount in all places but computer:// by using the is_user_visible flag of the drive. Doing this means that flag is used for that and can't also be used to flag whether a drive is "internal" or not. I think just not having drive objects for internal mountpoints is the easiest solution to this. > So I think what you want is to hide is exactly volumes that are mounted > on traditional FHS mount points, e.g. /, /usr. I can't see why we should > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > Filechooser) can handle this much better? I don't understand how you think nautilus can handle this better? =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a gun-slinging voodoo master criminal whom everyone believes is mad. She's a strong-willed impetuous detective descended from a line of powerful witches. They fight crime! From xclaesse@gmail.com Sun Jun 4 17:08:44 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 948253B01AC for ; Sun, 4 Jun 2006 17:08:44 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10855-08 for ; Sun, 4 Jun 2006 17:08:43 -0400 (EDT) Received: from outmx018.isp.belgacom.be (outmx018.isp.belgacom.be [195.238.4.117]) by menubar.gnome.org (Postfix) with ESMTP id 7837F3B016C for ; Sun, 4 Jun 2006 17:08:42 -0400 (EDT) Received: from outmx018.isp.belgacom.be (localhost [127.0.0.1]) by outmx018.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54L8WOP014717 for ; Sun, 4 Jun 2006 23:08:32 +0200 (envelope-from ) Received: from [10.0.0.3] (85-212.242.81.adsl.skynet.be [81.242.212.85]) by outmx018.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54L8V56014703; Sun, 4 Jun 2006 23:08:31 +0200 (envelope-from ) From: Xavier Claessens To: Alexander Larsson In-Reply-To: <1149149950.5416.49.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-OBWowAwOL3MMyW2FiPT8" Date: Sun, 04 Jun 2006 23:08:31 +0200 Message-Id: <1149455311.15249.18.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.005 tagged_above=-999 required=2 tests=[AWL=-0.475, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.005 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , David Zeuthen Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 21:08:44 -0000 --=-OBWowAwOL3MMyW2FiPT8 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Le jeudi 01 juin 2006 =C3=A0 10:19 +0200, Alexander Larsson a =C3=A9crit : > On Wed, 2006-05-31 at 18:36 -0400, David Zeuthen wrote: > > Hi, > >=20 > > Any reason this is not on the list? Also, please use my david@fubar.dk > > email address since that's what I'm using for GNOME stuff. >=20 > I dunno, it got removed at some point. I'm adding it back. >=20 > > On Mon, 2006-05-29 at 14:04 +0200, Alexander Larsson wrote: > > > On Wed, 2006-05-24 at 21:38 +0200, Xavier Claessens wrote: > > > > Le mercredi 24 mai 2006 =C3=A0 17:59 +0200, Alexander Larsson a =C3= =A9crit : > > > > > Here is the thing. I don't expect there to be a GnomeVFSDrive for > > > > > the /home volume (which i assume is a normal mountpoint on anothe= r > > > > > partition). We should only have drive objects for real removable = media > > > > > mountpoints. > > > >=20 > > > > I join a simple program I made which lists all your drives and volu= mes > > > > and says if they are user visible. It's what helped me understand h= ow > > > > GnomeVFS works :-) > > >=20 > > > This seems to be a bug in the hal version of the monitoring. We're no= t > > > supposed to be creating drive objects for all harddrives in the syste= m. > > > A Drive is supposed to be something you can insert a removable volume > > > in, like a cdrom reader, a floppy reader, or a usb card reader. On my > > > system hal creates a drive for e.g. /mnt/hdb1 which is a normal ext3 > > > filesystem mounted at roottime and not user-mountable. This shouldn't > > > only exist in the volume monitor as a non-user_visible volume, not as= a > > > drive. This used to be papered over in computer:// since the volumes = for > > > the drives were always mounted and not user-visible, so they got > > > hidden.=20 > > >=20 > > > David, I don't really know the hal stuff. Could you look into this? > >=20 > > So I'm not really sure why we want this difference you are describing. > > In fact I'd argue that we indeed want to show volumes from e.g. the > > internal hard disk for e.g. your Windows and OS X partitions.=20 > >=20 > > And this indeed requires a GnomeVFSDrive because the partition may not > > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > > the partition the GnomeVFSDrive represents is actually mounted (that's > > my understanding of the how Gnome VFS works). >=20 > The initial design for drives was to represent devices that use > removable media (such as cdrom drives, floppy drives, usb card readers, > etc). For these devices the operations on the device are "natural" to > the user. Its true that one can also view them as just "possible > mountpoints for volumes", which means you could have a drive for your > OSX or windows partition. However, when you expose this in the UI you > suddenly turn a very explicit obvious hardware mapping into a way to > expose the much more vague and complicated unix operation of "mounting a > filesystem". I.E. you remove the mapping from icons in the UI to > hardware units you can put stuff into. >=20 > If you take the view of a non-unix person (i.e. one unaware of the > details of mountpoints etc) using a Gnome desktop with a separate HD > you have basically three cases. Either the partition is mounted, the > user is allowed to mount the partition, or the user isn't allowed to > mount the partition. In the first case we clearly should show a volume > icon, and in the last case i argue that we should never show a drive > icon (it would do nothing but confuse people).=20 >=20 > The question is what to in the second case. In an ideal desktop system I > don't think that state really is very useful. What non-sysadmin-related > use would you have for not mounting that volume if you are allowed to > mount it anyway? In the case on a non-ideal unix system the question > gets complicated and turns into a question about whether the mountpoint > is an "internal implementation detail" of the filesystem mount tree or > not, and this becomes very similar to the question whether to expand > symlinks or not (don't expand /home to /mnt/hdb/home, but expand > ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you > never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for > others things are not so easy. I have for instance /mnt/hdb1 on my > system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want > to display this. >=20 > Whether to show such drives or not is clearly a complicated, > system-dependent issue and should be solved in the lower layers, and not > solved in each app using gnome-vfs. >=20 > The change that resulted in this being an acute problem was that we > decided to hide drives that support auto-mount in all places but > computer:// by using the is_user_visible flag of the drive. Doing this > means that flag is used for that and can't also be used to flag whether > a drive is "internal" or not. I think just not having drive objects for > internal mountpoints is the easiest solution to this. >=20 > > So I think what you want is to hide is exactly volumes that are mounted > > on traditional FHS mount points, e.g. /, /usr. I can't see why we shoul= d > > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > > Filechooser) can handle this much better? >=20 > I don't understand how you think nautilus can handle this better?=20 >=20 I think we can't do everything with only an user_visible flag. There is 2 different concepts: first the user_visible itself which should be used to hide partition's drives and other useless drives, second the auto-mountable property. I suggest to make something like: gboolean gnome_vfs_drive_is_auto_mountable (GnomeVFSDrive*); Like that we display all user_visible drives in computer:/// (including unmounted cdroms) but we only show user_visible && !auto_moutable drive in nautilus's place sidebar. I don't know how will GtkFileChooser work with that, because it should so see the auto_mount flag and hide automountable drives... Currently it seems that it follows the user_visible flag, at least when using gnomeVFS backend. I you are OK with this idea I can make patches for GnomeVFS/Nautilus 2.15.x For the other problem, which is computer:/// doesn't handle multi-volume drives, what about just updating the drive's icon when the first volume comes (like now in most cases) and if we get more volumes we add files like I did in my first patch. What do you think about that ? Xavier Claessens. --=-OBWowAwOL3MMyW2FiPT8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEg0vO6dEBUn2qPAMRAvTuAJ9ntPlAFivY6fFkxmdvJcY47+BPFgCfU8uo 02AtDX37Xa3rjeu3Tck07hg= =Mgs1 -----END PGP SIGNATURE----- --=-OBWowAwOL3MMyW2FiPT8-- From xclaesse@gmail.com Sun Jun 4 17:19:35 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 373613B0311 for ; Sun, 4 Jun 2006 17:19:35 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 11487-02 for ; Sun, 4 Jun 2006 17:19:34 -0400 (EDT) Received: from outmx006.isp.belgacom.be (outmx006.isp.belgacom.be [195.238.4.99]) by menubar.gnome.org (Postfix) with ESMTP id A36623B01B7 for ; Sun, 4 Jun 2006 17:19:33 -0400 (EDT) Received: from outmx006.isp.belgacom.be (localhost [127.0.0.1]) by outmx006.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54LJTW9004701 for ; Sun, 4 Jun 2006 23:19:30 +0200 (envelope-from ) Received: from [10.0.0.3] (85-212.242.81.adsl.skynet.be [81.242.212.85]) by outmx006.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54LJQOB004670 for ; Sun, 4 Jun 2006 23:19:27 +0200 (envelope-from ) From: Xavier Claessens To: gnome-vfs-list@gnome.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-H/k/fxPKXIxMmyFvNdyr" Date: Sun, 04 Jun 2006 23:19:26 +0200 Message-Id: <1149455967.15249.30.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.003 tagged_above=-999 required=2 tests=[AWL=-0.473, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.003 X-Spam-Level: Subject: volume-unmounted signal on GnomeVFSDrive X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 21:19:35 -0000 --=-H/k/fxPKXIxMmyFvNdyr Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hello, As I understand the "volume-unmounted" signal is emitted before the volume unmounted is really removed from the drive. So in the callback, if we run gnome_vfs_drive_get_mounted_volumes() it will return a GList still containing the unmounted GnomeVFSVolume. I think it should be very useful to have a callback after everything is done. For example in nautilus'places sidebar when we get the "volume-unmounted" callback we can't update the sidebar yet because the drive still has the volume connected... so we add a g_idle_add() to have a callback after everything is done and then we can update the sidebar. I think that's more a workaround than a real solution. What about adding in GnomeVFSDrive and GnomeVFSVolumeMonitor a "volume-post-unmount" callback (we already have a "volume-pre-unmount" cb) ? I you are OK with the idea I can make a patch. Xavier Claessens. --=-H/k/fxPKXIxMmyFvNdyr Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEg05e6dEBUn2qPAMRArR9AKCAmWMgqHE/lg5Ub8z2UhNQafssNgCffgDr h5y25qZ9aTpyf3qPuFAFv0w= =yGzq -----END PGP SIGNATURE----- --=-H/k/fxPKXIxMmyFvNdyr-- From keni4i@yahoo.com Sun Jun 4 15:51:57 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 5BB533B017A for ; Sun, 4 Jun 2006 15:51:57 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07508-01 for ; Sun, 4 Jun 2006 15:51:54 -0400 (EDT) Received: from web61323.mail.yahoo.com (web61323.mail.yahoo.com [209.73.179.77]) by menubar.gnome.org (Postfix) with SMTP id 530A33B0101 for ; Sun, 4 Jun 2006 15:51:54 -0400 (EDT) Received: (qmail 83293 invoked by uid 60001); 4 Jun 2006 19:51:53 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=prZjog0TXPnF+wlE8LBjO9ySalKcONTauN625ePWqsxA6/eYIQZOrZWunGBSRW20iSnr/iiWsHPBFthOeIqLOsLexDW7T3aTYgwjucP/yQ1qjDWlisdhLiDAzsEwmX8lzYFi+yno63B1RiIoGz7A13QEW8nvwxcZyJ8QEYBNRec= ; Message-ID: <20060604195153.83291.qmail@web61323.mail.yahoo.com> Received: from [68.100.226.12] by web61323.mail.yahoo.com via HTTP; Sun, 04 Jun 2006 12:51:53 PDT Date: Sun, 4 Jun 2006 12:51:53 -0700 (PDT) From: Ken Ishii To: gnome-vfs-list@gnome.org MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.119 tagged_above=-999 required=2 tests=[AWL=-1.767, BAYES_50=0.001, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447] X-Spam-Score: -0.119 X-Spam-Level: X-Mailman-Approved-At: Sun, 04 Jun 2006 18:29:01 -0400 Subject: gnome_vfs_uri_hash() bug? X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 19:51:57 -0000 gnome_vfs_uri_hash() has the following code section: for (uri_p = uri; uri_p != NULL; uri_p = uri_p->parent) { HASH_STRING (hash_value, uri_p->text); HASH_STRING (hash_value, uri_p->method_string); if (uri_p->parent != NULL) { const GnomeVFSToplevelURI *toplevel; toplevel = (const GnomeVFSToplevelURI *) uri_p; Since GnomeVFSToplevelURI is defined to be an URI without a parent, shouldn't if (uri_p->parent != NULL) be if (uri_p->parent == NULL) instead? Ken Ishii __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From david@fubar.dk Mon Jun 5 17:57:05 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 6E8BB3B0625 for ; Mon, 5 Jun 2006 17:57:05 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02934-09 for ; Mon, 5 Jun 2006 17:57:01 -0400 (EDT) Received: from davidz.fubar.dk (unknown [208.184.5.49]) by menubar.gnome.org (Postfix) with ESMTP id 264F33B03A0 for ; Mon, 5 Jun 2006 17:57:00 -0400 (EDT) Received: from [192.168.1.115] (unknown [127.0.0.1]) by davidz.fubar.dk (Postfix) with ESMTP id C71269CE06B; Mon, 5 Jun 2006 17:56:59 -0400 (EDT) From: David Zeuthen To: Alexander Larsson In-Reply-To: <1149149950.5416.49.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> Content-Type: text/plain Date: Mon, 05 Jun 2006 17:58:06 -0400 Message-Id: <1149544687.5951.56.camel@daxter.boston.redhat.com> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.567 tagged_above=-999 required=2 tests=[AWL=0.032, BAYES_00=-2.599] X-Spam-Score: -2.567 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 21:57:05 -0000 Hi, Sorry for the late reply, On Thu, 2006-06-01 at 10:19 +0200, Alexander Larsson wrote: > > So I'm not really sure why we want this difference you are describing. > > In fact I'd argue that we indeed want to show volumes from e.g. the > > internal hard disk for e.g. your Windows and OS X partitions. > > > > And this indeed requires a GnomeVFSDrive because the partition may not > > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > > the partition the GnomeVFSDrive represents is actually mounted (that's > > my understanding of the how Gnome VFS works). > > The initial design for drives was to represent devices that use > removable media (such as cdrom drives, floppy drives, usb card readers, > etc). For these devices the operations on the device are "natural" to > the user. Its true that one can also view them as just "possible > mountpoints for volumes", which means you could have a drive for your > OSX or windows partition. However, when you expose this in the UI you > suddenly turn a very explicit obvious hardware mapping into a way to > expose the much more vague and complicated unix operation of "mounting a > filesystem". I.E. you remove the mapping from icons in the UI to > hardware units you can put stuff into. As a user I'm not really sure there is a huge difference between "Macintosh HD" and "1GB Compact Flash media". Both contains files I'm interested in using, I don't care where they come from. > If you take the view of a non-unix person (i.e. one unaware of the > details of mountpoints etc) using a Gnome desktop with a separate HD > you have basically three cases. Either the partition is mounted, the > user is allowed to mount the partition, or the user isn't allowed to > mount the partition. In the first case we clearly should show a volume > icon, and in the last case i argue that we should never show a drive > icon (it would do nothing but confuse people). > > The question is what to in the second case. In an ideal desktop system I > don't think that state really is very useful. What non-sysadmin-related > use would you have for not mounting that volume if you are allowed to > mount it anyway? In the case on a non-ideal unix system the question > gets complicated and turns into a question about whether the mountpoint > is an "internal implementation detail" of the filesystem mount tree or > not, and this becomes very similar to the question whether to expand > symlinks or not (don't expand /home to /mnt/hdb/home, but expand > ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you > never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for > others things are not so easy. I have for instance /mnt/hdb1 on my > system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want > to display this. > > Whether to show such drives or not is clearly a complicated, > system-dependent issue and should be solved in the lower layers, and not > solved in each app using gnome-vfs. > > The change that resulted in this being an acute problem was that we > decided to hide drives that support auto-mount in all places but > computer:// by using the is_user_visible flag of the drive. Doing this > means that flag is used for that and can't also be used to flag whether > a drive is "internal" or not. I think just not having drive objects for > internal mountpoints is the easiest solution to this. Well, the reality is that lots of people dual or triple boot and they have files they care about on the Macintosh and Windows hard drives. And I don't think it's uncommon at all to attach removable drives formatted with e.g. HFS+ or NTFS. If security (we can't let the user automatically get full read access to e.g. an hfs+ fs on the Mac harddisk) and availability of file system driver code (NTFS write support is still not widely available) wasn't a concern this would be easy; we'd simply automount these with uid=500 and be done with it. We want this such that the user can access his files in e.g. /Users/davidz which has a different uid on the Mac OS X system (such as uid=1000). However, things are a lot more complicated. For example, if you have full write access (like when you mount with uid=500) to the root partition of another operating system as an unprivileged user (with uid=500) you can essentially change the password database on that fs and, bingo, what was previously a secure system before you put Linux (or whatever on it) now has issues. There's also things like EAL [1] that is important, e.g. we should be able to totally lock down the system such that you can't use it for anything, not even access your removable media. Surely, in this situation, we want to still show to the user that he got a card reader plugged in but that the organizational policy of his employer (or whatever) prevents him from using it. Perhaps, in the name of usability, we might give him a button titled "Request permission to use device" (would file a request to the IT department) when he clicks it or, if it's an administrator, he can put in his password or authenticate in other ways. This is where usability and security meets, fighting each other like cats and dogs. Can you see the dilemma? Like it or not, this is from the real world [2] and bills like Sarbanes-Oxley etc. don't make this *any* easier. This is why I started PolicyKit. PolicyKit and gnome-mount will help solve this problem though not in a very elegant way [3] but it will provide a "one-time-click" "solution" to the problem. Some might say the user looses here (just look at the recent Microsoft Vista reviews where the user is bombarded with dialogs) but we're still left with the dilemma mentioned above. And we do want (I believe) GNOME to be a viable contender on the desktop and that means we need to support lock-down and things like EAL and Sarbanes-Oxley. Just as we want it to work for home users who just wants to access that movie on the NTFS or hfs+ partition from his home directory on "that other operating system". The approach taken by PolicyKit and gnome-mount is best compromise I've come up with so far. I'm not convinced it's perfect though, and I haven't had time to complete it yet though things are slowly moving forward. So what am I trying to say? I'm trying to say it makes sense to show all drives and their mountable file systems notwithstanding the user might be allowed to access them. Because if they're not privileged they should at least get a chance to see the drive is there (otherwise you get "My drive didn't show up! Is the computer broken?") along with an explanation why they can't access it maybe even with a possibility to auth for access. > > So I think what you want is to hide is exactly volumes that are mounted > > on traditional FHS mount points, e.g. /, /usr. I can't see why we should > > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > > Filechooser) can handle this much better? > > I don't understand how you think nautilus can handle this better? Agreed, yea, probably GNOME VFS would know best. David [1] : http://en.wikipedia.org/wiki/Evaluation_Assurance_Level [2] : http://www.pbs.org/cringely/pulpit/pulpit20040916.html Search for "epoxy". [3] : See http://people.freedesktop.org/~david/perm-override/gnome-mount-perm-override-1.png http://people.freedesktop.org/~david/perm-override/gnome-mount-perm-override-2.png From alexl@redhat.com Wed Jun 7 02:58:31 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 730983B0342 for ; Wed, 7 Jun 2006 02:58:31 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20729-09 for ; Wed, 7 Jun 2006 02:58:30 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id C47583B01B2 for ; Wed, 7 Jun 2006 02:58:29 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wSRX026164; Wed, 7 Jun 2006 02:58:28 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wNdo031791; Wed, 7 Jun 2006 02:58:23 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wMrc020424; Wed, 7 Jun 2006 02:58:23 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149544687.5951.56.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> Content-Type: text/plain Date: Wed, 07 Jun 2006 08:58:24 +0200 Message-Id: <1149663504.5416.123.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 06:58:31 -0000 On Mon, 2006-06-05 at 17:58 -0400, David Zeuthen wrote: > So what am I trying to say? I'm trying to say it makes sense to show all > drives and their mountable file systems notwithstanding the user might > be allowed to access them. Because if they're not privileged they should > at least get a chance to see the drive is there (otherwise you get "My > drive didn't show up! Is the computer broken?") along with an > explanation why they can't access it maybe even with a possibility to > auth for access. I don't really follow your reasoning fully. I agree that users want to see their OSX and/or windows mounts from linux, but I think you over-empasize the "single user, dual boot, home desktop" usecase. In the case of more traditional sysadmined unix setups (at universities and whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs mounts, tmpfs, /usr, /home, extra drives/partitions, etc). If we were to show all these, then I think things would look pretty confusing. I really think we need to hide a bunch of mountpoints. Some mountpoints can probably be hardcoded (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never think of all possibilities, so we should probably have a way to mark them. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a benighted playboy dog-catcher whom everyone believes is mad. She's a sarcastic extravagent former first lady from a family of eight older brothers. They fight crime! From xclaesse@gmail.com Wed Jun 7 08:51:14 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 546413B0B28 for ; Wed, 7 Jun 2006 08:51:14 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13070-01 for ; Wed, 7 Jun 2006 08:51:13 -0400 (EDT) Received: from outmx007.isp.belgacom.be (outmx007.isp.belgacom.be [195.238.5.234]) by menubar.gnome.org (Postfix) with ESMTP id A19F93B03C4 for ; Wed, 7 Jun 2006 08:51:12 -0400 (EDT) Received: from outmx007.isp.belgacom.be (localhost [127.0.0.1]) by outmx007.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k57Cow2U030006 for ; Wed, 7 Jun 2006 14:51:03 +0200 (envelope-from ) Received: from [10.0.0.3] (68-220.242.81.adsl.skynet.be [81.242.220.68]) by outmx007.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k57CovMd029978; Wed, 7 Jun 2006 14:50:57 +0200 (envelope-from ) From: Xavier Claessens To: Alexander Larsson In-Reply-To: <1149663504.5416.123.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-hOGtOF5lpypbLjK1X4t7" Date: Wed, 07 Jun 2006 14:51:08 +0200 Message-Id: <1149684668.5095.1.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.001 tagged_above=-999 required=2 tests=[AWL=-0.471, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.001 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , David Zeuthen Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 12:51:14 -0000 --=-hOGtOF5lpypbLjK1X4t7 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Le mercredi 07 juin 2006 =C3=A0 08:58 +0200, Alexander Larsson a =C3=A9crit= : > On Mon, 2006-06-05 at 17:58 -0400, David Zeuthen wrote: >=20 > > So what am I trying to say? I'm trying to say it makes sense to show al= l > > drives and their mountable file systems notwithstanding the user might > > be allowed to access them. Because if they're not privileged they shoul= d > > at least get a chance to see the drive is there (otherwise you get "My > > drive didn't show up! Is the computer broken?") along with an > > explanation why they can't access it maybe even with a possibility to > > auth for access. >=20 > I don't really follow your reasoning fully. I agree that users want to > see their OSX and/or windows mounts from linux, but I think you > over-empasize the "single user, dual boot, home desktop" usecase. In the > case of more traditional sysadmined unix setups (at universities and > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > mounts, tmpfs, /usr, /home, extra drives/partitions, etc).=20 >=20 > If we were to show all these, then I think things would look pretty > confusing. I really think we need to hide a bunch of mountpoints. Some > mountpoints can probably be hardcoded > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > think of all possibilities, so we should probably have a way to mark > them. >=20 We should only display "/media/*" and "/mnt/*" Xavier. --=-hOGtOF5lpypbLjK1X4t7 Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEhsu76dEBUn2qPAMRApRBAJwNCLBuPyxCtkh0sIbICQBqpRGDFACfaN00 Kc9Uz6ZIjQ4wxsbbHO74ZG0= =Wmaq -----END PGP SIGNATURE----- --=-hOGtOF5lpypbLjK1X4t7-- From tomasek@ebed.etf.cuni.cz Wed Jun 7 08:55:00 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 864A63B0C97 for ; Wed, 7 Jun 2006 08:55:00 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13300-04 for ; Wed, 7 Jun 2006 08:54:57 -0400 (EDT) Received: from ebed.etf.cuni.cz (ebed.etf.cuni.cz [195.113.5.3]) by menubar.gnome.org (Postfix) with ESMTP id E66983B03C4 for ; Wed, 7 Jun 2006 08:54:56 -0400 (EDT) Received: from ebed.etf.cuni.cz (localhost.localdomain [127.0.0.1]) by ebed.etf.cuni.cz (8.12.11.20060308/8.12.11) with ESMTP id k57ChDPX029737 for ; Wed, 7 Jun 2006 14:43:13 +0200 Received: (from tomasek@localhost) by ebed.etf.cuni.cz (8.12.11.20060308/8.12.11/Submit) id k57ChDrV029735 for gnome-vfs-list@gnome.org; Wed, 7 Jun 2006 14:43:13 +0200 Date: Wed, 7 Jun 2006 14:43:13 +0200 From: Petr Tomasek To: gnome-vfs-list@gnome.org Message-ID: <20060607124313.GA29329@ebed.etf.cuni.cz> References: <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1149684668.5095.1.camel@zdra-desktop> User-Agent: Mutt/1.4.1i X-Homepage: http://www.etf.cuni.cz/~tomasek/ X-Echelon: bomb Arafat Intifada bus kach drugs mafia boss heroin spy Semtex Saddam Al-Qaida Usama bin Ladin Bush Sharon X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.535 tagged_above=-999 required=2 tests=[AWL=0.064, BAYES_00=-2.599] X-Spam-Score: -2.535 X-Spam-Level: Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 12:55:00 -0000 > > I don't really follow your reasoning fully. I agree that users want to > > see their OSX and/or windows mounts from linux, but I think you > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > case of more traditional sysadmined unix setups (at universities and > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > If we were to show all these, then I think things would look pretty > > confusing. I really think we need to hide a bunch of mountpoints. Some > > mountpoints can probably be hardcoded > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > think of all possibilities, so we should probably have a way to mark > > them. > > > > We should only display "/media/*" and "/mnt/*" > > Xavier. Please, let it be configurable! There are people who prefer mounting media under "/" (like "/cdrom", etc.) P.T. -- Petr Tomasek From david@fubar.dk Wed Jun 7 09:42:51 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 565EE3B03C1 for ; Wed, 7 Jun 2006 09:42:51 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17395-02 for ; Wed, 7 Jun 2006 09:42:48 -0400 (EDT) Received: from davidz.fubar.dk (unknown [208.184.5.49]) by menubar.gnome.org (Postfix) with ESMTP id 8057D3B0229 for ; Wed, 7 Jun 2006 09:42:48 -0400 (EDT) Received: from [192.168.1.115] (unknown [127.0.0.1]) by davidz.fubar.dk (Postfix) with ESMTP id 6CDC19CE06F; Wed, 7 Jun 2006 09:42:47 -0400 (EDT) From: David Zeuthen To: Xavier Claessens In-Reply-To: <1149684668.5095.1.camel@zdra-desktop> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> Content-Type: text/plain Date: Wed, 07 Jun 2006 09:43:54 -0400 Message-Id: <1149687834.2424.24.camel@daxter.boston.redhat.com> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.57 tagged_above=-999 required=2 tests=[AWL=0.029, BAYES_00=-2.599] X-Spam-Score: -2.57 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , Alexander Larsson Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 13:42:51 -0000 On Wed, 2006-06-07 at 14:51 +0200, Xavier Claessens wrote: > > I don't really follow your reasoning fully. I agree that users want to > > see their OSX and/or windows mounts from linux, but I think you > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > case of more traditional sysadmined unix setups (at universities and > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > If we were to show all these, then I think things would look pretty > > confusing. I really think we need to hide a bunch of mountpoints. Some > > mountpoints can probably be hardcoded > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > think of all possibilities, so we should probably have a way to mark > > them. Yea, of course we should hide such bizarre mount points. My point was merely we ought to show drives/mounts even if the user is not privileged to mount them. > > > > We should only display "/media/*" and "/mnt/*" Yup, that's one option, maybe just resort to showing entries from /media then alexl's /mnt/hdb1 drive won't be shown (and if alexl wants it to be shown he can move the mount point to /media). Personally I think we should just hide all the directories and subdirs as defined by FHS2.3. We do that here http://cvs.gnome.org/viewcvs/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c?view=markup in function _hal_volume_policy_check() though I'm unsure whether this code is used at the moment (will look into that). David From alexl@redhat.com Fri Jun 9 07:20:04 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id CF0E53B0097 for ; Fri, 9 Jun 2006 07:20:04 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18633-05 for ; Fri, 9 Jun 2006 07:20:00 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 1AB843B011C for ; Fri, 9 Jun 2006 07:20:00 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJwQm005302; Fri, 9 Jun 2006 07:19:58 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJwLZ006488; Fri, 9 Jun 2006 07:19:58 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJvoV024293; Fri, 9 Jun 2006 07:19:57 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149687834.2424.24.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> <1149687834.2424.24.camel@daxter.boston.redhat.com> Content-Type: text/plain Date: Fri, 09 Jun 2006 13:19:57 +0200 Message-Id: <1149851997.3023.51.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 11:20:05 -0000 On Wed, 2006-06-07 at 09:43 -0400, David Zeuthen wrote: > On Wed, 2006-06-07 at 14:51 +0200, Xavier Claessens wrote: > > > I don't really follow your reasoning fully. I agree that users want to > > > see their OSX and/or windows mounts from linux, but I think you > > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > > case of more traditional sysadmined unix setups (at universities and > > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > > > If we were to show all these, then I think things would look pretty > > > confusing. I really think we need to hide a bunch of mountpoints. Some > > > mountpoints can probably be hardcoded > > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > > think of all possibilities, so we should probably have a way to mark > > > them. > > Yea, of course we should hide such bizarre mount points. My point was > merely we ought to show drives/mounts even if the user is not privileged > to mount them. > > > > > > > > We should only display "/media/*" and "/mnt/*" > > Yup, that's one option, maybe just resort to showing entries from /media > then alexl's /mnt/hdb1 drive won't be shown (and if alexl wants it to be > shown he can move the mount point to /media). Personally I think we > should just hide all the directories and subdirs as defined by FHS2.3. > We do that here > > http://cvs.gnome.org/viewcvs/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c?view=markup > > in function _hal_volume_policy_check() though I'm unsure whether this > code is used at the moment (will look into that). Well, the bug report: http://bugzilla.gnome.org/show_bug.cgi?id=341446 showed drives for things like / and /home. So something is going wrong here. I see a _hal_drive_policy_check that is empty though. Anyway, what i think we should do is: Have a policy for what mountpoints to create drives for. Be it by blacklisting or whitelisting. If the policy says the mountpoint shouldn't have a drive then we don't even create one. Set is_user_visible to false on drives that support auto-mounting, so we can hide them everywhere but in computer:///. I think blacklisting will probably work well enough, but you probably need to add more stuff than just the toplevel FHS mountpoints, for instance /dev/shmem and common non-linux mountpoints. Also, it looks like you create drives based on currently mounted volumes that are not in fstab? This will generate a bunch of drives when using things like autofs for separate /home/ mountpoints and cause things like /proc/bus/usb to get drives. Does it ever make sense to create a drive object for a volume like this? It'll only live as long as the volume and you can't really use it for anything. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a time-tossed coffee-fuelled inventor on his last day in the job. She's a warm-hearted mutant research scientist from a different time and place. They fight crime! From alexl@redhat.com Fri Jun 9 07:21:46 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id A75453B0121 for ; Fri, 9 Jun 2006 07:21:46 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18661-08 for ; Fri, 9 Jun 2006 07:21:45 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 573C53B006A for ; Fri, 9 Jun 2006 07:21:45 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLiIX005951; Fri, 9 Jun 2006 07:21:44 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLiWa006890; Fri, 9 Jun 2006 07:21:44 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLh8I024410; Fri, 9 Jun 2006 07:21:44 -0400 From: Alexander Larsson To: Ken Ishii In-Reply-To: <20060604195153.83291.qmail@web61323.mail.yahoo.com> References: <20060604195153.83291.qmail@web61323.mail.yahoo.com> Content-Type: text/plain Date: Fri, 09 Jun 2006 13:21:43 +0200 Message-Id: <1149852104.3023.53.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: gnome-vfs-list@gnome.org Subject: Re: gnome_vfs_uri_hash() bug? X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 11:21:46 -0000 On Sun, 2006-06-04 at 12:51 -0700, Ken Ishii wrote: > gnome_vfs_uri_hash() has the following code section: > > for (uri_p = uri; uri_p != NULL; uri_p = uri_p->parent) { > HASH_STRING (hash_value, uri_p->text); > HASH_STRING (hash_value, uri_p->method_string); > > if (uri_p->parent != NULL) { > const GnomeVFSToplevelURI *toplevel; > > toplevel = (const GnomeVFSToplevelURI *) uri_p; > > Since GnomeVFSToplevelURI is defined to be an URI without a parent, > shouldn't > if (uri_p->parent != NULL) > be > if (uri_p->parent == NULL) > instead? Yeah. That looks wrong. I'm fixing it in cvs. Thanks. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's an old-fashioned white trash romance novelist She's a bloodthirsty Buddhist bodyguard prone to fits of savage, blood-crazed rage. They fight crime! From alexl@redhat.com Mon Jun 12 05:38:16 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 296D33B00A7 for ; Mon, 12 Jun 2006 05:38:16 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28453-10 for ; Mon, 12 Jun 2006 05:38:14 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 8A0A33B008D for ; Mon, 12 Jun 2006 05:38:14 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bL45019802; Mon, 12 Jun 2006 05:37:21 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bG0T011686; Mon, 12 Jun 2006 05:37:16 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bF3C014485; Mon, 12 Jun 2006 05:37:15 -0400 From: Alexander Larsson To: Xavier Claessens In-Reply-To: <1149455967.15249.30.camel@zdra-desktop> References: <1149455967.15249.30.camel@zdra-desktop> Content-Type: text/plain Date: Mon, 12 Jun 2006 11:37:15 +0200 Message-Id: <1150105036.3023.95.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: gnome-vfs-list@gnome.org Subject: Re: volume-unmounted signal on GnomeVFSDrive X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jun 2006 09:38:16 -0000 On Sun, 2006-06-04 at 23:19 +0200, Xavier Claessens wrote: > Hello, > > As I understand the "volume-unmounted" signal is emitted before the > volume unmounted is really removed from the drive. So in the callback, > if we run gnome_vfs_drive_get_mounted_volumes() it will return a GList > still containing the unmounted GnomeVFSVolume. > > I think it should be very useful to have a callback after everything is > done. For example in nautilus'places sidebar when we get the > "volume-unmounted" callback we can't update the sidebar yet because the > drive still has the volume connected... so we add a g_idle_add() to have > a callback after everything is done and then we can update the sidebar. > > I think that's more a workaround than a real solution. What about adding > in GnomeVFSDrive and GnomeVFSVolumeMonitor a "volume-post-unmount" > callback (we already have a "volume-pre-unmount" cb) ? > > I you are OK with the idea I can make a patch. You could just look at gnome_vfs_volume_is_mounted() in the volume-unmounted call and ignore things that are not mounted. We do set is_mounted before emitting the signal for things like this. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a deeply religious umbrella-wielding astronaut looking for a cure to the poison coursing through his veins. She's a green-fingered snooty femme fatale who can talk to animals. They fight crime! From alexl@redhat.com Mon Jun 12 06:12:18 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 084B93B0078 for ; Mon, 12 Jun 2006 06:12:18 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 29802-04 for ; Mon, 12 Jun 2006 06:12:16 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 2BF913B009D for ; Mon, 12 Jun 2006 06:12:16 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TFho017434; Mon, 12 Jun 2006 05:29:15 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TF93010182; Mon, 12 Jun 2006 05:29:15 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TEb4013434; Mon, 12 Jun 2006 05:29:14 -0400 From: Alexander Larsson To: Christian Neumair In-Reply-To: <1149010547.5256.19.camel@localhost.localdomain> References: <1149010547.5256.19.camel@localhost.localdomain> Content-Type: text/plain Date: Mon, 12 Jun 2006 11:29:14 +0200 Message-Id: <1150104554.3023.93.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.549 tagged_above=-999 required=2 tests=[AWL=-0.025, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, TW_FD=0.077] X-Spam-Score: -2.549 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , Ken Ishii Subject: Re: Proposed (unfinished) ZIP module available on Bugzilla X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jun 2006 10:12:18 -0000 On Tue, 2006-05-30 at 19:35 +0200, Christian Neumair wrote: > Dear GnomeVFS development community, > > as requested by Ken Ishii who needs a ZIP module, I'm publishing a > prelimitary version of a GnomeVFS ZIP module in Bugzilla [1]. People who > are interested in development should check out the bug report and help > out :). > > [1] http://bugzilla.gnome.org/show_bug.cgi?id=343419 It seems this uncompresses the file on open and then reads from that. I think this is the right approach, but there are some tricks you could use to make this nicer. What you do is create the uncompressed temp files (in /tmp) and then unlink the file, keeping the file descriptor around. This means the file is not visible in the filesystem, but the data for it is kept around until the last fd referencing it is closed. You store this fd in a cache, and then use dup() to get a new independent file descriptor to the file in do_open(). When the app is closed the kernel will close all fds and deallocate the filesystem space. So, doing things this way means you'll never leak tempfiles. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a lounge-singing albino vampire hunter who knows the secret of the alien invasion. She's a virginal punk traffic cop with an MBA from Harvard. They fight crime! From mclasen@redhat.com Mon Jun 12 22:40:48 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 4BAD63B0009 for ; Mon, 12 Jun 2006 22:40:48 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07590-05 for ; Mon, 12 Jun 2006 22:40:46 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 3251E3B000C for ; Mon, 12 Jun 2006 22:40:46 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5D2MFId000486 for ; Mon, 12 Jun 2006 22:22:15 -0400 Received: from lacrosse.corp.redhat.com (lacrosse.corp.redhat.com [172.16.52.154]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5D2MFG6018613 for ; Mon, 12 Jun 2006 22:22:15 -0400 Received: from [172.16.83.145] (vpn83-145.boston.redhat.com [172.16.83.145]) by lacrosse.corp.redhat.com (8.12.11.20060308/8.11.6) with ESMTP id k5D2MEWJ003165 for ; Mon, 12 Jun 2006 22:22:14 -0400 From: Matthias Clasen To: gnome-vfs-list@gnome.org Content-Type: text/plain Organization: Red Hat Date: Mon, 12 Jun 2006 22:24:01 -0400 Message-Id: <1150165441.4081.7.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.541 tagged_above=-999 required=2 tests=[AWL=0.060, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.541 X-Spam-Level: Subject: gnome-mime-data dependency X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jun 2006 02:40:48 -0000 During some Fedora package work I noticed that gnome-vfs still pulls in gnome-mime-data, which seems to be old and unmaintained. Alex tells me that it is needed for some deprecated mime apis. I think it would be nice to get rid of that dependency in 2.16. Matthias From bosshrap@zhwin.ch Tue Jun 13 10:41:32 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 2D47B3B000C for ; Tue, 13 Jun 2006 10:41:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26639-07 for ; Tue, 13 Jun 2006 10:41:30 -0400 (EDT) Received: from a.mx.projectdream.org (eth0-0.yuffie.projectdream.org [194.88.212.200]) by menubar.gnome.org (Postfix) with ESMTP id 2806B3B00A5 for ; Tue, 13 Jun 2006 10:41:29 -0400 (EDT) Received: from [10.0.0.11] (d213-103-155-97.cust.tele2.ch [213.103.155.97]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a.mx.projectdream.org (Postfix) with ESMTP id BD3548811A for ; Tue, 13 Jun 2006 16:40:29 +0200 (CEST) Message-ID: <448ECE64.9030800@zhwin.ch> Date: Tue, 13 Jun 2006 16:40:36 +0200 From: Raphael Bosshard User-Agent: Thunderbird 1.5.0.4 (X11/20060612) MIME-Version: 1.0 To: gnome-vfs-list@gnome.org Subject: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) Content-Type: multipart/mixed; boundary="------------000304070805010006040703" X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: X-Mailman-Approved-At: Thu, 15 Jun 2006 08:09:00 -0400 X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jun 2006 14:41:32 -0000 This is a multi-part message in MIME format. --------------000304070805010006040703 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit See http://bugzilla.gnome.org/show_bug.cgi?id=344296 This patch changes the human readable filesizes (gnome_vfs_format_file_size_for_display) which are curently displayed (rather missleading) with binary prefix multipliers (such as Kilo, Mega, Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). The IEC approved standard symbols (KiB, MiB, GiB) are used. For more information please read http://en.wikipedia.org/wiki/Binary_prefix So long, Raphael --------------000304070805010006040703 Content-Type: text/x-patch; name="gnome-vfs-display-binary-prefix.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="gnome-vfs-display-binary-prefix.patch" --- gnome-vfs-2.14.2/libgnomevfs/gnome-vfs-utils.c 2006-03-03 10:28:21.000000000 +0100 +++ gnome-vfs-2.14.2-work/libgnomevfs/gnome-vfs-utils.c 2006-06-10 23:03:40.983116272 +0200 @@ -51,9 +51,9 @@ #include #include -#define KILOBYTE_FACTOR 1024.0 -#define MEGABYTE_FACTOR (1024.0 * 1024.0) -#define GIGABYTE_FACTOR (1024.0 * 1024.0 * 1024.0) +#define KIBIBYTE_FACTOR 1024.0 +#define MEBIBYTE_FACTOR (1024.0 * 1024.0) +#define GIBIBYTE_FACTORFACTOR (1024.0 * 1024.0 * 1024.0) #define READ_CHUNK_SIZE 8192 @@ -74,22 +74,22 @@ gchar* gnome_vfs_format_file_size_for_display (GnomeVFSFileSize size) { - if (size < (GnomeVFSFileSize) KILOBYTE_FACTOR) { + if (size < (GnomeVFSFileSize) KIBIBYTE_FACTOR) { return g_strdup_printf (dngettext(GETTEXT_PACKAGE, "%u byte", "%u bytes",(guint) size), (guint) size); } else { gdouble displayed_size; - if (size < (GnomeVFSFileSize) MEGABYTE_FACTOR) { - displayed_size = (gdouble) size / KILOBYTE_FACTOR; - return g_strdup_printf (_("%.1f KB"), + if (size < (GnomeVFSFileSize) MEBIBYTE_FACTOR) { + displayed_size = (gdouble) size / KIBIBYTE_FACTOR; + return g_strdup_printf (_("%.1f KiB"), displayed_size); - } else if (size < (GnomeVFSFileSize) GIGABYTE_FACTOR) { - displayed_size = (gdouble) size / MEGABYTE_FACTOR; - return g_strdup_printf (_("%.1f MB"), + } else if (size < (GnomeVFSFileSize) GIBIBYTE_FACTORFACTOR) { + displayed_size = (gdouble) size / MEBIBYTE_FACTOR; + return g_strdup_printf (_("%.1f MiB"), displayed_size); } else { - displayed_size = (gdouble) size / GIGABYTE_FACTOR; - return g_strdup_printf (_("%.1f GB"), + displayed_size = (gdouble) size / GIBIBYTE_FACTORFACTOR; + return g_strdup_printf (_("%.1f GiB"), displayed_size); } } --------------000304070805010006040703-- From alexl@redhat.com Sat Jun 17 04:58:04 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 361533B042A for ; Sat, 17 Jun 2006 04:58:04 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15153-02 for ; Sat, 17 Jun 2006 04:58:02 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 676533B010F for ; Sat, 17 Jun 2006 04:58:02 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vMS8009846; Sat, 17 Jun 2006 04:57:22 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vMxp026394; Sat, 17 Jun 2006 04:57:22 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vL4b023197; Sat, 17 Jun 2006 04:57:21 -0400 Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Alexander Larsson To: Raphael Bosshard In-Reply-To: <448ECE64.9030800@zhwin.ch> References: <448ECE64.9030800@zhwin.ch> Content-Type: text/plain Date: Sat, 17 Jun 2006 10:57:21 +0200 Message-Id: <1150534641.1962.19.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.588 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.588 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jun 2006 08:58:04 -0000 On Tue, 2006-06-13 at 16:40 +0200, Raphael Bosshard wrote: > See http://bugzilla.gnome.org/show_bug.cgi?id=344296 > > This patch changes the human readable filesizes > (gnome_vfs_format_file_size_for_display) which are curently displayed > (rather missleading) with binary prefix multipliers (such as Kilo, Mega, > Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). > The IEC approved standard symbols (KiB, MiB, GiB) are used. > > For more information please read http://en.wikipedia.org/wiki/Binary_prefix This has already been denied in bugs like: http://bugzilla.gnome.org/show_bug.cgi?id=127175 Which references mails like: http://mail.gnome.org/archives/gnome-doc-list/2003-December/msg00004.html and the gnome docs style guides: http://developer.gnome.org/documents/style-guide/units.html For what its worth I very much agree with Patrick. The binary prefixes are silly and nobody but anal-retentive ultra-geeks will understand them, thus confusing the general userbase (who haven't seen them before). =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a sword-wielding pirate librarian searching for his wife's true killer. She's a time-travelling junkie Hell's Angel in the wrong place at the wrong time. They fight crime! From nf2@scheinwelt.at Sun Jun 18 18:55:34 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 462013B00AF; Sun, 18 Jun 2006 18:55:34 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 12908-03; Sun, 18 Jun 2006 18:55:31 -0400 (EDT) Received: from mx-01.sil.at (mx-01.sil.at [86.59.12.198]) by menubar.gnome.org (Postfix) with ESMTP id 208EC3B00B2; Sun, 18 Jun 2006 18:55:30 -0400 (EDT) Received: from vie-062-116-122-020.dsl.sil.at ([62.116.122.20] helo=[192.168.5.82]) by mx-01.sil.at with esmtp (Exim 4.60) (envelope-from ) id 1Fs69X-0004Oc-Kv; Mon, 19 Jun 2006 00:54:01 +0200 Message-ID: <4495D984.5090705@scheinwelt.at> Date: Mon, 19 Jun 2006 00:53:56 +0200 From: nf2 User-Agent: Thunderbird 1.5 (X11/20051201) MIME-Version: 1.0 To: gtk-list@gnome.org, gnome vfs list Subject: libxdg-vfs and Gtk-Filechooser Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scan-Signature: 9d02a3267670e8bb77f537b38fda5a39 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.51 tagged_above=-999 required=2 tests=[AWL=0.012, BAYES_00=-2.599, TW_XD=0.077] X-Spam-Score: -2.51 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jun 2006 22:55:34 -0000 Hi, The experimental "libxdg-vfs" provides a generic interface to VFS libraries. It tries to autodetect the current desktop and then connects to Gnome-VFS or KIO by launching the backend executables xdg_vfs_gnome or xdg_vfs_kde. http://www.scheinwelt.at/~norbertf/dadapt/files/xdg_utils/doc/libxdg-vfs.html The target of "libxdg-vfs" would be giving applications access to ftp/smb shares etc... Of course this also involves bringing VFS access to filechoosers. AFAIK Gtk-Filechooser has pluggable backends (GtkFilesystem). It would be interesting if it could also run on top of "libxdg-vfs". The problem is, that i couldn't find any documentation how to implement a GtkFilesystem module. Could you please give me an introduction and maybe tell me about the specific requirements for a GtkFilesystem? Perhaps i need to provide more functions through "libxdg-vfs": listing and mounting Volumes, obtaining icon-paths,... Regards, Norbert From chris@gnome-de.org Sun Jun 18 13:44:45 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 349513B00E5 for ; Sun, 18 Jun 2006 13:44:45 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05823-10 for ; Sun, 18 Jun 2006 13:44:41 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id E77BC3B0009 for ; Sun, 18 Jun 2006 13:44:39 -0400 (EDT) Received: (qmail 45357 invoked by uid 85); 18 Jun 2006 17:36:58 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.153.121):. Processed in 7.089351 secs); 18 Jun 2006 17:36:58 -0000 Received: from p54969979.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.153.121) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 18 Jun 2006 17:36:51 -0000 Subject: [PATCH] Improve docs, new attempt From: Christian Neumair To: "gnome-vfs-list@gnome.org" Content-Type: multipart/mixed; boundary="=-4cYgbTZAmh2zlaadTQGz" Date: Sun, 18 Jun 2006 19:36:47 +0200 Message-Id: <1150652208.22660.3.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: X-Mailman-Approved-At: Mon, 19 Jun 2006 14:27:21 -0400 X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jun 2006 17:44:45 -0000 --=-4cYgbTZAmh2zlaadTQGz Content-Type: text/plain Content-Transfer-Encoding: 7bit I've spent some more hours on GnomeVFS docs and the Xfer docs should be in a way better shape now. I got commit permission for the last one already, but this one is significantly larger (240 kB, but including the tmpl/ regeneration garbage). -- Christian Neumair --=-4cYgbTZAmh2zlaadTQGz Content-Disposition: attachment; filename=gnome-vfs-doc-3.diff.gz Content-Type: application/x-gzip; name=gnome-vfs-doc-3.diff.gz Content-Transfer-Encoding: base64 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 --=-4cYgbTZAmh2zlaadTQGz-- From ensonic@hora-obscura.de Mon Jun 19 18:38:50 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0E7D03B03FC for ; Mon, 19 Jun 2006 18:38:50 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05344-05 for ; Mon, 19 Jun 2006 18:38:47 -0400 (EDT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by menubar.gnome.org (Postfix) with ESMTP id D01C83B03EE for ; Mon, 19 Jun 2006 18:38:46 -0400 (EDT) Received: from [82.165.27.189] (helo=hora-obscura.de) by mrelayeu.kundenserver.de (node=mrelayeu0) with ESMTP (Nemesis), id 0MKwh2-1FsSHG2Dgc-0000IG; Tue, 20 Jun 2006 00:31:26 +0200 Received: from localhost (localhost [127.0.0.1]) by smtp.hora-obscura.de (Postfix) with ESMTP id 48519878042; Tue, 20 Jun 2006 00:31:26 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by smtp.hora-obscura.de (Postfix) with ESMTP id 768D4878023; Tue, 20 Jun 2006 00:31:19 +0200 (CEST) Subject: Re: [PATCH] Improve docs, new attempt From: Stefan Kost To: Christian Neumair In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> References: <1150652208.22660.3.camel@localhost.localdomain> Content-Type: text/plain Date: Tue, 20 Jun 2006 01:30:37 +0300 Message-Id: <1150756237.15396.6.camel@fluffy.local> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new using ClamAV at hora-obscura.de X-Provags-ID: kundenserver.de abuse@kundenserver.de login:8eea7ddcf9c0cceb26830fe517b7ade3 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.496 tagged_above=-999 required=2 tests=[AWL=0.026, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.496 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 22:38:50 -0000 Hi Christian, Am Sonntag, den 18.06.2006, 19:36 +0200 schrieb Christian Neumair: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). I strongly recommend to move all docs to the source files and remove the tmpl files from cvs totaly. If developers use different versions of gtk-doc, commiting partialy generated files such as the files under tmpl/ can often cause conflicts like those we know with po/*.po files. Besides developers will more likely update docs when they are close to the sources. In case you are not aware, even the section docs can be added to the sources (see the gtk-doc manual in yelp). Stefan From chipzz@ULYSSIS.Org Mon Jun 19 21:43:10 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 471F03B015D for ; Mon, 19 Jun 2006 21:43:10 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15440-03 for ; Mon, 19 Jun 2006 21:43:07 -0400 (EDT) Received: from rusty.kulnet.kuleuven.ac.be (rusty.kulnet.kuleuven.ac.be [134.58.240.42]) by menubar.gnome.org (Postfix) with ESMTP id A4EC63B00D9 for ; Mon, 19 Jun 2006 21:43:06 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by rusty.kulnet.kuleuven.ac.be (Postfix) with ESMTP id 43E5F1D75E5 for ; Tue, 20 Jun 2006 03:42:23 +0200 (CEST) Received: from smtp03.kuleuven.be (antonius.kulnet.kuleuven.ac.be [134.58.240.73]) by rusty.kulnet.kuleuven.ac.be (Postfix) with ESMTP id 4E13C1D75DF for ; Tue, 20 Jun 2006 03:42:20 +0200 (CEST) Received: from smtp.ulyssis.student.kuleuven.be (ray.ulyssis.student.kuleuven.be [193.190.253.198]) by smtp03.kuleuven.be (Postfix) with ESMTP id 47261332762 for ; Tue, 20 Jun 2006 03:42:20 +0200 (CEST) Received: (qmail 30541 invoked from network); 20 Jun 2006 01:42:20 -0000 Received: from ace.ulyssis.student.kuleuven.be (HELO ace.ulyssis.org) (193.190.253.208) by smtp.ulyssis.student.kuleuven.be with SMTP; 20 Jun 2006 01:42:20 -0000 Received: by ace.ulyssis.org (Postfix, from userid 1275) id 050F92EFE4; Tue, 20 Jun 2006 03:42:19 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by ace.ulyssis.org (Postfix) with ESMTP id E85052EFE3; Tue, 20 Jun 2006 03:42:19 +0200 (CEST) Date: Tue, 20 Jun 2006 03:42:19 +0200 (CEST) From: Chipzz To: Christian Neumair Subject: Re: [PATCH] Improve docs, new attempt In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> Message-ID: References: <1150652208.22660.3.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: by KULeuven Antivirus Cluster X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.419 tagged_above=-999 required=2 tests=[AWL=0.045, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.419 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: Chipzz@ULYSSIS.Org List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 01:43:10 -0000 I only read about half of your patch, and not even all of it carefully, but here are a couple of suggestions: + * Either way, it acts like #GnomeVFSXferProgressCallback + * would act in non-asynchronous mode. The differences in + * invocation are explained in the gnome_vfs_async_xfer() + * documentation documentation. -> 2x documentation. + * @GNOME_VFS_FILE_TYPE_REGULAR: The file is regular (stat: %S_ISDIR). + * @GNOME_VFS_FILE_TYPE_DIRECTORY: The file is a directory (stat: %S_ISREG). -> "The file is a regular file" -> %S_ISDIR and %S_ISREG are swapped. + * @GNOME_VFS_PERM_USER_READ: Owner has read permission. etc... -> permission*s* ? + * @GNOME_VFS_PERM_OTHER_ALL: Others have all permissionss. -> permission*ss* ! + * @block_count: The size of the file in 512-byte blocks (a #GnomeVFSFileSize), -> I may be totally wrong here, but isn't this filesystem dependant? kr, On Sun, 18 Jun 2006, Christian Neumair wrote: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). Chipzz AKA Jan Van Buggenhout -- ------------------------------------------------------------------------ UNIX isn't dead - It just smells funny Chipzz@ULYSSIS.Org ------------------------------------------------------------------------ "Baldric, you wouldn't recognize a subtle plan if it painted itself pur- ple and danced naked on a harpsicord singing 'subtle plans are here a- gain'." From bosshrap@zhwin.ch Tue Jun 20 09:25:20 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8A5FA3B01A8 for ; Tue, 20 Jun 2006 09:25:20 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17592-03 for ; Tue, 20 Jun 2006 09:25:17 -0400 (EDT) Received: from a.mx.projectdream.org (eth0-0.yuffie.projectdream.org [194.88.212.200]) by menubar.gnome.org (Postfix) with ESMTP id 765663B017D for ; Tue, 20 Jun 2006 09:25:17 -0400 (EDT) Received: from dskt6433.zhwin.ch (dskt6433.zhwin.ch [160.85.162.206]) by a.mx.projectdream.org (Postfix) with ESMTP id 048688803B; Tue, 20 Jun 2006 15:24:23 +0200 (CEST) Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Raphael Bosshard To: Alexander Larsson In-Reply-To: <1150534641.1962.19.camel@greebo> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> Content-Type: text/plain Date: Tue, 20 Jun 2006 15:24:20 +0200 Message-Id: <1150809860.15905.28.camel@numenor> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.11 tagged_above=-999 required=2 tests=[BAYES_05=-1.11] X-Spam-Score: -1.11 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 13:25:20 -0000 Hello there! > For what its worth I very much agree with Patrick. The binary prefixes > are silly and nobody but anal-retentive ultra-geeks will understand > them, thus confusing the general userbase (who haven't seen them > before). Well, that's strange. I never considered myself a "anal-retentive ultra-geek". And I certainly never thought that my sister would fit into the category of "anal-retentive ultra-geeks". And yet she was the one who brought up the topic when we upgraded her computer with a new hard disk last week. The disk was labeled "250 Gigabyte". Yet when we installed it,"only" 238 Gigabytes were available. I explained her that the disk manufacturer interpreted the term "Giga" in a other way then the software manufacturer. Being an "anal-retentive ultra-geek", she was bothered by this. My sister is by no means a technical person. But to her european decimalised mind "Kilo" means "a thousand" and not "a thousand and twenty four", just in the way that "Mega" means "a million" and not "one million four hundred forty nine thousand six hundred sixteen". It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean "Giga". But I always thought that only "anal-retentive ultra-geeks" know that and I recently noticed it confuses the the general userbase (who haven't heard of that before). The strange thing is that almost everyone seems to agree (even Patrick) that binary prefixes are a good Idea. However; everyone seems to wait with the adaption of binary prefixes until everyone around has adapted them. Funny thing. I see no need to bother the documentation team; there is to much resistance against binary prefixes. So long, Raphael From alexl@redhat.com Tue Jun 20 09:50:54 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id C6D663B01A8 for ; Tue, 20 Jun 2006 09:50:54 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18291-09 for ; Tue, 20 Jun 2006 09:50:53 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 3030F3B020B for ; Tue, 20 Jun 2006 09:50:53 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDo05r027617; Tue, 20 Jun 2006 09:50:00 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDo0Fm009656; Tue, 20 Jun 2006 09:50:00 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDnxEP016163; Tue, 20 Jun 2006 09:49:59 -0400 Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Alexander Larsson To: Raphael Bosshard In-Reply-To: <1150809860.15905.28.camel@numenor> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> <1150809860.15905.28.camel@numenor> Content-Type: text/plain Date: Tue, 20 Jun 2006 15:49:59 +0200 Message-Id: <1150811399.16397.51.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.588 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.588 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 13:50:55 -0000 On Tue, 2006-06-20 at 15:24 +0200, Raphael Bosshard wrote: > > For what its worth I very much agree with Patrick. The binary prefixes > > are silly and nobody but anal-retentive ultra-geeks will understand > > them, thus confusing the general userbase (who haven't seen them > > before). > > Well, that's strange. I never considered myself a "anal-retentive > ultra-geek". And I certainly never thought that my sister would fit into > the category of "anal-retentive ultra-geeks". And yet she was the one > who brought up the topic when we upgraded her computer with a new hard > disk last week. The disk was labeled "250 Gigabyte". Yet when we > installed it,"only" 238 Gigabytes were available. I explained her that > the disk manufacturer interpreted the term "Giga" in a other way then > the software manufacturer. Being an "anal-retentive ultra-geek", she was > bothered by this. > > My sister is by no means a technical person. But to her european > decimalised mind "Kilo" means "a thousand" and not "a thousand and > twenty four", just in the way that "Mega" means "a million" and not "one > million four hundred forty nine thousand six hundred sixteen". I'm well aware of the problems with 1000/1024 multipliers. However, consider your sisters case if we used 238 gibibyte instead of 238 gigabyte. 1) We'd still show 238 instead of 250 which is listed which would cause your sister to wonder where the space went. 2) There would be a strange acronym in the UI that she had never seen before and didn't match what is commonly in use in ads, docs, hardware specifications etc. Its unfortunately true that terms like gigabyte and megabyte are very widespread and in active use by people who don't really know exactly what they mean. Changing this use is slow and hard. > It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean > "Giga". But I always thought that only "anal-retentive ultra-geeks" know > that and I recently noticed it confuses the the general userbase (who > haven't heard of that before). > > The strange thing is that almost everyone seems to agree (even Patrick) > that binary prefixes are a good Idea. However; everyone seems to wait > with the adaption of binary prefixes until everyone around has adapted > them. Funny thing. This is almost always the case with such large (in terms of number of places/organizations it has to be changed) changes. I think its partly because the net gain of doing the change isn't really that large. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a one-legged soccer-playing rock star who hangs with the wrong crowd. She's a plucky goth nun from Mars. They fight crime! From lifewarped@yahoo.com Wed Jun 21 15:50:32 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8F91D3B0266 for ; Wed, 21 Jun 2006 15:50:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01152-09 for ; Wed, 21 Jun 2006 15:50:31 -0400 (EDT) Received: from smtp109.plus.mail.re2.yahoo.com (smtp109.plus.mail.re2.yahoo.com [206.190.53.34]) by menubar.gnome.org (Postfix) with SMTP id 424163B015F for ; Wed, 21 Jun 2006 15:50:31 -0400 (EDT) Received: (qmail 56956 invoked from network); 21 Jun 2006 19:50:30 -0000 Received: from unknown (HELO ?192.168.1.85?) (lifewarped@64.252.203.251 with plain) by smtp109.plus.mail.re2.yahoo.com with SMTP; 21 Jun 2006 19:50:29 -0000 Mime-Version: 1.0 (Apple Message framework v750) To: gnome-vfs-list@gnome.org Message-Id: <647A0248-B8FA-4F26-8652-17718BEDAF37@yahoo.com> Content-Type: multipart/alternative; boundary=Apple-Mail-1-813535700 From: "Glenn R. Martin" Subject: IP6 and MacOS X Date: Wed, 21 Jun 2006 15:50:27 -0400 X-Mailer: Apple Mail (2.750) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.417 tagged_above=-999 required=2 tests=[AWL=-1.880, BAYES_40=-0.185, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447, HTML_MESSAGE=0.001] X-Spam-Score: -0.417 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jun 2006 19:50:32 -0000 --Apple-Mail-1-813535700 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Apple's Mac OS X predefines a macro named SIN6_LEN... However this macro appears to be nothing. I was wondering if i wouldnt be too much trouble to add the following to your gnome-vfs-address.c file so i would not have to add it next time? (im using todays CVS) Line 55, libgnomevfs/gnome-vfs-address.c : #ifdef SIN6_LEN && __APPLE__ # undef SIN6_LEN #endif # define SIN6_LEN sizeof (struct sockaddr_in6) Thanks --- Glenn R. Martin lifewarped@yahoo.com http://www.xargos.com http://www.myspace.com/grmartin C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. -- Bjarne Stroustrup --Apple-Mail-1-813535700 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 Apple's Mac OS X predefines a = macro named SIN6_LEN... However this macro appears to be nothing. I was = wondering if i wouldnt be too much trouble to add the following to your = gnome-vfs-address.c file so i would not have to add it next = time?

(im using = todays CVS)

Line = 55,=A0libgnomevfs/gnome-vfs-address.c :

#ifdef SIN6_LEN = &&=A0__APPLE__
# undef = SIN6_LEN
#endif

# define SIN6_LEN=A0= =A0=A0 sizeof (struct sockaddr_in6)

Thanks

---
Glenn R. = Martin
C makes it easy to shoot yourself in = the foot; C++ makes it harder, but when you do, it blows away your whole = leg. -- Bjarne Stroustrup

=

= --Apple-Mail-1-813535700-- From lifewarped@yahoo.com Wed Jun 21 15:58:02 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0CF823B0192 for ; Wed, 21 Jun 2006 15:58:02 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02062-01 for ; Wed, 21 Jun 2006 15:58:01 -0400 (EDT) Received: from smtp104.plus.mail.re2.yahoo.com (smtp104.plus.mail.re2.yahoo.com [206.190.53.29]) by menubar.gnome.org (Postfix) with SMTP id AF9573B035A for ; Wed, 21 Jun 2006 15:58:00 -0400 (EDT) Received: (qmail 63776 invoked from network); 21 Jun 2006 19:57:59 -0000 Received: from unknown (HELO ?192.168.1.85?) (lifewarped@64.252.203.251 with plain) by smtp104.plus.mail.re2.yahoo.com with SMTP; 21 Jun 2006 19:57:59 -0000 Mime-Version: 1.0 (Apple Message framework v750) To: gnome-vfs-list@gnome.org Message-Id: <2766644B-5FDA-44BF-BFA9-F0C4295F117E@yahoo.com> Content-Type: multipart/alternative; boundary=Apple-Mail-2-813985806 From: "Glenn R. Martin" Subject: login_tty on Mac OS X Date: Wed, 21 Jun 2006 15:57:57 -0400 X-Mailer: Apple Mail (2.750) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.823 tagged_above=-999 required=2 tests=[AWL=-1.361, BAYES_05=-1.11, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447, HTML_MESSAGE=0.001] X-Spam-Score: -0.823 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jun 2006 19:58:02 -0000 --Apple-Mail-2-813985806 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed MacOS X has the login_tty() definition in its header which does not seem to be included by your libgnomevfs/gnome-vfs-pty.{c,h} file. Mind doing so, if i run in to anything else, ill hold it back for a complete email. again my copy is from the CVS. --- Glenn R. Martin lifewarped@yahoo.com http://www.xargos.com http://www.myspace.com/grmartin C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. -- Bjarne Stroustrup --Apple-Mail-2-813985806 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 MacOS X has the login_tty() = definition in its <util.h> header which does not seem to be = included by your=A0libgnomevfs/gnome-vfs-pty.{c,h} file. Mind doing so, = if i run in to anything else, ill hold it back for a complete = email.

again my copy is from the = CVS.

---
Glenn R. = Martin
C makes it easy to shoot yourself in = the foot; C++ makes it harder, but when you do, it blows away your whole = leg. -- Bjarne Stroustrup

=

= --Apple-Mail-2-813985806-- From chris@gnome-de.org Thu Jun 22 08:11:59 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 99F493B0691 for ; Thu, 22 Jun 2006 08:11:59 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 23409-09 for ; Thu, 22 Jun 2006 08:11:58 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id C20CC3B05EE for ; Thu, 22 Jun 2006 08:11:57 -0400 (EDT) Received: (qmail 40576 invoked by uid 85); 22 Jun 2006 12:11:51 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.143.65):. Processed in 0.019744 secs); 22 Jun 2006 12:11:51 -0000 Received: from p54968f41.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.143.65) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 22 Jun 2006 12:11:51 -0000 Subject: Re: [PATCH] Improve docs, new attempt From: Christian Neumair To: Chipzz@ULYSSIS.Org In-Reply-To: References: <1150652208.22660.3.camel@localhost.localdomain> Content-Type: text/plain Date: Thu, 22 Jun 2006 14:11:45 +0200 Message-Id: <1150978306.5236.14.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Jun 2006 12:11:59 -0000 Am Dienstag, den 20.06.2006, 03:42 +0200 schrieb Chipzz: > I only read about half of your patch, and not even all of it carefully, but > here are a couple of suggestions: > (...) > -> "The file is a regular file" > -> %S_ISDIR and %S_ISREG are swapped. > > + * @GNOME_VFS_PERM_USER_READ: Owner has read permission. > etc... > > -> permission*s* ? Permission*s* for ALL but permission (without a trailing s) for the rest, i.e. READ, WRITE, EXECUTE. > (...) Thanks for your worthy suggestions, I've included almost all of them. Alex just looked through the patch as well and allowed me to commit it :). -- Christian Neumair From chris@gnome-de.org Fri Jun 30 06:36:08 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id EE3B03B024A for ; Fri, 30 Jun 2006 06:36:07 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 11809-10 for ; Fri, 30 Jun 2006 06:36:04 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id 138D63B02A2 for ; Fri, 30 Jun 2006 06:36:03 -0400 (EDT) Received: (qmail 59971 invoked by uid 85); 30 Jun 2006 10:36:00 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.198.8):. Processed in 0.219132 secs); 30 Jun 2006 10:36:00 -0000 Received: from p5496c608.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.198.8) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 30 Jun 2006 10:35:59 -0000 Subject: proposed asynchronous gnome_vfs_url_show implementation waiting for review From: Christian Neumair To: "gnome-vfs-list@gnome.org" Content-Type: text/plain Date: Fri, 30 Jun 2006 12:35:57 +0200 Message-Id: <1151663758.5262.1.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jun 2006 10:36:08 -0000 See http://bugzilla.gnome.org/show_bug.cgi?id=337002 We need this both for the Panel and for Nautilus. -- Christian Neumair From alexl@redhat.com Thu Jun 1 04:19:18 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 680983B0C81 for ; Thu, 1 Jun 2006 04:19:18 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16118-02 for ; Thu, 1 Jun 2006 04:19:15 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id D2B843B0C95 for ; Thu, 1 Jun 2006 04:19:14 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518JCYk032595; Thu, 1 Jun 2006 04:19:12 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518JCBf005878; Thu, 1 Jun 2006 04:19:12 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518J9Kt016649; Thu, 1 Jun 2006 04:19:10 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149115005.2331.18.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Date: Thu, 01 Jun 2006 10:19:10 +0200 Message-Id: <1149149950.5416.49.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 08:19:18 -0000 On Wed, 2006-05-31 at 18:36 -0400, David Zeuthen wrote: > Hi, > > Any reason this is not on the list? Also, please use my david@fubar.dk > email address since that's what I'm using for GNOME stuff. I dunno, it got removed at some point. I'm adding it back. > On Mon, 2006-05-29 at 14:04 +0200, Alexander Larsson wrote: > > On Wed, 2006-05-24 at 21:38 +0200, Xavier Claessens wrote: > > > Le mercredi 24 mai 2006 à 17:59 +0200, Alexander Larsson a écrit : > > > > Here is the thing. I don't expect there to be a GnomeVFSDrive for > > > > the /home volume (which i assume is a normal mountpoint on another > > > > partition). We should only have drive objects for real removable media > > > > mountpoints. > > > > > > I join a simple program I made which lists all your drives and volumes > > > and says if they are user visible. It's what helped me understand how > > > GnomeVFS works :-) > > > > This seems to be a bug in the hal version of the monitoring. We're not > > supposed to be creating drive objects for all harddrives in the system. > > A Drive is supposed to be something you can insert a removable volume > > in, like a cdrom reader, a floppy reader, or a usb card reader. On my > > system hal creates a drive for e.g. /mnt/hdb1 which is a normal ext3 > > filesystem mounted at roottime and not user-mountable. This shouldn't > > only exist in the volume monitor as a non-user_visible volume, not as a > > drive. This used to be papered over in computer:// since the volumes for > > the drives were always mounted and not user-visible, so they got > > hidden. > > > > David, I don't really know the hal stuff. Could you look into this? > > So I'm not really sure why we want this difference you are describing. > In fact I'd argue that we indeed want to show volumes from e.g. the > internal hard disk for e.g. your Windows and OS X partitions. > > And this indeed requires a GnomeVFSDrive because the partition may not > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > the partition the GnomeVFSDrive represents is actually mounted (that's > my understanding of the how Gnome VFS works). The initial design for drives was to represent devices that use removable media (such as cdrom drives, floppy drives, usb card readers, etc). For these devices the operations on the device are "natural" to the user. Its true that one can also view them as just "possible mountpoints for volumes", which means you could have a drive for your OSX or windows partition. However, when you expose this in the UI you suddenly turn a very explicit obvious hardware mapping into a way to expose the much more vague and complicated unix operation of "mounting a filesystem". I.E. you remove the mapping from icons in the UI to hardware units you can put stuff into. If you take the view of a non-unix person (i.e. one unaware of the details of mountpoints etc) using a Gnome desktop with a separate HD you have basically three cases. Either the partition is mounted, the user is allowed to mount the partition, or the user isn't allowed to mount the partition. In the first case we clearly should show a volume icon, and in the last case i argue that we should never show a drive icon (it would do nothing but confuse people). The question is what to in the second case. In an ideal desktop system I don't think that state really is very useful. What non-sysadmin-related use would you have for not mounting that volume if you are allowed to mount it anyway? In the case on a non-ideal unix system the question gets complicated and turns into a question about whether the mountpoint is an "internal implementation detail" of the filesystem mount tree or not, and this becomes very similar to the question whether to expand symlinks or not (don't expand /home to /mnt/hdb/home, but expand ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for others things are not so easy. I have for instance /mnt/hdb1 on my system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want to display this. Whether to show such drives or not is clearly a complicated, system-dependent issue and should be solved in the lower layers, and not solved in each app using gnome-vfs. The change that resulted in this being an acute problem was that we decided to hide drives that support auto-mount in all places but computer:// by using the is_user_visible flag of the drive. Doing this means that flag is used for that and can't also be used to flag whether a drive is "internal" or not. I think just not having drive objects for internal mountpoints is the easiest solution to this. > So I think what you want is to hide is exactly volumes that are mounted > on traditional FHS mount points, e.g. /, /usr. I can't see why we should > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > Filechooser) can handle this much better? I don't understand how you think nautilus can handle this better? =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a gun-slinging voodoo master criminal whom everyone believes is mad. She's a strong-willed impetuous detective descended from a line of powerful witches. They fight crime! From xclaesse@gmail.com Sun Jun 4 17:08:44 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 948253B01AC for ; Sun, 4 Jun 2006 17:08:44 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10855-08 for ; Sun, 4 Jun 2006 17:08:43 -0400 (EDT) Received: from outmx018.isp.belgacom.be (outmx018.isp.belgacom.be [195.238.4.117]) by menubar.gnome.org (Postfix) with ESMTP id 7837F3B016C for ; Sun, 4 Jun 2006 17:08:42 -0400 (EDT) Received: from outmx018.isp.belgacom.be (localhost [127.0.0.1]) by outmx018.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54L8WOP014717 for ; Sun, 4 Jun 2006 23:08:32 +0200 (envelope-from ) Received: from [10.0.0.3] (85-212.242.81.adsl.skynet.be [81.242.212.85]) by outmx018.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54L8V56014703; Sun, 4 Jun 2006 23:08:31 +0200 (envelope-from ) From: Xavier Claessens To: Alexander Larsson In-Reply-To: <1149149950.5416.49.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-OBWowAwOL3MMyW2FiPT8" Date: Sun, 04 Jun 2006 23:08:31 +0200 Message-Id: <1149455311.15249.18.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.005 tagged_above=-999 required=2 tests=[AWL=-0.475, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.005 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , David Zeuthen Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 21:08:44 -0000 --=-OBWowAwOL3MMyW2FiPT8 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Le jeudi 01 juin 2006 =C3=A0 10:19 +0200, Alexander Larsson a =C3=A9crit : > On Wed, 2006-05-31 at 18:36 -0400, David Zeuthen wrote: > > Hi, > >=20 > > Any reason this is not on the list? Also, please use my david@fubar.dk > > email address since that's what I'm using for GNOME stuff. >=20 > I dunno, it got removed at some point. I'm adding it back. >=20 > > On Mon, 2006-05-29 at 14:04 +0200, Alexander Larsson wrote: > > > On Wed, 2006-05-24 at 21:38 +0200, Xavier Claessens wrote: > > > > Le mercredi 24 mai 2006 =C3=A0 17:59 +0200, Alexander Larsson a =C3= =A9crit : > > > > > Here is the thing. I don't expect there to be a GnomeVFSDrive for > > > > > the /home volume (which i assume is a normal mountpoint on anothe= r > > > > > partition). We should only have drive objects for real removable = media > > > > > mountpoints. > > > >=20 > > > > I join a simple program I made which lists all your drives and volu= mes > > > > and says if they are user visible. It's what helped me understand h= ow > > > > GnomeVFS works :-) > > >=20 > > > This seems to be a bug in the hal version of the monitoring. We're no= t > > > supposed to be creating drive objects for all harddrives in the syste= m. > > > A Drive is supposed to be something you can insert a removable volume > > > in, like a cdrom reader, a floppy reader, or a usb card reader. On my > > > system hal creates a drive for e.g. /mnt/hdb1 which is a normal ext3 > > > filesystem mounted at roottime and not user-mountable. This shouldn't > > > only exist in the volume monitor as a non-user_visible volume, not as= a > > > drive. This used to be papered over in computer:// since the volumes = for > > > the drives were always mounted and not user-visible, so they got > > > hidden.=20 > > >=20 > > > David, I don't really know the hal stuff. Could you look into this? > >=20 > > So I'm not really sure why we want this difference you are describing. > > In fact I'd argue that we indeed want to show volumes from e.g. the > > internal hard disk for e.g. your Windows and OS X partitions.=20 > >=20 > > And this indeed requires a GnomeVFSDrive because the partition may not > > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > > the partition the GnomeVFSDrive represents is actually mounted (that's > > my understanding of the how Gnome VFS works). >=20 > The initial design for drives was to represent devices that use > removable media (such as cdrom drives, floppy drives, usb card readers, > etc). For these devices the operations on the device are "natural" to > the user. Its true that one can also view them as just "possible > mountpoints for volumes", which means you could have a drive for your > OSX or windows partition. However, when you expose this in the UI you > suddenly turn a very explicit obvious hardware mapping into a way to > expose the much more vague and complicated unix operation of "mounting a > filesystem". I.E. you remove the mapping from icons in the UI to > hardware units you can put stuff into. >=20 > If you take the view of a non-unix person (i.e. one unaware of the > details of mountpoints etc) using a Gnome desktop with a separate HD > you have basically three cases. Either the partition is mounted, the > user is allowed to mount the partition, or the user isn't allowed to > mount the partition. In the first case we clearly should show a volume > icon, and in the last case i argue that we should never show a drive > icon (it would do nothing but confuse people).=20 >=20 > The question is what to in the second case. In an ideal desktop system I > don't think that state really is very useful. What non-sysadmin-related > use would you have for not mounting that volume if you are allowed to > mount it anyway? In the case on a non-ideal unix system the question > gets complicated and turns into a question about whether the mountpoint > is an "internal implementation detail" of the filesystem mount tree or > not, and this becomes very similar to the question whether to expand > symlinks or not (don't expand /home to /mnt/hdb/home, but expand > ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you > never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for > others things are not so easy. I have for instance /mnt/hdb1 on my > system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want > to display this. >=20 > Whether to show such drives or not is clearly a complicated, > system-dependent issue and should be solved in the lower layers, and not > solved in each app using gnome-vfs. >=20 > The change that resulted in this being an acute problem was that we > decided to hide drives that support auto-mount in all places but > computer:// by using the is_user_visible flag of the drive. Doing this > means that flag is used for that and can't also be used to flag whether > a drive is "internal" or not. I think just not having drive objects for > internal mountpoints is the easiest solution to this. >=20 > > So I think what you want is to hide is exactly volumes that are mounted > > on traditional FHS mount points, e.g. /, /usr. I can't see why we shoul= d > > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > > Filechooser) can handle this much better? >=20 > I don't understand how you think nautilus can handle this better?=20 >=20 I think we can't do everything with only an user_visible flag. There is 2 different concepts: first the user_visible itself which should be used to hide partition's drives and other useless drives, second the auto-mountable property. I suggest to make something like: gboolean gnome_vfs_drive_is_auto_mountable (GnomeVFSDrive*); Like that we display all user_visible drives in computer:/// (including unmounted cdroms) but we only show user_visible && !auto_moutable drive in nautilus's place sidebar. I don't know how will GtkFileChooser work with that, because it should so see the auto_mount flag and hide automountable drives... Currently it seems that it follows the user_visible flag, at least when using gnomeVFS backend. I you are OK with this idea I can make patches for GnomeVFS/Nautilus 2.15.x For the other problem, which is computer:/// doesn't handle multi-volume drives, what about just updating the drive's icon when the first volume comes (like now in most cases) and if we get more volumes we add files like I did in my first patch. What do you think about that ? Xavier Claessens. --=-OBWowAwOL3MMyW2FiPT8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEg0vO6dEBUn2qPAMRAvTuAJ9ntPlAFivY6fFkxmdvJcY47+BPFgCfU8uo 02AtDX37Xa3rjeu3Tck07hg= =Mgs1 -----END PGP SIGNATURE----- --=-OBWowAwOL3MMyW2FiPT8-- From xclaesse@gmail.com Sun Jun 4 17:19:35 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 373613B0311 for ; Sun, 4 Jun 2006 17:19:35 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 11487-02 for ; Sun, 4 Jun 2006 17:19:34 -0400 (EDT) Received: from outmx006.isp.belgacom.be (outmx006.isp.belgacom.be [195.238.4.99]) by menubar.gnome.org (Postfix) with ESMTP id A36623B01B7 for ; Sun, 4 Jun 2006 17:19:33 -0400 (EDT) Received: from outmx006.isp.belgacom.be (localhost [127.0.0.1]) by outmx006.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54LJTW9004701 for ; Sun, 4 Jun 2006 23:19:30 +0200 (envelope-from ) Received: from [10.0.0.3] (85-212.242.81.adsl.skynet.be [81.242.212.85]) by outmx006.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54LJQOB004670 for ; Sun, 4 Jun 2006 23:19:27 +0200 (envelope-from ) From: Xavier Claessens To: gnome-vfs-list@gnome.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-H/k/fxPKXIxMmyFvNdyr" Date: Sun, 04 Jun 2006 23:19:26 +0200 Message-Id: <1149455967.15249.30.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.003 tagged_above=-999 required=2 tests=[AWL=-0.473, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.003 X-Spam-Level: Subject: volume-unmounted signal on GnomeVFSDrive X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 21:19:35 -0000 --=-H/k/fxPKXIxMmyFvNdyr Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hello, As I understand the "volume-unmounted" signal is emitted before the volume unmounted is really removed from the drive. So in the callback, if we run gnome_vfs_drive_get_mounted_volumes() it will return a GList still containing the unmounted GnomeVFSVolume. I think it should be very useful to have a callback after everything is done. For example in nautilus'places sidebar when we get the "volume-unmounted" callback we can't update the sidebar yet because the drive still has the volume connected... so we add a g_idle_add() to have a callback after everything is done and then we can update the sidebar. I think that's more a workaround than a real solution. What about adding in GnomeVFSDrive and GnomeVFSVolumeMonitor a "volume-post-unmount" callback (we already have a "volume-pre-unmount" cb) ? I you are OK with the idea I can make a patch. Xavier Claessens. --=-H/k/fxPKXIxMmyFvNdyr Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEg05e6dEBUn2qPAMRArR9AKCAmWMgqHE/lg5Ub8z2UhNQafssNgCffgDr h5y25qZ9aTpyf3qPuFAFv0w= =yGzq -----END PGP SIGNATURE----- --=-H/k/fxPKXIxMmyFvNdyr-- From keni4i@yahoo.com Sun Jun 4 15:51:57 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 5BB533B017A for ; Sun, 4 Jun 2006 15:51:57 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07508-01 for ; Sun, 4 Jun 2006 15:51:54 -0400 (EDT) Received: from web61323.mail.yahoo.com (web61323.mail.yahoo.com [209.73.179.77]) by menubar.gnome.org (Postfix) with SMTP id 530A33B0101 for ; Sun, 4 Jun 2006 15:51:54 -0400 (EDT) Received: (qmail 83293 invoked by uid 60001); 4 Jun 2006 19:51:53 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=prZjog0TXPnF+wlE8LBjO9ySalKcONTauN625ePWqsxA6/eYIQZOrZWunGBSRW20iSnr/iiWsHPBFthOeIqLOsLexDW7T3aTYgwjucP/yQ1qjDWlisdhLiDAzsEwmX8lzYFi+yno63B1RiIoGz7A13QEW8nvwxcZyJ8QEYBNRec= ; Message-ID: <20060604195153.83291.qmail@web61323.mail.yahoo.com> Received: from [68.100.226.12] by web61323.mail.yahoo.com via HTTP; Sun, 04 Jun 2006 12:51:53 PDT Date: Sun, 4 Jun 2006 12:51:53 -0700 (PDT) From: Ken Ishii To: gnome-vfs-list@gnome.org MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.119 tagged_above=-999 required=2 tests=[AWL=-1.767, BAYES_50=0.001, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447] X-Spam-Score: -0.119 X-Spam-Level: X-Mailman-Approved-At: Sun, 04 Jun 2006 18:29:01 -0400 Subject: gnome_vfs_uri_hash() bug? X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 19:51:57 -0000 gnome_vfs_uri_hash() has the following code section: for (uri_p = uri; uri_p != NULL; uri_p = uri_p->parent) { HASH_STRING (hash_value, uri_p->text); HASH_STRING (hash_value, uri_p->method_string); if (uri_p->parent != NULL) { const GnomeVFSToplevelURI *toplevel; toplevel = (const GnomeVFSToplevelURI *) uri_p; Since GnomeVFSToplevelURI is defined to be an URI without a parent, shouldn't if (uri_p->parent != NULL) be if (uri_p->parent == NULL) instead? Ken Ishii __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From david@fubar.dk Mon Jun 5 17:57:05 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 6E8BB3B0625 for ; Mon, 5 Jun 2006 17:57:05 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02934-09 for ; Mon, 5 Jun 2006 17:57:01 -0400 (EDT) Received: from davidz.fubar.dk (unknown [208.184.5.49]) by menubar.gnome.org (Postfix) with ESMTP id 264F33B03A0 for ; Mon, 5 Jun 2006 17:57:00 -0400 (EDT) Received: from [192.168.1.115] (unknown [127.0.0.1]) by davidz.fubar.dk (Postfix) with ESMTP id C71269CE06B; Mon, 5 Jun 2006 17:56:59 -0400 (EDT) From: David Zeuthen To: Alexander Larsson In-Reply-To: <1149149950.5416.49.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> Content-Type: text/plain Date: Mon, 05 Jun 2006 17:58:06 -0400 Message-Id: <1149544687.5951.56.camel@daxter.boston.redhat.com> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.567 tagged_above=-999 required=2 tests=[AWL=0.032, BAYES_00=-2.599] X-Spam-Score: -2.567 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 21:57:05 -0000 Hi, Sorry for the late reply, On Thu, 2006-06-01 at 10:19 +0200, Alexander Larsson wrote: > > So I'm not really sure why we want this difference you are describing. > > In fact I'd argue that we indeed want to show volumes from e.g. the > > internal hard disk for e.g. your Windows and OS X partitions. > > > > And this indeed requires a GnomeVFSDrive because the partition may not > > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > > the partition the GnomeVFSDrive represents is actually mounted (that's > > my understanding of the how Gnome VFS works). > > The initial design for drives was to represent devices that use > removable media (such as cdrom drives, floppy drives, usb card readers, > etc). For these devices the operations on the device are "natural" to > the user. Its true that one can also view them as just "possible > mountpoints for volumes", which means you could have a drive for your > OSX or windows partition. However, when you expose this in the UI you > suddenly turn a very explicit obvious hardware mapping into a way to > expose the much more vague and complicated unix operation of "mounting a > filesystem". I.E. you remove the mapping from icons in the UI to > hardware units you can put stuff into. As a user I'm not really sure there is a huge difference between "Macintosh HD" and "1GB Compact Flash media". Both contains files I'm interested in using, I don't care where they come from. > If you take the view of a non-unix person (i.e. one unaware of the > details of mountpoints etc) using a Gnome desktop with a separate HD > you have basically three cases. Either the partition is mounted, the > user is allowed to mount the partition, or the user isn't allowed to > mount the partition. In the first case we clearly should show a volume > icon, and in the last case i argue that we should never show a drive > icon (it would do nothing but confuse people). > > The question is what to in the second case. In an ideal desktop system I > don't think that state really is very useful. What non-sysadmin-related > use would you have for not mounting that volume if you are allowed to > mount it anyway? In the case on a non-ideal unix system the question > gets complicated and turns into a question about whether the mountpoint > is an "internal implementation detail" of the filesystem mount tree or > not, and this becomes very similar to the question whether to expand > symlinks or not (don't expand /home to /mnt/hdb/home, but expand > ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you > never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for > others things are not so easy. I have for instance /mnt/hdb1 on my > system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want > to display this. > > Whether to show such drives or not is clearly a complicated, > system-dependent issue and should be solved in the lower layers, and not > solved in each app using gnome-vfs. > > The change that resulted in this being an acute problem was that we > decided to hide drives that support auto-mount in all places but > computer:// by using the is_user_visible flag of the drive. Doing this > means that flag is used for that and can't also be used to flag whether > a drive is "internal" or not. I think just not having drive objects for > internal mountpoints is the easiest solution to this. Well, the reality is that lots of people dual or triple boot and they have files they care about on the Macintosh and Windows hard drives. And I don't think it's uncommon at all to attach removable drives formatted with e.g. HFS+ or NTFS. If security (we can't let the user automatically get full read access to e.g. an hfs+ fs on the Mac harddisk) and availability of file system driver code (NTFS write support is still not widely available) wasn't a concern this would be easy; we'd simply automount these with uid=500 and be done with it. We want this such that the user can access his files in e.g. /Users/davidz which has a different uid on the Mac OS X system (such as uid=1000). However, things are a lot more complicated. For example, if you have full write access (like when you mount with uid=500) to the root partition of another operating system as an unprivileged user (with uid=500) you can essentially change the password database on that fs and, bingo, what was previously a secure system before you put Linux (or whatever on it) now has issues. There's also things like EAL [1] that is important, e.g. we should be able to totally lock down the system such that you can't use it for anything, not even access your removable media. Surely, in this situation, we want to still show to the user that he got a card reader plugged in but that the organizational policy of his employer (or whatever) prevents him from using it. Perhaps, in the name of usability, we might give him a button titled "Request permission to use device" (would file a request to the IT department) when he clicks it or, if it's an administrator, he can put in his password or authenticate in other ways. This is where usability and security meets, fighting each other like cats and dogs. Can you see the dilemma? Like it or not, this is from the real world [2] and bills like Sarbanes-Oxley etc. don't make this *any* easier. This is why I started PolicyKit. PolicyKit and gnome-mount will help solve this problem though not in a very elegant way [3] but it will provide a "one-time-click" "solution" to the problem. Some might say the user looses here (just look at the recent Microsoft Vista reviews where the user is bombarded with dialogs) but we're still left with the dilemma mentioned above. And we do want (I believe) GNOME to be a viable contender on the desktop and that means we need to support lock-down and things like EAL and Sarbanes-Oxley. Just as we want it to work for home users who just wants to access that movie on the NTFS or hfs+ partition from his home directory on "that other operating system". The approach taken by PolicyKit and gnome-mount is best compromise I've come up with so far. I'm not convinced it's perfect though, and I haven't had time to complete it yet though things are slowly moving forward. So what am I trying to say? I'm trying to say it makes sense to show all drives and their mountable file systems notwithstanding the user might be allowed to access them. Because if they're not privileged they should at least get a chance to see the drive is there (otherwise you get "My drive didn't show up! Is the computer broken?") along with an explanation why they can't access it maybe even with a possibility to auth for access. > > So I think what you want is to hide is exactly volumes that are mounted > > on traditional FHS mount points, e.g. /, /usr. I can't see why we should > > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > > Filechooser) can handle this much better? > > I don't understand how you think nautilus can handle this better? Agreed, yea, probably GNOME VFS would know best. David [1] : http://en.wikipedia.org/wiki/Evaluation_Assurance_Level [2] : http://www.pbs.org/cringely/pulpit/pulpit20040916.html Search for "epoxy". [3] : See http://people.freedesktop.org/~david/perm-override/gnome-mount-perm-override-1.png http://people.freedesktop.org/~david/perm-override/gnome-mount-perm-override-2.png From alexl@redhat.com Wed Jun 7 02:58:31 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 730983B0342 for ; Wed, 7 Jun 2006 02:58:31 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20729-09 for ; Wed, 7 Jun 2006 02:58:30 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id C47583B01B2 for ; Wed, 7 Jun 2006 02:58:29 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wSRX026164; Wed, 7 Jun 2006 02:58:28 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wNdo031791; Wed, 7 Jun 2006 02:58:23 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wMrc020424; Wed, 7 Jun 2006 02:58:23 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149544687.5951.56.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> Content-Type: text/plain Date: Wed, 07 Jun 2006 08:58:24 +0200 Message-Id: <1149663504.5416.123.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 06:58:31 -0000 On Mon, 2006-06-05 at 17:58 -0400, David Zeuthen wrote: > So what am I trying to say? I'm trying to say it makes sense to show all > drives and their mountable file systems notwithstanding the user might > be allowed to access them. Because if they're not privileged they should > at least get a chance to see the drive is there (otherwise you get "My > drive didn't show up! Is the computer broken?") along with an > explanation why they can't access it maybe even with a possibility to > auth for access. I don't really follow your reasoning fully. I agree that users want to see their OSX and/or windows mounts from linux, but I think you over-empasize the "single user, dual boot, home desktop" usecase. In the case of more traditional sysadmined unix setups (at universities and whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs mounts, tmpfs, /usr, /home, extra drives/partitions, etc). If we were to show all these, then I think things would look pretty confusing. I really think we need to hide a bunch of mountpoints. Some mountpoints can probably be hardcoded (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never think of all possibilities, so we should probably have a way to mark them. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a benighted playboy dog-catcher whom everyone believes is mad. She's a sarcastic extravagent former first lady from a family of eight older brothers. They fight crime! From xclaesse@gmail.com Wed Jun 7 08:51:14 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 546413B0B28 for ; Wed, 7 Jun 2006 08:51:14 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13070-01 for ; Wed, 7 Jun 2006 08:51:13 -0400 (EDT) Received: from outmx007.isp.belgacom.be (outmx007.isp.belgacom.be [195.238.5.234]) by menubar.gnome.org (Postfix) with ESMTP id A19F93B03C4 for ; Wed, 7 Jun 2006 08:51:12 -0400 (EDT) Received: from outmx007.isp.belgacom.be (localhost [127.0.0.1]) by outmx007.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k57Cow2U030006 for ; Wed, 7 Jun 2006 14:51:03 +0200 (envelope-from ) Received: from [10.0.0.3] (68-220.242.81.adsl.skynet.be [81.242.220.68]) by outmx007.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k57CovMd029978; Wed, 7 Jun 2006 14:50:57 +0200 (envelope-from ) From: Xavier Claessens To: Alexander Larsson In-Reply-To: <1149663504.5416.123.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-hOGtOF5lpypbLjK1X4t7" Date: Wed, 07 Jun 2006 14:51:08 +0200 Message-Id: <1149684668.5095.1.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.001 tagged_above=-999 required=2 tests=[AWL=-0.471, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.001 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , David Zeuthen Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 12:51:14 -0000 --=-hOGtOF5lpypbLjK1X4t7 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Le mercredi 07 juin 2006 =C3=A0 08:58 +0200, Alexander Larsson a =C3=A9crit= : > On Mon, 2006-06-05 at 17:58 -0400, David Zeuthen wrote: >=20 > > So what am I trying to say? I'm trying to say it makes sense to show al= l > > drives and their mountable file systems notwithstanding the user might > > be allowed to access them. Because if they're not privileged they shoul= d > > at least get a chance to see the drive is there (otherwise you get "My > > drive didn't show up! Is the computer broken?") along with an > > explanation why they can't access it maybe even with a possibility to > > auth for access. >=20 > I don't really follow your reasoning fully. I agree that users want to > see their OSX and/or windows mounts from linux, but I think you > over-empasize the "single user, dual boot, home desktop" usecase. In the > case of more traditional sysadmined unix setups (at universities and > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > mounts, tmpfs, /usr, /home, extra drives/partitions, etc).=20 >=20 > If we were to show all these, then I think things would look pretty > confusing. I really think we need to hide a bunch of mountpoints. Some > mountpoints can probably be hardcoded > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > think of all possibilities, so we should probably have a way to mark > them. >=20 We should only display "/media/*" and "/mnt/*" Xavier. --=-hOGtOF5lpypbLjK1X4t7 Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEhsu76dEBUn2qPAMRApRBAJwNCLBuPyxCtkh0sIbICQBqpRGDFACfaN00 Kc9Uz6ZIjQ4wxsbbHO74ZG0= =Wmaq -----END PGP SIGNATURE----- --=-hOGtOF5lpypbLjK1X4t7-- From tomasek@ebed.etf.cuni.cz Wed Jun 7 08:55:00 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 864A63B0C97 for ; Wed, 7 Jun 2006 08:55:00 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13300-04 for ; Wed, 7 Jun 2006 08:54:57 -0400 (EDT) Received: from ebed.etf.cuni.cz (ebed.etf.cuni.cz [195.113.5.3]) by menubar.gnome.org (Postfix) with ESMTP id E66983B03C4 for ; Wed, 7 Jun 2006 08:54:56 -0400 (EDT) Received: from ebed.etf.cuni.cz (localhost.localdomain [127.0.0.1]) by ebed.etf.cuni.cz (8.12.11.20060308/8.12.11) with ESMTP id k57ChDPX029737 for ; Wed, 7 Jun 2006 14:43:13 +0200 Received: (from tomasek@localhost) by ebed.etf.cuni.cz (8.12.11.20060308/8.12.11/Submit) id k57ChDrV029735 for gnome-vfs-list@gnome.org; Wed, 7 Jun 2006 14:43:13 +0200 Date: Wed, 7 Jun 2006 14:43:13 +0200 From: Petr Tomasek To: gnome-vfs-list@gnome.org Message-ID: <20060607124313.GA29329@ebed.etf.cuni.cz> References: <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1149684668.5095.1.camel@zdra-desktop> User-Agent: Mutt/1.4.1i X-Homepage: http://www.etf.cuni.cz/~tomasek/ X-Echelon: bomb Arafat Intifada bus kach drugs mafia boss heroin spy Semtex Saddam Al-Qaida Usama bin Ladin Bush Sharon X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.535 tagged_above=-999 required=2 tests=[AWL=0.064, BAYES_00=-2.599] X-Spam-Score: -2.535 X-Spam-Level: Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 12:55:00 -0000 > > I don't really follow your reasoning fully. I agree that users want to > > see their OSX and/or windows mounts from linux, but I think you > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > case of more traditional sysadmined unix setups (at universities and > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > If we were to show all these, then I think things would look pretty > > confusing. I really think we need to hide a bunch of mountpoints. Some > > mountpoints can probably be hardcoded > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > think of all possibilities, so we should probably have a way to mark > > them. > > > > We should only display "/media/*" and "/mnt/*" > > Xavier. Please, let it be configurable! There are people who prefer mounting media under "/" (like "/cdrom", etc.) P.T. -- Petr Tomasek From david@fubar.dk Wed Jun 7 09:42:51 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 565EE3B03C1 for ; Wed, 7 Jun 2006 09:42:51 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17395-02 for ; Wed, 7 Jun 2006 09:42:48 -0400 (EDT) Received: from davidz.fubar.dk (unknown [208.184.5.49]) by menubar.gnome.org (Postfix) with ESMTP id 8057D3B0229 for ; Wed, 7 Jun 2006 09:42:48 -0400 (EDT) Received: from [192.168.1.115] (unknown [127.0.0.1]) by davidz.fubar.dk (Postfix) with ESMTP id 6CDC19CE06F; Wed, 7 Jun 2006 09:42:47 -0400 (EDT) From: David Zeuthen To: Xavier Claessens In-Reply-To: <1149684668.5095.1.camel@zdra-desktop> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> Content-Type: text/plain Date: Wed, 07 Jun 2006 09:43:54 -0400 Message-Id: <1149687834.2424.24.camel@daxter.boston.redhat.com> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.57 tagged_above=-999 required=2 tests=[AWL=0.029, BAYES_00=-2.599] X-Spam-Score: -2.57 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , Alexander Larsson Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 13:42:51 -0000 On Wed, 2006-06-07 at 14:51 +0200, Xavier Claessens wrote: > > I don't really follow your reasoning fully. I agree that users want to > > see their OSX and/or windows mounts from linux, but I think you > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > case of more traditional sysadmined unix setups (at universities and > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > If we were to show all these, then I think things would look pretty > > confusing. I really think we need to hide a bunch of mountpoints. Some > > mountpoints can probably be hardcoded > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > think of all possibilities, so we should probably have a way to mark > > them. Yea, of course we should hide such bizarre mount points. My point was merely we ought to show drives/mounts even if the user is not privileged to mount them. > > > > We should only display "/media/*" and "/mnt/*" Yup, that's one option, maybe just resort to showing entries from /media then alexl's /mnt/hdb1 drive won't be shown (and if alexl wants it to be shown he can move the mount point to /media). Personally I think we should just hide all the directories and subdirs as defined by FHS2.3. We do that here http://cvs.gnome.org/viewcvs/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c?view=markup in function _hal_volume_policy_check() though I'm unsure whether this code is used at the moment (will look into that). David From alexl@redhat.com Fri Jun 9 07:20:04 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id CF0E53B0097 for ; Fri, 9 Jun 2006 07:20:04 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18633-05 for ; Fri, 9 Jun 2006 07:20:00 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 1AB843B011C for ; Fri, 9 Jun 2006 07:20:00 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJwQm005302; Fri, 9 Jun 2006 07:19:58 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJwLZ006488; Fri, 9 Jun 2006 07:19:58 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJvoV024293; Fri, 9 Jun 2006 07:19:57 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149687834.2424.24.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> <1149687834.2424.24.camel@daxter.boston.redhat.com> Content-Type: text/plain Date: Fri, 09 Jun 2006 13:19:57 +0200 Message-Id: <1149851997.3023.51.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 11:20:05 -0000 On Wed, 2006-06-07 at 09:43 -0400, David Zeuthen wrote: > On Wed, 2006-06-07 at 14:51 +0200, Xavier Claessens wrote: > > > I don't really follow your reasoning fully. I agree that users want to > > > see their OSX and/or windows mounts from linux, but I think you > > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > > case of more traditional sysadmined unix setups (at universities and > > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > > > If we were to show all these, then I think things would look pretty > > > confusing. I really think we need to hide a bunch of mountpoints. Some > > > mountpoints can probably be hardcoded > > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > > think of all possibilities, so we should probably have a way to mark > > > them. > > Yea, of course we should hide such bizarre mount points. My point was > merely we ought to show drives/mounts even if the user is not privileged > to mount them. > > > > > > > > We should only display "/media/*" and "/mnt/*" > > Yup, that's one option, maybe just resort to showing entries from /media > then alexl's /mnt/hdb1 drive won't be shown (and if alexl wants it to be > shown he can move the mount point to /media). Personally I think we > should just hide all the directories and subdirs as defined by FHS2.3. > We do that here > > http://cvs.gnome.org/viewcvs/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c?view=markup > > in function _hal_volume_policy_check() though I'm unsure whether this > code is used at the moment (will look into that). Well, the bug report: http://bugzilla.gnome.org/show_bug.cgi?id=341446 showed drives for things like / and /home. So something is going wrong here. I see a _hal_drive_policy_check that is empty though. Anyway, what i think we should do is: Have a policy for what mountpoints to create drives for. Be it by blacklisting or whitelisting. If the policy says the mountpoint shouldn't have a drive then we don't even create one. Set is_user_visible to false on drives that support auto-mounting, so we can hide them everywhere but in computer:///. I think blacklisting will probably work well enough, but you probably need to add more stuff than just the toplevel FHS mountpoints, for instance /dev/shmem and common non-linux mountpoints. Also, it looks like you create drives based on currently mounted volumes that are not in fstab? This will generate a bunch of drives when using things like autofs for separate /home/ mountpoints and cause things like /proc/bus/usb to get drives. Does it ever make sense to create a drive object for a volume like this? It'll only live as long as the volume and you can't really use it for anything. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a time-tossed coffee-fuelled inventor on his last day in the job. She's a warm-hearted mutant research scientist from a different time and place. They fight crime! From alexl@redhat.com Fri Jun 9 07:21:46 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id A75453B0121 for ; Fri, 9 Jun 2006 07:21:46 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18661-08 for ; Fri, 9 Jun 2006 07:21:45 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 573C53B006A for ; Fri, 9 Jun 2006 07:21:45 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLiIX005951; Fri, 9 Jun 2006 07:21:44 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLiWa006890; Fri, 9 Jun 2006 07:21:44 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLh8I024410; Fri, 9 Jun 2006 07:21:44 -0400 From: Alexander Larsson To: Ken Ishii In-Reply-To: <20060604195153.83291.qmail@web61323.mail.yahoo.com> References: <20060604195153.83291.qmail@web61323.mail.yahoo.com> Content-Type: text/plain Date: Fri, 09 Jun 2006 13:21:43 +0200 Message-Id: <1149852104.3023.53.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: gnome-vfs-list@gnome.org Subject: Re: gnome_vfs_uri_hash() bug? X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 11:21:46 -0000 On Sun, 2006-06-04 at 12:51 -0700, Ken Ishii wrote: > gnome_vfs_uri_hash() has the following code section: > > for (uri_p = uri; uri_p != NULL; uri_p = uri_p->parent) { > HASH_STRING (hash_value, uri_p->text); > HASH_STRING (hash_value, uri_p->method_string); > > if (uri_p->parent != NULL) { > const GnomeVFSToplevelURI *toplevel; > > toplevel = (const GnomeVFSToplevelURI *) uri_p; > > Since GnomeVFSToplevelURI is defined to be an URI without a parent, > shouldn't > if (uri_p->parent != NULL) > be > if (uri_p->parent == NULL) > instead? Yeah. That looks wrong. I'm fixing it in cvs. Thanks. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's an old-fashioned white trash romance novelist She's a bloodthirsty Buddhist bodyguard prone to fits of savage, blood-crazed rage. They fight crime! From alexl@redhat.com Mon Jun 12 05:38:16 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 296D33B00A7 for ; Mon, 12 Jun 2006 05:38:16 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28453-10 for ; Mon, 12 Jun 2006 05:38:14 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 8A0A33B008D for ; Mon, 12 Jun 2006 05:38:14 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bL45019802; Mon, 12 Jun 2006 05:37:21 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bG0T011686; Mon, 12 Jun 2006 05:37:16 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bF3C014485; Mon, 12 Jun 2006 05:37:15 -0400 From: Alexander Larsson To: Xavier Claessens In-Reply-To: <1149455967.15249.30.camel@zdra-desktop> References: <1149455967.15249.30.camel@zdra-desktop> Content-Type: text/plain Date: Mon, 12 Jun 2006 11:37:15 +0200 Message-Id: <1150105036.3023.95.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: gnome-vfs-list@gnome.org Subject: Re: volume-unmounted signal on GnomeVFSDrive X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jun 2006 09:38:16 -0000 On Sun, 2006-06-04 at 23:19 +0200, Xavier Claessens wrote: > Hello, > > As I understand the "volume-unmounted" signal is emitted before the > volume unmounted is really removed from the drive. So in the callback, > if we run gnome_vfs_drive_get_mounted_volumes() it will return a GList > still containing the unmounted GnomeVFSVolume. > > I think it should be very useful to have a callback after everything is > done. For example in nautilus'places sidebar when we get the > "volume-unmounted" callback we can't update the sidebar yet because the > drive still has the volume connected... so we add a g_idle_add() to have > a callback after everything is done and then we can update the sidebar. > > I think that's more a workaround than a real solution. What about adding > in GnomeVFSDrive and GnomeVFSVolumeMonitor a "volume-post-unmount" > callback (we already have a "volume-pre-unmount" cb) ? > > I you are OK with the idea I can make a patch. You could just look at gnome_vfs_volume_is_mounted() in the volume-unmounted call and ignore things that are not mounted. We do set is_mounted before emitting the signal for things like this. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a deeply religious umbrella-wielding astronaut looking for a cure to the poison coursing through his veins. She's a green-fingered snooty femme fatale who can talk to animals. They fight crime! From alexl@redhat.com Mon Jun 12 06:12:18 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 084B93B0078 for ; Mon, 12 Jun 2006 06:12:18 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 29802-04 for ; Mon, 12 Jun 2006 06:12:16 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 2BF913B009D for ; Mon, 12 Jun 2006 06:12:16 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TFho017434; Mon, 12 Jun 2006 05:29:15 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TF93010182; Mon, 12 Jun 2006 05:29:15 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TEb4013434; Mon, 12 Jun 2006 05:29:14 -0400 From: Alexander Larsson To: Christian Neumair In-Reply-To: <1149010547.5256.19.camel@localhost.localdomain> References: <1149010547.5256.19.camel@localhost.localdomain> Content-Type: text/plain Date: Mon, 12 Jun 2006 11:29:14 +0200 Message-Id: <1150104554.3023.93.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.549 tagged_above=-999 required=2 tests=[AWL=-0.025, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, TW_FD=0.077] X-Spam-Score: -2.549 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , Ken Ishii Subject: Re: Proposed (unfinished) ZIP module available on Bugzilla X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jun 2006 10:12:18 -0000 On Tue, 2006-05-30 at 19:35 +0200, Christian Neumair wrote: > Dear GnomeVFS development community, > > as requested by Ken Ishii who needs a ZIP module, I'm publishing a > prelimitary version of a GnomeVFS ZIP module in Bugzilla [1]. People who > are interested in development should check out the bug report and help > out :). > > [1] http://bugzilla.gnome.org/show_bug.cgi?id=343419 It seems this uncompresses the file on open and then reads from that. I think this is the right approach, but there are some tricks you could use to make this nicer. What you do is create the uncompressed temp files (in /tmp) and then unlink the file, keeping the file descriptor around. This means the file is not visible in the filesystem, but the data for it is kept around until the last fd referencing it is closed. You store this fd in a cache, and then use dup() to get a new independent file descriptor to the file in do_open(). When the app is closed the kernel will close all fds and deallocate the filesystem space. So, doing things this way means you'll never leak tempfiles. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a lounge-singing albino vampire hunter who knows the secret of the alien invasion. She's a virginal punk traffic cop with an MBA from Harvard. They fight crime! From mclasen@redhat.com Mon Jun 12 22:40:48 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 4BAD63B0009 for ; Mon, 12 Jun 2006 22:40:48 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07590-05 for ; Mon, 12 Jun 2006 22:40:46 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 3251E3B000C for ; Mon, 12 Jun 2006 22:40:46 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5D2MFId000486 for ; Mon, 12 Jun 2006 22:22:15 -0400 Received: from lacrosse.corp.redhat.com (lacrosse.corp.redhat.com [172.16.52.154]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5D2MFG6018613 for ; Mon, 12 Jun 2006 22:22:15 -0400 Received: from [172.16.83.145] (vpn83-145.boston.redhat.com [172.16.83.145]) by lacrosse.corp.redhat.com (8.12.11.20060308/8.11.6) with ESMTP id k5D2MEWJ003165 for ; Mon, 12 Jun 2006 22:22:14 -0400 From: Matthias Clasen To: gnome-vfs-list@gnome.org Content-Type: text/plain Organization: Red Hat Date: Mon, 12 Jun 2006 22:24:01 -0400 Message-Id: <1150165441.4081.7.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.541 tagged_above=-999 required=2 tests=[AWL=0.060, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.541 X-Spam-Level: Subject: gnome-mime-data dependency X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jun 2006 02:40:48 -0000 During some Fedora package work I noticed that gnome-vfs still pulls in gnome-mime-data, which seems to be old and unmaintained. Alex tells me that it is needed for some deprecated mime apis. I think it would be nice to get rid of that dependency in 2.16. Matthias From bosshrap@zhwin.ch Tue Jun 13 10:41:32 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 2D47B3B000C for ; Tue, 13 Jun 2006 10:41:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26639-07 for ; Tue, 13 Jun 2006 10:41:30 -0400 (EDT) Received: from a.mx.projectdream.org (eth0-0.yuffie.projectdream.org [194.88.212.200]) by menubar.gnome.org (Postfix) with ESMTP id 2806B3B00A5 for ; Tue, 13 Jun 2006 10:41:29 -0400 (EDT) Received: from [10.0.0.11] (d213-103-155-97.cust.tele2.ch [213.103.155.97]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a.mx.projectdream.org (Postfix) with ESMTP id BD3548811A for ; Tue, 13 Jun 2006 16:40:29 +0200 (CEST) Message-ID: <448ECE64.9030800@zhwin.ch> Date: Tue, 13 Jun 2006 16:40:36 +0200 From: Raphael Bosshard User-Agent: Thunderbird 1.5.0.4 (X11/20060612) MIME-Version: 1.0 To: gnome-vfs-list@gnome.org Subject: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) Content-Type: multipart/mixed; boundary="------------000304070805010006040703" X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: X-Mailman-Approved-At: Thu, 15 Jun 2006 08:09:00 -0400 X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jun 2006 14:41:32 -0000 This is a multi-part message in MIME format. --------------000304070805010006040703 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit See http://bugzilla.gnome.org/show_bug.cgi?id=344296 This patch changes the human readable filesizes (gnome_vfs_format_file_size_for_display) which are curently displayed (rather missleading) with binary prefix multipliers (such as Kilo, Mega, Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). The IEC approved standard symbols (KiB, MiB, GiB) are used. For more information please read http://en.wikipedia.org/wiki/Binary_prefix So long, Raphael --------------000304070805010006040703 Content-Type: text/x-patch; name="gnome-vfs-display-binary-prefix.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="gnome-vfs-display-binary-prefix.patch" --- gnome-vfs-2.14.2/libgnomevfs/gnome-vfs-utils.c 2006-03-03 10:28:21.000000000 +0100 +++ gnome-vfs-2.14.2-work/libgnomevfs/gnome-vfs-utils.c 2006-06-10 23:03:40.983116272 +0200 @@ -51,9 +51,9 @@ #include #include -#define KILOBYTE_FACTOR 1024.0 -#define MEGABYTE_FACTOR (1024.0 * 1024.0) -#define GIGABYTE_FACTOR (1024.0 * 1024.0 * 1024.0) +#define KIBIBYTE_FACTOR 1024.0 +#define MEBIBYTE_FACTOR (1024.0 * 1024.0) +#define GIBIBYTE_FACTORFACTOR (1024.0 * 1024.0 * 1024.0) #define READ_CHUNK_SIZE 8192 @@ -74,22 +74,22 @@ gchar* gnome_vfs_format_file_size_for_display (GnomeVFSFileSize size) { - if (size < (GnomeVFSFileSize) KILOBYTE_FACTOR) { + if (size < (GnomeVFSFileSize) KIBIBYTE_FACTOR) { return g_strdup_printf (dngettext(GETTEXT_PACKAGE, "%u byte", "%u bytes",(guint) size), (guint) size); } else { gdouble displayed_size; - if (size < (GnomeVFSFileSize) MEGABYTE_FACTOR) { - displayed_size = (gdouble) size / KILOBYTE_FACTOR; - return g_strdup_printf (_("%.1f KB"), + if (size < (GnomeVFSFileSize) MEBIBYTE_FACTOR) { + displayed_size = (gdouble) size / KIBIBYTE_FACTOR; + return g_strdup_printf (_("%.1f KiB"), displayed_size); - } else if (size < (GnomeVFSFileSize) GIGABYTE_FACTOR) { - displayed_size = (gdouble) size / MEGABYTE_FACTOR; - return g_strdup_printf (_("%.1f MB"), + } else if (size < (GnomeVFSFileSize) GIBIBYTE_FACTORFACTOR) { + displayed_size = (gdouble) size / MEBIBYTE_FACTOR; + return g_strdup_printf (_("%.1f MiB"), displayed_size); } else { - displayed_size = (gdouble) size / GIGABYTE_FACTOR; - return g_strdup_printf (_("%.1f GB"), + displayed_size = (gdouble) size / GIBIBYTE_FACTORFACTOR; + return g_strdup_printf (_("%.1f GiB"), displayed_size); } } --------------000304070805010006040703-- From alexl@redhat.com Sat Jun 17 04:58:04 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 361533B042A for ; Sat, 17 Jun 2006 04:58:04 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15153-02 for ; Sat, 17 Jun 2006 04:58:02 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 676533B010F for ; Sat, 17 Jun 2006 04:58:02 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vMS8009846; Sat, 17 Jun 2006 04:57:22 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vMxp026394; Sat, 17 Jun 2006 04:57:22 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vL4b023197; Sat, 17 Jun 2006 04:57:21 -0400 Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Alexander Larsson To: Raphael Bosshard In-Reply-To: <448ECE64.9030800@zhwin.ch> References: <448ECE64.9030800@zhwin.ch> Content-Type: text/plain Date: Sat, 17 Jun 2006 10:57:21 +0200 Message-Id: <1150534641.1962.19.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.588 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.588 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jun 2006 08:58:04 -0000 On Tue, 2006-06-13 at 16:40 +0200, Raphael Bosshard wrote: > See http://bugzilla.gnome.org/show_bug.cgi?id=344296 > > This patch changes the human readable filesizes > (gnome_vfs_format_file_size_for_display) which are curently displayed > (rather missleading) with binary prefix multipliers (such as Kilo, Mega, > Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). > The IEC approved standard symbols (KiB, MiB, GiB) are used. > > For more information please read http://en.wikipedia.org/wiki/Binary_prefix This has already been denied in bugs like: http://bugzilla.gnome.org/show_bug.cgi?id=127175 Which references mails like: http://mail.gnome.org/archives/gnome-doc-list/2003-December/msg00004.html and the gnome docs style guides: http://developer.gnome.org/documents/style-guide/units.html For what its worth I very much agree with Patrick. The binary prefixes are silly and nobody but anal-retentive ultra-geeks will understand them, thus confusing the general userbase (who haven't seen them before). =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a sword-wielding pirate librarian searching for his wife's true killer. She's a time-travelling junkie Hell's Angel in the wrong place at the wrong time. They fight crime! From nf2@scheinwelt.at Sun Jun 18 18:55:34 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 462013B00AF; Sun, 18 Jun 2006 18:55:34 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 12908-03; Sun, 18 Jun 2006 18:55:31 -0400 (EDT) Received: from mx-01.sil.at (mx-01.sil.at [86.59.12.198]) by menubar.gnome.org (Postfix) with ESMTP id 208EC3B00B2; Sun, 18 Jun 2006 18:55:30 -0400 (EDT) Received: from vie-062-116-122-020.dsl.sil.at ([62.116.122.20] helo=[192.168.5.82]) by mx-01.sil.at with esmtp (Exim 4.60) (envelope-from ) id 1Fs69X-0004Oc-Kv; Mon, 19 Jun 2006 00:54:01 +0200 Message-ID: <4495D984.5090705@scheinwelt.at> Date: Mon, 19 Jun 2006 00:53:56 +0200 From: nf2 User-Agent: Thunderbird 1.5 (X11/20051201) MIME-Version: 1.0 To: gtk-list@gnome.org, gnome vfs list Subject: libxdg-vfs and Gtk-Filechooser Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scan-Signature: 9d02a3267670e8bb77f537b38fda5a39 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.51 tagged_above=-999 required=2 tests=[AWL=0.012, BAYES_00=-2.599, TW_XD=0.077] X-Spam-Score: -2.51 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jun 2006 22:55:34 -0000 Hi, The experimental "libxdg-vfs" provides a generic interface to VFS libraries. It tries to autodetect the current desktop and then connects to Gnome-VFS or KIO by launching the backend executables xdg_vfs_gnome or xdg_vfs_kde. http://www.scheinwelt.at/~norbertf/dadapt/files/xdg_utils/doc/libxdg-vfs.html The target of "libxdg-vfs" would be giving applications access to ftp/smb shares etc... Of course this also involves bringing VFS access to filechoosers. AFAIK Gtk-Filechooser has pluggable backends (GtkFilesystem). It would be interesting if it could also run on top of "libxdg-vfs". The problem is, that i couldn't find any documentation how to implement a GtkFilesystem module. Could you please give me an introduction and maybe tell me about the specific requirements for a GtkFilesystem? Perhaps i need to provide more functions through "libxdg-vfs": listing and mounting Volumes, obtaining icon-paths,... Regards, Norbert From chris@gnome-de.org Sun Jun 18 13:44:45 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 349513B00E5 for ; Sun, 18 Jun 2006 13:44:45 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05823-10 for ; Sun, 18 Jun 2006 13:44:41 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id E77BC3B0009 for ; Sun, 18 Jun 2006 13:44:39 -0400 (EDT) Received: (qmail 45357 invoked by uid 85); 18 Jun 2006 17:36:58 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.153.121):. Processed in 7.089351 secs); 18 Jun 2006 17:36:58 -0000 Received: from p54969979.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.153.121) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 18 Jun 2006 17:36:51 -0000 Subject: [PATCH] Improve docs, new attempt From: Christian Neumair To: "gnome-vfs-list@gnome.org" Content-Type: multipart/mixed; boundary="=-4cYgbTZAmh2zlaadTQGz" Date: Sun, 18 Jun 2006 19:36:47 +0200 Message-Id: <1150652208.22660.3.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: X-Mailman-Approved-At: Mon, 19 Jun 2006 14:27:21 -0400 X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jun 2006 17:44:45 -0000 --=-4cYgbTZAmh2zlaadTQGz Content-Type: text/plain Content-Transfer-Encoding: 7bit I've spent some more hours on GnomeVFS docs and the Xfer docs should be in a way better shape now. I got commit permission for the last one already, but this one is significantly larger (240 kB, but including the tmpl/ regeneration garbage). -- Christian Neumair --=-4cYgbTZAmh2zlaadTQGz Content-Disposition: attachment; filename=gnome-vfs-doc-3.diff.gz Content-Type: application/x-gzip; name=gnome-vfs-doc-3.diff.gz Content-Transfer-Encoding: base64 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 --=-4cYgbTZAmh2zlaadTQGz-- From ensonic@hora-obscura.de Mon Jun 19 18:38:50 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0E7D03B03FC for ; Mon, 19 Jun 2006 18:38:50 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05344-05 for ; Mon, 19 Jun 2006 18:38:47 -0400 (EDT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by menubar.gnome.org (Postfix) with ESMTP id D01C83B03EE for ; Mon, 19 Jun 2006 18:38:46 -0400 (EDT) Received: from [82.165.27.189] (helo=hora-obscura.de) by mrelayeu.kundenserver.de (node=mrelayeu0) with ESMTP (Nemesis), id 0MKwh2-1FsSHG2Dgc-0000IG; Tue, 20 Jun 2006 00:31:26 +0200 Received: from localhost (localhost [127.0.0.1]) by smtp.hora-obscura.de (Postfix) with ESMTP id 48519878042; Tue, 20 Jun 2006 00:31:26 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by smtp.hora-obscura.de (Postfix) with ESMTP id 768D4878023; Tue, 20 Jun 2006 00:31:19 +0200 (CEST) Subject: Re: [PATCH] Improve docs, new attempt From: Stefan Kost To: Christian Neumair In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> References: <1150652208.22660.3.camel@localhost.localdomain> Content-Type: text/plain Date: Tue, 20 Jun 2006 01:30:37 +0300 Message-Id: <1150756237.15396.6.camel@fluffy.local> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new using ClamAV at hora-obscura.de X-Provags-ID: kundenserver.de abuse@kundenserver.de login:8eea7ddcf9c0cceb26830fe517b7ade3 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.496 tagged_above=-999 required=2 tests=[AWL=0.026, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.496 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 22:38:50 -0000 Hi Christian, Am Sonntag, den 18.06.2006, 19:36 +0200 schrieb Christian Neumair: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). I strongly recommend to move all docs to the source files and remove the tmpl files from cvs totaly. If developers use different versions of gtk-doc, commiting partialy generated files such as the files under tmpl/ can often cause conflicts like those we know with po/*.po files. Besides developers will more likely update docs when they are close to the sources. In case you are not aware, even the section docs can be added to the sources (see the gtk-doc manual in yelp). Stefan From chipzz@ULYSSIS.Org Mon Jun 19 21:43:10 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 471F03B015D for ; Mon, 19 Jun 2006 21:43:10 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15440-03 for ; Mon, 19 Jun 2006 21:43:07 -0400 (EDT) Received: from rusty.kulnet.kuleuven.ac.be (rusty.kulnet.kuleuven.ac.be [134.58.240.42]) by menubar.gnome.org (Postfix) with ESMTP id A4EC63B00D9 for ; Mon, 19 Jun 2006 21:43:06 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by rusty.kulnet.kuleuven.ac.be (Postfix) with ESMTP id 43E5F1D75E5 for ; Tue, 20 Jun 2006 03:42:23 +0200 (CEST) Received: from smtp03.kuleuven.be (antonius.kulnet.kuleuven.ac.be [134.58.240.73]) by rusty.kulnet.kuleuven.ac.be (Postfix) with ESMTP id 4E13C1D75DF for ; Tue, 20 Jun 2006 03:42:20 +0200 (CEST) Received: from smtp.ulyssis.student.kuleuven.be (ray.ulyssis.student.kuleuven.be [193.190.253.198]) by smtp03.kuleuven.be (Postfix) with ESMTP id 47261332762 for ; Tue, 20 Jun 2006 03:42:20 +0200 (CEST) Received: (qmail 30541 invoked from network); 20 Jun 2006 01:42:20 -0000 Received: from ace.ulyssis.student.kuleuven.be (HELO ace.ulyssis.org) (193.190.253.208) by smtp.ulyssis.student.kuleuven.be with SMTP; 20 Jun 2006 01:42:20 -0000 Received: by ace.ulyssis.org (Postfix, from userid 1275) id 050F92EFE4; Tue, 20 Jun 2006 03:42:19 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by ace.ulyssis.org (Postfix) with ESMTP id E85052EFE3; Tue, 20 Jun 2006 03:42:19 +0200 (CEST) Date: Tue, 20 Jun 2006 03:42:19 +0200 (CEST) From: Chipzz To: Christian Neumair Subject: Re: [PATCH] Improve docs, new attempt In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> Message-ID: References: <1150652208.22660.3.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: by KULeuven Antivirus Cluster X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.419 tagged_above=-999 required=2 tests=[AWL=0.045, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.419 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: Chipzz@ULYSSIS.Org List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 01:43:10 -0000 I only read about half of your patch, and not even all of it carefully, but here are a couple of suggestions: + * Either way, it acts like #GnomeVFSXferProgressCallback + * would act in non-asynchronous mode. The differences in + * invocation are explained in the gnome_vfs_async_xfer() + * documentation documentation. -> 2x documentation. + * @GNOME_VFS_FILE_TYPE_REGULAR: The file is regular (stat: %S_ISDIR). + * @GNOME_VFS_FILE_TYPE_DIRECTORY: The file is a directory (stat: %S_ISREG). -> "The file is a regular file" -> %S_ISDIR and %S_ISREG are swapped. + * @GNOME_VFS_PERM_USER_READ: Owner has read permission. etc... -> permission*s* ? + * @GNOME_VFS_PERM_OTHER_ALL: Others have all permissionss. -> permission*ss* ! + * @block_count: The size of the file in 512-byte blocks (a #GnomeVFSFileSize), -> I may be totally wrong here, but isn't this filesystem dependant? kr, On Sun, 18 Jun 2006, Christian Neumair wrote: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). Chipzz AKA Jan Van Buggenhout -- ------------------------------------------------------------------------ UNIX isn't dead - It just smells funny Chipzz@ULYSSIS.Org ------------------------------------------------------------------------ "Baldric, you wouldn't recognize a subtle plan if it painted itself pur- ple and danced naked on a harpsicord singing 'subtle plans are here a- gain'." From bosshrap@zhwin.ch Tue Jun 20 09:25:20 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8A5FA3B01A8 for ; Tue, 20 Jun 2006 09:25:20 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17592-03 for ; Tue, 20 Jun 2006 09:25:17 -0400 (EDT) Received: from a.mx.projectdream.org (eth0-0.yuffie.projectdream.org [194.88.212.200]) by menubar.gnome.org (Postfix) with ESMTP id 765663B017D for ; Tue, 20 Jun 2006 09:25:17 -0400 (EDT) Received: from dskt6433.zhwin.ch (dskt6433.zhwin.ch [160.85.162.206]) by a.mx.projectdream.org (Postfix) with ESMTP id 048688803B; Tue, 20 Jun 2006 15:24:23 +0200 (CEST) Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Raphael Bosshard To: Alexander Larsson In-Reply-To: <1150534641.1962.19.camel@greebo> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> Content-Type: text/plain Date: Tue, 20 Jun 2006 15:24:20 +0200 Message-Id: <1150809860.15905.28.camel@numenor> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.11 tagged_above=-999 required=2 tests=[BAYES_05=-1.11] X-Spam-Score: -1.11 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 13:25:20 -0000 Hello there! > For what its worth I very much agree with Patrick. The binary prefixes > are silly and nobody but anal-retentive ultra-geeks will understand > them, thus confusing the general userbase (who haven't seen them > before). Well, that's strange. I never considered myself a "anal-retentive ultra-geek". And I certainly never thought that my sister would fit into the category of "anal-retentive ultra-geeks". And yet she was the one who brought up the topic when we upgraded her computer with a new hard disk last week. The disk was labeled "250 Gigabyte". Yet when we installed it,"only" 238 Gigabytes were available. I explained her that the disk manufacturer interpreted the term "Giga" in a other way then the software manufacturer. Being an "anal-retentive ultra-geek", she was bothered by this. My sister is by no means a technical person. But to her european decimalised mind "Kilo" means "a thousand" and not "a thousand and twenty four", just in the way that "Mega" means "a million" and not "one million four hundred forty nine thousand six hundred sixteen". It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean "Giga". But I always thought that only "anal-retentive ultra-geeks" know that and I recently noticed it confuses the the general userbase (who haven't heard of that before). The strange thing is that almost everyone seems to agree (even Patrick) that binary prefixes are a good Idea. However; everyone seems to wait with the adaption of binary prefixes until everyone around has adapted them. Funny thing. I see no need to bother the documentation team; there is to much resistance against binary prefixes. So long, Raphael From alexl@redhat.com Tue Jun 20 09:50:54 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id C6D663B01A8 for ; Tue, 20 Jun 2006 09:50:54 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18291-09 for ; Tue, 20 Jun 2006 09:50:53 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 3030F3B020B for ; Tue, 20 Jun 2006 09:50:53 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDo05r027617; Tue, 20 Jun 2006 09:50:00 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDo0Fm009656; Tue, 20 Jun 2006 09:50:00 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDnxEP016163; Tue, 20 Jun 2006 09:49:59 -0400 Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Alexander Larsson To: Raphael Bosshard In-Reply-To: <1150809860.15905.28.camel@numenor> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> <1150809860.15905.28.camel@numenor> Content-Type: text/plain Date: Tue, 20 Jun 2006 15:49:59 +0200 Message-Id: <1150811399.16397.51.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.588 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.588 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 13:50:55 -0000 On Tue, 2006-06-20 at 15:24 +0200, Raphael Bosshard wrote: > > For what its worth I very much agree with Patrick. The binary prefixes > > are silly and nobody but anal-retentive ultra-geeks will understand > > them, thus confusing the general userbase (who haven't seen them > > before). > > Well, that's strange. I never considered myself a "anal-retentive > ultra-geek". And I certainly never thought that my sister would fit into > the category of "anal-retentive ultra-geeks". And yet she was the one > who brought up the topic when we upgraded her computer with a new hard > disk last week. The disk was labeled "250 Gigabyte". Yet when we > installed it,"only" 238 Gigabytes were available. I explained her that > the disk manufacturer interpreted the term "Giga" in a other way then > the software manufacturer. Being an "anal-retentive ultra-geek", she was > bothered by this. > > My sister is by no means a technical person. But to her european > decimalised mind "Kilo" means "a thousand" and not "a thousand and > twenty four", just in the way that "Mega" means "a million" and not "one > million four hundred forty nine thousand six hundred sixteen". I'm well aware of the problems with 1000/1024 multipliers. However, consider your sisters case if we used 238 gibibyte instead of 238 gigabyte. 1) We'd still show 238 instead of 250 which is listed which would cause your sister to wonder where the space went. 2) There would be a strange acronym in the UI that she had never seen before and didn't match what is commonly in use in ads, docs, hardware specifications etc. Its unfortunately true that terms like gigabyte and megabyte are very widespread and in active use by people who don't really know exactly what they mean. Changing this use is slow and hard. > It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean > "Giga". But I always thought that only "anal-retentive ultra-geeks" know > that and I recently noticed it confuses the the general userbase (who > haven't heard of that before). > > The strange thing is that almost everyone seems to agree (even Patrick) > that binary prefixes are a good Idea. However; everyone seems to wait > with the adaption of binary prefixes until everyone around has adapted > them. Funny thing. This is almost always the case with such large (in terms of number of places/organizations it has to be changed) changes. I think its partly because the net gain of doing the change isn't really that large. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a one-legged soccer-playing rock star who hangs with the wrong crowd. She's a plucky goth nun from Mars. They fight crime! From lifewarped@yahoo.com Wed Jun 21 15:50:32 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8F91D3B0266 for ; Wed, 21 Jun 2006 15:50:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01152-09 for ; Wed, 21 Jun 2006 15:50:31 -0400 (EDT) Received: from smtp109.plus.mail.re2.yahoo.com (smtp109.plus.mail.re2.yahoo.com [206.190.53.34]) by menubar.gnome.org (Postfix) with SMTP id 424163B015F for ; Wed, 21 Jun 2006 15:50:31 -0400 (EDT) Received: (qmail 56956 invoked from network); 21 Jun 2006 19:50:30 -0000 Received: from unknown (HELO ?192.168.1.85?) (lifewarped@64.252.203.251 with plain) by smtp109.plus.mail.re2.yahoo.com with SMTP; 21 Jun 2006 19:50:29 -0000 Mime-Version: 1.0 (Apple Message framework v750) To: gnome-vfs-list@gnome.org Message-Id: <647A0248-B8FA-4F26-8652-17718BEDAF37@yahoo.com> Content-Type: multipart/alternative; boundary=Apple-Mail-1-813535700 From: "Glenn R. Martin" Subject: IP6 and MacOS X Date: Wed, 21 Jun 2006 15:50:27 -0400 X-Mailer: Apple Mail (2.750) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.417 tagged_above=-999 required=2 tests=[AWL=-1.880, BAYES_40=-0.185, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447, HTML_MESSAGE=0.001] X-Spam-Score: -0.417 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jun 2006 19:50:32 -0000 --Apple-Mail-1-813535700 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Apple's Mac OS X predefines a macro named SIN6_LEN... However this macro appears to be nothing. I was wondering if i wouldnt be too much trouble to add the following to your gnome-vfs-address.c file so i would not have to add it next time? (im using todays CVS) Line 55, libgnomevfs/gnome-vfs-address.c : #ifdef SIN6_LEN && __APPLE__ # undef SIN6_LEN #endif # define SIN6_LEN sizeof (struct sockaddr_in6) Thanks --- Glenn R. Martin lifewarped@yahoo.com http://www.xargos.com http://www.myspace.com/grmartin C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. -- Bjarne Stroustrup --Apple-Mail-1-813535700 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 Apple's Mac OS X predefines a = macro named SIN6_LEN... However this macro appears to be nothing. I was = wondering if i wouldnt be too much trouble to add the following to your = gnome-vfs-address.c file so i would not have to add it next = time?

(im using = todays CVS)

Line = 55,=A0libgnomevfs/gnome-vfs-address.c :

#ifdef SIN6_LEN = &&=A0__APPLE__
# undef = SIN6_LEN
#endif

# define SIN6_LEN=A0= =A0=A0 sizeof (struct sockaddr_in6)

Thanks

---
Glenn R. = Martin
C makes it easy to shoot yourself in = the foot; C++ makes it harder, but when you do, it blows away your whole = leg. -- Bjarne Stroustrup

=

= --Apple-Mail-1-813535700-- From lifewarped@yahoo.com Wed Jun 21 15:58:02 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0CF823B0192 for ; Wed, 21 Jun 2006 15:58:02 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02062-01 for ; Wed, 21 Jun 2006 15:58:01 -0400 (EDT) Received: from smtp104.plus.mail.re2.yahoo.com (smtp104.plus.mail.re2.yahoo.com [206.190.53.29]) by menubar.gnome.org (Postfix) with SMTP id AF9573B035A for ; Wed, 21 Jun 2006 15:58:00 -0400 (EDT) Received: (qmail 63776 invoked from network); 21 Jun 2006 19:57:59 -0000 Received: from unknown (HELO ?192.168.1.85?) (lifewarped@64.252.203.251 with plain) by smtp104.plus.mail.re2.yahoo.com with SMTP; 21 Jun 2006 19:57:59 -0000 Mime-Version: 1.0 (Apple Message framework v750) To: gnome-vfs-list@gnome.org Message-Id: <2766644B-5FDA-44BF-BFA9-F0C4295F117E@yahoo.com> Content-Type: multipart/alternative; boundary=Apple-Mail-2-813985806 From: "Glenn R. Martin" Subject: login_tty on Mac OS X Date: Wed, 21 Jun 2006 15:57:57 -0400 X-Mailer: Apple Mail (2.750) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.823 tagged_above=-999 required=2 tests=[AWL=-1.361, BAYES_05=-1.11, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447, HTML_MESSAGE=0.001] X-Spam-Score: -0.823 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jun 2006 19:58:02 -0000 --Apple-Mail-2-813985806 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed MacOS X has the login_tty() definition in its header which does not seem to be included by your libgnomevfs/gnome-vfs-pty.{c,h} file. Mind doing so, if i run in to anything else, ill hold it back for a complete email. again my copy is from the CVS. --- Glenn R. Martin lifewarped@yahoo.com http://www.xargos.com http://www.myspace.com/grmartin C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. -- Bjarne Stroustrup --Apple-Mail-2-813985806 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 MacOS X has the login_tty() = definition in its <util.h> header which does not seem to be = included by your=A0libgnomevfs/gnome-vfs-pty.{c,h} file. Mind doing so, = if i run in to anything else, ill hold it back for a complete = email.

again my copy is from the = CVS.

---
Glenn R. = Martin
C makes it easy to shoot yourself in = the foot; C++ makes it harder, but when you do, it blows away your whole = leg. -- Bjarne Stroustrup

=

= --Apple-Mail-2-813985806-- From chris@gnome-de.org Thu Jun 22 08:11:59 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 99F493B0691 for ; Thu, 22 Jun 2006 08:11:59 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 23409-09 for ; Thu, 22 Jun 2006 08:11:58 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id C20CC3B05EE for ; Thu, 22 Jun 2006 08:11:57 -0400 (EDT) Received: (qmail 40576 invoked by uid 85); 22 Jun 2006 12:11:51 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.143.65):. Processed in 0.019744 secs); 22 Jun 2006 12:11:51 -0000 Received: from p54968f41.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.143.65) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 22 Jun 2006 12:11:51 -0000 Subject: Re: [PATCH] Improve docs, new attempt From: Christian Neumair To: Chipzz@ULYSSIS.Org In-Reply-To: References: <1150652208.22660.3.camel@localhost.localdomain> Content-Type: text/plain Date: Thu, 22 Jun 2006 14:11:45 +0200 Message-Id: <1150978306.5236.14.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Jun 2006 12:11:59 -0000 Am Dienstag, den 20.06.2006, 03:42 +0200 schrieb Chipzz: > I only read about half of your patch, and not even all of it carefully, but > here are a couple of suggestions: > (...) > -> "The file is a regular file" > -> %S_ISDIR and %S_ISREG are swapped. > > + * @GNOME_VFS_PERM_USER_READ: Owner has read permission. > etc... > > -> permission*s* ? Permission*s* for ALL but permission (without a trailing s) for the rest, i.e. READ, WRITE, EXECUTE. > (...) Thanks for your worthy suggestions, I've included almost all of them. Alex just looked through the patch as well and allowed me to commit it :). -- Christian Neumair From alexl@redhat.com Thu Jun 1 04:19:18 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 680983B0C81 for ; Thu, 1 Jun 2006 04:19:18 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 16118-02 for ; Thu, 1 Jun 2006 04:19:15 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id D2B843B0C95 for ; Thu, 1 Jun 2006 04:19:14 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518JCYk032595; Thu, 1 Jun 2006 04:19:12 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518JCBf005878; Thu, 1 Jun 2006 04:19:12 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k518J9Kt016649; Thu, 1 Jun 2006 04:19:10 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149115005.2331.18.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> Content-Type: text/plain; charset=ISO-8859-1 Date: Thu, 01 Jun 2006 10:19:10 +0200 Message-Id: <1149149950.5416.49.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 01 Jun 2006 08:19:18 -0000 On Wed, 2006-05-31 at 18:36 -0400, David Zeuthen wrote: > Hi, > > Any reason this is not on the list? Also, please use my david@fubar.dk > email address since that's what I'm using for GNOME stuff. I dunno, it got removed at some point. I'm adding it back. > On Mon, 2006-05-29 at 14:04 +0200, Alexander Larsson wrote: > > On Wed, 2006-05-24 at 21:38 +0200, Xavier Claessens wrote: > > > Le mercredi 24 mai 2006 à 17:59 +0200, Alexander Larsson a écrit : > > > > Here is the thing. I don't expect there to be a GnomeVFSDrive for > > > > the /home volume (which i assume is a normal mountpoint on another > > > > partition). We should only have drive objects for real removable media > > > > mountpoints. > > > > > > I join a simple program I made which lists all your drives and volumes > > > and says if they are user visible. It's what helped me understand how > > > GnomeVFS works :-) > > > > This seems to be a bug in the hal version of the monitoring. We're not > > supposed to be creating drive objects for all harddrives in the system. > > A Drive is supposed to be something you can insert a removable volume > > in, like a cdrom reader, a floppy reader, or a usb card reader. On my > > system hal creates a drive for e.g. /mnt/hdb1 which is a normal ext3 > > filesystem mounted at roottime and not user-mountable. This shouldn't > > only exist in the volume monitor as a non-user_visible volume, not as a > > drive. This used to be papered over in computer:// since the volumes for > > the drives were always mounted and not user-visible, so they got > > hidden. > > > > David, I don't really know the hal stuff. Could you look into this? > > So I'm not really sure why we want this difference you are describing. > In fact I'd argue that we indeed want to show volumes from e.g. the > internal hard disk for e.g. your Windows and OS X partitions. > > And this indeed requires a GnomeVFSDrive because the partition may not > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > the partition the GnomeVFSDrive represents is actually mounted (that's > my understanding of the how Gnome VFS works). The initial design for drives was to represent devices that use removable media (such as cdrom drives, floppy drives, usb card readers, etc). For these devices the operations on the device are "natural" to the user. Its true that one can also view them as just "possible mountpoints for volumes", which means you could have a drive for your OSX or windows partition. However, when you expose this in the UI you suddenly turn a very explicit obvious hardware mapping into a way to expose the much more vague and complicated unix operation of "mounting a filesystem". I.E. you remove the mapping from icons in the UI to hardware units you can put stuff into. If you take the view of a non-unix person (i.e. one unaware of the details of mountpoints etc) using a Gnome desktop with a separate HD you have basically three cases. Either the partition is mounted, the user is allowed to mount the partition, or the user isn't allowed to mount the partition. In the first case we clearly should show a volume icon, and in the last case i argue that we should never show a drive icon (it would do nothing but confuse people). The question is what to in the second case. In an ideal desktop system I don't think that state really is very useful. What non-sysadmin-related use would you have for not mounting that volume if you are allowed to mount it anyway? In the case on a non-ideal unix system the question gets complicated and turns into a question about whether the mountpoint is an "internal implementation detail" of the filesystem mount tree or not, and this becomes very similar to the question whether to expand symlinks or not (don't expand /home to /mnt/hdb/home, but expand ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for others things are not so easy. I have for instance /mnt/hdb1 on my system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want to display this. Whether to show such drives or not is clearly a complicated, system-dependent issue and should be solved in the lower layers, and not solved in each app using gnome-vfs. The change that resulted in this being an acute problem was that we decided to hide drives that support auto-mount in all places but computer:// by using the is_user_visible flag of the drive. Doing this means that flag is used for that and can't also be used to flag whether a drive is "internal" or not. I think just not having drive objects for internal mountpoints is the easiest solution to this. > So I think what you want is to hide is exactly volumes that are mounted > on traditional FHS mount points, e.g. /, /usr. I can't see why we should > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > Filechooser) can handle this much better? I don't understand how you think nautilus can handle this better? =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a gun-slinging voodoo master criminal whom everyone believes is mad. She's a strong-willed impetuous detective descended from a line of powerful witches. They fight crime! From xclaesse@gmail.com Sun Jun 4 17:08:44 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 948253B01AC for ; Sun, 4 Jun 2006 17:08:44 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 10855-08 for ; Sun, 4 Jun 2006 17:08:43 -0400 (EDT) Received: from outmx018.isp.belgacom.be (outmx018.isp.belgacom.be [195.238.4.117]) by menubar.gnome.org (Postfix) with ESMTP id 7837F3B016C for ; Sun, 4 Jun 2006 17:08:42 -0400 (EDT) Received: from outmx018.isp.belgacom.be (localhost [127.0.0.1]) by outmx018.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54L8WOP014717 for ; Sun, 4 Jun 2006 23:08:32 +0200 (envelope-from ) Received: from [10.0.0.3] (85-212.242.81.adsl.skynet.be [81.242.212.85]) by outmx018.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54L8V56014703; Sun, 4 Jun 2006 23:08:31 +0200 (envelope-from ) From: Xavier Claessens To: Alexander Larsson In-Reply-To: <1149149950.5416.49.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-OBWowAwOL3MMyW2FiPT8" Date: Sun, 04 Jun 2006 23:08:31 +0200 Message-Id: <1149455311.15249.18.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.005 tagged_above=-999 required=2 tests=[AWL=-0.475, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.005 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , David Zeuthen Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 21:08:44 -0000 --=-OBWowAwOL3MMyW2FiPT8 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Le jeudi 01 juin 2006 =C3=A0 10:19 +0200, Alexander Larsson a =C3=A9crit : > On Wed, 2006-05-31 at 18:36 -0400, David Zeuthen wrote: > > Hi, > >=20 > > Any reason this is not on the list? Also, please use my david@fubar.dk > > email address since that's what I'm using for GNOME stuff. >=20 > I dunno, it got removed at some point. I'm adding it back. >=20 > > On Mon, 2006-05-29 at 14:04 +0200, Alexander Larsson wrote: > > > On Wed, 2006-05-24 at 21:38 +0200, Xavier Claessens wrote: > > > > Le mercredi 24 mai 2006 =C3=A0 17:59 +0200, Alexander Larsson a =C3= =A9crit : > > > > > Here is the thing. I don't expect there to be a GnomeVFSDrive for > > > > > the /home volume (which i assume is a normal mountpoint on anothe= r > > > > > partition). We should only have drive objects for real removable = media > > > > > mountpoints. > > > >=20 > > > > I join a simple program I made which lists all your drives and volu= mes > > > > and says if they are user visible. It's what helped me understand h= ow > > > > GnomeVFS works :-) > > >=20 > > > This seems to be a bug in the hal version of the monitoring. We're no= t > > > supposed to be creating drive objects for all harddrives in the syste= m. > > > A Drive is supposed to be something you can insert a removable volume > > > in, like a cdrom reader, a floppy reader, or a usb card reader. On my > > > system hal creates a drive for e.g. /mnt/hdb1 which is a normal ext3 > > > filesystem mounted at roottime and not user-mountable. This shouldn't > > > only exist in the volume monitor as a non-user_visible volume, not as= a > > > drive. This used to be papered over in computer:// since the volumes = for > > > the drives were always mounted and not user-visible, so they got > > > hidden.=20 > > >=20 > > > David, I don't really know the hal stuff. Could you look into this? > >=20 > > So I'm not really sure why we want this difference you are describing. > > In fact I'd argue that we indeed want to show volumes from e.g. the > > internal hard disk for e.g. your Windows and OS X partitions.=20 > >=20 > > And this indeed requires a GnomeVFSDrive because the partition may not > > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > > the partition the GnomeVFSDrive represents is actually mounted (that's > > my understanding of the how Gnome VFS works). >=20 > The initial design for drives was to represent devices that use > removable media (such as cdrom drives, floppy drives, usb card readers, > etc). For these devices the operations on the device are "natural" to > the user. Its true that one can also view them as just "possible > mountpoints for volumes", which means you could have a drive for your > OSX or windows partition. However, when you expose this in the UI you > suddenly turn a very explicit obvious hardware mapping into a way to > expose the much more vague and complicated unix operation of "mounting a > filesystem". I.E. you remove the mapping from icons in the UI to > hardware units you can put stuff into. >=20 > If you take the view of a non-unix person (i.e. one unaware of the > details of mountpoints etc) using a Gnome desktop with a separate HD > you have basically three cases. Either the partition is mounted, the > user is allowed to mount the partition, or the user isn't allowed to > mount the partition. In the first case we clearly should show a volume > icon, and in the last case i argue that we should never show a drive > icon (it would do nothing but confuse people).=20 >=20 > The question is what to in the second case. In an ideal desktop system I > don't think that state really is very useful. What non-sysadmin-related > use would you have for not mounting that volume if you are allowed to > mount it anyway? In the case on a non-ideal unix system the question > gets complicated and turns into a question about whether the mountpoint > is an "internal implementation detail" of the filesystem mount tree or > not, and this becomes very similar to the question whether to expand > symlinks or not (don't expand /home to /mnt/hdb/home, but expand > ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you > never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for > others things are not so easy. I have for instance /mnt/hdb1 on my > system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want > to display this. >=20 > Whether to show such drives or not is clearly a complicated, > system-dependent issue and should be solved in the lower layers, and not > solved in each app using gnome-vfs. >=20 > The change that resulted in this being an acute problem was that we > decided to hide drives that support auto-mount in all places but > computer:// by using the is_user_visible flag of the drive. Doing this > means that flag is used for that and can't also be used to flag whether > a drive is "internal" or not. I think just not having drive objects for > internal mountpoints is the easiest solution to this. >=20 > > So I think what you want is to hide is exactly volumes that are mounted > > on traditional FHS mount points, e.g. /, /usr. I can't see why we shoul= d > > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > > Filechooser) can handle this much better? >=20 > I don't understand how you think nautilus can handle this better?=20 >=20 I think we can't do everything with only an user_visible flag. There is 2 different concepts: first the user_visible itself which should be used to hide partition's drives and other useless drives, second the auto-mountable property. I suggest to make something like: gboolean gnome_vfs_drive_is_auto_mountable (GnomeVFSDrive*); Like that we display all user_visible drives in computer:/// (including unmounted cdroms) but we only show user_visible && !auto_moutable drive in nautilus's place sidebar. I don't know how will GtkFileChooser work with that, because it should so see the auto_mount flag and hide automountable drives... Currently it seems that it follows the user_visible flag, at least when using gnomeVFS backend. I you are OK with this idea I can make patches for GnomeVFS/Nautilus 2.15.x For the other problem, which is computer:/// doesn't handle multi-volume drives, what about just updating the drive's icon when the first volume comes (like now in most cases) and if we get more volumes we add files like I did in my first patch. What do you think about that ? Xavier Claessens. --=-OBWowAwOL3MMyW2FiPT8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEg0vO6dEBUn2qPAMRAvTuAJ9ntPlAFivY6fFkxmdvJcY47+BPFgCfU8uo 02AtDX37Xa3rjeu3Tck07hg= =Mgs1 -----END PGP SIGNATURE----- --=-OBWowAwOL3MMyW2FiPT8-- From xclaesse@gmail.com Sun Jun 4 17:19:35 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 373613B0311 for ; Sun, 4 Jun 2006 17:19:35 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 11487-02 for ; Sun, 4 Jun 2006 17:19:34 -0400 (EDT) Received: from outmx006.isp.belgacom.be (outmx006.isp.belgacom.be [195.238.4.99]) by menubar.gnome.org (Postfix) with ESMTP id A36623B01B7 for ; Sun, 4 Jun 2006 17:19:33 -0400 (EDT) Received: from outmx006.isp.belgacom.be (localhost [127.0.0.1]) by outmx006.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54LJTW9004701 for ; Sun, 4 Jun 2006 23:19:30 +0200 (envelope-from ) Received: from [10.0.0.3] (85-212.242.81.adsl.skynet.be [81.242.212.85]) by outmx006.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k54LJQOB004670 for ; Sun, 4 Jun 2006 23:19:27 +0200 (envelope-from ) From: Xavier Claessens To: gnome-vfs-list@gnome.org Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-H/k/fxPKXIxMmyFvNdyr" Date: Sun, 04 Jun 2006 23:19:26 +0200 Message-Id: <1149455967.15249.30.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.003 tagged_above=-999 required=2 tests=[AWL=-0.473, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.003 X-Spam-Level: Subject: volume-unmounted signal on GnomeVFSDrive X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 21:19:35 -0000 --=-H/k/fxPKXIxMmyFvNdyr Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Hello, As I understand the "volume-unmounted" signal is emitted before the volume unmounted is really removed from the drive. So in the callback, if we run gnome_vfs_drive_get_mounted_volumes() it will return a GList still containing the unmounted GnomeVFSVolume. I think it should be very useful to have a callback after everything is done. For example in nautilus'places sidebar when we get the "volume-unmounted" callback we can't update the sidebar yet because the drive still has the volume connected... so we add a g_idle_add() to have a callback after everything is done and then we can update the sidebar. I think that's more a workaround than a real solution. What about adding in GnomeVFSDrive and GnomeVFSVolumeMonitor a "volume-post-unmount" callback (we already have a "volume-pre-unmount" cb) ? I you are OK with the idea I can make a patch. Xavier Claessens. --=-H/k/fxPKXIxMmyFvNdyr Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEg05e6dEBUn2qPAMRArR9AKCAmWMgqHE/lg5Ub8z2UhNQafssNgCffgDr h5y25qZ9aTpyf3qPuFAFv0w= =yGzq -----END PGP SIGNATURE----- --=-H/k/fxPKXIxMmyFvNdyr-- From keni4i@yahoo.com Sun Jun 4 15:51:57 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 5BB533B017A for ; Sun, 4 Jun 2006 15:51:57 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07508-01 for ; Sun, 4 Jun 2006 15:51:54 -0400 (EDT) Received: from web61323.mail.yahoo.com (web61323.mail.yahoo.com [209.73.179.77]) by menubar.gnome.org (Postfix) with SMTP id 530A33B0101 for ; Sun, 4 Jun 2006 15:51:54 -0400 (EDT) Received: (qmail 83293 invoked by uid 60001); 4 Jun 2006 19:51:53 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=s1024; d=yahoo.com; h=Message-ID:Received:Date:From:Subject:To:MIME-Version:Content-Type:Content-Transfer-Encoding; b=prZjog0TXPnF+wlE8LBjO9ySalKcONTauN625ePWqsxA6/eYIQZOrZWunGBSRW20iSnr/iiWsHPBFthOeIqLOsLexDW7T3aTYgwjucP/yQ1qjDWlisdhLiDAzsEwmX8lzYFi+yno63B1RiIoGz7A13QEW8nvwxcZyJ8QEYBNRec= ; Message-ID: <20060604195153.83291.qmail@web61323.mail.yahoo.com> Received: from [68.100.226.12] by web61323.mail.yahoo.com via HTTP; Sun, 04 Jun 2006 12:51:53 PDT Date: Sun, 4 Jun 2006 12:51:53 -0700 (PDT) From: Ken Ishii To: gnome-vfs-list@gnome.org MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.119 tagged_above=-999 required=2 tests=[AWL=-1.767, BAYES_50=0.001, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447] X-Spam-Score: -0.119 X-Spam-Level: X-Mailman-Approved-At: Sun, 04 Jun 2006 18:29:01 -0400 Subject: gnome_vfs_uri_hash() bug? X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Jun 2006 19:51:57 -0000 gnome_vfs_uri_hash() has the following code section: for (uri_p = uri; uri_p != NULL; uri_p = uri_p->parent) { HASH_STRING (hash_value, uri_p->text); HASH_STRING (hash_value, uri_p->method_string); if (uri_p->parent != NULL) { const GnomeVFSToplevelURI *toplevel; toplevel = (const GnomeVFSToplevelURI *) uri_p; Since GnomeVFSToplevelURI is defined to be an URI without a parent, shouldn't if (uri_p->parent != NULL) be if (uri_p->parent == NULL) instead? Ken Ishii __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com From david@fubar.dk Mon Jun 5 17:57:05 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 6E8BB3B0625 for ; Mon, 5 Jun 2006 17:57:05 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02934-09 for ; Mon, 5 Jun 2006 17:57:01 -0400 (EDT) Received: from davidz.fubar.dk (unknown [208.184.5.49]) by menubar.gnome.org (Postfix) with ESMTP id 264F33B03A0 for ; Mon, 5 Jun 2006 17:57:00 -0400 (EDT) Received: from [192.168.1.115] (unknown [127.0.0.1]) by davidz.fubar.dk (Postfix) with ESMTP id C71269CE06B; Mon, 5 Jun 2006 17:56:59 -0400 (EDT) From: David Zeuthen To: Alexander Larsson In-Reply-To: <1149149950.5416.49.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> Content-Type: text/plain Date: Mon, 05 Jun 2006 17:58:06 -0400 Message-Id: <1149544687.5951.56.camel@daxter.boston.redhat.com> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.567 tagged_above=-999 required=2 tests=[AWL=0.032, BAYES_00=-2.599] X-Spam-Score: -2.567 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jun 2006 21:57:05 -0000 Hi, Sorry for the late reply, On Thu, 2006-06-01 at 10:19 +0200, Alexander Larsson wrote: > > So I'm not really sure why we want this difference you are describing. > > In fact I'd argue that we indeed want to show volumes from e.g. the > > internal hard disk for e.g. your Windows and OS X partitions. > > > > And this indeed requires a GnomeVFSDrive because the partition may not > > be mounted and we only have a GnomeVFSVolume for a GnomeVFSDrive when > > the partition the GnomeVFSDrive represents is actually mounted (that's > > my understanding of the how Gnome VFS works). > > The initial design for drives was to represent devices that use > removable media (such as cdrom drives, floppy drives, usb card readers, > etc). For these devices the operations on the device are "natural" to > the user. Its true that one can also view them as just "possible > mountpoints for volumes", which means you could have a drive for your > OSX or windows partition. However, when you expose this in the UI you > suddenly turn a very explicit obvious hardware mapping into a way to > expose the much more vague and complicated unix operation of "mounting a > filesystem". I.E. you remove the mapping from icons in the UI to > hardware units you can put stuff into. As a user I'm not really sure there is a huge difference between "Macintosh HD" and "1GB Compact Flash media". Both contains files I'm interested in using, I don't care where they come from. > If you take the view of a non-unix person (i.e. one unaware of the > details of mountpoints etc) using a Gnome desktop with a separate HD > you have basically three cases. Either the partition is mounted, the > user is allowed to mount the partition, or the user isn't allowed to > mount the partition. In the first case we clearly should show a volume > icon, and in the last case i argue that we should never show a drive > icon (it would do nothing but confuse people). > > The question is what to in the second case. In an ideal desktop system I > don't think that state really is very useful. What non-sysadmin-related > use would you have for not mounting that volume if you are allowed to > mount it anyway? In the case on a non-ideal unix system the question > gets complicated and turns into a question about whether the mountpoint > is an "internal implementation detail" of the filesystem mount tree or > not, and this becomes very similar to the question whether to expand > symlinks or not (don't expand /home to /mnt/hdb/home, but expand > ~/Desktop/music to ~/Documents/MyMusic). Some cases are simple, you > never want to display /, /proc, /sys, /dev/pts, /boot, etc. However, for > others things are not so easy. I have for instance /mnt/hdb1 on my > system where i have symlinks like /opt -> /mnt/hdb1/opt. I wouldn't want > to display this. > > Whether to show such drives or not is clearly a complicated, > system-dependent issue and should be solved in the lower layers, and not > solved in each app using gnome-vfs. > > The change that resulted in this being an acute problem was that we > decided to hide drives that support auto-mount in all places but > computer:// by using the is_user_visible flag of the drive. Doing this > means that flag is used for that and can't also be used to flag whether > a drive is "internal" or not. I think just not having drive objects for > internal mountpoints is the easiest solution to this. Well, the reality is that lots of people dual or triple boot and they have files they care about on the Macintosh and Windows hard drives. And I don't think it's uncommon at all to attach removable drives formatted with e.g. HFS+ or NTFS. If security (we can't let the user automatically get full read access to e.g. an hfs+ fs on the Mac harddisk) and availability of file system driver code (NTFS write support is still not widely available) wasn't a concern this would be easy; we'd simply automount these with uid=500 and be done with it. We want this such that the user can access his files in e.g. /Users/davidz which has a different uid on the Mac OS X system (such as uid=1000). However, things are a lot more complicated. For example, if you have full write access (like when you mount with uid=500) to the root partition of another operating system as an unprivileged user (with uid=500) you can essentially change the password database on that fs and, bingo, what was previously a secure system before you put Linux (or whatever on it) now has issues. There's also things like EAL [1] that is important, e.g. we should be able to totally lock down the system such that you can't use it for anything, not even access your removable media. Surely, in this situation, we want to still show to the user that he got a card reader plugged in but that the organizational policy of his employer (or whatever) prevents him from using it. Perhaps, in the name of usability, we might give him a button titled "Request permission to use device" (would file a request to the IT department) when he clicks it or, if it's an administrator, he can put in his password or authenticate in other ways. This is where usability and security meets, fighting each other like cats and dogs. Can you see the dilemma? Like it or not, this is from the real world [2] and bills like Sarbanes-Oxley etc. don't make this *any* easier. This is why I started PolicyKit. PolicyKit and gnome-mount will help solve this problem though not in a very elegant way [3] but it will provide a "one-time-click" "solution" to the problem. Some might say the user looses here (just look at the recent Microsoft Vista reviews where the user is bombarded with dialogs) but we're still left with the dilemma mentioned above. And we do want (I believe) GNOME to be a viable contender on the desktop and that means we need to support lock-down and things like EAL and Sarbanes-Oxley. Just as we want it to work for home users who just wants to access that movie on the NTFS or hfs+ partition from his home directory on "that other operating system". The approach taken by PolicyKit and gnome-mount is best compromise I've come up with so far. I'm not convinced it's perfect though, and I haven't had time to complete it yet though things are slowly moving forward. So what am I trying to say? I'm trying to say it makes sense to show all drives and their mountable file systems notwithstanding the user might be allowed to access them. Because if they're not privileged they should at least get a chance to see the drive is there (otherwise you get "My drive didn't show up! Is the computer broken?") along with an explanation why they can't access it maybe even with a possibility to auth for access. > > So I think what you want is to hide is exactly volumes that are mounted > > on traditional FHS mount points, e.g. /, /usr. I can't see why we should > > enforce this policy in Gnome VFS when the bits above (e.g. Nautilus, > > Filechooser) can handle this much better? > > I don't understand how you think nautilus can handle this better? Agreed, yea, probably GNOME VFS would know best. David [1] : http://en.wikipedia.org/wiki/Evaluation_Assurance_Level [2] : http://www.pbs.org/cringely/pulpit/pulpit20040916.html Search for "epoxy". [3] : See http://people.freedesktop.org/~david/perm-override/gnome-mount-perm-override-1.png http://people.freedesktop.org/~david/perm-override/gnome-mount-perm-override-2.png From alexl@redhat.com Wed Jun 7 02:58:31 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 730983B0342 for ; Wed, 7 Jun 2006 02:58:31 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20729-09 for ; Wed, 7 Jun 2006 02:58:30 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id C47583B01B2 for ; Wed, 7 Jun 2006 02:58:29 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wSRX026164; Wed, 7 Jun 2006 02:58:28 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wNdo031791; Wed, 7 Jun 2006 02:58:23 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k576wMrc020424; Wed, 7 Jun 2006 02:58:23 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149544687.5951.56.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> Content-Type: text/plain Date: Wed, 07 Jun 2006 08:58:24 +0200 Message-Id: <1149663504.5416.123.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 06:58:31 -0000 On Mon, 2006-06-05 at 17:58 -0400, David Zeuthen wrote: > So what am I trying to say? I'm trying to say it makes sense to show all > drives and their mountable file systems notwithstanding the user might > be allowed to access them. Because if they're not privileged they should > at least get a chance to see the drive is there (otherwise you get "My > drive didn't show up! Is the computer broken?") along with an > explanation why they can't access it maybe even with a possibility to > auth for access. I don't really follow your reasoning fully. I agree that users want to see their OSX and/or windows mounts from linux, but I think you over-empasize the "single user, dual boot, home desktop" usecase. In the case of more traditional sysadmined unix setups (at universities and whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs mounts, tmpfs, /usr, /home, extra drives/partitions, etc). If we were to show all these, then I think things would look pretty confusing. I really think we need to hide a bunch of mountpoints. Some mountpoints can probably be hardcoded (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never think of all possibilities, so we should probably have a way to mark them. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a benighted playboy dog-catcher whom everyone believes is mad. She's a sarcastic extravagent former first lady from a family of eight older brothers. They fight crime! From xclaesse@gmail.com Wed Jun 7 08:51:14 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 546413B0B28 for ; Wed, 7 Jun 2006 08:51:14 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13070-01 for ; Wed, 7 Jun 2006 08:51:13 -0400 (EDT) Received: from outmx007.isp.belgacom.be (outmx007.isp.belgacom.be [195.238.5.234]) by menubar.gnome.org (Postfix) with ESMTP id A19F93B03C4 for ; Wed, 7 Jun 2006 08:51:12 -0400 (EDT) Received: from outmx007.isp.belgacom.be (localhost [127.0.0.1]) by outmx007.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k57Cow2U030006 for ; Wed, 7 Jun 2006 14:51:03 +0200 (envelope-from ) Received: from [10.0.0.3] (68-220.242.81.adsl.skynet.be [81.242.220.68]) by outmx007.isp.belgacom.be (8.12.11.20060308/8.12.11/Skynet-OUT-2.22) with ESMTP id k57CovMd029978; Wed, 7 Jun 2006 14:50:57 +0200 (envelope-from ) From: Xavier Claessens To: Alexander Larsson In-Reply-To: <1149663504.5416.123.camel@greebo> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="=-hOGtOF5lpypbLjK1X4t7" Date: Wed, 07 Jun 2006 14:51:08 +0200 Message-Id: <1149684668.5095.1.camel@zdra-desktop> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.001 tagged_above=-999 required=2 tests=[AWL=-0.471, BAYES_00=-2.599, SPF_NEUTRAL=1.069] X-Spam-Score: -2.001 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , David Zeuthen Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 12:51:14 -0000 --=-hOGtOF5lpypbLjK1X4t7 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Le mercredi 07 juin 2006 =C3=A0 08:58 +0200, Alexander Larsson a =C3=A9crit= : > On Mon, 2006-06-05 at 17:58 -0400, David Zeuthen wrote: >=20 > > So what am I trying to say? I'm trying to say it makes sense to show al= l > > drives and their mountable file systems notwithstanding the user might > > be allowed to access them. Because if they're not privileged they shoul= d > > at least get a chance to see the drive is there (otherwise you get "My > > drive didn't show up! Is the computer broken?") along with an > > explanation why they can't access it maybe even with a possibility to > > auth for access. >=20 > I don't really follow your reasoning fully. I agree that users want to > see their OSX and/or windows mounts from linux, but I think you > over-empasize the "single user, dual boot, home desktop" usecase. In the > case of more traditional sysadmined unix setups (at universities and > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > mounts, tmpfs, /usr, /home, extra drives/partitions, etc).=20 >=20 > If we were to show all these, then I think things would look pretty > confusing. I really think we need to hide a bunch of mountpoints. Some > mountpoints can probably be hardcoded > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > think of all possibilities, so we should probably have a way to mark > them. >=20 We should only display "/media/*" and "/mnt/*" Xavier. --=-hOGtOF5lpypbLjK1X4t7 Content-Type: application/pgp-signature; name=signature.asc Content-Description: Ceci est une partie de message =?ISO-8859-1?Q?num=E9riquement?= =?ISO-8859-1?Q?_sign=E9e?= -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.2 (GNU/Linux) iD8DBQBEhsu76dEBUn2qPAMRApRBAJwNCLBuPyxCtkh0sIbICQBqpRGDFACfaN00 Kc9Uz6ZIjQ4wxsbbHO74ZG0= =Wmaq -----END PGP SIGNATURE----- --=-hOGtOF5lpypbLjK1X4t7-- From tomasek@ebed.etf.cuni.cz Wed Jun 7 08:55:00 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 864A63B0C97 for ; Wed, 7 Jun 2006 08:55:00 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 13300-04 for ; Wed, 7 Jun 2006 08:54:57 -0400 (EDT) Received: from ebed.etf.cuni.cz (ebed.etf.cuni.cz [195.113.5.3]) by menubar.gnome.org (Postfix) with ESMTP id E66983B03C4 for ; Wed, 7 Jun 2006 08:54:56 -0400 (EDT) Received: from ebed.etf.cuni.cz (localhost.localdomain [127.0.0.1]) by ebed.etf.cuni.cz (8.12.11.20060308/8.12.11) with ESMTP id k57ChDPX029737 for ; Wed, 7 Jun 2006 14:43:13 +0200 Received: (from tomasek@localhost) by ebed.etf.cuni.cz (8.12.11.20060308/8.12.11/Submit) id k57ChDrV029735 for gnome-vfs-list@gnome.org; Wed, 7 Jun 2006 14:43:13 +0200 Date: Wed, 7 Jun 2006 14:43:13 +0200 From: Petr Tomasek To: gnome-vfs-list@gnome.org Message-ID: <20060607124313.GA29329@ebed.etf.cuni.cz> References: <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1149684668.5095.1.camel@zdra-desktop> User-Agent: Mutt/1.4.1i X-Homepage: http://www.etf.cuni.cz/~tomasek/ X-Echelon: bomb Arafat Intifada bus kach drugs mafia boss heroin spy Semtex Saddam Al-Qaida Usama bin Ladin Bush Sharon X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.535 tagged_above=-999 required=2 tests=[AWL=0.064, BAYES_00=-2.599] X-Spam-Score: -2.535 X-Spam-Level: Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 12:55:00 -0000 > > I don't really follow your reasoning fully. I agree that users want to > > see their OSX and/or windows mounts from linux, but I think you > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > case of more traditional sysadmined unix setups (at universities and > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > If we were to show all these, then I think things would look pretty > > confusing. I really think we need to hide a bunch of mountpoints. Some > > mountpoints can probably be hardcoded > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > think of all possibilities, so we should probably have a way to mark > > them. > > > > We should only display "/media/*" and "/mnt/*" > > Xavier. Please, let it be configurable! There are people who prefer mounting media under "/" (like "/cdrom", etc.) P.T. -- Petr Tomasek From david@fubar.dk Wed Jun 7 09:42:51 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 565EE3B03C1 for ; Wed, 7 Jun 2006 09:42:51 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17395-02 for ; Wed, 7 Jun 2006 09:42:48 -0400 (EDT) Received: from davidz.fubar.dk (unknown [208.184.5.49]) by menubar.gnome.org (Postfix) with ESMTP id 8057D3B0229 for ; Wed, 7 Jun 2006 09:42:48 -0400 (EDT) Received: from [192.168.1.115] (unknown [127.0.0.1]) by davidz.fubar.dk (Postfix) with ESMTP id 6CDC19CE06F; Wed, 7 Jun 2006 09:42:47 -0400 (EDT) From: David Zeuthen To: Xavier Claessens In-Reply-To: <1149684668.5095.1.camel@zdra-desktop> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> Content-Type: text/plain Date: Wed, 07 Jun 2006 09:43:54 -0400 Message-Id: <1149687834.2424.24.camel@daxter.boston.redhat.com> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.57 tagged_above=-999 required=2 tests=[AWL=0.029, BAYES_00=-2.599] X-Spam-Score: -2.57 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , Alexander Larsson Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jun 2006 13:42:51 -0000 On Wed, 2006-06-07 at 14:51 +0200, Xavier Claessens wrote: > > I don't really follow your reasoning fully. I agree that users want to > > see their OSX and/or windows mounts from linux, but I think you > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > case of more traditional sysadmined unix setups (at universities and > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > If we were to show all these, then I think things would look pretty > > confusing. I really think we need to hide a bunch of mountpoints. Some > > mountpoints can probably be hardcoded > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > think of all possibilities, so we should probably have a way to mark > > them. Yea, of course we should hide such bizarre mount points. My point was merely we ought to show drives/mounts even if the user is not privileged to mount them. > > > > We should only display "/media/*" and "/mnt/*" Yup, that's one option, maybe just resort to showing entries from /media then alexl's /mnt/hdb1 drive won't be shown (and if alexl wants it to be shown he can move the mount point to /media). Personally I think we should just hide all the directories and subdirs as defined by FHS2.3. We do that here http://cvs.gnome.org/viewcvs/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c?view=markup in function _hal_volume_policy_check() though I'm unsure whether this code is used at the moment (will look into that). David From alexl@redhat.com Fri Jun 9 07:20:04 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id CF0E53B0097 for ; Fri, 9 Jun 2006 07:20:04 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18633-05 for ; Fri, 9 Jun 2006 07:20:00 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 1AB843B011C for ; Fri, 9 Jun 2006 07:20:00 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJwQm005302; Fri, 9 Jun 2006 07:19:58 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJwLZ006488; Fri, 9 Jun 2006 07:19:58 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BJvoV024293; Fri, 9 Jun 2006 07:19:57 -0400 From: Alexander Larsson To: David Zeuthen In-Reply-To: <1149687834.2424.24.camel@daxter.boston.redhat.com> References: <1148314063.5168.4.camel@localhost> <1148387730.19301.22.camel@greebo> <1148406054.5009.24.camel@localhost> <1148456225.19301.38.camel@greebo> <1148486395.4735.26.camel@greebo> <1148499503.5171.7.camel@localhost> <1148904283.16920.11.camel@greebo> <1149115005.2331.18.camel@daxter.boston.redhat.com> <1149149950.5416.49.camel@greebo> <1149544687.5951.56.camel@daxter.boston.redhat.com> <1149663504.5416.123.camel@greebo> <1149684668.5095.1.camel@zdra-desktop> <1149687834.2424.24.camel@daxter.boston.redhat.com> Content-Type: text/plain Date: Fri, 09 Jun 2006 13:19:57 +0200 Message-Id: <1149851997.3023.51.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" Subject: Re: [PATCH] computer:/// should display all drives, not only user-visible ones X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 11:20:05 -0000 On Wed, 2006-06-07 at 09:43 -0400, David Zeuthen wrote: > On Wed, 2006-06-07 at 14:51 +0200, Xavier Claessens wrote: > > > I don't really follow your reasoning fully. I agree that users want to > > > see their OSX and/or windows mounts from linux, but I think you > > > over-empasize the "single user, dual boot, home desktop" usecase. In the > > > case of more traditional sysadmined unix setups (at universities and > > > whatnot) you'll have a bunch of bizzare mountpoints (nfs mounts, autofs > > > mounts, tmpfs, /usr, /home, extra drives/partitions, etc). > > > > > > If we were to show all these, then I think things would look pretty > > > confusing. I really think we need to hide a bunch of mountpoints. Some > > > mountpoints can probably be hardcoded > > > (like /proc, /tmp/, /home, /opt/*, /usr, and /boot), but we can never > > > think of all possibilities, so we should probably have a way to mark > > > them. > > Yea, of course we should hide such bizarre mount points. My point was > merely we ought to show drives/mounts even if the user is not privileged > to mount them. > > > > > > > > We should only display "/media/*" and "/mnt/*" > > Yup, that's one option, maybe just resort to showing entries from /media > then alexl's /mnt/hdb1 drive won't be shown (and if alexl wants it to be > shown he can move the mount point to /media). Personally I think we > should just hide all the directories and subdirs as defined by FHS2.3. > We do that here > > http://cvs.gnome.org/viewcvs/gnome-vfs/libgnomevfs/gnome-vfs-hal-mounts.c?view=markup > > in function _hal_volume_policy_check() though I'm unsure whether this > code is used at the moment (will look into that). Well, the bug report: http://bugzilla.gnome.org/show_bug.cgi?id=341446 showed drives for things like / and /home. So something is going wrong here. I see a _hal_drive_policy_check that is empty though. Anyway, what i think we should do is: Have a policy for what mountpoints to create drives for. Be it by blacklisting or whitelisting. If the policy says the mountpoint shouldn't have a drive then we don't even create one. Set is_user_visible to false on drives that support auto-mounting, so we can hide them everywhere but in computer:///. I think blacklisting will probably work well enough, but you probably need to add more stuff than just the toplevel FHS mountpoints, for instance /dev/shmem and common non-linux mountpoints. Also, it looks like you create drives based on currently mounted volumes that are not in fstab? This will generate a bunch of drives when using things like autofs for separate /home/ mountpoints and cause things like /proc/bus/usb to get drives. Does it ever make sense to create a drive object for a volume like this? It'll only live as long as the volume and you can't really use it for anything. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a time-tossed coffee-fuelled inventor on his last day in the job. She's a warm-hearted mutant research scientist from a different time and place. They fight crime! From alexl@redhat.com Fri Jun 9 07:21:46 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id A75453B0121 for ; Fri, 9 Jun 2006 07:21:46 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18661-08 for ; Fri, 9 Jun 2006 07:21:45 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 573C53B006A for ; Fri, 9 Jun 2006 07:21:45 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLiIX005951; Fri, 9 Jun 2006 07:21:44 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLiWa006890; Fri, 9 Jun 2006 07:21:44 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k59BLh8I024410; Fri, 9 Jun 2006 07:21:44 -0400 From: Alexander Larsson To: Ken Ishii In-Reply-To: <20060604195153.83291.qmail@web61323.mail.yahoo.com> References: <20060604195153.83291.qmail@web61323.mail.yahoo.com> Content-Type: text/plain Date: Fri, 09 Jun 2006 13:21:43 +0200 Message-Id: <1149852104.3023.53.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: gnome-vfs-list@gnome.org Subject: Re: gnome_vfs_uri_hash() bug? X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Jun 2006 11:21:46 -0000 On Sun, 2006-06-04 at 12:51 -0700, Ken Ishii wrote: > gnome_vfs_uri_hash() has the following code section: > > for (uri_p = uri; uri_p != NULL; uri_p = uri_p->parent) { > HASH_STRING (hash_value, uri_p->text); > HASH_STRING (hash_value, uri_p->method_string); > > if (uri_p->parent != NULL) { > const GnomeVFSToplevelURI *toplevel; > > toplevel = (const GnomeVFSToplevelURI *) uri_p; > > Since GnomeVFSToplevelURI is defined to be an URI without a parent, > shouldn't > if (uri_p->parent != NULL) > be > if (uri_p->parent == NULL) > instead? Yeah. That looks wrong. I'm fixing it in cvs. Thanks. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's an old-fashioned white trash romance novelist She's a bloodthirsty Buddhist bodyguard prone to fits of savage, blood-crazed rage. They fight crime! From alexl@redhat.com Mon Jun 12 05:38:16 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 296D33B00A7 for ; Mon, 12 Jun 2006 05:38:16 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 28453-10 for ; Mon, 12 Jun 2006 05:38:14 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 8A0A33B008D for ; Mon, 12 Jun 2006 05:38:14 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bL45019802; Mon, 12 Jun 2006 05:37:21 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bG0T011686; Mon, 12 Jun 2006 05:37:16 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9bF3C014485; Mon, 12 Jun 2006 05:37:15 -0400 From: Alexander Larsson To: Xavier Claessens In-Reply-To: <1149455967.15249.30.camel@zdra-desktop> References: <1149455967.15249.30.camel@zdra-desktop> Content-Type: text/plain Date: Mon, 12 Jun 2006 11:37:15 +0200 Message-Id: <1150105036.3023.95.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.587 tagged_above=-999 required=2 tests=[AWL=0.014, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.587 X-Spam-Level: Cc: gnome-vfs-list@gnome.org Subject: Re: volume-unmounted signal on GnomeVFSDrive X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jun 2006 09:38:16 -0000 On Sun, 2006-06-04 at 23:19 +0200, Xavier Claessens wrote: > Hello, > > As I understand the "volume-unmounted" signal is emitted before the > volume unmounted is really removed from the drive. So in the callback, > if we run gnome_vfs_drive_get_mounted_volumes() it will return a GList > still containing the unmounted GnomeVFSVolume. > > I think it should be very useful to have a callback after everything is > done. For example in nautilus'places sidebar when we get the > "volume-unmounted" callback we can't update the sidebar yet because the > drive still has the volume connected... so we add a g_idle_add() to have > a callback after everything is done and then we can update the sidebar. > > I think that's more a workaround than a real solution. What about adding > in GnomeVFSDrive and GnomeVFSVolumeMonitor a "volume-post-unmount" > callback (we already have a "volume-pre-unmount" cb) ? > > I you are OK with the idea I can make a patch. You could just look at gnome_vfs_volume_is_mounted() in the volume-unmounted call and ignore things that are not mounted. We do set is_mounted before emitting the signal for things like this. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a deeply religious umbrella-wielding astronaut looking for a cure to the poison coursing through his veins. She's a green-fingered snooty femme fatale who can talk to animals. They fight crime! From alexl@redhat.com Mon Jun 12 06:12:18 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 084B93B0078 for ; Mon, 12 Jun 2006 06:12:18 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 29802-04 for ; Mon, 12 Jun 2006 06:12:16 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 2BF913B009D for ; Mon, 12 Jun 2006 06:12:16 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TFho017434; Mon, 12 Jun 2006 05:29:15 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TF93010182; Mon, 12 Jun 2006 05:29:15 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5C9TEb4013434; Mon, 12 Jun 2006 05:29:14 -0400 From: Alexander Larsson To: Christian Neumair In-Reply-To: <1149010547.5256.19.camel@localhost.localdomain> References: <1149010547.5256.19.camel@localhost.localdomain> Content-Type: text/plain Date: Mon, 12 Jun 2006 11:29:14 +0200 Message-Id: <1150104554.3023.93.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.549 tagged_above=-999 required=2 tests=[AWL=-0.025, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, TW_FD=0.077] X-Spam-Score: -2.549 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" , Ken Ishii Subject: Re: Proposed (unfinished) ZIP module available on Bugzilla X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jun 2006 10:12:18 -0000 On Tue, 2006-05-30 at 19:35 +0200, Christian Neumair wrote: > Dear GnomeVFS development community, > > as requested by Ken Ishii who needs a ZIP module, I'm publishing a > prelimitary version of a GnomeVFS ZIP module in Bugzilla [1]. People who > are interested in development should check out the bug report and help > out :). > > [1] http://bugzilla.gnome.org/show_bug.cgi?id=343419 It seems this uncompresses the file on open and then reads from that. I think this is the right approach, but there are some tricks you could use to make this nicer. What you do is create the uncompressed temp files (in /tmp) and then unlink the file, keeping the file descriptor around. This means the file is not visible in the filesystem, but the data for it is kept around until the last fd referencing it is closed. You store this fd in a cache, and then use dup() to get a new independent file descriptor to the file in do_open(). When the app is closed the kernel will close all fds and deallocate the filesystem space. So, doing things this way means you'll never leak tempfiles. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a lounge-singing albino vampire hunter who knows the secret of the alien invasion. She's a virginal punk traffic cop with an MBA from Harvard. They fight crime! From mclasen@redhat.com Mon Jun 12 22:40:48 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 4BAD63B0009 for ; Mon, 12 Jun 2006 22:40:48 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 07590-05 for ; Mon, 12 Jun 2006 22:40:46 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 3251E3B000C for ; Mon, 12 Jun 2006 22:40:46 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5D2MFId000486 for ; Mon, 12 Jun 2006 22:22:15 -0400 Received: from lacrosse.corp.redhat.com (lacrosse.corp.redhat.com [172.16.52.154]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5D2MFG6018613 for ; Mon, 12 Jun 2006 22:22:15 -0400 Received: from [172.16.83.145] (vpn83-145.boston.redhat.com [172.16.83.145]) by lacrosse.corp.redhat.com (8.12.11.20060308/8.11.6) with ESMTP id k5D2MEWJ003165 for ; Mon, 12 Jun 2006 22:22:14 -0400 From: Matthias Clasen To: gnome-vfs-list@gnome.org Content-Type: text/plain Organization: Red Hat Date: Mon, 12 Jun 2006 22:24:01 -0400 Message-Id: <1150165441.4081.7.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.7.2.1 (2.7.2.1-4) Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.541 tagged_above=-999 required=2 tests=[AWL=0.060, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.541 X-Spam-Level: Subject: gnome-mime-data dependency X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jun 2006 02:40:48 -0000 During some Fedora package work I noticed that gnome-vfs still pulls in gnome-mime-data, which seems to be old and unmaintained. Alex tells me that it is needed for some deprecated mime apis. I think it would be nice to get rid of that dependency in 2.16. Matthias From bosshrap@zhwin.ch Tue Jun 13 10:41:32 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 2D47B3B000C for ; Tue, 13 Jun 2006 10:41:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 26639-07 for ; Tue, 13 Jun 2006 10:41:30 -0400 (EDT) Received: from a.mx.projectdream.org (eth0-0.yuffie.projectdream.org [194.88.212.200]) by menubar.gnome.org (Postfix) with ESMTP id 2806B3B00A5 for ; Tue, 13 Jun 2006 10:41:29 -0400 (EDT) Received: from [10.0.0.11] (d213-103-155-97.cust.tele2.ch [213.103.155.97]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a.mx.projectdream.org (Postfix) with ESMTP id BD3548811A for ; Tue, 13 Jun 2006 16:40:29 +0200 (CEST) Message-ID: <448ECE64.9030800@zhwin.ch> Date: Tue, 13 Jun 2006 16:40:36 +0200 From: Raphael Bosshard User-Agent: Thunderbird 1.5.0.4 (X11/20060612) MIME-Version: 1.0 To: gnome-vfs-list@gnome.org Subject: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) Content-Type: multipart/mixed; boundary="------------000304070805010006040703" X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.599 tagged_above=-999 required=2 tests=[BAYES_00=-2.599] X-Spam-Score: -2.599 X-Spam-Level: X-Mailman-Approved-At: Thu, 15 Jun 2006 08:09:00 -0400 X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 13 Jun 2006 14:41:32 -0000 This is a multi-part message in MIME format. --------------000304070805010006040703 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit See http://bugzilla.gnome.org/show_bug.cgi?id=344296 This patch changes the human readable filesizes (gnome_vfs_format_file_size_for_display) which are curently displayed (rather missleading) with binary prefix multipliers (such as Kilo, Mega, Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). The IEC approved standard symbols (KiB, MiB, GiB) are used. For more information please read http://en.wikipedia.org/wiki/Binary_prefix So long, Raphael --------------000304070805010006040703 Content-Type: text/x-patch; name="gnome-vfs-display-binary-prefix.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="gnome-vfs-display-binary-prefix.patch" --- gnome-vfs-2.14.2/libgnomevfs/gnome-vfs-utils.c 2006-03-03 10:28:21.000000000 +0100 +++ gnome-vfs-2.14.2-work/libgnomevfs/gnome-vfs-utils.c 2006-06-10 23:03:40.983116272 +0200 @@ -51,9 +51,9 @@ #include #include -#define KILOBYTE_FACTOR 1024.0 -#define MEGABYTE_FACTOR (1024.0 * 1024.0) -#define GIGABYTE_FACTOR (1024.0 * 1024.0 * 1024.0) +#define KIBIBYTE_FACTOR 1024.0 +#define MEBIBYTE_FACTOR (1024.0 * 1024.0) +#define GIBIBYTE_FACTORFACTOR (1024.0 * 1024.0 * 1024.0) #define READ_CHUNK_SIZE 8192 @@ -74,22 +74,22 @@ gchar* gnome_vfs_format_file_size_for_display (GnomeVFSFileSize size) { - if (size < (GnomeVFSFileSize) KILOBYTE_FACTOR) { + if (size < (GnomeVFSFileSize) KIBIBYTE_FACTOR) { return g_strdup_printf (dngettext(GETTEXT_PACKAGE, "%u byte", "%u bytes",(guint) size), (guint) size); } else { gdouble displayed_size; - if (size < (GnomeVFSFileSize) MEGABYTE_FACTOR) { - displayed_size = (gdouble) size / KILOBYTE_FACTOR; - return g_strdup_printf (_("%.1f KB"), + if (size < (GnomeVFSFileSize) MEBIBYTE_FACTOR) { + displayed_size = (gdouble) size / KIBIBYTE_FACTOR; + return g_strdup_printf (_("%.1f KiB"), displayed_size); - } else if (size < (GnomeVFSFileSize) GIGABYTE_FACTOR) { - displayed_size = (gdouble) size / MEGABYTE_FACTOR; - return g_strdup_printf (_("%.1f MB"), + } else if (size < (GnomeVFSFileSize) GIBIBYTE_FACTORFACTOR) { + displayed_size = (gdouble) size / MEBIBYTE_FACTOR; + return g_strdup_printf (_("%.1f MiB"), displayed_size); } else { - displayed_size = (gdouble) size / GIGABYTE_FACTOR; - return g_strdup_printf (_("%.1f GB"), + displayed_size = (gdouble) size / GIBIBYTE_FACTORFACTOR; + return g_strdup_printf (_("%.1f GiB"), displayed_size); } } --------------000304070805010006040703-- From alexl@redhat.com Sat Jun 17 04:58:04 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 361533B042A for ; Sat, 17 Jun 2006 04:58:04 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15153-02 for ; Sat, 17 Jun 2006 04:58:02 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 676533B010F for ; Sat, 17 Jun 2006 04:58:02 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vMS8009846; Sat, 17 Jun 2006 04:57:22 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vMxp026394; Sat, 17 Jun 2006 04:57:22 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5H8vL4b023197; Sat, 17 Jun 2006 04:57:21 -0400 Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Alexander Larsson To: Raphael Bosshard In-Reply-To: <448ECE64.9030800@zhwin.ch> References: <448ECE64.9030800@zhwin.ch> Content-Type: text/plain Date: Sat, 17 Jun 2006 10:57:21 +0200 Message-Id: <1150534641.1962.19.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.588 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.588 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 17 Jun 2006 08:58:04 -0000 On Tue, 2006-06-13 at 16:40 +0200, Raphael Bosshard wrote: > See http://bugzilla.gnome.org/show_bug.cgi?id=344296 > > This patch changes the human readable filesizes > (gnome_vfs_format_file_size_for_display) which are curently displayed > (rather missleading) with binary prefix multipliers (such as Kilo, Mega, > Giga) to more appropriate binary prefix multipiers (Kibi, Mebi, Gibi). > The IEC approved standard symbols (KiB, MiB, GiB) are used. > > For more information please read http://en.wikipedia.org/wiki/Binary_prefix This has already been denied in bugs like: http://bugzilla.gnome.org/show_bug.cgi?id=127175 Which references mails like: http://mail.gnome.org/archives/gnome-doc-list/2003-December/msg00004.html and the gnome docs style guides: http://developer.gnome.org/documents/style-guide/units.html For what its worth I very much agree with Patrick. The binary prefixes are silly and nobody but anal-retentive ultra-geeks will understand them, thus confusing the general userbase (who haven't seen them before). =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a sword-wielding pirate librarian searching for his wife's true killer. She's a time-travelling junkie Hell's Angel in the wrong place at the wrong time. They fight crime! From nf2@scheinwelt.at Sun Jun 18 18:55:34 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 462013B00AF; Sun, 18 Jun 2006 18:55:34 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 12908-03; Sun, 18 Jun 2006 18:55:31 -0400 (EDT) Received: from mx-01.sil.at (mx-01.sil.at [86.59.12.198]) by menubar.gnome.org (Postfix) with ESMTP id 208EC3B00B2; Sun, 18 Jun 2006 18:55:30 -0400 (EDT) Received: from vie-062-116-122-020.dsl.sil.at ([62.116.122.20] helo=[192.168.5.82]) by mx-01.sil.at with esmtp (Exim 4.60) (envelope-from ) id 1Fs69X-0004Oc-Kv; Mon, 19 Jun 2006 00:54:01 +0200 Message-ID: <4495D984.5090705@scheinwelt.at> Date: Mon, 19 Jun 2006 00:53:56 +0200 From: nf2 User-Agent: Thunderbird 1.5 (X11/20051201) MIME-Version: 1.0 To: gtk-list@gnome.org, gnome vfs list Subject: libxdg-vfs and Gtk-Filechooser Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scan-Signature: 9d02a3267670e8bb77f537b38fda5a39 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.51 tagged_above=-999 required=2 tests=[AWL=0.012, BAYES_00=-2.599, TW_XD=0.077] X-Spam-Score: -2.51 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jun 2006 22:55:34 -0000 Hi, The experimental "libxdg-vfs" provides a generic interface to VFS libraries. It tries to autodetect the current desktop and then connects to Gnome-VFS or KIO by launching the backend executables xdg_vfs_gnome or xdg_vfs_kde. http://www.scheinwelt.at/~norbertf/dadapt/files/xdg_utils/doc/libxdg-vfs.html The target of "libxdg-vfs" would be giving applications access to ftp/smb shares etc... Of course this also involves bringing VFS access to filechoosers. AFAIK Gtk-Filechooser has pluggable backends (GtkFilesystem). It would be interesting if it could also run on top of "libxdg-vfs". The problem is, that i couldn't find any documentation how to implement a GtkFilesystem module. Could you please give me an introduction and maybe tell me about the specific requirements for a GtkFilesystem? Perhaps i need to provide more functions through "libxdg-vfs": listing and mounting Volumes, obtaining icon-paths,... Regards, Norbert From chris@gnome-de.org Sun Jun 18 13:44:45 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 349513B00E5 for ; Sun, 18 Jun 2006 13:44:45 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05823-10 for ; Sun, 18 Jun 2006 13:44:41 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id E77BC3B0009 for ; Sun, 18 Jun 2006 13:44:39 -0400 (EDT) Received: (qmail 45357 invoked by uid 85); 18 Jun 2006 17:36:58 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.153.121):. Processed in 7.089351 secs); 18 Jun 2006 17:36:58 -0000 Received: from p54969979.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.153.121) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 18 Jun 2006 17:36:51 -0000 Subject: [PATCH] Improve docs, new attempt From: Christian Neumair To: "gnome-vfs-list@gnome.org" Content-Type: multipart/mixed; boundary="=-4cYgbTZAmh2zlaadTQGz" Date: Sun, 18 Jun 2006 19:36:47 +0200 Message-Id: <1150652208.22660.3.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: X-Mailman-Approved-At: Mon, 19 Jun 2006 14:27:21 -0400 X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 18 Jun 2006 17:44:45 -0000 --=-4cYgbTZAmh2zlaadTQGz Content-Type: text/plain Content-Transfer-Encoding: 7bit I've spent some more hours on GnomeVFS docs and the Xfer docs should be in a way better shape now. I got commit permission for the last one already, but this one is significantly larger (240 kB, but including the tmpl/ regeneration garbage). -- Christian Neumair --=-4cYgbTZAmh2zlaadTQGz Content-Disposition: attachment; filename=gnome-vfs-doc-3.diff.gz Content-Type: application/x-gzip; name=gnome-vfs-doc-3.diff.gz Content-Transfer-Encoding: base64 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 --=-4cYgbTZAmh2zlaadTQGz-- From ensonic@hora-obscura.de Mon Jun 19 18:38:50 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0E7D03B03FC for ; Mon, 19 Jun 2006 18:38:50 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05344-05 for ; Mon, 19 Jun 2006 18:38:47 -0400 (EDT) Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by menubar.gnome.org (Postfix) with ESMTP id D01C83B03EE for ; Mon, 19 Jun 2006 18:38:46 -0400 (EDT) Received: from [82.165.27.189] (helo=hora-obscura.de) by mrelayeu.kundenserver.de (node=mrelayeu0) with ESMTP (Nemesis), id 0MKwh2-1FsSHG2Dgc-0000IG; Tue, 20 Jun 2006 00:31:26 +0200 Received: from localhost (localhost [127.0.0.1]) by smtp.hora-obscura.de (Postfix) with ESMTP id 48519878042; Tue, 20 Jun 2006 00:31:26 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by smtp.hora-obscura.de (Postfix) with ESMTP id 768D4878023; Tue, 20 Jun 2006 00:31:19 +0200 (CEST) Subject: Re: [PATCH] Improve docs, new attempt From: Stefan Kost To: Christian Neumair In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> References: <1150652208.22660.3.camel@localhost.localdomain> Content-Type: text/plain Date: Tue, 20 Jun 2006 01:30:37 +0300 Message-Id: <1150756237.15396.6.camel@fluffy.local> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new using ClamAV at hora-obscura.de X-Provags-ID: kundenserver.de abuse@kundenserver.de login:8eea7ddcf9c0cceb26830fe517b7ade3 X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.496 tagged_above=-999 required=2 tests=[AWL=0.026, BAYES_00=-2.599, TW_GT=0.077] X-Spam-Score: -2.496 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Jun 2006 22:38:50 -0000 Hi Christian, Am Sonntag, den 18.06.2006, 19:36 +0200 schrieb Christian Neumair: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). I strongly recommend to move all docs to the source files and remove the tmpl files from cvs totaly. If developers use different versions of gtk-doc, commiting partialy generated files such as the files under tmpl/ can often cause conflicts like those we know with po/*.po files. Besides developers will more likely update docs when they are close to the sources. In case you are not aware, even the section docs can be added to the sources (see the gtk-doc manual in yelp). Stefan From chipzz@ULYSSIS.Org Mon Jun 19 21:43:10 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 471F03B015D for ; Mon, 19 Jun 2006 21:43:10 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15440-03 for ; Mon, 19 Jun 2006 21:43:07 -0400 (EDT) Received: from rusty.kulnet.kuleuven.ac.be (rusty.kulnet.kuleuven.ac.be [134.58.240.42]) by menubar.gnome.org (Postfix) with ESMTP id A4EC63B00D9 for ; Mon, 19 Jun 2006 21:43:06 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by rusty.kulnet.kuleuven.ac.be (Postfix) with ESMTP id 43E5F1D75E5 for ; Tue, 20 Jun 2006 03:42:23 +0200 (CEST) Received: from smtp03.kuleuven.be (antonius.kulnet.kuleuven.ac.be [134.58.240.73]) by rusty.kulnet.kuleuven.ac.be (Postfix) with ESMTP id 4E13C1D75DF for ; Tue, 20 Jun 2006 03:42:20 +0200 (CEST) Received: from smtp.ulyssis.student.kuleuven.be (ray.ulyssis.student.kuleuven.be [193.190.253.198]) by smtp03.kuleuven.be (Postfix) with ESMTP id 47261332762 for ; Tue, 20 Jun 2006 03:42:20 +0200 (CEST) Received: (qmail 30541 invoked from network); 20 Jun 2006 01:42:20 -0000 Received: from ace.ulyssis.student.kuleuven.be (HELO ace.ulyssis.org) (193.190.253.208) by smtp.ulyssis.student.kuleuven.be with SMTP; 20 Jun 2006 01:42:20 -0000 Received: by ace.ulyssis.org (Postfix, from userid 1275) id 050F92EFE4; Tue, 20 Jun 2006 03:42:19 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by ace.ulyssis.org (Postfix) with ESMTP id E85052EFE3; Tue, 20 Jun 2006 03:42:19 +0200 (CEST) Date: Tue, 20 Jun 2006 03:42:19 +0200 (CEST) From: Chipzz To: Christian Neumair Subject: Re: [PATCH] Improve docs, new attempt In-Reply-To: <1150652208.22660.3.camel@localhost.localdomain> Message-ID: References: <1150652208.22660.3.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Virus-Scanned: by KULeuven Antivirus Cluster X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.419 tagged_above=-999 required=2 tests=[AWL=0.045, BAYES_00=-2.599, FORGED_RCVD_HELO=0.135] X-Spam-Score: -2.419 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list Reply-To: Chipzz@ULYSSIS.Org List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 01:43:10 -0000 I only read about half of your patch, and not even all of it carefully, but here are a couple of suggestions: + * Either way, it acts like #GnomeVFSXferProgressCallback + * would act in non-asynchronous mode. The differences in + * invocation are explained in the gnome_vfs_async_xfer() + * documentation documentation. -> 2x documentation. + * @GNOME_VFS_FILE_TYPE_REGULAR: The file is regular (stat: %S_ISDIR). + * @GNOME_VFS_FILE_TYPE_DIRECTORY: The file is a directory (stat: %S_ISREG). -> "The file is a regular file" -> %S_ISDIR and %S_ISREG are swapped. + * @GNOME_VFS_PERM_USER_READ: Owner has read permission. etc... -> permission*s* ? + * @GNOME_VFS_PERM_OTHER_ALL: Others have all permissionss. -> permission*ss* ! + * @block_count: The size of the file in 512-byte blocks (a #GnomeVFSFileSize), -> I may be totally wrong here, but isn't this filesystem dependant? kr, On Sun, 18 Jun 2006, Christian Neumair wrote: > I've spent some more hours on GnomeVFS docs and the Xfer docs should be > in a way better shape now. I got commit permission for the last one > already, but this one is significantly larger (240 kB, but including the > tmpl/ regeneration garbage). Chipzz AKA Jan Van Buggenhout -- ------------------------------------------------------------------------ UNIX isn't dead - It just smells funny Chipzz@ULYSSIS.Org ------------------------------------------------------------------------ "Baldric, you wouldn't recognize a subtle plan if it painted itself pur- ple and danced naked on a harpsicord singing 'subtle plans are here a- gain'." From bosshrap@zhwin.ch Tue Jun 20 09:25:20 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8A5FA3B01A8 for ; Tue, 20 Jun 2006 09:25:20 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 17592-03 for ; Tue, 20 Jun 2006 09:25:17 -0400 (EDT) Received: from a.mx.projectdream.org (eth0-0.yuffie.projectdream.org [194.88.212.200]) by menubar.gnome.org (Postfix) with ESMTP id 765663B017D for ; Tue, 20 Jun 2006 09:25:17 -0400 (EDT) Received: from dskt6433.zhwin.ch (dskt6433.zhwin.ch [160.85.162.206]) by a.mx.projectdream.org (Postfix) with ESMTP id 048688803B; Tue, 20 Jun 2006 15:24:23 +0200 (CEST) Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Raphael Bosshard To: Alexander Larsson In-Reply-To: <1150534641.1962.19.camel@greebo> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> Content-Type: text/plain Date: Tue, 20 Jun 2006 15:24:20 +0200 Message-Id: <1150809860.15905.28.camel@numenor> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-1.11 tagged_above=-999 required=2 tests=[BAYES_05=-1.11] X-Spam-Score: -1.11 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 13:25:20 -0000 Hello there! > For what its worth I very much agree with Patrick. The binary prefixes > are silly and nobody but anal-retentive ultra-geeks will understand > them, thus confusing the general userbase (who haven't seen them > before). Well, that's strange. I never considered myself a "anal-retentive ultra-geek". And I certainly never thought that my sister would fit into the category of "anal-retentive ultra-geeks". And yet she was the one who brought up the topic when we upgraded her computer with a new hard disk last week. The disk was labeled "250 Gigabyte". Yet when we installed it,"only" 238 Gigabytes were available. I explained her that the disk manufacturer interpreted the term "Giga" in a other way then the software manufacturer. Being an "anal-retentive ultra-geek", she was bothered by this. My sister is by no means a technical person. But to her european decimalised mind "Kilo" means "a thousand" and not "a thousand and twenty four", just in the way that "Mega" means "a million" and not "one million four hundred forty nine thousand six hundred sixteen". It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean "Giga". But I always thought that only "anal-retentive ultra-geeks" know that and I recently noticed it confuses the the general userbase (who haven't heard of that before). The strange thing is that almost everyone seems to agree (even Patrick) that binary prefixes are a good Idea. However; everyone seems to wait with the adaption of binary prefixes until everyone around has adapted them. Funny thing. I see no need to bother the documentation team; there is to much resistance against binary prefixes. So long, Raphael From alexl@redhat.com Tue Jun 20 09:50:54 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id C6D663B01A8 for ; Tue, 20 Jun 2006 09:50:54 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 18291-09 for ; Tue, 20 Jun 2006 09:50:53 -0400 (EDT) Received: from mx1.redhat.com (mx1.redhat.com [66.187.233.31]) by menubar.gnome.org (Postfix) with ESMTP id 3030F3B020B for ; Tue, 20 Jun 2006 09:50:53 -0400 (EDT) Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDo05r027617; Tue, 20 Jun 2006 09:50:00 -0400 Received: from devserv.devel.redhat.com (devserv.devel.redhat.com [172.16.58.1]) by int-mx1.corp.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDo0Fm009656; Tue, 20 Jun 2006 09:50:00 -0400 Received: from [127.0.0.1] (sebastian-int.corp.redhat.com [172.16.52.221]) by devserv.devel.redhat.com (8.12.11.20060308/8.12.11) with ESMTP id k5KDnxEP016163; Tue, 20 Jun 2006 09:49:59 -0400 Subject: Re: [PATCH] Display binary prefix filesizes instead of decimal prefix filesizes (344296) From: Alexander Larsson To: Raphael Bosshard In-Reply-To: <1150809860.15905.28.camel@numenor> References: <448ECE64.9030800@zhwin.ch> <1150534641.1962.19.camel@greebo> <1150809860.15905.28.camel@numenor> Content-Type: text/plain Date: Tue, 20 Jun 2006 15:49:59 +0200 Message-Id: <1150811399.16397.51.camel@greebo> Mime-Version: 1.0 X-Mailer: Evolution 2.7.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.588 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001] X-Spam-Score: -2.588 X-Spam-Level: Cc: gnome-vfs-list@gnome.org X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jun 2006 13:50:55 -0000 On Tue, 2006-06-20 at 15:24 +0200, Raphael Bosshard wrote: > > For what its worth I very much agree with Patrick. The binary prefixes > > are silly and nobody but anal-retentive ultra-geeks will understand > > them, thus confusing the general userbase (who haven't seen them > > before). > > Well, that's strange. I never considered myself a "anal-retentive > ultra-geek". And I certainly never thought that my sister would fit into > the category of "anal-retentive ultra-geeks". And yet she was the one > who brought up the topic when we upgraded her computer with a new hard > disk last week. The disk was labeled "250 Gigabyte". Yet when we > installed it,"only" 238 Gigabytes were available. I explained her that > the disk manufacturer interpreted the term "Giga" in a other way then > the software manufacturer. Being an "anal-retentive ultra-geek", she was > bothered by this. > > My sister is by no means a technical person. But to her european > decimalised mind "Kilo" means "a thousand" and not "a thousand and > twenty four", just in the way that "Mega" means "a million" and not "one > million four hundred forty nine thousand six hundred sixteen". I'm well aware of the problems with 1000/1024 multipliers. However, consider your sisters case if we used 238 gibibyte instead of 238 gigabyte. 1) We'd still show 238 instead of 250 which is listed which would cause your sister to wonder where the space went. 2) There would be a strange acronym in the UI that she had never seen before and didn't match what is commonly in use in ads, docs, hardware specifications etc. Its unfortunately true that terms like gigabyte and megabyte are very widespread and in active use by people who don't really know exactly what they mean. Changing this use is slow and hard. > It doesn't bother me, mind you. I know that in IT "Giga" doesn't mean > "Giga". But I always thought that only "anal-retentive ultra-geeks" know > that and I recently noticed it confuses the the general userbase (who > haven't heard of that before). > > The strange thing is that almost everyone seems to agree (even Patrick) > that binary prefixes are a good Idea. However; everyone seems to wait > with the adaption of binary prefixes until everyone around has adapted > them. Funny thing. This is almost always the case with such large (in terms of number of places/organizations it has to be changed) changes. I think its partly because the net gain of doing the change isn't really that large. =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= Alexander Larsson Red Hat, Inc alexl@redhat.com alla@lysator.liu.se He's a one-legged soccer-playing rock star who hangs with the wrong crowd. She's a plucky goth nun from Mars. They fight crime! From lifewarped@yahoo.com Wed Jun 21 15:50:32 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 8F91D3B0266 for ; Wed, 21 Jun 2006 15:50:32 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 01152-09 for ; Wed, 21 Jun 2006 15:50:31 -0400 (EDT) Received: from smtp109.plus.mail.re2.yahoo.com (smtp109.plus.mail.re2.yahoo.com [206.190.53.34]) by menubar.gnome.org (Postfix) with SMTP id 424163B015F for ; Wed, 21 Jun 2006 15:50:31 -0400 (EDT) Received: (qmail 56956 invoked from network); 21 Jun 2006 19:50:30 -0000 Received: from unknown (HELO ?192.168.1.85?) (lifewarped@64.252.203.251 with plain) by smtp109.plus.mail.re2.yahoo.com with SMTP; 21 Jun 2006 19:50:29 -0000 Mime-Version: 1.0 (Apple Message framework v750) To: gnome-vfs-list@gnome.org Message-Id: <647A0248-B8FA-4F26-8652-17718BEDAF37@yahoo.com> Content-Type: multipart/alternative; boundary=Apple-Mail-1-813535700 From: "Glenn R. Martin" Subject: IP6 and MacOS X Date: Wed, 21 Jun 2006 15:50:27 -0400 X-Mailer: Apple Mail (2.750) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.417 tagged_above=-999 required=2 tests=[AWL=-1.880, BAYES_40=-0.185, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447, HTML_MESSAGE=0.001] X-Spam-Score: -0.417 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jun 2006 19:50:32 -0000 --Apple-Mail-1-813535700 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Apple's Mac OS X predefines a macro named SIN6_LEN... However this macro appears to be nothing. I was wondering if i wouldnt be too much trouble to add the following to your gnome-vfs-address.c file so i would not have to add it next time? (im using todays CVS) Line 55, libgnomevfs/gnome-vfs-address.c : #ifdef SIN6_LEN && __APPLE__ # undef SIN6_LEN #endif # define SIN6_LEN sizeof (struct sockaddr_in6) Thanks --- Glenn R. Martin lifewarped@yahoo.com http://www.xargos.com http://www.myspace.com/grmartin C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. -- Bjarne Stroustrup --Apple-Mail-1-813535700 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 Apple's Mac OS X predefines a = macro named SIN6_LEN... However this macro appears to be nothing. I was = wondering if i wouldnt be too much trouble to add the following to your = gnome-vfs-address.c file so i would not have to add it next = time?

(im using = todays CVS)

Line = 55,=A0libgnomevfs/gnome-vfs-address.c :

#ifdef SIN6_LEN = &&=A0__APPLE__
# undef = SIN6_LEN
#endif

# define SIN6_LEN=A0= =A0=A0 sizeof (struct sockaddr_in6)

Thanks

---
Glenn R. = Martin
C makes it easy to shoot yourself in = the foot; C++ makes it harder, but when you do, it blows away your whole = leg. -- Bjarne Stroustrup

=

= --Apple-Mail-1-813535700-- From lifewarped@yahoo.com Wed Jun 21 15:58:02 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 0CF823B0192 for ; Wed, 21 Jun 2006 15:58:02 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 02062-01 for ; Wed, 21 Jun 2006 15:58:01 -0400 (EDT) Received: from smtp104.plus.mail.re2.yahoo.com (smtp104.plus.mail.re2.yahoo.com [206.190.53.29]) by menubar.gnome.org (Postfix) with SMTP id AF9573B035A for ; Wed, 21 Jun 2006 15:58:00 -0400 (EDT) Received: (qmail 63776 invoked from network); 21 Jun 2006 19:57:59 -0000 Received: from unknown (HELO ?192.168.1.85?) (lifewarped@64.252.203.251 with plain) by smtp104.plus.mail.re2.yahoo.com with SMTP; 21 Jun 2006 19:57:59 -0000 Mime-Version: 1.0 (Apple Message framework v750) To: gnome-vfs-list@gnome.org Message-Id: <2766644B-5FDA-44BF-BFA9-F0C4295F117E@yahoo.com> Content-Type: multipart/alternative; boundary=Apple-Mail-2-813985806 From: "Glenn R. Martin" Subject: login_tty on Mac OS X Date: Wed, 21 Jun 2006 15:57:57 -0400 X-Mailer: Apple Mail (2.750) X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-0.823 tagged_above=-999 required=2 tests=[AWL=-1.361, BAYES_05=-1.11, DNS_FROM_RFC_ABUSE=0.2, DNS_FROM_RFC_WHOIS=1.447, HTML_MESSAGE=0.001] X-Spam-Score: -0.823 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Jun 2006 19:58:02 -0000 --Apple-Mail-2-813985806 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed MacOS X has the login_tty() definition in its header which does not seem to be included by your libgnomevfs/gnome-vfs-pty.{c,h} file. Mind doing so, if i run in to anything else, ill hold it back for a complete email. again my copy is from the CVS. --- Glenn R. Martin lifewarped@yahoo.com http://www.xargos.com http://www.myspace.com/grmartin C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do, it blows away your whole leg. -- Bjarne Stroustrup --Apple-Mail-2-813985806 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=ISO-8859-1 MacOS X has the login_tty() = definition in its <util.h> header which does not seem to be = included by your=A0libgnomevfs/gnome-vfs-pty.{c,h} file. Mind doing so, = if i run in to anything else, ill hold it back for a complete = email.

again my copy is from the = CVS.

---
Glenn R. = Martin
C makes it easy to shoot yourself in = the foot; C++ makes it harder, but when you do, it blows away your whole = leg. -- Bjarne Stroustrup

=

= --Apple-Mail-2-813985806-- From chris@gnome-de.org Thu Jun 22 08:11:59 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id 99F493B0691 for ; Thu, 22 Jun 2006 08:11:59 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 23409-09 for ; Thu, 22 Jun 2006 08:11:58 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id C20CC3B05EE for ; Thu, 22 Jun 2006 08:11:57 -0400 (EDT) Received: (qmail 40576 invoked by uid 85); 22 Jun 2006 12:11:51 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.143.65):. Processed in 0.019744 secs); 22 Jun 2006 12:11:51 -0000 Received: from p54968f41.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.143.65) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 22 Jun 2006 12:11:51 -0000 Subject: Re: [PATCH] Improve docs, new attempt From: Christian Neumair To: Chipzz@ULYSSIS.Org In-Reply-To: References: <1150652208.22660.3.camel@localhost.localdomain> Content-Type: text/plain Date: Thu, 22 Jun 2006 14:11:45 +0200 Message-Id: <1150978306.5236.14.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: Cc: "gnome-vfs-list@gnome.org" X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 22 Jun 2006 12:11:59 -0000 Am Dienstag, den 20.06.2006, 03:42 +0200 schrieb Chipzz: > I only read about half of your patch, and not even all of it carefully, but > here are a couple of suggestions: > (...) > -> "The file is a regular file" > -> %S_ISDIR and %S_ISREG are swapped. > > + * @GNOME_VFS_PERM_USER_READ: Owner has read permission. > etc... > > -> permission*s* ? Permission*s* for ALL but permission (without a trailing s) for the rest, i.e. READ, WRITE, EXECUTE. > (...) Thanks for your worthy suggestions, I've included almost all of them. Alex just looked through the patch as well and allowed me to commit it :). -- Christian Neumair From chris@gnome-de.org Fri Jun 30 06:36:08 2006 Return-Path: X-Original-To: gnome-vfs-list@gnome.org Delivered-To: gnome-vfs-list@gnome.org Received: from localhost (unknown [127.0.0.1]) by menubar.gnome.org (Postfix) with ESMTP id EE3B03B024A for ; Fri, 30 Jun 2006 06:36:07 -0400 (EDT) Received: from menubar.gnome.org ([127.0.0.1]) by localhost (menubar.gnome.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 11809-10 for ; Fri, 30 Jun 2006 06:36:04 -0400 (EDT) Received: from mail.bytecamp.net (mail.bytecamp.net [212.204.60.9]) by menubar.gnome.org (Postfix) with SMTP id 138D63B02A2 for ; Fri, 30 Jun 2006 06:36:03 -0400 (EDT) Received: (qmail 59971 invoked by uid 85); 30 Jun 2006 10:36:00 -0000 Received: from chris@gnome-de.org by mail.bytecamp.net by uid 88 with qmail-scanner-1.20 (clamscan: 0.88.1 Clear:RC:0(84.150.198.8):. Processed in 0.219132 secs); 30 Jun 2006 10:36:00 -0000 Received: from p5496c608.dip0.t-ipconnect.de (HELO ?192.168.123.112?) (chris@gnome-de.org@84.150.198.8) by mail.bytecamp.net with RC4-MD5 encrypted SMTP; 30 Jun 2006 10:35:59 -0000 Subject: proposed asynchronous gnome_vfs_url_show implementation waiting for review From: Christian Neumair To: "gnome-vfs-list@gnome.org" Content-Type: text/plain Date: Fri, 30 Jun 2006 12:35:57 +0200 Message-Id: <1151663758.5262.1.camel@localhost.localdomain> Mime-Version: 1.0 X-Mailer: Evolution 2.6.1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at gnome.org X-Spam-Status: No, score=-2.586 tagged_above=-999 required=2 tests=[AWL=0.013, BAYES_00=-2.599] X-Spam-Score: -2.586 X-Spam-Level: X-BeenThere: gnome-vfs-list@gnome.org X-Mailman-Version: 2.1.8 Precedence: list List-Id: Discussion about gnome-vfs and gnome-vfs modules List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 30 Jun 2006 10:36:08 -0000 See http://bugzilla.gnome.org/show_bug.cgi?id=337002 We need this both for the Panel and for Nautilus. -- Christian Neumair