Subject: bug#50789: syncthing-gtk creates autostart file with wrong bin

From: Liliana Marie Prikler <[email-masked]>
Date: Sat, 25 Sep 2021 00:55:56 +0200

Hi,

Am Freitag, den 24.09.2021, 21:33 +0000 schrieb John Kehayias:
> Hello,
> 
> syncthing-gtk has an option to enable autostart, which it does by
> creating the .desktop file in ~/.config/autostart However, this has
> the wrong exec line, getting the -real script instead of syncthing-
> gtk. This won't work as it needs to be run as syncthing-gtk. Namely,
> it produces:
> 
> Exec=/gnu/store/vf5h9jqhq40x8r46afaa0jgw7awg1361-syncthing-gtk-
> 0.9.4.4-1.c46fbd8/bin/.syncthing-gtk-real
> 
> Instead of
> 
> Exec=/gnu/store/vf5h9jqhq40x8r46afaa0jgw7awg1361-syncthing-gtk-
> 0.9.4.4-1.c46fbd8/bin/syncthing-gtk
> 
> This is due to syncthing-gtk getting its executable name to write to
> the .desktop file in get_executable(): 
> https://salsa.debian.org/debian/syncthing-gtk/-/blob/master/syncthing_gtk/tools.py#L409
> where due to wrapping it will find something that won't work when run
> directly.
> 
> How should this be solved in Guix? Should we patch this part of the
> code to explicitly rewrite the path to have "syncthing-gtk" instead
> of ".syncthing-gtk-real"? Related would be the discussion at 
> https://lists.gnu.org/r/guix-devel/2021-09/msg00088.html which I will
> message separately.
We should patch syncthing to not write a desktop file at all.  Note how
even if the binary name itself was correct, syncthing would link
directly into the store, potentially producing a stale desktop file
that breaks with garbage collection.

Cheers