Subject: [bug#55518] [PATCH] gnu: Add siglo.

From: "Wamm K. D" <[email-masked]>
Date: Thu, 19 May 2022 00:54:22 -0500

---
Hmmm; heh, you know, I don't either. I think it makes sense; I'll look it up
and try adding it. I may come back with questions about the @acronym syntax,
just as a heads up.

 gnu/packages/firmware.scm | 75 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)

diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index b63ad63749..1b81110c91 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2019 Mathieu Othacehe <[email-masked]>
 ;;; Copyright © 2020, 2021, 2022 Marius Bakke <[email-masked]>
 ;;; Copyright © 2021 Petr Hodina <[email-masked]>
+;;; Copyright © 2022 Wamm K. D. <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -42,13 +43,19 @@ (define-module (gnu packages firmware)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages cross-base)
   #:use-module (gnu packages flex)
+  #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gtk)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages perl)
   #: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 pkg-config))
 
 (define-public ath9k-htc-firmware
@@ -634,3 +641,71 @@ (define-public arm-trusted-firmware-imx8mq
          ((#:make-flags flags ''())
           ;; Adding debug symbols causes the size to exceed limits.
           #~(delete "DEBUG=1" #$flags)))))))
+
+(define-public siglo
+  (package
+    (name "siglo")
+    (version "0.9.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url (string-append "https://github.com/alexr4535/" name "/"))
+                    (commit (string-append "v" version))))
+              (sha256 (base32
+                       "1q241465l0kjirycvhgrm5ylqll6ywqfyg2arad224v47fz7lb8g"))))
+    (build-system meson-build-system)
+    (native-inputs (list gettext-minimal
+                         `(,glib "bin")  ; for 'glib-compile-resources',
+                                         ;     'glib-compile-schemas'
+                         pkg-config
+                         `(,gtk+ "bin")  ; for gtk-update-icon-cache
+                         ))
+    (inputs (list gtk+
+                  desktop-file-utils
+                  appstream-glib  ; listed as appstream-util, in configure
+                  python
+                  python-pyxdg
+                  python-gatt
+                  python-dbus
+                  python-pygobject
+                  python-requests
+                  python-urllib3
+                  python-chardet
+                  python-certifi
+                  python-idna))
+    (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 "Siglo is a GTK app. to sync with the InfiniTime watch via
+Bluetooth.  With a connection via Siglo, you can check the firmware version of
+your PineTime and sync the date/time.  You can, also, update the firmware and
+bootloader of the watch.")
+    (home-page "https://github.com/alexr4535/siglo")
+    (license license:mpl2.0)))
-- 
2.36.0