Subject: [PATCH] * gnu: Add siglo.

From: "Wamm K. D" <[email-masked]>
Date: Wed, 3 Aug 2022 15:23:32 -0500

* gnu/packages/flashing-tools.scm (siglo): Add package.
---
 gnu/packages/flashing-tools.scm | 78 +++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)

diff --git a/gnu/packages/flashing-tools.scm b/gnu/packages/flashing-tools.scm
index 08300cb860..4de3bee294 100644
--- a/gnu/packages/flashing-tools.scm
+++ b/gnu/packages/flashing-tools.scm
@@ -35,6 +35,7 @@ (define-module (gnu packages flashing-tools)
   #:use-module (gnu packages)
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages admin)
@@ -44,11 +45,19 @@ (define-module (gnu packages flashing-tools)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages elf)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
+  #:use-module (gnu packages glib)
   #:use-module (gnu packages gnupg)
   #:use-module (gnu packages groff)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages python-web)
+  #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages libftdi)
   #:use-module (gnu packages pciutils)
@@ -559,3 +568,72 @@ (define-public uuu
     (description "@code{uuu} is a command line tool, evolved out of MFGTools.
 It can be used to upload images to I.MX SoC's using at least their boot ROM.")
     (license license:bsd-3)))
+
+(define-public siglo
+  (package
+    (name "siglo")
+    (version "0.9.9")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/alexr4535/" name "/"))
+                    (commit (string-append "v" version))))
+              (sha256 (base32
+                       "0c08xvr6w77dm5mgzlh6imqdi13bshnp9rxmskvp3j7fki3aqcp2"))))
+    (build-system meson-build-system)
+    (native-inputs (list gettext-minimal
+                         ;; for 'glib-compile-resources', 'glib-compile-schemas'
+                         `(,glib "bin")
+                         pkg-config
+                         ;; for gtk-update-icon-cache
+                         `(,gtk+ "bin")))
+    (inputs (list desktop-file-utils
+                  appstream-glib
+                  python
+                  python-pyxdg
+                  python-gatt
+                  python-dbus
+                  python-pygobject
+                  python-requests
+                  python-urllib3
+                  python-chardet
+                  python-certifi
+                  python-idna))
+    (propagated-inputs (list gtk+))
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'remove-internet-using-test
+           (lambda _
+             (substitute* "data/meson.build"
+               (("appstream_util.found\\(\\)") "false")
+               (((string-append
+                  "install_data[(]'siglo\\.service', "
+                  "install_dir: '/etc/systemd/user/'[)]"))
+                ""))))
+         (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (wrap-program (string-append (assoc-ref outputs "out")
+                                          "/bin/siglo")
+               `("GUIX_PYTHONPATH" = ,(map
+                                       (lambda (python-input)
+                                         (string-append (cdr python-input)
+                                                        "/lib/python"
+                                                        ,(version-major+minor
+                                                          (package-version python))
+                                                        "/site-packages"))
+                                       (filter
+                                        (lambda (input)
+                                          (string-prefix? "python" (car input)))
+                                        inputs)))
+               `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
+  (synopsis "GTK app to sync InfiniTime watch with PinePhone")
+  (description "@code{siglo} is a graphical tool to flash InfiniTime firmware to
+watches running the InfiniTime operating system, via bluetooth.
+
+Users can also sync the time of their watch to the time of the device running
+@code{siglo} as well as check the battery charge of their watch or what version
+of firmware their watch is running.")
+  (home-page "https://github.com/theironrobin/siglo")
+  (license license:mpl2.0)))
-- 
2.37.1