Subject: [bug#60294] [PATCH v2] gnu: Add libxapp.

From: "Wamm K. D" <[email-masked]>
Date: Sat, 24 Dec 2022 18:54:49 -0600

* gnu/packages/cinnamon.scm (libxapp): New variable.
---
You were right about that copyright; /every/ file (which mentioned the
copyright) referenced regular LGPL other than the "copyright" file
under the "debian" directory, where it specified LGPL-3+.

 gnu/packages/cinnamon.scm | 76 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 76 insertions(+)

diff --git a/gnu/packages/cinnamon.scm b/gnu/packages/cinnamon.scm
index fe33e797e4..1b5cd44f65 100644
--- a/gnu/packages/cinnamon.scm
+++ b/gnu/packages/cinnamon.scm
@@ -26,6 +26,7 @@ (define-module (gnu packages cinnamon)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages)
+  #:use-module (gnu packages admin)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gettext)
@@ -37,6 +38,81 @@ (define-module (gnu packages cinnamon)
   #:use-module (gnu packages python)
   #:use-module (gnu packages xorg))
 
+(define-public libxapp
+  (package
+    (name "libxapp")
+    (version "2.4.2")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/linuxmint/xapp/")
+                    (commit version)))
+              (sha256
+               (base32
+                "0cy9g0zqcbx9zscc9qavqmghfyfb8244cg299llv1ha8n6mpxl3s"))))
+    (build-system meson-build-system)
+    (arguments
+     (list
+      #:modules
+      `((guix build meson-build-system)
+        (guix build utils)
+        ((guix build python-build-system) #:prefix python:))
+      #:imported-modules
+      `(,@%meson-build-system-modules
+        (guix build python-build-system))
+      #:configure-flags
+      #~(list (string-append
+               "-Dpy-overrides-dir="
+               (python:site-packages %build-inputs %outputs) "/gi/overrides"))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-before 'configure 'set-gtk-module-path
+            (lambda* (#:key inputs outputs #:allow-other-keys)
+              (substitute* "libxapp/meson.build"
+                (("gtk3_dep\\.get_pkgconfig_variable[(]'libdir'[)]")
+                 (string-append "'" (assoc-ref outputs "out") "/lib'")))
+
+              (substitute* "scripts/pastebin"
+                (("'nc'") (string-append "'"
+                                         (search-input-file inputs "/bin/nc")
+                                         "'")))
+
+              (substitute* "scripts/upload-system-info"
+                (("'inxi'") (string-append "'"
+                                           (search-input-file inputs "/bin/inxi")
+                                           "'"))
+                (("'/usr/bin/pastebin'") (string-append "'"
+                                                        (assoc-ref outputs "out")
+                                                        "/bin/pastebin'"))
+                (("'xdg-open'") (string-append "'"
+                                               (search-input-file inputs "/bin/xdg-open")
+                                               "'"))))))))
+    (inputs
+     (list dbus
+           glib ; for gio
+           gtk+
+           inxi-minimal ; used by upload-system-info
+           libdbusmenu
+           libgnomekbd
+           netcat ; used by pastebin
+           xdg-utils ; used by upload-system-info
+           ))
+    (native-inputs
+     (list gettext-minimal
+           `(,glib "bin") ; for glib-mkenums
+           gobject-introspection
+           pkg-config
+           python
+           python-pygobject
+           vala))
+    (home-page "https://github.com/linuxmint/xapp")
+    (synopsis "Library for traditional GTK applications")
+    (description
+     "The libxapp package contains the components which are common to multiple
+GTK desktop environments (Cinnamon, MATE and Xfce) and required to implement
+cross-DE solutions.")
+    (license license:lgpl3+)))
+
 (define-public cinnamon-desktop
   (package
     (name "cinnamon-desktop")
-- 
2.38.1