Subject: [PATCH wip-gnome v3 01/10] gnu: gtkmm@2: Remove inheritance from gtkmm@3.

From: Raghav Gururajan <[email-masked]>
Date: Mon, 26 Apr 2021 05:22:06 -0400

Remove inheritance to prevent rebuilds of packages like inkscape
and gtk+, whenever changes are made to gtkmm@3.

* gnu/packages/gtk.scm (gtkmm-2)[build-system,outputs,arguments,
native-inputs,synopsis,description,home-page,license]: New fields.
---
 gnu/packages/gtk.scm | 48 ++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 46 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 04a0db1161..81ac4a7197 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1660,7 +1660,6 @@ tutorial.")
 
 (define-public gtkmm-2
   (package
-    (inherit gtkmm)
     (name "gtkmm")
     (version "2.24.5")
     (source
@@ -1672,12 +1671,57 @@ tutorial.")
                        name "-" version ".tar.xz"))
        (sha256
         (base32 "0wkbzvsx4kgw16f6xjdc1dz7f77ldngdila4yi5lw2zrgcxsb006"))))
+    (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             #t))
+         (add-after 'install 'move-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc")))
+               (mkdir-p (string-append doc "/share"))
+               (rename-file
+                (string-append out "/share/doc")
+                (string-append doc "/share/doc"))
+               #t))))))
+    (native-inputs
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("m4" ,m4)
+       ("mm-common" ,mm-common)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)
+       ("xorg-server" ,xorg-server-for-tests)))
     (propagated-inputs
      `(("atkmm" ,atkmm-2.28)
        ("cairomm" ,cairomm-1.13)
        ("glibmm" ,glibmm-2.64)
        ("gtk+" ,gtk+-2)
-       ("pangomm" ,pangomm-2.42)))))
+       ("pangomm" ,pangomm-2.42)))
+    (synopsis "C++ Interfaces for GTK+ and GNOME")
+    (description "GTKmm is the official C++ interface for the popular GUI
+library GTK+.  Highlights include typesafe callbacks, and a comprehensive set of
+widgets that are easily extensible via inheritance.  You can create user
+interfaces either in code or with the Glade User Interface designer, using
+libglademm.  There's extensive documentation, including API reference and a
+tutorial.")
+    (home-page "https://gtkmm.org/")
+    (license
+     (list
+      ;; Library
+      license:lgpl2.1+
+      ;; Tools
+      license:gpl2+))))
 
 (define-public gtksourceviewmm
   (package
-- 
2.31.1