+
+(define-public libhandy
+ (package
+ (name "libhandy")
+ (version "0.0.11")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://source.puri.sm/Librem5/libhandy")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0622zp5wrvn5bvgardijxd11y76g1i54fs32y03dw9nrar7i6vb0"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:configure-flags
+ '("-Dglade_catalog=disabled"
+ "-Dgtk_doc=true")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'check 'pre-check
+ (lambda _
+ ;; Tests require a running X server.
+ (system "Xvfb :1 &")
+ (setenv "DISPLAY" ":1")
+ #t)))))
+ (inputs
+ `(("gtk+" ,gtk+)))
+ (native-inputs
+ `(("glib:bin" ,glib "bin")
+ ("gobject-introspection" ,gobject-introspection) ; for g-ir-scanner
+ ("vala" ,vala)
+ ("gtk-doc" ,gtk-doc)
+ ("pkg-config" ,pkg-config)
+ ("gettext" ,gettext-minimal)
+ ("xorg-server" ,xorg-server)
+
+ ;; Test suite dependencies.
+ ("hicolor-icon-theme" ,hicolor-icon-theme)))
+ (home-page "https://source.puri.sm/Librem5/libhandy")
+ (synopsis "Library full of GTK+ widgets for mobile phones")
+ (description "The aim of the handy library is to help with developing user
+intefaces for mobile devices using GTK+.")
+ (license license:lgpl2.1+)))
+
+(define-public libgit2-glib
+ (package
+ (name "libgit2-glib")
+ (version "0.28.0.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0a0g7aw66rfgnqr4z7fgbk5zzcjq66m4rp8v4val3a212941h0g7"))))
+ (build-system meson-build-system)
+ (native-inputs
+ `(("glib:bin" ,glib "bin") ;; For glib-mkenums
+ ("gobject-introspection" ,gobject-introspection)
+ ("intltool" ,intltool)
+ ("libssh2" ,libssh2)
+ ("pkg-config" ,pkg-config)
+ ("python-pygobject" ,python-pygobject)
+ ("python-wrapper" ,python-wrapper)
+ ("vala" ,vala)))
+ (inputs
+ `(("glib" ,glib)
+ ("libgit2" ,libgit2)))
+ (synopsis "GLib wrapper around the libgit2 Git access library")
+ (description "libgit2-glib is a GLib wrapper library around the libgit2 Git
+access library. It only implements the core plumbing functions, not really the
+higher level porcelain stuff.")
+ (home-page "https://wiki.gnome.org/Projects/Libgit2-glib")
+ (license license:gpl2+)))
+
+(define-public gitg
+ (package
+ (name "gitg")
+ (version "3.32.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://gnome/sources/" name "/"
+ (version-major+minor version) "/"
+ name "-" version ".tar.xz"))
+ (sha256
+ (base32
+ "0npg4kqpwl992fgjd2cn3fh84aiwpdp9kd8z7rw2xaj2iazsm914"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:glib-or-gtk? #t
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'disable-post-install-partially
+ (lambda _
+ (substitute* "meson_post_install.py"
+ (("'python'") ; there are no python sources to compile
+ (string-append "'" (which "true") "'"))
+ (("gtk-update-icon-cache") (which "true")))
+ #t))
+ (add-after 'unpack 'fix-test-sources
+ (lambda _
+ (substitute* "tests/libgitg/test-commit.vala"
+ (("/bin/bash") (which "bash")))
+ #t))
+ (add-after 'glib-or-gtk-wrap 'wrap-typelib
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((prog (string-append (assoc-ref outputs "out")
+ "/bin/gitg")))
+ (wrap-program prog
+ `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
+ #t))))))
+ (inputs
+ `(("glib" ,glib)
+ ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+ ("gtk+" ,gtk+)
+ ("gtkspell3" ,gtkspell3)
+ ("gtksourceview" ,gtksourceview-3)
+ ("json-glib" ,json-glib)
+ ("libdazzle" ,libdazzle)
+ ("libgee" ,libgee)
+ ("libgit2" ,libgit2) ; propagated by libgit2-glib
+ ("libgit2-glib" ,libgit2-glib)
+ ("libpeas" ,libpeas)
+ ("libsecret" ,libsecret)
+ ("libsoup" ,libsoup)
+ ("libxml2" ,libxml2)))
+ (native-inputs
+ `(("glib:bin" ,glib "bin")
+ ("gtk+:bin" ,gtk+ "bin")
+ ("gobject-introspection" ,gobject-introspection)
+ ("intltool" ,intltool)
+ ("pkg-config" ,pkg-config)
+ ("vala" ,vala)))
+ (synopsis "Graphical user interface for git")
+ (description
+ "gitg is a graphical user interface for git. It aims at being a small,
+fast and convenient tool to visualize the history of git repositories.
+Besides visualization, gitg also provides several utilities to manage your
+repository and commit your work.")
+ (home-page "https://wiki.gnome.org/Apps/Gitg")
+ (license license:gpl2+)))
+
+(define-public gnome-mahjongg
+ (package
+ (name "gnome-mahjongg")
+ (version "3.35.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.gnome.org/GNOME/gnome-mahjongg.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "019a66a4m5w4kkb0sm6gxj0wi54n06zdxdlmyqw7h8kbakjizv7l"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:glib-or-gtk? #t))
+ (native-inputs
+ `(("appstream-glib" ,appstream-glib)
+ ("gettext" ,gettext-minimal)
+ ("glib:bin" ,glib "bin") ;; For glib-compile-resources
+ ("gtk+" ,gtk+ "bin") ;; For gtk-update-icon-cache
+ ("itstool" ,itstool)
+ ("pkg-config" ,pkg-config)
+ ("vala" ,vala)))
+ (propagated-inputs
+ `(("dconf" ,dconf)))
+ (inputs
+ `(("glib" ,glib)
+ ("gtk+" ,gtk+)
+ ("librsvg" ,librsvg)))
+ (synopsis "Mahjongg tile-matching game")
+ (description "GNOME Mahjongg is a game based on the classic Chinese
+tile-matching game Mahjong. It features multiple board layouts, tile themes,
+and a high score table.")
+ (home-page "https://wiki.gnome.org/Apps/Mahjongg")
+ (license license:gpl2+)))