Syncthing-gtk - GUI for syncthing - now with inotify support

The syncthing package on the OBS is a user project; see openSUSE package for Syncthing as an example.

However, depending on “syncthing” is actually an option for your consideration:

  • if you want to depend on a 3rd party packaged RPM you can go that route and hope that the package is updated in a somewhat timely manner whenever a new version is released.

  • You could use the “first run” wizard to put the binary into /usr/bin yourself if you find a way to put the file there with elevated rights (only root can write to /usr/bin, so you would need to find a way to elevate for binary install/update). The syncthing binary doesn’t require anything extra; everything is statically linked into it (a very good practice in this case).

  • You could go the “per user” route. In this case it would be best to find a suitable place for dropping the binary to (i.e. check if $HOME/bin exists … if yes, drop it there - if not, create the directory and drop it there … that way you at least follow a somewhat official way to have a binary in the user directory “sorted out and properly placed”) and have it launched it through your UI (either when the user starts it up or when it loads upon logging in to the session because its set to autostart).

I would run with either the 2nd or 3rd option if I would be you. Why? Well…

The “syncthing” package is actually meant for “daemonized startup on boot”. This means: A user using the package will most likely not have any use for your UI and instead use the web UI because it is either running on a server server where there’s no X11 or on a totally headless system. “Joe Average” will most likely use it in his user context anyway, so dropping the binary into the user directory is a safe bet in this scenario.

I think there’s also a way to declare a “Conflicts” in a RPM spec file if you want to “clash” on purpose with the “synthing” package - to avoid having a system-launched instance and your user instance at the same time.

Anyhow, great to see you resolved the problem that prevented the OBS packaging going through. Will add your OBS project as a repo to my system. In the meantime I actually found out that SUSE is hiding the documentation on openbuiidservice.org (the link on the build.opensuse.org site isn’t really obvious nor does it stand out that one can find the documentation there - structuring and organizing things isn’t a particular strength of the SUSE lot).

EDIT: Added your OBS home project as a repo and installed it (I “broke” the dependency with syncthing because I already had the binary in $HOME/bin and the config.json was already all set from my packaging attempt).

One thing to note that you should point out: When adding your home project as a repo (the “zypper” way) it will not be auto-refreshed by default. If you publish an update it therefore won’t reach the user. To receive updates as you publish them one needs to run…

sudo zypper modifyrepo -r <repo url>

…once, after adding the repo, to enable “auto-refresh” and stay up-to-date.