Description of problem: 1) Clicking on the external device name in the menu of this extension triggers nautilus to open the device, whereas the expected behaviour is unmounting the device. 2) Even the hard drive partitions mounted via /etc/fstab are being shown in the menu. Dont think its the expected behaviour, and hard drive partitions werent being shown until the last update. 3) Also, probably because of (2) above, the drive-menu icon is being shown perennially even without any external drives being mounted. Earlier, the icon used to get triggered to show up only when an external device was mounted. Version-Release number of selected component (if applicable): gnome-shell-3.0.2-1.fc15.i686 gnome-shell-extensions-drive-menu-3.0.2-1.g63dd27cgit.fc15.noarch How reproducible: Always, since the last update Steps to Reproduce: 1. Mount external device, and click on the drive-menu icon to try to unmount. 2. Having any mounted hard drive partitions via /etc/fstab 3. Actual results: Expected results: Additional info:
Hello, The drive-menu extension does work the way you described. - If you click on a menu item, it opens the hard drive in Nautilus - It unmounts the device when you click on the unmount icon I don't know about /etc/fstab, but the rest of what you described has been working for me as you described, ever since I fist installed this extension.
I think i didnt explain point (1) properly. Am doing it here again : Description of problem: 1) Clicking on the external device "name" in the menu of this extension triggers nautilus to open the device(as expected). But, clicking on the "unmount icon" is also triggering nautilus,whereas the expected behaviour is unmounting the device. Until the last update, it was working quite normal. But ever since these problems have cropped up. (In reply to comment #1) > Hello, > > The drive-menu extension does work the way you described. > > - If you click on a menu item, it opens the hard drive in Nautilus > - It unmounts the device when you click on the unmount icon > > I don't know about /etc/fstab, but the rest of what you described has been > working for me as you described, ever since I fist installed this extension.
http://git.gnome.org/browse/gnome-shell-extensions/commit/?id=63dd27c4f593fd7c75aa9508a5ff6d0745762ff4 See comments from above on the recent rewrite that is at the root of this. It's using mounts instead of drives and different calls to do the unmount/eject... clicking on the eject icon results in the following showing up in ~/.xsession-errors . Looks like Mount.eject() is not being exposed to the gnome-shell js binding. JS ERROR: !!! Exception was: TypeError: this._mount.eject is not a function JS ERROR: !!! lineNumber = '110' JS ERROR: !!! fileName = '/usr/share/gnome-shell/js/ui/placeDisplay.js' JS ERROR: !!! stack = '()@/usr/share/gnome-shell/js/ui/placeDisplay.js:110 ([object _private_St_Button],1)@/usr/share/gnome-shell/extensions/drive-menu.org/extension.js:39 ([object _private_St_Button],1)@/usr/share/gjs-1.0/lang.js:110 ' JS ERROR: !!! message = 'this._mount.eject is not a function' I haven't gotten as far as finding how gjs is exposed to the Gio class hierarchy in C... hopefully the last commiter knows more and can explain how to fix it... or an alternate method for getting at the eject() method (which I have not been able to find on any drive/volume/mount objects using looking glass).
Ok... this works... maybe it'll make its way upstream: /usr/share/gnome-shell/js/ui: $ diff -u placeDisplay.js.orig placeDisplay.js --- placeDisplay.js.orig 2011-06-01 18:58:24.246003007 -0700 +++ placeDisplay.js 2011-06-01 19:07:55.075053659 -0700 @@ -107,7 +107,7 @@ return; if (this._mount.can_eject()) - this._mount.eject(0, null, Lang.bind(this, this._removeFinish)); + this._mount.eject_with_operation(0, null, null, Lang.bind(this, this._removeFinish)); else this._mount.unmount(0, null, Lang.bind(this, this._removeFinish)); }, @@ -115,7 +115,7 @@ _removeFinish: function(o, res, data) { try { if (this._mount.can_eject()) - this._mount.eject_finish(res); + this._mount.eject_with_operation_finish(res,null); else this._mount.unmount_finish(res); } catch (e) {
Can this be integrated into the package as a patch until it is upstream, please.
I've not run into any major issues with the patch yet. The one minor annoyance is that sometimes it returns an error that it couldn't unmount... when the unmount/eject actually did work. I haven't tried to track it down, as it doesn't happen all the time.
Unmount/Eject OK /usr/share/gnome-shell/js/ui: diff -u placeDisplay.js.orig placeDisplay.js --- placeDisplay.js.orig 2011-06-22 10:15:53.252859820 -0400 +++ placeDisplay.js 2011-06-22 10:04:15.869401688 -0400 @@ -109,7 +109,7 @@ if (this._mount.can_eject()) this._mount.eject_with_operation(0, null, null, Lang.bind(this, this._removeFinish)); else - this._mount.unmount(0, null, Lang.bind(this, this._removeFinish)); + this._mount.unmount_with_operation(0, null, null, Lang.bind(this, this._removeFinish)); }, _removeFinish: function(o, res, data) { @@ -117,7 +117,7 @@ if (this._mount.can_eject()) this._mount.eject_with_operation_finish(res,null); else - this._mount.unmount_finish(res); + this._mount.unmount_with_operation_finish(res,null); } catch (e) { let message = _("Failed to unmount '%s'").format(o.get_name()); Main.overview.shellInfo.setMessage(message,
Ah. I didn't catch the umount changes in addition to the eject changes... thx.
ok. I did already have those changes locally... but for some reason didn't capture it in the patch I posted above. Apologies for that. Full patch for gnome-shell-3.0.2-1.fc15.x86_64.rpm would be: --- placeDisplay.js.orig 2011-05-25 13:00:44.000000000 -0700 +++ placeDisplay.js 2011-06-22 17:36:45.823700699 -0700 @@ -107,17 +107,17 @@ return; if (this._mount.can_eject()) - this._mount.eject(0, null, Lang.bind(this, this._removeFinish)); + this._mount.eject_with_operation(0, null, null, Lang.bind(this, this._removeFinish)); else - this._mount.unmount(0, null, Lang.bind(this, this._removeFinish)); + this._mount.unmount_with_operation(0, null, null, Lang.bind(this, this._removeFinish)); }, _removeFinish: function(o, res, data) { try { if (this._mount.can_eject()) - this._mount.eject_finish(res); + this._mount.eject_with_operation_finish(res,null); else - this._mount.unmount_finish(res); + this._mount.unmount_with_operations_finish(res,null); } catch (e) { let message = _("Failed to unmount '%s'").format(o.get_name()); Main.overview.shellInfo.setMessage(message,
I still have this bug. Is there any chance to patch under i686 too?
Hi, does someone have a working rpm (64bit) version of the drive menu extension, I am not sure how to patch it, or is the problem actually in the gnome-shell itself? My current gnome-shell is 3.0.2-4 and the drive-menu extension is 3.0.2-1 I did try and copy the patch in Comment 9, to a file and then patch the gnome-shell-3.0.2-1.fc15.x86_64.rpm, but it gave me an error message, and did nothing other than create a reject file. Any help to fix this would be appreciated.
(In reply to comment #11) > Hi, does someone have a working rpm (64bit) version of the drive menu > extension, I am not sure how to patch it, or is the problem actually in the > gnome-shell itself? > > My current gnome-shell is 3.0.2-4 and the drive-menu extension is 3.0.2-1 > > I did try and copy the patch in Comment 9, to a file and then patch the > gnome-shell-3.0.2-1.fc15.x86_64.rpm, but it gave me an error message, and did > nothing other than create a reject file. > > Any help to fix this would be appreciated. Hmmm, did some more digging, had a look at the .xsession-errors and then found the placeDisplay.js location, and patched that file directly using the patch in comment 9, and it worked, so ignore my comment 11. But I now have the problem where an error pops-up saying it failed to unmount the device, but it does as per comment 6. Has this issue been resolved yet?
Not by me... I'm not a maintainer - just a user - and now that it's working (ejecting my dvds), I've just been ignoring the "error". It's not worth it to me to spend the time to fix that particular quirk. And sorry about the patch... guess it would have been good idea to explicitly mention how to patch the placeDisplay.js file. put the patch contents in file (e.g: /tmp/placeDisplay.patch). # as root cd /usr/share/gnome-shell/js/ui patch placeDisplay.js < /tmp/placeDisplay.patch
Hi Jim, I think I found the problem regarding the error message. It looks like a typo in the patch. The last line that starts with a + reads: + this._mount.unmount_with_operations_finish(res,null); and I am sure it should read: + this._mount.unmount_with_operation_finish(res,null); (singular operation) I made the change to placeDisplay.js and since then have not had any error messages. Could you please confirm this?
Created attachment 513241 [details] Patch for /usr/share/gnome-shell/js/ui/placeDisplay.js to update eject/unmount g_volume_eject and g_volume_eject_finish (same for unmount) were deprecated in Gio 2.22, and apparently have been removed completely in the current version. This patch updates the remove: and _removeFinish: methods of PlaceDeviceInfo to use the new *_with_operation g_volume methods.
Thanks JokeDude. That explains the intermittent failures - if the volume was already unmounted, it would eject with no errors. Updated patch attached to ticket. Just need to get the fix pushed to the upstream source now.
This message is a notice that Fedora 15 is now at end of life. Fedora has stopped maintaining and issuing updates for Fedora 15. It is Fedora's policy to close all bug reports from releases that are no longer maintained. At this time, all open bugs with a Fedora 'version' of '15' have been closed as WONTFIX. (Please note: Our normal process is to give advanced warning of this occurring, but we forgot to do that. A thousand apologies.) Package Maintainer: If you wish for this bug to remain open because you plan to fix it in a currently maintained version, feel free to reopen this bug and simply change the 'version' to a later Fedora version. Bug Reporter: Thank you for reporting this issue and we are sorry that we were unable to fix it before Fedora 15 reached end of life. If you would still like to see this bug fixed and are able to reproduce it against a later version of Fedora, you are encouraged to click on "Clone This Bug" (top right of this page) and open it against that version of Fedora. Although we aim to fix as many bugs as possible during every release's lifetime, sometimes those efforts are overtaken by events. Often a more recent Fedora release includes newer upstream software that fixes bugs or makes them obsolete. The process we are following is described here: http://fedoraproject.org/wiki/BugZappers/HouseKeeping