Subject: [bug#73019] [PATCH 2/2] gnu: Add blackbox-terminal.

From: Ashvith Shetty <[email-masked]>
Date: Wed, 4 Sep 2024 11:10:58 +0530

* gnu/packages/crates-io.scm (blackbox-terminal-0.14.0): New public variable.

Change-Id: I48ed0aae5fa4f1caed9d030bb4f36a57c80eefd9
---
 gnu/packages/gnome-xyz.scm | 48 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/gnome-xyz.scm b/gnu/packages/gnome-xyz.scm
index 99e4236ff7..c4b5c18172 100644
--- a/gnu/packages/gnome-xyz.scm
+++ b/gnu/packages/gnome-xyz.scm
@@ -65,6 +65,7 @@ (define-module (gnu packages gnome-xyz)
   #:use-module (gnu packages ibus)
   #:use-module (gnu packages inkscape)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-science)
@@ -1796,3 +1797,50 @@ (define-public libpqmarble
     (synopsis "Utility library for GNOME apps")
     (description "Utility library for GNOME apps.")
     (license license:gpl3)))
+
+(define-public blackbox-terminal
+  (package
+    (name "blackbox-terminal")
+    (version "0.14.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.gnome.org/raggesilver/blackbox")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0g7n2z0m7jjbn93zvx3ix7ph4mpncwq80cjjc2prp878cksj3g3r"))))
+    (build-system meson-build-system)
+    (arguments
+     (list #:glib-or-gtk? #t
+           #:tests? #t
+           #:configure-flags #~(list "-Dblackbox_is_flatpak=false")))
+    ;; The application works fine, regardless of where the dependencies
+    ;; were placed in either of native-inputs or inputs, at least when
+    ;; I tried building it locally. Would appreciate a review.
+    (native-inputs
+      (list
+        pkg-config
+        vala
+        python-3.10
+        desktop-file-utils           ; for update-desktop-database
+        `(,glib "bin")               ; for glib-compile-schemas, etc.
+        gettext-minimal))
+    ;; TODO: Add vte with experimental sixel support enabled.
+    ;; librsvg may also be needed as an addition dependency.
+    (inputs
+      (list
+        gtk
+        `(,gtk+ "bin")               ; gtk-update-icon-cache
+        vte-with-gtk-4
+        json-glib
+        libpqmarble
+        libadwaita
+        pcre2
+        libxml2                      ; meson config is probably broken - libxml2 is also required to build
+        libgee))
+    (home-page "https://gitlab.gnome.org/raggesilver/blackbox/")
+    (synopsis "A beautiful GTK 4 terminal")
+    (description "An elegant and customizable terminal for GNOME.")
+    (license license:gpl3)))
-- 
2.45.2