Subject: [PATCH] gnu: Add confy.

From: Liliana Marie Prikler <[email-masked]>
Date: Sun, 12 Jan 2025 20:50:28 +0100

* gnu/packages/gnome.scm (confy): New variable.
---
 gnu/packages/gnome.scm | 57 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 78c276a991..b1652bb643 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -14236,6 +14236,63 @@ (define-public calls
 Protocol} for @acronym{VoIP, Voice over @acronym{IP, Internet Protocol}}.")
     (license license:gpl3+)))
 
+(define-public confy
+  (package
+    (name "confy")
+    (version "0.8.0")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://git.sr.ht/~fabrixxm/confy")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32 "0hjj1klndhjmy02lxn15cnid0ydnxi0ki59h4an0zsyaha77s1lm"))))
+    (build-system meson-build-system)
+    (arguments
+     (list #:glib-or-gtk? #t
+           #:imported-modules `(,@%meson-build-system-modules
+                                (guix build python-build-system))
+           #:modules '((guix build meson-build-system)
+                       ((guix build python-build-system) #:prefix python:)
+                       (guix build utils))
+           #:phases
+           #~(modify-phases %standard-phases
+               (add-after 'unpack 'disable-post-install
+                 (lambda _
+                   (substitute* "meson.build"
+                     (("gtk_update_icon_cache: true")
+                      "gtk_update_icon_cache: false")
+                     (("update_desktop_database: true")
+                      "update_desktop_database: false"))))
+               (add-after 'unpack 'patch-for-compatibility
+                 (lambda _
+                   ;; TODO: Remove when Python is updated to >= 3.11.
+                   (substitute* (find-files "." "\\.py$")
+                     (("import Self") "import Any as Self"))))
+               (add-after 'glib-or-gtk-wrap 'python-and-gi-wrap
+                 (lambda* (#:key inputs outputs #:allow-other-keys)
+                   (wrap-program (search-input-file outputs "bin/confy")
+                     `("GUIX_PYTHONPATH" =
+                       (,(getenv "GUIX_PYTHONPATH")
+                        ,(python:site-packages inputs outputs)))
+                     `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))))))))
+    (inputs (list gtk
+                  libadwaita
+                  libnotify
+                  python
+                  python-icalendar
+                  python-pygobject))
+    (native-inputs (list blueprint-compiler
+                         gettext-minimal
+                         `(,glib "bin")
+                         pkg-config))
+    (home-page "https://confy.kirgroup.net")
+    (synopsis "Conference Schedule Viewer")
+    (description "Confy is a conference schedule viewer for GNOME.  It allows
+you to mark favourite talks and highlights conflicts between favourited talks.")
+    (license license:gpl3+)))
+
 (define-public gtk-frdp
   (package
     (name "gtk-frdp")

base-commit: 5e4cc506c71d04f7886e351be4266aa9d692b76f
-- 
2.47.1