GNOME Bugzilla – Bug 348323
f-spot-screensaver.desktop installed to wrong directory for Gnome 2.15/16
Last modified: 2008-05-19 12:15:31 UTC
In Gnome 2.16, gnome-screensaver uses /usr/share/applications/screensavers. f-spot installs f-spot-screensaver.desktop to /usr/share/gnome-screensaver/themes, so it does not show up in gnome-screensaver.
Created attachment 69377 [details] [review] screensaver-path.patch Or perhaps f-spot should install to both; depends whether f-spot is core desktop or not, I guess.
Scratch that, it's in the gnome-screensaver pkgconfig file. I'll write a patch that uses that.
Created attachment 69378 [details] [review] screensaver-path.patch Hm. This silently ignores --with-gnome-screensaver=PREFIX if the pkgconfig file exists. I think that's probably the right thing to do, as otherwise we might conflict with packagers who pass --with-gnome-screensaver=PREFIX where it isn't needed.
You should always honor an explicit option more than the pkgconfig file. Als have you tested this patch by running make distcheck?
Created attachment 69724 [details] [review] f-spot-configure-gsdir.patch
Created attachment 69726 [details] [review] f-spot-configure-gsdir.patch Is this better? Use the pkgconfig paths only if prefix matches. It passes make distcheck.
Hi I already put f-spot-screensaver.desktop in right directory and it show up in gnome-screensaver but the screensaver doesn't work.
Ed, this will install files outside of the PREFIX folder is gnome-screensaver prefix differ from f-spot prefix. I'm not sure it's safe to do that...
(In reply to comment #7) > Hi I already put f-spot-screensaver.desktop in right directory and it show up > in gnome-screensaver but the screensaver doesn't work. > Same problem here, with gnome-screensaver-2.16, f-spot screensaver doensn't work, even if I put the .desktop file in the new place.
*** Bug 380433 has been marked as a duplicate of this bug. ***
Just as a data point, I made the .desktop file exec '/usr/bin/f-spot --slideshow' directly, and it still doesn't work; f-spot --slideshow works fine from the command line, however.
(And this is with the .desktop file symlinked to the correct location, of course, though maybe I should open a separate bug for the 'doesn't work at all' problem. Up to you, f-spot dudes.)
Stephane, since you seem to be seeing the same problem I am, and since I am about to no longer be in the city where the problematic box is, from an email with Jon McCann- > In general the best place to start with debugging is to run: > > gnome-screensaver-command --exit > gnome-screensaver --no-daemon --debug > > Then reproduce the problem and check the debug output. Hopefully that will help Stephane and/or me figure it out later.
I have the same problem. If I start f-spot --screensaver or the f-spot-screensaver shell-file, it works fine. I have replaced the f-spot-screensaver shell-file (in lib/gnome-screensaver/gnome-screensaver) to get some more debugging output: 'env' gives: XSCREENSAVER_WINDOW=0x2400062 SESSION_MANAGER=local/fuchur:/tmp/.ICE-unix/3406 PATH=/home/fabi/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games:/usr/lib/gnome-screensaver/gnome-screensaver:/usr/lib/xscreensaver:/usr/lib/xscreensaver PWD=/home/fabi LANG=de_DE@euro SHLVL=1 HOME=/home/fabi LANGUAGE=de_DE:de:en_GB:en DISPLAY=:0.0 _=/usr/bin/env and the output of f-spot: Unhandled Exception: System.Exception: Unable to open the session message bus. ---> System.ArgumentNullException: Argument cannot be null. Parameter name: address at NDesk.DBus.Bus.Open (System.String address) [0x00000] at NDesk.DBus.Bus.get_Session () [0x00000] --- End of inner exception stack trace --- at NDesk.DBus.Bus.get_Session () [0x00000] at NDesk.DBus.BusG.Init () [0x00000] at FSpot.Driver.Main (System.String[] args) [0x00000] I also checked the arguments of the shell-file: No arguments are given.
(In reply to comment #14) > Unhandled Exception: System.Exception: Unable to open the session message bus. > ---> System.ArgumentNullException: Argument cannot be null. > Parameter name: address > at NDesk.DBus.Bus.Open (System.String address) [0x00000] > at NDesk.DBus.Bus.get_Session () [0x00000] --- End of inner exception stack > trace --- > > at NDesk.DBus.Bus.get_Session () [0x00000] > at NDesk.DBus.BusG.Init () [0x00000] > at FSpot.Driver.Main (System.String[] args) [0x00000] OK, I've submitted that as bug 392780. Can you see if the fix works?
Ah, yes. Thank you very much! Now with the patched gnome-screensaver it is working! I think this bug can be closed then.
(In reply to comment #16) > Ah, yes. Thank you very much! Now with the patched gnome-screensaver it is > working! > > I think this bug can be closed then. No, this bug is about which directory the screensaver .desktop file gets installed into. The screensaver-not-working aspect was just a distraction.
OK, back to the real issue: (In reply to comment #8) > Ed, > > this will install files outside of the PREFIX folder is gnome-screensaver > prefix differ from f-spot prefix. > > I'm not sure it's safe to do that... Hm. Yeah, but it has to install them there to get the screensaver to show up in gnome-screensaver. Anyway, it'll only do that if the user passes an alternate prefix through --with-gnome-screensaver=PREFIX; my patch only uses the directory in the gnome-screensaver pkgconfig file if it's the same prefix as --with-gnome-screensaver=PREFIX (or the f-spot installation prefix).
Created attachment 102160 [details] [review] screensaver-path.patch update for 0.4.1
fixed in r3934