This is an automated email from the git hooks/post-receive script.

guix_mirror_bot pushed a commit to branch master
in repository guix.

The following commit(s) were added to refs/heads/master by this push:
     new 4d064b0ca6 Revert "gnu: Remove syncthing-gtk."
4d064b0ca6 is described below

commit 4d064b0ca624095d88305a8587422650e6fb2fec
Author: Andreas Enge <[email protected]>
AuthorDate: Sun Feb 8 18:07:24 2026 +0100

    Revert "gnu: Remove syncthing-gtk."
    
    syncthing-gtk has been reported to work, see #3468.
    
    This reverts commit 22ec49e10dc6a800b0c4a16ca79234b690ee675c.
    
    Change-Id: I61383a299d05ecb54118e73535a469d936618ba7
---
 gnu/packages/syncthing.scm | 88 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 88 insertions(+)

diff --git a/gnu/packages/syncthing.scm b/gnu/packages/syncthing.scm
index ad5f055bbc..3b5aefe67f 100644
--- a/gnu/packages/syncthing.scm
+++ b/gnu/packages/syncthing.scm
@@ -136,6 +136,94 @@ Protocol.")
        (tunable? . #t)))
     (license mpl2.0)))
 
+(define-public syncthing-gtk
+  ;; The commit used below corresponds to the latest commit of the Python 3
+  ;; fork maintained by Debian.  Upstream hasn't bothered porting to Python 3
+  ;; (see: https://github.com/kozec/syncthing-gtk/issues/487).
+  (let ((revision "2")
+        (commit "1e84f332e413ba123bcd443443ffc2b435ffafd2"))
+    (package
+      (name "syncthing-gtk")
+      (version (git-version "0.9.4.4" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                      (url "https://salsa.debian.org/debian/syncthing-gtk.git";)
+                      (commit commit)))
+                (file-name (git-file-name name version))
+                (sha256
+                 (base32
+                  "1b77rdmx74zyz3lfhzzvdf3rrm7lfc7246varnr5xi366z3410ha"))))
+      (build-system pyproject-build-system)
+      (arguments
+       (list
+        #:tests? #f  ;has no tests
+        #:phases
+        #~(modify-phases %standard-phases
+           (add-after 'unpack 'hardcode-dependencies
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let ((psmisc (assoc-ref inputs "psmisc"))
+                     (syncthing (assoc-ref inputs "syncthing")))
+                 ;; Hardcode dependencies paths to avoid propagation.
+                 (substitute* "syncthing_gtk/tools.py"
+                   (("killall") (string-append psmisc "/bin/killall")))
+                 (substitute* "syncthing_gtk/configuration.py"
+                   (("/usr/bin/syncthing") (string-append syncthing
+                                                          
"/bin/syncthing"))))))
+           (add-after 'unpack 'fix-autostart-path
+             ;; Change the autostart .desktop file 'Exec' command so it finds
+             ;; the Python wrapper of 'syncthing-gtk', rather than the 
unwrapped
+             ;; '.syncthing-gtk-real'.
+             (lambda _
+               (substitute* "syncthing_gtk/tools.py"
+                 (("return executable")
+                  "return \"syncthing-gtk\""))
+               ;; Prevent complaints from 'pip3 check':
+               ;;   DEPRECATION: syncthing-gtk unknown has a non-standard
+               ;;   version number. pip 24.1 will enforce this behaviour 
change.
+               (substitute* "setup.py"
+                 (("return version")
+                  (string-append
+                   "return \"" (car (string-split #$version #\-)) "\"")))))
+           (add-after 'unpack 'remove-windows.py
+             (lambda _
+               ;; A Windows-specific module that fails to load with
+               ;; "ModuleNotFoundError: No module named 'msvcrt'.
+               (delete-file "syncthing_gtk/windows.py")))
+           (add-after 'wrap 'wrap-libs
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let ((out (assoc-ref outputs "out")))
+                 (wrap-program (string-append out "/bin/syncthing-gtk")
+                   `("GUIX_GDK_PIXBUF_MODULE_FILES" ":" suffix
+                     (,(getenv "GUIX_GDK_PIXBUF_MODULE_FILES")))
+                   `("GI_TYPELIB_PATH" ":" suffix
+                     (,(getenv "GI_TYPELIB_PATH"))))))))))
+      (native-inputs (list python-setuptools))
+      (inputs
+       (list bash-minimal
+             gtk+
+             libappindicator
+             libnotify
+             python-bcrypt
+             python-dateutil
+             python-pycairo
+             python-pygobject
+             psmisc
+             syncthing))
+      (home-page "https://github.com/kozec/syncthing-gtk";)
+      (synopsis "GTK3 based GUI and notification area icon for Syncthing")
+      (description "@code{syncthing-gtk} is a GTK3 Python based GUI and
+notification area icon for Syncthing.  Supported Syncthing features:
+
+@itemize
+@item Everything that WebUI can display
+@item Adding, editing and deleting nodes
+@item Adding, editing and deleting repositories
+@item Restart, shutdown server
+@item Editing daemon settings
+@end itemize\n")
+      (license gpl2))))
+
 (define-public go-github-com-syncthing-notify
   (package
     (name "go-github-com-syncthing-notify")

Reply via email to