Subject: [bug#42958] Big changes from wip-desktop.

From: Raghav Gururajan <[email-masked]>
Date: Thu, 25 Mar 2021 08:08:36 -0400

@(rekado|lle-bout|danny),

Could any of you please review and merge the attached patches to 
core-updates?

These patches has been successfully built on bayfront, from which you 
can obtain substitutes, if needed.

I will send some more patches for this #42958 by tomorrow.

It would be great if we could together finish-off this #42958 ASAP, so 
that I can bring remaining patches from wip-deskop.

P.S
Please pardon two cosmetic changes patches, which were done very long 
ago and had to use it to cleanly apply succeeding patches. Also, I must 
have used #t with lambda out of habit.

Regards,
RG.
From 2df41c9b1d7012f2eb3490280630f5324584eb9f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 06:39:29 -0500
Subject: [PATCH 01/56] gnu: glib: Make some cosmetic changes.

* gnu/packages/glib.scm (glib): Make some cosmetic changes.
---
 gnu/packages/glib.scm | 425 ++++++++++++++++++++----------------------
 1 file changed, 202 insertions(+), 223 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index fdbe6d0cdf..8e14aa8c5a 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -170,229 +170,208 @@ shared NFS home directories.")
 
 (define glib
   (package
-   (name "glib")
-   (version "2.62.6")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/"
-                                name "/" (string-take version 4) "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "174bsmbmcvaw69ff9g60q5sx0fn23rkhqcwqz17h5s7sprps4kqh"))
-            (patches (search-patches "glib-appinfo-watch.patch"
-                                     "glib-tests-timer.patch"))
-            (modules '((guix build utils)))
-            (snippet
-             '(begin
-                (substitute* "tests/spawn-test.c"
-                  (("/bin/sh") "sh"))
-                #t))))
-   (build-system meson-build-system)
-   (outputs '("out"           ; everything
-              "bin"           ; glib-mkenums, gtester, etc.; depends on Python
-              "debug"))
-   (propagated-inputs
-    `(("pcre" ,pcre)  ; in the Requires.private field of glib-2.0.pc
-      ("libffi" ,libffi) ; in the Requires.private field of gobject-2.0.pc
-      ;; These are in the Requires.private field of gio-2.0.pc
-      ("util-linux" ,util-linux "lib")  ;for libmount
-      ("zlib" ,zlib)))
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("m4" ,m4) ; for installing m4 macros
-      ("dbus" ,dbus)                              ; for GDBus tests
-      ("pkg-config" ,pkg-config)
-      ("python" ,python-minimal-wrapper)
-      ("perl" ,perl)                              ; needed by GIO tests
-      ("tzdata" ,tzdata-for-tests)))                  ; for tests/gdatetime.c
-   (arguments
-    `(#:disallowed-references (,tzdata-for-tests)
-      #:configure-flags '("-Dselinux=disabled")
-      #:phases
-      (modify-phases %standard-phases
-        (add-after 'unpack 'patch-dbus-launch-path
-          (lambda* (#:key inputs #:allow-other-keys)
-            (let ((dbus (assoc-ref inputs "dbus")))
-              (substitute* "gio/gdbusaddress.c"
-                (("command_line = g_strdup_printf \\(\"dbus-launch")
-                 (string-append "command_line = g_strdup_printf (\""
-                                dbus "/bin/dbus-launch")))
-              #t)))
-        (add-after 'unpack 'patch-gio-launch-desktop
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out")))
-              ;; See also <https://gitlab.gnome.org/GNOME/glib/issues/1633>
-              ;; for another future fix.
-              (substitute* "gio/gdesktopappinfo.c"
-               (("gio-launch-desktop")
-                (string-append out "/libexec/gio-launch-desktop")))
-              #t)))
-        ;; TODO: Remove the conditional in the next core-updates cycle.
-        ;; Needed to build glib on slower ARM nodes.
-        ,@(if (string-prefix? "arm" (%current-system))
-              `((add-after 'unpack 'increase-test-timeout
-                  (lambda _
-                    (substitute* "meson.build"
-                      (("test_timeout = 60")
-                       "test_timeout = 90")
-                      (("test_timeout_slow = 120")
-                       "test_timeout_slow = 180")))))
-              '())
-        (add-before 'build 'pre-build
-          (lambda* (#:key inputs outputs #:allow-other-keys)
-            ;; For tests/gdatetime.c.
-            (setenv "TZDIR"
-                    (string-append (assoc-ref inputs "tzdata")
-                                   "/share/zoneinfo"))
-
-            ;; Some tests want write access there.
-            (setenv "HOME" (getcwd))
-            (setenv "XDG_CACHE_HOME" (getcwd))
-            #t))
-        (add-after 'unpack 'disable-failing-tests
-          (lambda _
-            (let ((disable
-                   (lambda (test-file test-paths)
-                     (define pattern+procs
-                       (map (lambda (test-path)
-                              (cons
-                               ;; XXX: only works for single line statements.
-                               (format #f "g_test_add_func.*\"~a\".*" test-path)
-                               (const "")))
-                            test-paths))
-                     (substitute test-file pattern+procs)))
-                  (failing-tests
-                   '(("glib/tests/thread.c"
-                      (;; prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64
-                       ;; as found on hydra.gnu.org, and strace(1) doesn't
-                       ;; recognize it.
-                       "/thread/thread4"))
-
-                     ;; This tries to find programs in FHS directories.
-                     ("glib/tests/utils.c"
-                      ("/utils/find-program"))
-
-                     ;; This fails because "glib/tests/echo-script" cannot be
-                     ;; found.
-                     ("glib/tests/spawn-singlethread.c"
-                      ("/gthread/spawn-script"))
-
-                     ("glib/tests/timer.c"
-                      (;; fails if compiler optimizations are enabled, which they
-                       ;; are by default.
-                       "/timer/stop"))
-
-                     ("gio/tests/gapplication.c"
-                      (;; XXX: proven to be unreliable.  See:
-                       ;;  <https://bugs.debian.org/756273>
-                       ;;  <http://bugs.gnu.org/18445>
-                       "/gapplication/quit"
-
-                       ;; XXX: fails randomly for unknown reason. See:
-                       ;;  <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00215.html>
-                       "/gapplication/local-actions"))
-
-                     ("gio/tests/contenttype.c"
-                      (;; XXX: requires shared-mime-info.
-                       "/contenttype/guess"
-                       "/contenttype/guess_svg_from_data"
-                       "/contenttype/subtype"
-                       "/contenttype/list"
-                       "/contenttype/icon"
-                       "/contenttype/symbolic-icon"
-                       "/contenttype/tree"))
-
-                     ("gio/tests/appinfo.c"
-                      (;; XXX: requires update-desktop-database.
-                       "/appinfo/associations"))
-
-                     ("gio/tests/desktop-app-info.c"
-                      (;; XXX: requires update-desktop-database.
-                       "/desktop-app-info/delete"
-                       "/desktop-app-info/default"
-                       "/desktop-app-info/fallback"
-                       "/desktop-app-info/lastused"
-                       "/desktop-app-info/search"))
-
-                     ("gio/tests/gdbus-peer.c"
-                      (;; Requires /etc/machine-id.
-                       "/gdbus/codegen-peer-to-peer"))
-
-                     ("gio/tests/gdbus-address-get-session.c"
-                      (;; Requires /etc/machine-id.
-                       "/gdbus/x11-autolaunch"))
-
-                     ("gio/tests/gsocketclient-slow.c"
-                      (;; These tests tries to resolve "localhost", and fails.
-                       "/socket-client/happy-eyeballs/slow"
-                       "/socket-client/happy-eyeballs/cancellation/delayed"))
-
-                     )))
-              (for-each (lambda (x) (apply disable x)) failing-tests)
-              #t)))
-        (replace 'check
-          (lambda* (#:key tests? #:allow-other-keys)
-            (if tests?
-                (begin
-                  (setenv "MESON_TESTTHREADS"
-                          (number->string (parallel-job-count)))
-                  ;; Do not run tests marked as "flaky".
-                  (invoke "meson" "test" "--no-suite" "flaky"))
-                #t)))
-        ;; TODO: meson does not permit the bindir to be outside of prefix.
-        ;; See https://github.com/mesonbuild/meson/issues/2561
-        ;; We can remove this once meson is patched.
-        (add-after 'install 'move-executables
-          (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out"))
-                  (bin (assoc-ref outputs "bin")))
-              (mkdir-p bin)
-              (rename-file (string-append out "/bin")
-                           (string-append bin "/bin"))
-              ;; This one is an implementation detail of glib.
-              ;; It is wrong that that's in "/bin" in the first place,
-              ;; but that's what upstream is doing right now.
-              ;; See <https://gitlab.gnome.org/GNOME/glib/issues/1633>.
-              (mkdir (string-append out "/libexec"))
-              (rename-file (string-append bin "/bin/gio-launch-desktop")
-                           (string-append out "/libexec/gio-launch-desktop"))
-              ;; Do not refer to "bindir", which points to "${prefix}/bin".
-              ;; We don't patch "bindir" to point to "$bin/bin", because that
-              ;; would create a reference cycle between the "out" and "bin"
-              ;; outputs.
-              (substitute* (list (string-append out "/lib/pkgconfig/gio-2.0.pc")
-                                 (string-append out "/lib/pkgconfig/glib-2.0.pc"))
-                (("bindir=\\$\\{prefix\\}/bin") "")
-                (("=\\$\\{bindir\\}/") "="))
-              #t))))))
-      ;; TODO: see above for explanation.
-      ;; #:configure-flags (list (string-append "--bindir="
-      ;;                                        (assoc-ref %outputs "bin")
-      ;;                                        "/bin"))
-
-   (native-search-paths
-    ;; This variable is not really "owned" by GLib, but several related
-    ;; packages refer to it: gobject-introspection's tools use it as a search
-    ;; path for .gir files, and it's also a search path for schemas produced
-    ;; by 'glib-compile-schemas'.
-    (list (search-path-specification
-           (variable "XDG_DATA_DIRS")
-           (files '("share")))
-          ;; To load extra gio modules from glib-networking, etc.
-          (search-path-specification
-           (variable "GIO_EXTRA_MODULES")
-           (files '("lib/gio/modules")))))
-   (search-paths native-search-paths)
-   (properties '((hidden? . #t)))
-
-   (synopsis "Thread-safe general utility library; basis of GTK+ and GNOME")
-   (description
-    "GLib provides data structure handling for C, portability wrappers,
-and interfaces for such runtime functionality as an event loop, threads,
-dynamic loading, and an object system.")
-   (home-page "https://developer.gnome.org/glib/")
-   (license license:lgpl2.1+)))
+    (name "glib")
+    (version "2.62.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/"
+                       name "/" (string-take version 4) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "174bsmbmcvaw69ff9g60q5sx0fn23rkhqcwqz17h5s7sprps4kqh"))
+       (patches
+        (search-patches "glib-tests-timer.patch" "glib-appinfo-watch.patch"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (substitute* "tests/spawn-test.c"
+             (("/bin/sh") "sh"))
+           #t))))
+    (properties '((hidden? . #t)))
+    (build-system meson-build-system)
+    (outputs '("out"   ; everything
+               "bin")) ; glib-mkenums, gtester, etc.; depends on Python
+    (arguments
+     `(#:disallowed-references (,tzdata-for-tests)
+       #:phases
+       (modify-phases %standard-phases
+         ;; TODO: Remove the conditional in the next core-updates cycle.
+         ;; Needed to build glib on slower ARM nodes.
+         ,@(if (string-prefix? "arm" (%current-system))
+               `((add-after 'unpack 'increase-test-timeout
+                   (lambda _
+                     (substitute* "meson.build"
+                       (("test_timeout = 60")
+                        "test_timeout = 90")
+                       (("test_timeout_slow = 120")
+                        "test_timeout_slow = 180")))))
+               '())
+         (add-after 'unpack 'patch-dbus-launch-path
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((dbus (assoc-ref inputs "dbus")))
+               (substitute* "gio/gdbusaddress.c"
+                 (("command_line = g_strdup_printf \\(\"dbus-launch")
+                  (string-append "command_line = g_strdup_printf (\""
+                                 dbus "/bin/dbus-launch")))
+               #t)))
+         (add-after 'unpack 'patch-gio-launch-desktop
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               ;; See also <https://gitlab.gnome.org/GNOME/glib/issues/1633>
+               ;; for another future fix.
+               (substitute* "gio/gdesktopappinfo.c"
+                 (("gio-launch-desktop")
+                  (string-append out "/libexec/gio-launch-desktop")))
+               #t)))
+         (add-before 'build 'pre-build
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             ;; For tests/gdatetime.c.
+             (setenv "TZDIR"
+                     (string-append (assoc-ref inputs "tzdata")
+                                    "/share/zoneinfo"))
+             ;; Some tests want write access there.
+             (setenv "HOME" (getcwd))
+             (setenv "XDG_CACHE_HOME" (getcwd))
+             #t))
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (let ((disable
+                    (lambda (test-file test-paths)
+                      (define pattern+procs
+                        (map (lambda (test-path)
+                               (cons
+                                ;; XXX: only works for single line statements.
+                                (format #f "g_test_add_func.*\"~a\".*" test-path)
+                                (const "")))
+                             test-paths))
+                      (substitute test-file pattern+procs)))
+                   (failing-tests
+                    '(("glib/tests/thread.c"
+                       ( ;; prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64
+                        ;; as found on hydra.gnu.org, and strace(1) doesn't
+                        ;; recognize it.
+                        "/thread/thread4"))
+                      ;; This tries to find programs in FHS directories.
+                      ("glib/tests/utils.c"
+                       ("/utils/find-program"))
+                      ;; This fails because "glib/tests/echo-script" cannot be
+                      ;; found.
+                      ("glib/tests/spawn-singlethread.c"
+                       ("/gthread/spawn-script"))
+                      ("glib/tests/timer.c"
+                       ( ;; fails if compiler optimizations are enabled, which they
+                        ;; are by default.
+                        "/timer/stop"))
+                      ("gio/tests/gapplication.c"
+                       ( ;; XXX: proven to be unreliable.  See:
+                        ;;  <https://bugs.debian.org/756273>
+                        ;;  <http://bugs.gnu.org/18445>
+                        "/gapplication/quit"
+                        ;; XXX: fails randomly for unknown reason. See:
+                        ;;  <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00215.html>
+                        "/gapplication/local-actions"))
+                      ("gio/tests/contenttype.c"
+                       ( ;; XXX: requires shared-mime-info.
+                        "/contenttype/guess"
+                        "/contenttype/guess_svg_from_data"
+                        "/contenttype/subtype"
+                        "/contenttype/list"
+                        "/contenttype/icon"
+                        "/contenttype/symbolic-icon"
+                        "/contenttype/tree"))
+                      ("gio/tests/appinfo.c"
+                       ( ;; XXX: requires update-desktop-database.
+                        "/appinfo/associations"))
+                      ("gio/tests/desktop-app-info.c"
+                       ( ;; XXX: requires update-desktop-database.
+                        "/desktop-app-info/delete"
+                        "/desktop-app-info/default"
+                        "/desktop-app-info/fallback"
+                        "/desktop-app-info/lastused"
+                        "/desktop-app-info/search"))
+                      ("gio/tests/gdbus-peer.c"
+                       ( ;; Requires /etc/machine-id.
+                        "/gdbus/codegen-peer-to-peer"))
+                      ("gio/tests/gdbus-address-get-session.c"
+                       ( ;; Requires /etc/machine-id.
+                        "/gdbus/x11-autolaunch"))
+                      ("gio/tests/gsocketclient-slow.c"
+                       ( ;; These tests tries to resolve "localhost", and fails.
+                        "/socket-client/happy-eyeballs/slow"
+                        "/socket-client/happy-eyeballs/cancellation/delayed")))))
+               (for-each (lambda (x) (apply disable x)) failing-tests)
+               #t)))
+         (replace 'check
+           (lambda _
+             (setenv "MESON_TESTTHREADS"
+                     (number->string (parallel-job-count)))
+             ;; Do not run tests marked as "flaky".
+             (invoke "meson" "test" "--no-suite" "flaky")))
+         ;; TODO: meson does not permit the bindir to be outside of prefix.
+         ;; See https://github.com/mesonbuild/meson/issues/2561
+         ;; We can remove this once meson is patched.
+         (add-after 'install 'move-executables
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (bin (assoc-ref outputs "bin")))
+               (mkdir-p bin)
+               (rename-file (string-append out "/bin")
+                            (string-append bin "/bin"))
+               ;; This one is an implementation detail of glib.
+               ;; It is wrong that that's in "/bin" in the first place,
+               ;; but that's what upstream is doing right now.
+               ;; See <https://gitlab.gnome.org/GNOME/glib/issues/1633>.
+               (mkdir (string-append out "/libexec"))
+               (rename-file (string-append bin "/bin/gio-launch-desktop")
+                            (string-append out "/libexec/gio-launch-desktop"))
+               ;; Do not refer to "bindir", which points to "${prefix}/bin".
+               ;; We don't patch "bindir" to point to "$bin/bin", because that
+               ;; would create a reference cycle between the "out" and "bin"
+               ;; outputs.
+               (substitute* (list (string-append out "/lib/pkgconfig/gio-2.0.pc")
+                                  (string-append out "/lib/pkgconfig/glib-2.0.pc"))
+                 (("bindir=\\$\\{prefix\\}/bin") "")
+                 (("=\\$\\{bindir\\}/") "="))
+               #t))))))
+    ;; TODO: see above for explanation.
+    ;; #:configure-flags (list (string-append "--bindir="
+    ;;                                        (assoc-ref %outputs "bin")
+    ;;                                        "/bin"))
+    (native-inputs
+     `(("dbus" ,dbus)                   ; for GDBus tests
+       ("gettext" ,gettext-minimal)
+       ("m4" ,m4)                       ; for installing m4 macros
+       ("perl" ,perl)                   ; needed by GIO tests
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("tzdata" ,tzdata-for-tests)))   ; for tests/gdatetime.c
+    (propagated-inputs
+     `(("libffi" ,libffi) ; in the Requires.private field of gobject-2.0.pc
+       ("pcre" ,pcre)   ; in the Requires.private field of glib-2.0.pc
+       ("util-linux" ,util-linux "lib") ;for libmount
+       ("zlib" ,zlib))) ; in the Requires.private field of glib-2.0.pc
+    (native-search-paths
+     ;; This variable is not really "owned" by GLib, but several related
+     ;; packages refer to it: gobject-introspection's tools use it as a search
+     ;; path for .gir files, and it's also a search path for schemas produced
+     ;; by 'glib-compile-schemas'.
+     (list
+      (search-path-specification
+       (variable "XDG_DATA_DIRS")
+       (files '("share")))
+      ;; To load extra gio modules from glib-networking, etc.
+      (search-path-specification
+       (variable "GIO_EXTRA_MODULES")
+       (files '("lib/gio/modules")))))
+    (search-paths native-search-paths)
+    (synopsis "Thread-safe general utility library; basis of GTK+ and GNOME")
+    (description "GLib provides data structure handling for C, portability
+wrappers, and interfaces for such runtime functionality as an event loop,
+threads, dynamic loading, and an object system.")
+    (home-page "https://developer.gnome.org/glib/")
+    (license license:lgpl2.1+)))
 
 (define-public glib-with-documentation
   ;; glib's doc must be built in a separate package since it requires gtk-doc,
-- 
2.31.0

From 76fa7c146a5395cbc4ed36712eb7cc1ae71d378f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 07:22:07 -0500
Subject: [PATCH 02/56] gnu: glib: Update to 2.68.0.

* gnu/packages/glib.scm (glib) [version]: Update to 2.68.0.
[patches]: Remove glib-tests-timer.patch.
[arguments]<#:phases>['patch-python-references]: New phase.
['pre-check]: New phase.
['move-bin]: New phase.
['patch-dbus-launch-path]: Remove phase.
['patch-gio-launch-desktop]: Remove phase.
['pre-build]: Remove phase.
['disable-failing-tests]: Modify phase.
['check]: Remove phase.
['move-executables]: Remove phase.
[native-inputs]: Add intltool, python, libxml2 and libxslt.
Remove dbus.
[inputs]: Add bash-completion, dbus and libelf.
[propagated-inputs]: Add libselinux.
* gnu/packages/patches/glib-tests-timer.patch: Delete file.
* gnu/local.mk (dist_patch_DATA): Adjust.
---
 gnu/local.mk                                |   1 -
 gnu/packages/glib.scm                       | 168 ++++++--------------
 gnu/packages/patches/glib-tests-timer.patch |  15 --
 3 files changed, 53 insertions(+), 131 deletions(-)
 delete mode 100644 gnu/packages/patches/glib-tests-timer.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 572f439cae..d070ab08a9 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1068,7 +1068,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/ghostscript-no-header-uuid.patch		\
   %D%/packages/patches/ghostscript-no-header-creationdate.patch \
   %D%/packages/patches/glib-appinfo-watch.patch			\
-  %D%/packages/patches/glib-tests-timer.patch			\
   %D%/packages/patches/glibc-CVE-2018-11236.patch		\
   %D%/packages/patches/glibc-CVE-2018-11237.patch		\
   %D%/packages/patches/glibc-CVE-2019-7309.patch		\
diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 8e14aa8c5a..6d9df5375a 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -36,11 +36,13 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
   #:use-module (gnu packages documentation)
+  #:use-module (gnu packages elf)
   #:use-module (gnu packages enlightenment)
   #:use-module (gnu packages file)
   #:use-module (gnu packages flex)
@@ -60,6 +62,7 @@
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages selinux)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
@@ -171,7 +174,7 @@ shared NFS home directories.")
 (define glib
   (package
     (name "glib")
-    (version "2.62.6")
+    (version "2.68.0")
     (source
      (origin
        (method url-fetch)
@@ -180,9 +183,9 @@ shared NFS home directories.")
                        name "/" (string-take version 4) "/"
                        name "-" version ".tar.xz"))
        (sha256
-        (base32 "174bsmbmcvaw69ff9g60q5sx0fn23rkhqcwqz17h5s7sprps4kqh"))
+        (base32 "1sh3h6b734cxhdd1qlzvhxq6rc7k73dsisap5y3s419s9xc4ywv7"))
        (patches
-        (search-patches "glib-tests-timer.patch" "glib-appinfo-watch.patch"))
+        (search-patches "glib-appinfo-watch.patch"))
        (modules '((guix build utils)))
        (snippet
         '(begin
@@ -208,24 +211,31 @@ shared NFS home directories.")
                        (("test_timeout_slow = 120")
                         "test_timeout_slow = 180")))))
                '())
-         (add-after 'unpack 'patch-dbus-launch-path
+         (add-after 'unpack 'disable-failing-tests
+           (lambda _
+             (with-directory-excursion "glib/tests"
+               (substitute* '("unix.c" "utils.c")
+                 (("[ \t]*g_test_add_func.*;") "")))
+             (with-directory-excursion "gio/tests"
+               (substitute* '("contenttype.c" "gdbus-address-get-session.c"
+                              "gdbus-peer.c" "appinfo.c" "desktop-app-info.c")
+                 (("[ \t]*g_test_add_func.*;") "")))
+             #t))
+         ;; Python references are not being patched in patch-phase of build,
+         ;; despite using python-wrapper as input. So we patch them manually.
+         (add-after 'unpack 'patch-python-references
            (lambda* (#:key inputs #:allow-other-keys)
-             (let ((dbus (assoc-ref inputs "dbus")))
-               (substitute* "gio/gdbusaddress.c"
-                 (("command_line = g_strdup_printf \\(\"dbus-launch")
-                  (string-append "command_line = g_strdup_printf (\""
-                                 dbus "/bin/dbus-launch")))
-               #t)))
-         (add-after 'unpack 'patch-gio-launch-desktop
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out")))
-               ;; See also <https://gitlab.gnome.org/GNOME/glib/issues/1633>
-               ;; for another future fix.
-               (substitute* "gio/gdesktopappinfo.c"
-                 (("gio-launch-desktop")
-                  (string-append out "/libexec/gio-launch-desktop")))
-               #t)))
-         (add-before 'build 'pre-build
+             (substitute* '("gio/gdbus-2.0/codegen/gdbus-codegen.in"
+                            "glib/gtester-report.in"
+                            "gobject/glib-genmarshal.in"
+                            "gobject/glib-mkenums.in")
+               (("@PYTHON@")
+                (string-append (assoc-ref inputs "python")
+                               "/bin/python"
+                               ,(version-major+minor
+                                 (package-version python)))))
+             #t))
+         (add-before 'check 'pre-check
            (lambda* (#:key inputs outputs #:allow-other-keys)
              ;; For tests/gdatetime.c.
              (setenv "TZDIR"
@@ -235,103 +245,23 @@ shared NFS home directories.")
              (setenv "HOME" (getcwd))
              (setenv "XDG_CACHE_HOME" (getcwd))
              #t))
-         (add-after 'unpack 'disable-failing-tests
-           (lambda _
-             (let ((disable
-                    (lambda (test-file test-paths)
-                      (define pattern+procs
-                        (map (lambda (test-path)
-                               (cons
-                                ;; XXX: only works for single line statements.
-                                (format #f "g_test_add_func.*\"~a\".*" test-path)
-                                (const "")))
-                             test-paths))
-                      (substitute test-file pattern+procs)))
-                   (failing-tests
-                    '(("glib/tests/thread.c"
-                       ( ;; prlimit(2) returns ENOSYS on Linux 2.6.32-5-xen-amd64
-                        ;; as found on hydra.gnu.org, and strace(1) doesn't
-                        ;; recognize it.
-                        "/thread/thread4"))
-                      ;; This tries to find programs in FHS directories.
-                      ("glib/tests/utils.c"
-                       ("/utils/find-program"))
-                      ;; This fails because "glib/tests/echo-script" cannot be
-                      ;; found.
-                      ("glib/tests/spawn-singlethread.c"
-                       ("/gthread/spawn-script"))
-                      ("glib/tests/timer.c"
-                       ( ;; fails if compiler optimizations are enabled, which they
-                        ;; are by default.
-                        "/timer/stop"))
-                      ("gio/tests/gapplication.c"
-                       ( ;; XXX: proven to be unreliable.  See:
-                        ;;  <https://bugs.debian.org/756273>
-                        ;;  <http://bugs.gnu.org/18445>
-                        "/gapplication/quit"
-                        ;; XXX: fails randomly for unknown reason. See:
-                        ;;  <https://lists.gnu.org/archive/html/guix-devel/2016-04/msg00215.html>
-                        "/gapplication/local-actions"))
-                      ("gio/tests/contenttype.c"
-                       ( ;; XXX: requires shared-mime-info.
-                        "/contenttype/guess"
-                        "/contenttype/guess_svg_from_data"
-                        "/contenttype/subtype"
-                        "/contenttype/list"
-                        "/contenttype/icon"
-                        "/contenttype/symbolic-icon"
-                        "/contenttype/tree"))
-                      ("gio/tests/appinfo.c"
-                       ( ;; XXX: requires update-desktop-database.
-                        "/appinfo/associations"))
-                      ("gio/tests/desktop-app-info.c"
-                       ( ;; XXX: requires update-desktop-database.
-                        "/desktop-app-info/delete"
-                        "/desktop-app-info/default"
-                        "/desktop-app-info/fallback"
-                        "/desktop-app-info/lastused"
-                        "/desktop-app-info/search"))
-                      ("gio/tests/gdbus-peer.c"
-                       ( ;; Requires /etc/machine-id.
-                        "/gdbus/codegen-peer-to-peer"))
-                      ("gio/tests/gdbus-address-get-session.c"
-                       ( ;; Requires /etc/machine-id.
-                        "/gdbus/x11-autolaunch"))
-                      ("gio/tests/gsocketclient-slow.c"
-                       ( ;; These tests tries to resolve "localhost", and fails.
-                        "/socket-client/happy-eyeballs/slow"
-                        "/socket-client/happy-eyeballs/cancellation/delayed")))))
-               (for-each (lambda (x) (apply disable x)) failing-tests)
-               #t)))
-         (replace 'check
-           (lambda _
-             (setenv "MESON_TESTTHREADS"
-                     (number->string (parallel-job-count)))
-             ;; Do not run tests marked as "flaky".
-             (invoke "meson" "test" "--no-suite" "flaky")))
-         ;; TODO: meson does not permit the bindir to be outside of prefix.
-         ;; See https://github.com/mesonbuild/meson/issues/2561
-         ;; We can remove this once meson is patched.
-         (add-after 'install 'move-executables
+         ;; Meson does not permit the bindir to be outside of prefix.
+         (add-after 'install 'move-bin
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (bin (assoc-ref outputs "bin")))
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (assoc-ref outputs "bin")))
                (mkdir-p bin)
-               (rename-file (string-append out "/bin")
-                            (string-append bin "/bin"))
-               ;; This one is an implementation detail of glib.
-               ;; It is wrong that that's in "/bin" in the first place,
-               ;; but that's what upstream is doing right now.
-               ;; See <https://gitlab.gnome.org/GNOME/glib/issues/1633>.
-               (mkdir (string-append out "/libexec"))
-               (rename-file (string-append bin "/bin/gio-launch-desktop")
-                            (string-append out "/libexec/gio-launch-desktop"))
+               (rename-file
+                (string-append out "/bin")
+                (string-append bin "/bin"))
                ;; Do not refer to "bindir", which points to "${prefix}/bin".
                ;; We don't patch "bindir" to point to "$bin/bin", because that
                ;; would create a reference cycle between the "out" and "bin"
                ;; outputs.
-               (substitute* (list (string-append out "/lib/pkgconfig/gio-2.0.pc")
-                                  (string-append out "/lib/pkgconfig/glib-2.0.pc"))
+               (substitute*
+                   (list
+                    (string-append out "/lib/pkgconfig/gio-2.0.pc")
+                    (string-append out "/lib/pkgconfig/glib-2.0.pc"))
                  (("bindir=\\$\\{prefix\\}/bin") "")
                  (("=\\$\\{bindir\\}/") "="))
                #t))))))
@@ -340,15 +270,23 @@ shared NFS home directories.")
     ;;                                        (assoc-ref %outputs "bin")
     ;;                                        "/bin"))
     (native-inputs
-     `(("dbus" ,dbus)                   ; for GDBus tests
-       ("gettext" ,gettext-minimal)
+     `(("gettext" ,gettext-minimal)
+       ("libintl" ,intltool)
        ("m4" ,m4)                       ; for installing m4 macros
        ("perl" ,perl)                   ; needed by GIO tests
        ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("tzdata" ,tzdata-for-tests)))   ; for tests/gdatetime.c
+       ("python" ,python)               ; For 'patch-python-references
+       ("python-wrapper" ,python-wrapper)
+       ("tzdata" ,tzdata-for-tests)     ; for tests/gdatetime.c
+       ("xmllint" ,libxml2)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("bash-completion" ,bash-completion)
+       ("dbus" ,dbus)
+       ("libelf" ,libelf)))
     (propagated-inputs
      `(("libffi" ,libffi) ; in the Requires.private field of gobject-2.0.pc
+       ("libselinux" ,libselinux) ; in the Requires.private field of gio-2.0.pc
        ("pcre" ,pcre)   ; in the Requires.private field of glib-2.0.pc
        ("util-linux" ,util-linux "lib") ;for libmount
        ("zlib" ,zlib))) ; in the Requires.private field of glib-2.0.pc
diff --git a/gnu/packages/patches/glib-tests-timer.patch b/gnu/packages/patches/glib-tests-timer.patch
deleted file mode 100644
index e37425c0c8..0000000000
--- a/gnu/packages/patches/glib-tests-timer.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-* On i686 floating-point roundoff errors could sometimes cause this check to
-  fail depending on the elapsed microseconds.  Improve rounding by adding a
-  fractional bit.
-
---- glib-2.40.0/glib/tests/timer.c	2014-03-05 08:05:42.000000000 -0600
-+++ glib-2.40.0/glib/tests/timer.c	2014-07-10 16:33:12.746862822 -0500
-@@ -35,7 +35,7 @@
-   elapsed = g_timer_elapsed (timer, &micros);
- 
-   g_assert_cmpfloat (elapsed, <, 1.0);
--  g_assert_cmpuint (micros, ==, ((guint64)(elapsed * 1e6)) % 1000000);
-+  g_assert_cmpuint (micros, ==, ((guint64)(elapsed * 1e6 + 0.5)) % 1000000);
- 
-   g_timer_destroy (timer);
- }
-- 
2.31.0

From 3b89c3da9ff7f444d4a9df5d01816e3bf35fb110 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 25 Mar 2021 02:14:27 -0400
Subject: [PATCH 03/56] gnu: glib: Enable man pages.

* gnu/packages/glib.scm (glib)[arguments]<#:configure-flags>[-Dman]: New flag.
[native-inputs]: Add docbook-xsl.
---
 gnu/packages/glib.scm | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 6d9df5375a..27c36d40bb 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -198,6 +198,7 @@ shared NFS home directories.")
                "bin")) ; glib-mkenums, gtester, etc.; depends on Python
     (arguments
      `(#:disallowed-references (,tzdata-for-tests)
+       #:configure-flags '("-Dman=true")
        #:phases
        (modify-phases %standard-phases
          ;; TODO: Remove the conditional in the next core-updates cycle.
@@ -270,7 +271,8 @@ shared NFS home directories.")
     ;;                                        (assoc-ref %outputs "bin")
     ;;                                        "/bin"))
     (native-inputs
-     `(("gettext" ,gettext-minimal)
+     `(("docbook-xsl" ,docbook-xsl)
+       ("gettext" ,gettext-minimal)
        ("libintl" ,intltool)
        ("m4" ,m4)                       ; for installing m4 macros
        ("perl" ,perl)                   ; needed by GIO tests
-- 
2.31.0

From 9491a8b00f8e7a859fcc49e28ec45f39901ea10f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 07:45:50 -0500
Subject: [PATCH 04/56] gnu: glib: Update synopsis, description and home-page.

* gnu/packages/glib.scm (glib) [synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/glib.scm | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 27c36d40bb..72e9b7a91f 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -306,11 +306,12 @@ shared NFS home directories.")
        (variable "GIO_EXTRA_MODULES")
        (files '("lib/gio/modules")))))
     (search-paths native-search-paths)
-    (synopsis "Thread-safe general utility library; basis of GTK+ and GNOME")
-    (description "GLib provides data structure handling for C, portability
-wrappers, and interfaces for such runtime functionality as an event loop,
-threads, dynamic loading, and an object system.")
-    (home-page "https://developer.gnome.org/glib/")
+    (synopsis "Low-level core library for GNOME projects")
+    (description "GLib provides the core application building blocks for
+libraries and applications written in C.  It provides the core object system
+used in GNOME, the main loop implementation, and a large set of utility
+functions for strings and common data structures.")
+    (home-page "https://wiki.gnome.org/Projects/GLib")
     (license license:lgpl2.1+)))
 
 (define-public glib-with-documentation
-- 
2.31.0

From f2723dc42ac7c5aafd2cc7ddab1d5e606e3a50c6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 09:37:00 -0500
Subject: [PATCH 05/56] gnu: glib-with-documentation: Make some cosmetic
 changes.

* gnu/packages/glib.scm (glib-with-documentation): Make some cosmetic changes.
---
 gnu/packages/glib.scm | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 72e9b7a91f..9ec1c3904d 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -321,8 +321,8 @@ functions for strings and common data structures.")
     (properties (alist-delete 'hidden? (package-properties glib)))
     (outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference
     (native-inputs
-     `(("gtk-doc" ,gtk-doc)             ; for the doc
-       ("docbook-xml" ,docbook-xml)
+     `(("docbook-xml" ,docbook-xml)
+       ("gtk-doc" ,gtk-doc)             ; for the doc
        ("libxml2" ,libxml2)
        ,@(package-native-inputs glib)))
     (arguments
@@ -333,12 +333,13 @@ functions for strings and common data structures.")
         `(modify-phases ,phases
            (add-after 'install 'move-doc
              (lambda* (#:key outputs #:allow-other-keys)
-               (let ((out (assoc-ref outputs "out"))
-                     (doc (assoc-ref outputs "doc"))
-                     (html (string-append "/share/gtk-doc")))
-                 (copy-recursively (string-append out html)
-                                   (string-append doc html))
-                 (delete-file-recursively (string-append out html))
+               (let* ((out (assoc-ref outputs "out"))
+                      (doc (assoc-ref outputs "doc"))
+                      (html (string-append "/share/gtk-doc")))
+                 (mkdir-p (string-append doc "/share"))
+                 (rename-file
+                  (string-append out html)
+                  (string-append doc html))
                  #t)))))))))
 
 (define gobject-introspection
-- 
2.31.0

From 1d9e2ffcae508465323edc4826a681d336a5aa87 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 09:39:52 -0500
Subject: [PATCH 06/56] gnu: glib-with-documentation: Fix documentation build.

* gnu/packages/glib.scm (glib-with-documentation) [native-inputs]:
Add docbook-4.2. Remove libxml2.
[arguments]<#:phases>['patch-docbook-xml]: New phase.
---
 gnu/packages/glib.scm | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 9ec1c3904d..9d9bad19bd 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -321,7 +321,8 @@ functions for strings and common data structures.")
     (properties (alist-delete 'hidden? (package-properties glib)))
     (outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference
     (native-inputs
-     `(("docbook-xml" ,docbook-xml)
+     `(("docbook-xml-4.2" ,docbook-xml-4.2)
+       ("docbook-xml-4.5" ,docbook-xml)
        ("gtk-doc" ,gtk-doc)             ; for the doc
        ("libxml2" ,libxml2)
        ,@(package-native-inputs glib)))
@@ -331,6 +332,17 @@ functions for strings and common data structures.")
         `(cons "-Dgtk_doc=true" ,flags))
        ((#:phases phases)
         `(modify-phases ,phases
+           (add-after 'unpack 'patch-docbook-xml
+             (lambda* (#:key inputs #:allow-other-keys)
+               (with-directory-excursion "docs"
+                 (substitute* (find-files "." "\\.xml$")
+                   (("http://www.oasis-open.org/docbook/xml/4\\.5/")
+                    (string-append (assoc-ref inputs "docbook-xml-4.5")
+                                   "/xml/dtd/docbook/"))
+                   (("http://www.oasis-open.org/docbook/xml/4\\.2/")
+                    (string-append (assoc-ref inputs "docbook-xml-4.2")
+                                   "/xml/dtd/docbook/"))))
+               #t))
            (add-after 'install 'move-doc
              (lambda* (#:key outputs #:allow-other-keys)
                (let* ((out (assoc-ref outputs "out"))
-- 
2.31.0

From 3f0aabff2c71bd3448614cf234bc2f449866dc38 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Wed, 24 Mar 2021 02:47:29 -0400
Subject: [PATCH 07/56] gnu: Temporarily use glib without documentation.

GLib v2.68.0 refers to gtk-doc v1.32.1 which is not released yet.
Therefore, hide glib-with-documentation and unhide glib.

* gnu/packages/glib.scm (glib) [properties]: Remove hidden.
(glib-with-documentation) [properties]: Add hidden.
---
 gnu/packages/glib.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 9d9bad19bd..fd64f702f8 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -192,7 +192,7 @@ shared NFS home directories.")
            (substitute* "tests/spawn-test.c"
              (("/bin/sh") "sh"))
            #t))))
-    (properties '((hidden? . #t)))
+    ;; (properties '((hidden? . #t)))
     (build-system meson-build-system)
     (outputs '("out"   ; everything
                "bin")) ; glib-mkenums, gtester, etc.; depends on Python
@@ -318,7 +318,8 @@ functions for strings and common data structures.")
   ;; glib's doc must be built in a separate package since it requires gtk-doc,
   ;; which in turn depends on glib.
   (package/inherit glib
-    (properties (alist-delete 'hidden? (package-properties glib)))
+    ;; (properties (alist-delete 'hidden? (package-properties glib)))
+    (properties '((hidden? . #t)))
     (outputs (cons "doc" (package-outputs glib))) ; 20 MiB of GTK-Doc reference
     (native-inputs
      `(("docbook-xml-4.2" ,docbook-xml-4.2)
-- 
2.31.0

From 1ad03a9e8601df8a9403c75e759fb4b31e1d1f69 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Wed, 24 Mar 2021 23:28:10 -0400
Subject: [PATCH 08/56] gnu: libsigc++: Update to 3.0.6.

* gnu/packages/glib.scm (libsigc++)[version]: Update to 3.0.6.
[build-system]: Change from gnu to meson.
[native-inputs]: Add mm-common, perl, libxml2 and libxslt.
[inputs]: Add boost.
[license]: Update to lgpl3+.
---
 gnu/packages/glib.scm | 32 ++++++++++++++++++++------------
 1 file changed, 20 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index fd64f702f8..9a273aa7d3 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -38,6 +38,7 @@
   #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages docbook)
@@ -542,18 +543,25 @@ by GDBus included in Glib.")
 (define libsigc++
   (package
     (name "libsigc++")
-    (version "2.10.3")
+    (version "3.0.6")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/libsigc++/"
-                                 (version-major+minor version) "/"
-                                 name "-" version ".tar.xz"))
-             (sha256
-              (base32
-               "11j7j1jv4z58d9s7jvl42fnqa1dzl4idgil9r45cjv1w673dys0b"))))
-    (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("m4" ,m4)))
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/libsigc++/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1kn57b039lg20182lnchl1ys27vf34brn43f895cal8nc7sdq3mp"))))
+    (build-system meson-build-system)
+    (native-inputs
+     `(("m4" ,m4)
+       ("mm-common" ,mm-common)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("boost" ,boost)))
     (home-page "https://libsigcplusplus.github.io/libsigcplusplus/")
     (synopsis "Type-safe callback system for standard C++")
     (description
@@ -564,7 +572,7 @@ static or virtual.
 
 It also contains adaptor classes for connection of dissimilar callbacks and
 has an ease of use unmatched by other C++ callback libraries.")
-    (license license:lgpl2.1+)))
+    (license license:lgpl3+)))
 
 (define glibmm
   (package
-- 
2.31.0

From 57453211659f1cfeefa78c3c284e12b761fcd30d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 25 Mar 2021 00:07:52 -0400
Subject: [PATCH 09/56] gnu: libsigc++: Enable documentation.

* gnu/packages/glib.scm (libsigc++)[outputs]: New output "doc".
[arguments]<#:configure-flags>[-Dbuild-documentation]: New flag.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add dblatex, doxygen and graphviz.
---
 gnu/packages/glib.scm | 45 +++++++++++++++++++++++++++++++++++--------
 1 file changed, 37 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 9a273aa7d3..0505910b41 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -49,6 +49,7 @@
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages gperf)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages libffi)
@@ -553,8 +554,36 @@ by GDBus included in Glib.")
                (base32
                 "1kn57b039lg20182lnchl1ys27vf34brn43f895cal8nc7sdq3mp"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
+    (arguments
+     `(#:configure-flags
+       (list
+        "-Dbuild-documentation=true")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* (find-files "." "\\.xml$")
+                 (("http://www.oasis-open.org/docbook/xml/4\\.1\\.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #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
-     `(("m4" ,m4)
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("docbook-xsl" ,docbook-xsl)
+       ("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("m4" ,m4)
        ("mm-common" ,mm-common)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
@@ -566,12 +595,12 @@ by GDBus included in Glib.")
     (synopsis "Type-safe callback system for standard C++")
     (description
      "Libsigc++ implements a type-safe callback system for standard C++.  It
-allows you to define signals and to connect those signals to any callback
-function, either global or a member function, regardless of whether it is
-static or virtual.
+     allows you to define signals and to connect those signals to any callback
+     function, either global or a member function, regardless of whether it is
+     static or virtual.
 
-It also contains adaptor classes for connection of dissimilar callbacks and
-has an ease of use unmatched by other C++ callback libraries.")
+     It also contains adaptor classes for connection of dissimilar callbacks and
+     has an ease of use unmatched by other C++ callback libraries.")
     (license license:lgpl3+)))
 
 (define glibmm
@@ -603,8 +632,8 @@ has an ease of use unmatched by other C++ callback libraries.")
              ;; to open a TLS session; just skip it.
              (substitute* "tests/giomm_tls_client/main.cc"
                (("Gio::init.*$")
-                "return 77;\n"))
-             #t)))))
+                "return 77              ;\n"))
+     #t)))))
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("glib" ,glib "bin")))
     (propagated-inputs
-- 
2.31.0

From 16be17b1a1e8897a527dab679bc0be13549a06b2 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 25 Mar 2021 01:56:45 -0400
Subject: [PATCH 10/56] gnu: glibmm: Update to 2.68.0.

* gnu/packages/glib.scm (glibmm)[version]: Update to 2.68.0.
[arguments]<#:phases>['pre-build]: Remove phase.
['disable-failing-tests]: New phase.
[native-inputs]: Add m4, mm-common, perl and libxslt.
---
 gnu/packages/glib.scm | 50 +++++++++++++++++++++----------------------
 1 file changed, 25 insertions(+), 25 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 0505910b41..c2f49f32cd 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -606,36 +606,36 @@ by GDBus included in Glib.")
 (define glibmm
   (package
     (name "glibmm")
-    (version "2.62.0")
+    (version "2.68.0")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/glibmm/"
-                                 (version-major+minor version)
-                                 "/glibmm-" version ".tar.xz"))
-             (sha256
-              (base32
-               "1ziwx6r7k7wbvg4qq1rgrv8zninapgrmhn1hs6926a3krh9ryr9n"))))
-    (build-system gnu-build-system)
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/glibmm/"
+                                  (version-major+minor version)
+                                  "/glibmm-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0xgkyhb2876mcyyib5rk3ya9aingyj68h02nl22yvkhx35rqbwy1"))))
+    (build-system meson-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
-         (add-before 'build 'pre-build
+         (add-after 'unpack 'disable-failing-tests
            (lambda _
-             ;; This test uses /etc/fstab as an example file to read
-             ;; from; choose a better example.
-             (substitute* "tests/giomm_simple/main.cc"
-               (("/etc/fstab")
-                (string-append (getcwd)
-                               "/tests/giomm_simple/main.cc")))
-
-             ;; This test does a DNS lookup, and then expects to be able
-             ;; to open a TLS session; just skip it.
-             (substitute* "tests/giomm_tls_client/main.cc"
-               (("Gio::init.*$")
-                "return 77              ;\n"))
-     #t)))))
-    (native-inputs `(("pkg-config" ,pkg-config)
-                     ("glib" ,glib "bin")))
+             (substitute* "tests/meson.build"
+               ;; This test uses /etc/fstab as an example file to read
+               ;; from; disable it.
+               (("[ \t]*.*giomm_simple.*$") "")
+               ;; This test does a DNS lookup, and then expects to be able
+               ;; to open a TLS session; just skip it.
+               (("[ \t]*.*giomm_tls_client.*$") ""))
+             #t)))))
+    (native-inputs
+     `(("glib:bin" ,glib "bin")
+       ("m4" ,m4)
+       ("mm-common" ,mm-common)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
     (propagated-inputs
      `(("libsigc++" ,libsigc++)
        ("glib" ,glib)))
-- 
2.31.0

From c00a73a68a2f4784c148f5e632df5cb22ff3bde8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 25 Mar 2021 03:04:01 -0400
Subject: [PATCH 11/56] gnu: glibmm: Enable documentation.

* gnu/packages/glib.scm (glibmm)[outputs]: New output "doc".
[arguments]<#:configure-flags>[-Dbuild-documentation]: New flag.
<#:phases>['move-doc]: New phase.
[native-inputs]: Add doxygen and graphviz.
---
 gnu/packages/glib.scm | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index c2f49f32cd..fa0e2e3c9a 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -616,8 +616,12 @@ by GDBus included in Glib.")
                (base32
                 "0xgkyhb2876mcyyib5rk3ya9aingyj68h02nl22yvkhx35rqbwy1"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:phases
+     `(#:configure-flags
+       (list
+        "-Dbuild-documentation=true")
+       #:phases
        (modify-phases %standard-phases
          (add-after 'unpack 'disable-failing-tests
            (lambda _
@@ -628,9 +632,20 @@ by GDBus included in Glib.")
                ;; This test does a DNS lookup, and then expects to be able
                ;; to open a TLS session; just skip it.
                (("[ \t]*.*giomm_tls_client.*$") ""))
-             #t)))))
+             #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
-     `(("glib:bin" ,glib "bin")
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("glib:bin" ,glib "bin")
        ("m4" ,m4)
        ("mm-common" ,mm-common)
        ("perl" ,perl)
-- 
2.31.0

From 8cbefcb3ed11119604bde9835898f361156dea5e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 12 Mar 2021 08:51:02 -0500
Subject: [PATCH 12/56] gnu: gtk-doc: Change build-system.

* gnu/packages/gtk.scm (gtk-doc) [build-system]: Change from gnu to glib-or-gtk.
---
 gnu/packages/gtk.scm | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index fbaacc11e4..41a300be8c 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1723,7 +1723,7 @@ information.")
               (sha256
                (base32
                 "05apmwibkmn1icx05l8aw241lhymcx01zvk5i499cb150bijj7li"))))
-    (build-system gnu-build-system)
+    (build-system glib-or-gtk-build-system)
     (arguments
      `(#:parallel-tests? #f
        #:phases
@@ -1731,16 +1731,16 @@ information.")
          (add-after 'unpack 'patch-gtk-doc-scan
            (lambda* (#:key inputs #:allow-other-keys)
              (substitute* "gtk-doc.xsl"
-              (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
-               (string-append (assoc-ref inputs "docbook-xsl")
-                              "/xml/xsl/docbook-xsl-"
-                              ,(package-version docbook-xsl)
-                              "/html/chunk.xsl"))
-              (("http://docbook.sourceforge.net/release/xsl/current/common/en.xml")
-               (string-append (assoc-ref inputs "docbook-xsl")
-                              "/xml/xsl/docbook-xsl-"
-                              ,(package-version docbook-xsl)
-                              "/common/en.xml")))
+               (("http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
+                (string-append (assoc-ref inputs "docbook-xsl")
+                               "/xml/xsl/docbook-xsl-"
+                               ,(package-version docbook-xsl)
+                               "/html/chunk.xsl"))
+               (("http://docbook.sourceforge.net/release/xsl/current/common/en.xml")
+                (string-append (assoc-ref inputs "docbook-xsl")
+                               "/xml/xsl/docbook-xsl-"
+                               ,(package-version docbook-xsl)
+                               "/common/en.xml")))
              #t))
          (add-after 'patch-gtk-doc-scan 'patch-test-out
            (lambda _
@@ -1749,7 +1749,7 @@ information.")
              ;; generator metafont outputs a lot of extra lines, this
              ;; test would always fail.  Disable it for now.
              (substitute* "tests/Makefile.in"
-              (("empty.sh sanity.sh") "empty.sh"))
+               (("empty.sh sanity.sh") "empty.sh"))
              #t))
          (add-before 'configure 'fix-docbook
            (lambda* (#:key inputs #:allow-other-keys)
-- 
2.31.0

From 766060ed794d40b8ad6a5b8d4ac4e542cd1ef7e1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 12 Mar 2021 08:58:34 -0500
Subject: [PATCH 13/56] gnu: gtk-doc: Correct inputs.

* gnu/packages/gtk.scm (gtk-doc) [native-inputs]: Add glib:bin,
perl and python-wrapper.
[inputs]: Add python-anytree, python-lxml, python-parameterized,
python-pygments, python-unittest2 and yelp-tools. Remove perl.
---
 gnu/packages/gtk.scm | 26 +++++++++++++++++---------
 1 file changed, 17 insertions(+), 9 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 41a300be8c..463c2419d3 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1779,21 +1779,29 @@ information.")
                             (assoc-ref %build-inputs "docbook-xml")
                             "/xml/dtd/docbook/catalog.xml"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
        ("itstool" ,itstool)
-       ("libxml" ,libxml2)
-       ("gettext" ,gettext-minimal)
-       ("bc" ,bc)))
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)))
     (inputs
-     `(("perl" ,perl)
-       ("python" ,python)
-       ("xsltproc" ,libxslt)
+     `(("bc" ,bc)
        ("dblatex" ,dblatex)
        ("docbook-xml" ,docbook-xml-4.3)
        ("docbook-xsl" ,docbook-xsl)
-       ("source-highlight" ,source-highlight)
        ("glib" ,glib)
-       ("python-six" ,python-six)))
+       ("libxml2" ,libxml2)
+       ("libxslt" ,libxslt)
+       ("python" ,python)
+       ("python-anytree" ,python-anytree)
+       ("python-lxml" ,python-lxml)
+       ("python-parameterized" ,python-parameterized)
+       ("python-pygments" ,python-pygments)
+       ("python-unittest2" ,python-unittest2)
+       ("source-highlight" ,source-highlight)
+       ("yelp-tools" ,yelp-tools)))
     (home-page "https://www.gtk.org/gtk-doc/")
     (synopsis "Documentation generator from C source code")
     (description
-- 
2.31.0

From 7e396e38cb729b7f0031948ed0a9f117eb85c074 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 12 Mar 2021 09:08:32 -0500
Subject: [PATCH 14/56] gnu: gtk-doc: Update to 1.32.

* gnu/packages/gtk.scm (gtk-doc) [version]: Update to 1.32.
[arguments]<#:phases>['patch-test-out]: Remove phase.
['disable-failing-tests]: New phase.
['set-HOME]: New phase.
---
 gnu/packages/gtk.scm | 19 +++++++++++--------
 1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 463c2419d3..d91e268f6d 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1714,7 +1714,7 @@ information.")
 (define-public gtk-doc
   (package
     (name "gtk-doc")
-    (version "1.28")
+    (version "1.32")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -1722,7 +1722,7 @@ information.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "05apmwibkmn1icx05l8aw241lhymcx01zvk5i499cb150bijj7li"))))
+                "0z4h1dggpimygdp719l457jvqilps4qcfpk31jmj3jqpzcsg03ny"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      `(#:parallel-tests? #f
@@ -1742,14 +1742,11 @@ information.")
                                ,(package-version docbook-xsl)
                                "/common/en.xml")))
              #t))
-         (add-after 'patch-gtk-doc-scan 'patch-test-out
+         (add-after 'unpack 'disable-failing-tests
            (lambda _
-             ;; sanity.sh counts the number of status lines.  Since our
-             ;; texlive regenerates the fonts every time and the font
-             ;; generator metafont outputs a lot of extra lines, this
-             ;; test would always fail.  Disable it for now.
              (substitute* "tests/Makefile.in"
-               (("empty.sh sanity.sh") "empty.sh"))
+               (("annotations.sh bugs.sh empty.sh fail.sh gobject.sh program.sh")
+                ""))
              #t))
          (add-before 'configure 'fix-docbook
            (lambda* (#:key inputs #:allow-other-keys)
@@ -1766,6 +1763,12 @@ information.")
                                                 "^catalog.xml$"))
                                " \"http://docbook.sourceforge.net/release/xsl/")))
              #t))
+         (add-before 'build 'set-HOME
+           (lambda _
+             ;; FIXME: dblatex with texlive-union does not find the built
+             ;; metafonts, so it tries to generate them in HOME.
+             (setenv "HOME" "/tmp")
+             #t))
          (add-after 'install 'wrap-executables
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out")))
-- 
2.31.0

From ea135ee7fc0ada283f3f99281e108ad36522060e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 12 Mar 2021 09:13:14 -0500
Subject: [PATCH 15/56] gnu: gtk-doc: Enable help.

* gnu/packages/gtk.scm (gtk-doc) [outputs]: New output 'help'.
[arguments]<#:configure-flags>[--with-help-dir]: New flag.
---
 gnu/packages/gtk.scm | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index d91e268f6d..468a6180c5 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1724,6 +1724,7 @@ information.")
                (base32
                 "0z4h1dggpimygdp719l457jvqilps4qcfpk31jmj3jqpzcsg03ny"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "help"))
     (arguments
      `(#:parallel-tests? #f
        #:phases
@@ -1780,7 +1781,10 @@ information.")
        #:configure-flags
        (list (string-append "--with-xml-catalog="
                             (assoc-ref %build-inputs "docbook-xml")
-                            "/xml/dtd/docbook/catalog.xml"))))
+                            "/xml/dtd/docbook/catalog.xml")
+             (string-append "--with-help-dir="
+                            (assoc-ref %outputs "help")
+                            "/share/help"))))
     (native-inputs
      `(("gettext" ,gettext-minimal)
        ("glib:bin" ,glib "bin")
-- 
2.31.0

From 800160bf205504274014af09881c7a3190c01115 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 12 Mar 2021 09:20:40 -0500
Subject: [PATCH 16/56] gnu: gtk-doc: Update synopsis, description, home-page
 and license.

* gnu/packages/gtk.scm (gtk-doc) [home-page]: Modify.
[synopsis]: Modify.
[description]: Modify.
[license]: Add fdl1.1+.
---
 gnu/packages/gtk.scm | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 468a6180c5..ecdafc93ba 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1809,13 +1809,19 @@ information.")
        ("python-unittest2" ,python-unittest2)
        ("source-highlight" ,source-highlight)
        ("yelp-tools" ,yelp-tools)))
-    (home-page "https://www.gtk.org/gtk-doc/")
-    (synopsis "Documentation generator from C source code")
-    (description
-     "GTK-Doc generates API documentation from comments added to C code.  It is
-typically used to document the public API of GTK+ and GNOME libraries, but it
-can also be used to document application code.")
-    (license license:gpl2+)))
+    (home-page "https://wiki.gnome.org/DocumentationProject/GtkDoc")
+    (synopsis "GTK+ DocBook Documentation Generator")
+    (description "GtkDoc is a tool used to extract API documentation from C-code
+like Doxygen, but handles documentation of GObject (including signals and
+properties) that makes it very suitable for GTK+ apps and libraries.  It uses
+docbook for intermediate files and can produce html by default and pdf/man-pages
+with some extra work.")
+    (license
+     (list
+      ;; Docs.
+      license:fdl1.1+
+      ;; Others.
+      license:gpl2+))))
 
 (define-public gtk-engines
   (package
-- 
2.31.0

From b131bf73717ca06d9424d0691c7b6bf64d9ab0bf Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 09:59:44 -0500
Subject: [PATCH 17/56] gnu: gobject-introspection: Propagate glib.

* gnu/packages/glib.scm (gobject-introspection) [inputs]: Move glib to ...
[propagated-inputs]: ... here.
---
 gnu/packages/glib.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index fa0e2e3c9a..2f2bc17fb7 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -388,11 +388,11 @@ functions for strings and common data structures.")
     (inputs
      `(("bison" ,bison)
        ("flex" ,flex)
-       ("glib" ,glib)
        ("python" ,python-wrapper)
        ("zlib" ,zlib)))
     (propagated-inputs
-     `(;; In practice, GIR users will need libffi when using
+     `(("glib" ,glib)
+       ;; In practice, GIR users will need libffi when using
        ;; gobject-introspection.
        ("libffi" ,libffi)))
     (native-search-paths
-- 
2.31.0

From 3bfa4e96e03e6c43e7b28e9beb58992416a0ae55 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 4 Dec 2020 00:49:10 -0500
Subject: [PATCH 18/56] gnu: cairo: Make some cosmetic changes.

* gnu/packages/gtk.scm (cairo): Make some cosmetic changes.
---
 gnu/packages/gtk.scm | 82 ++++++++++++++++++++++----------------------
 1 file changed, 41 insertions(+), 41 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index ecdafc93ba..201cdd7a8f 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -123,57 +123,57 @@ tools have full access to view and control running applications.")
 
 (define-public cairo
   (package
-   (name "cairo")
-   (version "1.16.0")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "https://cairographics.org/releases/cairo-"
-                                version ".tar.xz"))
-            (sha256
-             (base32
-              "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy"))))
-   (build-system gnu-build-system)
-   (propagated-inputs
-    `(("fontconfig" ,fontconfig)
-      ("freetype" ,freetype)
-      ("glib" ,glib)
-      ("libpng" ,libpng)
-      ("libx11" ,libx11)
-      ("libxext" ,libxext)
-      ("libxrender" ,libxrender)
-      ("pixman" ,pixman)))
-   (inputs
-    `(("ghostscript" ,ghostscript)
-      ("libspectre" ,libspectre)
-      ("poppler" ,poppler)
-      ("xorgproto" ,xorgproto)
-      ("zlib" ,zlib)))
-   (native-inputs
-     `(("pkg-config" ,pkg-config)
-      ("python" ,python-wrapper)))
+    (name "cairo")
+    (version "1.16.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "https://cairographics.org/releases/cairo-"
+                       version ".tar.xz"))
+       (sha256
+        (base32 "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy"))))
+    (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f  ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
-       #:configure-flags '("--enable-tee"      ;needed for GNU Icecat
-                           "--enable-xml"      ;for cairo-xml support
-                           "--disable-static")))
-   (synopsis "2D graphics library")
-   (description
-    "Cairo is a 2D graphics library with support for multiple output devices.
-Currently supported output targets include the X Window System (via both
-Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file
+     `(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
+       #:configure-flags
+       (list
+        "--enable-tee"                    ;needed for GNU Icecat
+        "--enable-xml"                    ;for cairo-xml support
+        "--disable-static")))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (inputs
+     `(("ghostscript" ,ghostscript)
+       ("libspectre" ,libspectre)
+       ("poppler" ,poppler)
+       ("xorgproto" ,xorgproto)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("glib" ,glib)
+       ("libpng" ,libpng)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("libxrender" ,libxrender)
+       ("pixman" ,pixman)))
+    (synopsis "2D graphics library")
+    (description "Cairo is a 2D graphics library with support for multiple output
+devices.  Currently supported output targets include the X Window System (via
+both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file
 output.  Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.
-
 Cairo is designed to produce consistent output on all output media while
 taking advantage of display hardware acceleration when available
 eg. through the X Render Extension).
-
 The cairo API provides operations similar to the drawing operators of
 PostScript and PDF.  Operations in cairo including stroking and filling cubic
 Bézier splines, transforming and compositing translucent images, and
 antialiased text rendering.  All drawing operations can be transformed by any
 affine transformation (scale, rotation, shear, etc.).")
-   (license license:lgpl2.1) ; or Mozilla Public License 1.1
-   (home-page "https://cairographics.org/")))
+    (home-page "https://cairographics.org/")
+    (license license:lgpl2.1))) ; or Mozilla Public License 1.1
 
 (define-public cairo-sans-poppler
   ;; Variant used to break the dependency cycle between Poppler and Cairo.
-- 
2.31.0

From 6d8dbf86b868d5f0bd0da8092e7b6c42fad0cfb1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 4 Dec 2020 00:51:10 -0500
Subject: [PATCH 19/56] gnu: cairo: Change build-system.

* gnu/packages/gtk.scm (cairo) [build-system]: Change from gnu to glib-or-gtk.
---
 gnu/packages/gtk.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 201cdd7a8f..538edce843 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -133,7 +133,7 @@ tools have full access to view and control running applications.")
                        version ".tar.xz"))
        (sha256
         (base32 "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy"))))
-    (build-system gnu-build-system)
+    (build-system glib-or-gtk-build-system)
     (arguments
      `(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
        #:configure-flags
-- 
2.31.0

From 34f6e80b178714f19a39b860811a9ac27236f400 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 4 Dec 2020 00:53:16 -0500
Subject: [PATCH 20/56] gnu: cairo: Move documentation to separate output.

* gnu/packages/gtk.scm (cairo) [outputs]: New output "doc".
[arguments]<#:configure-flags>[--with-html-dir]: New flag.
---
 gnu/packages/gtk.scm | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 538edce843..94de9dffac 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -134,13 +134,17 @@ tools have full access to view and control running applications.")
        (sha256
         (base32 "0c930mk5xr2bshbdljv005j3j8zr47gqmkry3q6qgvqky6rjjysy"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "doc"))
     (arguments
      `(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
        #:configure-flags
        (list
-        "--enable-tee"                    ;needed for GNU Icecat
-        "--enable-xml"                    ;for cairo-xml support
-        "--disable-static")))
+        "--enable-tee"                  ;needed for GNU Icecat
+        "--enable-xml"                  ;for cairo-xml support
+        "--disable-static"
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html"))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)))
-- 
2.31.0

From f39ca12c33f7d987aa3e3e5df8f1fae53a6fa74a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 4 Dec 2020 01:02:00 -0500
Subject: [PATCH 21/56] gnu: cairo: Enable some features.

* gnu/packages/gtk.scm (cairo) [native-inputs]: Add gobject-introspection.
[inputs]: Add libdrm. Remove xorgproto and zlib.
[propagated-inputs]: Add libxcb.
---
 gnu/packages/gtk.scm | 39 +++++++++++++++++++++++++++------------
 1 file changed, 27 insertions(+), 12 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 94de9dffac..104aaf4ebb 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -139,30 +139,45 @@ tools have full access to view and control running applications.")
      `(#:tests? #f ; see http://lists.gnu.org/archive/html/bug-guix/2013-06/msg00085.html
        #:configure-flags
        (list
-        "--enable-tee"                  ;needed for GNU Icecat
-        "--enable-xml"                  ;for cairo-xml support
         "--disable-static"
+        ;; XXX: To be enabled.
+        ;; "--enable-gallium=yes"
+        ;; "--enable-gl=yes"
+        ;; " --enable-glesv2=yes"
+        ;; "--enable-glesv3=yes"
+        ;; "--enable-cogl=yes"
+        ;; "--enable-directfb=yes"
+        ;; "--enable-vg=yes"
+        "--enable-tee=yes"
+        "--enable-xml=yes"
         (string-append "--with-html-dir="
                        (assoc-ref %outputs "doc")
                        "/share/gtk-doc/html"))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("gobject-introspection" ,gobject-introspection)
+       ("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)))
     (inputs
-     `(("ghostscript" ,ghostscript)
+     `(("drm" ,libdrm)
+       ("ghostscript" ,ghostscript)
        ("libspectre" ,libspectre)
-       ("poppler" ,poppler)
-       ("xorgproto" ,xorgproto)
-       ("zlib" ,zlib)))
+       ("poppler" ,poppler)))
     (propagated-inputs
-     `(("fontconfig" ,fontconfig)
+     `( ;; ("cogl" ,cogl)
+       ;; ("directfb" ,directfb)
+       ("fontconfig" ,fontconfig)
+       ("fontconfig" ,fontconfig)
        ("freetype" ,freetype)
        ("glib" ,glib)
+       ;; ("gtk+" ,gtk+)
        ("libpng" ,libpng)
-       ("libx11" ,libx11)
-       ("libxext" ,libxext)
-       ("libxrender" ,libxrender)
-       ("pixman" ,pixman)))
+       ;; ("librsvg" ,librsvg)
+       ;; ("opengl" ,mesa)
+       ("pixman" ,pixman)
+       ("x11" ,libx11)
+       ("xcb" ,libxcb)
+       ("xext" ,libxext)
+       ("xrender" ,libxrender)))
     (synopsis "2D graphics library")
     (description "Cairo is a 2D graphics library with support for multiple output
 devices.  Currently supported output targets include the X Window System (via
-- 
2.31.0

From 7deee5f922f609590063e9c0933144c216a278a6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Fri, 4 Dec 2020 01:04:37 -0500
Subject: [PATCH 22/56] gnu: cairo: Update synopsis, description and license.

* gnu/packages/gtk.scm (cairo) [synopsis]: Modify.
[description]: Modify.
[license]: Modify.
---
 gnu/packages/gtk.scm | 18 +++++++-----------
 1 file changed, 7 insertions(+), 11 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 104aaf4ebb..7a13d56416 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -178,21 +178,17 @@ tools have full access to view and control running applications.")
        ("xcb" ,libxcb)
        ("xext" ,libxext)
        ("xrender" ,libxrender)))
-    (synopsis "2D graphics library")
+    (synopsis "Multi-platform 2D graphics library")
     (description "Cairo is a 2D graphics library with support for multiple output
 devices.  Currently supported output targets include the X Window System (via
 both Xlib and XCB), Quartz, Win32, image buffers, PostScript, PDF, and SVG file
-output.  Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.
-Cairo is designed to produce consistent output on all output media while
-taking advantage of display hardware acceleration when available
-eg. through the X Render Extension).
-The cairo API provides operations similar to the drawing operators of
-PostScript and PDF.  Operations in cairo including stroking and filling cubic
-Bézier splines, transforming and compositing translucent images, and
-antialiased text rendering.  All drawing operations can be transformed by any
-affine transformation (scale, rotation, shear, etc.).")
+output.  Experimental backends include OpenGL, BeOS, OS/2, and DirectFB.")
     (home-page "https://cairographics.org/")
-    (license license:lgpl2.1))) ; or Mozilla Public License 1.1
+    (license
+     ;; This project is dual-licensed.
+     (list
+      license:lgpl2.1+
+      license:mpl1.1))))
 
 (define-public cairo-sans-poppler
   ;; Variant used to break the dependency cycle between Poppler and Cairo.
-- 
2.31.0

From ae59225fb90f407259548631aa6b52005f59fbdc Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 25 Mar 2021 06:49:16 -0400
Subject: [PATCH 23/56] gnu: cairomm: Update to 1.16.0.

* gnu/packages/gtk.scm (cairomm)[version]: Update to 1.16.0.
[build-system]: Change from gnu to meson.
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dboost-shared]: New flag.
<#:make-flags>: Remove argument.
[native-inputs]: Add boost and mm-common.
---
 gnu/packages/gtk.scm | 20 +++++++++++++-------
 1 file changed, 13 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 7a13d56416..e7251b59fb 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -58,6 +58,7 @@
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages boost)
   #:use-module (gnu packages build-tools)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages check)
@@ -1255,19 +1256,24 @@ guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
 (define-public cairomm
   (package
     (name "cairomm")
-    (version "1.12.2")
+    (version "1.16.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.cairographics.org/releases/"
-                                  name "-" version ".tar.gz"))
+                                  name "-" version ".tar.xz"))
               (sha256
                (base32
-                "16fmigxsaz85c3lgcls7biwyz8zy8c8h3jndfm54cxxas3a7zi25"))))
-    (build-system gnu-build-system)
+                "1ya4y7qa000cjawqwswbqv26y5icfkmhs5iiiil4dxgrqn91923y"))))
+    (build-system meson-build-system)
     (arguments
-     ;; The examples lack -lcairo.
-     '(#:make-flags '("LDFLAGS=-lcairo")))
-    (native-inputs `(("pkg-config" ,pkg-config)))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dboost-shared=true")))
+    (native-inputs
+     `(("boost" ,boost)
+       ("mm-common" ,mm-common)
+       ("pkg-config" ,pkg-config)))
     (propagated-inputs
      `(("libsigc++" ,libsigc++)
        ("freetype" ,freetype)
-- 
2.31.0

From f95b6f1ad0d0b2041655321f2dcce6491c83e1e8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 25 Mar 2021 07:07:14 -0400
Subject: [PATCH 24/56] gnu: cairomm: Enable documentation.

* gnu/packages/gtk.scm (cairomm)[outputs]: New output "doc".
[arguments]<#:configure-flags>[-Dbuild-documentation]: New flag.
<#:phases>['move-doc]: New phase.
[native-inputs]: Add doxygen, graphviz, perl and libxslt.
---
 gnu/packages/gtk.scm | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index e7251b59fb..85cb71a5a2 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1265,15 +1265,32 @@ guile-gnome-platform (GNOME developer libraries), and guile-gtksourceview.")
                (base32
                 "1ya4y7qa000cjawqwswbqv26y5icfkmhs5iiiil4dxgrqn91923y"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
      `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:configure-flags
        (list
-        "-Dboost-shared=true")))
+        "-Dbuild-documentation=true"
+        "-Dboost-shared=true")
+       #:phases
+       (modify-phases %standard-phases
+         (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
      `(("boost" ,boost)
+       ("dot" ,graphviz)
+       ("doxygen" ,doxygen)
        ("mm-common" ,mm-common)
-       ("pkg-config" ,pkg-config)))
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
     (propagated-inputs
      `(("libsigc++" ,libsigc++)
        ("freetype" ,freetype)
-- 
2.31.0

From 70d153548b9e1160342edea90e20873e857abb8e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 10:11:10 -0500
Subject: [PATCH 25/56] gnu: pango: Add missing arguments.

* gnu/packages/gtk.scm (pango) [arguments]<#:glib-or-gtk?>: New argument.
---
 gnu/packages/gtk.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 85cb71a5a2..229383fb7a 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -326,7 +326,8 @@ applications.")
               "07qvxa2sk90chp1l12han6vxvy098mc37sdqcznyywyv2g6bd9b6"))))
    (build-system meson-build-system)
    (arguments
-    '(#:phases (modify-phases %standard-phases
+    '(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
+      #:phases (modify-phases %standard-phases
                  (add-after 'unpack 'disable-cantarell-tests
                    (lambda _
                      (substitute* "tests/meson.build"
-- 
2.31.0

From 7dd04f6b1af8b2b8325dabb38e220703d0275020 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 10:17:09 -0500
Subject: [PATCH 26/56] gnu: pango: Re-arrange inputs in alphabetical order.

* gnu/packages/gtk.scm (pango) [propagated-inputs]: Modify.
[native-inputs]: Modify.
---
 gnu/packages/gtk.scm | 35 +++++++++++++++++------------------
 1 file changed, 17 insertions(+), 18 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 229383fb7a..abeabf092c 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -337,24 +337,23 @@ applications.")
                        (("\\[ 'test-itemize'.*") "")
                        (("\\[ 'test-layout'.*") ""))
                      #t)))))
-   (propagated-inputs
-    ;; These are all in Requires or Requires.private of the '.pc' files.
-    `(("cairo" ,cairo)
-      ("fribidi" ,fribidi)
-      ("fontconfig" ,fontconfig)
-      ("freetype" ,freetype)
-      ("glib" ,glib)
-      ("harfbuzz" ,harfbuzz)
-
-      ;; Some packages, such as Openbox, expect Pango to be built with the
-      ;; optional libxft support.
-      ("libxft" ,libxft)))
-   (inputs
-    `(("zlib" ,zlib)))
-   (native-inputs
-    `(("pkg-config" ,pkg-config)
-      ("glib" ,glib "bin")                               ; glib-mkenums, etc.
-      ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
+    (propagated-inputs
+     ;; These are all in Requires or Requires.private of the '.pc' files.
+     `(("cairo" ,cairo)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("fribidi" ,fribidi)
+       ("glib" ,glib)
+       ("harfbuzz" ,harfbuzz)
+       ;; Some packages, such as Openbox, expect Pango to be built with the
+       ;; optional libxft support.
+       ("libxft" ,libxft)))
+    (inputs
+     `(("zlib" ,zlib)))
+    (native-inputs
+     `(("glib" ,glib "bin")             ; glib-mkenums, etc.
+       ("gobject-introspection" ,gobject-introspection) ; g-ir-compiler, etc.
+       ("pkg-config" ,pkg-config)))
    (synopsis "GNOME text and font handling library")
    (description
     "Pango is the core text and font handling library used in GNOME
-- 
2.31.0

From 643851ad3dec45a189d08589772b825f61bff30d Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Tue, 23 Mar 2021 23:32:15 -0400
Subject: [PATCH 27/56] gnu: pango: Update to 1.48.3.

* gnu/packages/gtk.scm (pango) [version]: Update to 1.48.3.
[arguments]<#:phases>['disable-cantarell-tests]: Modify.
[propagated-inputs]: Add libthai and libxrender.
[native-inputs]: Add help2man, perl and python-wrapper.
---
 gnu/packages/gtk.scm | 69 ++++++++++++++++++++++++--------------------
 1 file changed, 38 insertions(+), 31 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index abeabf092c..d7ded6a704 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -78,6 +78,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pkg-config)
@@ -313,30 +314,31 @@ applications.")
 
 (define-public pango
   (package
-   (name "pango")
-   (version "1.44.7")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/pango/"
-                                (version-major+minor version) "/"
-                                name "-" version ".tar.xz"))
-            (patches (search-patches "pango-skip-libthai-test.patch"))
-            (sha256
-             (base32
-              "07qvxa2sk90chp1l12han6vxvy098mc37sdqcznyywyv2g6bd9b6"))))
-   (build-system meson-build-system)
-   (arguments
-    '(#:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
-      #:phases (modify-phases %standard-phases
-                 (add-after 'unpack 'disable-cantarell-tests
-                   (lambda _
-                     (substitute* "tests/meson.build"
-                       ;; XXX FIXME: These tests require "font-cantarell", but
-                       ;; adding it here would introduce a circular dependency.
-                       (("\\[ 'test-harfbuzz'.*") "")
-                       (("\\[ 'test-itemize'.*") "")
-                       (("\\[ 'test-layout'.*") ""))
-                     #t)))))
+    (name "pango")
+    (version "1.48.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/pango/"
+                                  (version-major+minor version) "/"
+                                  name "-" version ".tar.xz"))
+              (patches (search-patches "pango-skip-libthai-test.patch"))
+              (sha256
+               (base32
+                "0ijbkcs6217ygzphlpi0vajxkccifdbsl0jdjpy8wz11h9f19sin"))))
+    (build-system meson-build-system)
+    (arguments
+     '(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases (modify-phases %standard-phases
+                  (add-after 'unpack 'disable-cantarell-tests
+                    (lambda _
+                      (substitute* "tests/meson.build"
+                        ;; XXX FIXME: These tests require "font-cantarell", but
+                        ;; adding it here would introduce a circular dependency.
+                        (("\\[ 'test-layout'.*") "")
+                        (("\\[ 'test-itemize'.*") "")
+                        (("\\[ 'test-font'.*") "")
+                        (("\\[ 'test-harfbuzz'.*") ""))
+                      #t)))))
     (propagated-inputs
      ;; These are all in Requires or Requires.private of the '.pc' files.
      `(("cairo" ,cairo)
@@ -345,22 +347,27 @@ applications.")
        ("fribidi" ,fribidi)
        ("glib" ,glib)
        ("harfbuzz" ,harfbuzz)
+       ("libthai" ,libthai)
        ;; Some packages, such as Openbox, expect Pango to be built with the
        ;; optional libxft support.
-       ("libxft" ,libxft)))
+       ("libxft" ,libxft)
+       ("libxrender" ,libxrender)))
     (inputs
      `(("zlib" ,zlib)))
     (native-inputs
      `(("glib" ,glib "bin")             ; glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection) ; g-ir-compiler, etc.
-       ("pkg-config" ,pkg-config)))
-   (synopsis "GNOME text and font handling library")
-   (description
-    "Pango is the core text and font handling library used in GNOME
+       ("help2man" ,help2man)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
+    (synopsis "GNOME text and font handling library")
+    (description
+     "Pango is the core text and font handling library used in GNOME
 applications.  It has extensive support for the different writing systems
 used throughout the world.")
-   (license license:lgpl2.0+)
-   (home-page "https://developer.gnome.org/pango/")))
+    (license license:lgpl2.0+)
+    (home-page "https://developer.gnome.org/pango/")))
 
 (define-public pango-1.42
   (package
-- 
2.31.0

From 1a1c7ff16967ad7a66fd92e2347b273d5b2c0e44 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 10:24:42 -0500
Subject: [PATCH 28/56] gnu: pango: Update synopsis, description and home-page.

* gnu/packages/gtk.scm (pango) [synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
---
 gnu/packages/gtk.scm | 15 ++++++++-------
 1 file changed, 8 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index d7ded6a704..9f6df9c777 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -361,13 +361,14 @@ applications.")
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("python" ,python-wrapper)))
-    (synopsis "GNOME text and font handling library")
-    (description
-     "Pango is the core text and font handling library used in GNOME
-applications.  It has extensive support for the different writing systems
-used throughout the world.")
-    (license license:lgpl2.0+)
-    (home-page "https://developer.gnome.org/pango/")))
+    (synopsis "Text and font handling library")
+    (description "Pango is a library for laying out and rendering of text, with
+an emphasis on internationalization.  Pango can be used anywhere that text
+layout is needed, though most of the work on Pango so far has been done in the
+context of the GTK+ widget toolkit.  Pango forms the core of text and font
+handling for GTK+-2.x.")
+    (home-page "https://pango.gnome.org/")
+    (license license:lgpl2.0+)))
 
 (define-public pango-1.42
   (package
-- 
2.31.0

From 066cd8b805286aaf4df363bcf4d89b8ab6e45fc4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 25 Mar 2021 07:42:10 -0400
Subject: [PATCH 29/56] gnu: pangomm: Update to 2.48.0.

* gnu/packages/gtk.scm (pango)[version]: Update to 2.48.0.
[build-system]: Change from gnu to meson.
[arguments]<#:glib-or-gtk?>: New argument.
[native-inputs]: Add m4 and mm-common.
---
 gnu/packages/gtk.scm | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 9f6df9c777..81fbeb066b 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1331,17 +1331,22 @@ library.")
 (define-public pangomm
   (package
     (name "pangomm")
-    (version "2.42.0")
+    (version "2.48.0")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/" name "/"
-                                 (version-major+minor version)  "/"
-                                 name "-" version ".tar.xz"))
-             (sha256
-              (base32
-               "0mmzxp3wniaafkxr30sb22mq9x44xckb5d60h1bl99lkzxks0vfa"))))
-    (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0y2vyp6azvhrii6rzs89kr08wg8z1p562awyr812131zqdsd83ly"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
+    (native-inputs
+     `(("m4" ,m4)
+       ("mm-common" ,mm-common)
+       ("pkg-config" ,pkg-config)))
     (propagated-inputs
      `(("cairo" ,cairo)
        ("cairomm" ,cairomm)
-- 
2.31.0

From d35d8b5a5b35cb8188856d160038b8f89a91919a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 25 Mar 2021 07:47:41 -0400
Subject: [PATCH 30/56] gnu: pangomm: Enable documentation.

* gnu/packages/gtk.scm (pangomm)[outputs]: New output "doc".
[arguments]<#:configure-flags>[-Dbuild-documentation]: New flag.
<#:phases>['move-doc]: New phase.
[native-inputs]: Add doxygen, graphviz, perl and libxslt.
---
 gnu/packages/gtk.scm | 25 ++++++++++++++++++++++---
 1 file changed, 22 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 81fbeb066b..42b33fb99a 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1341,12 +1341,31 @@ library.")
                (base32
                 "0y2vyp6azvhrii6rzs89kr08wg8z1p562awyr812131zqdsd83ly"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dbuild-documentation=true")
+       #:phases
+       (modify-phases %standard-phases
+         (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
-     `(("m4" ,m4)
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("m4" ,m4)
        ("mm-common" ,mm-common)
-       ("pkg-config" ,pkg-config)))
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
     (propagated-inputs
      `(("cairo" ,cairo)
        ("cairomm" ,cairomm)
-- 
2.31.0

From 1d0a31e0832501ea84e9a79b011cb9cc4783f952 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 10:29:02 -0500
Subject: [PATCH 31/56] gnu: gdk-pixbuf: Add missing arguments.

* gnu/packages/gtk.scm (gdk-pixbuf) [arguments]<#:glib-or-gtk?>: New argument.
---
 gnu/packages/gtk.scm | 81 ++++++++++++++++++++++----------------------
 1 file changed, 41 insertions(+), 40 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 42b33fb99a..da3c82f901 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -580,50 +580,51 @@ highlighting and other features typical of a source code editor.")
 
 (define-public gdk-pixbuf
   (package
-   (name "gdk-pixbuf")
-   (version "2.42.2")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version)  "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "05ggmzwvrxq9w4zcvmrnnd6qplsmb4n95lj4q607c7arzlf6mil3"))))
-   (build-system meson-build-system)
-   (arguments
-    `(#:meson ,meson-0.55
-      #:configure-flags '("-Dinstalled_tests=false")
-      #:phases
-      (modify-phases %standard-phases
-        ;; The slow tests take longer than the specified timeout.
-        ,@(if (any (cute string=? <> (%current-system))
-                   '("armhf-linux" "aarch64-linux"))
-            '((replace 'check
-              (lambda _
-                (invoke "meson" "test" "--timeout-multiplier" "5"))))
-            '()))))
-   (propagated-inputs
-    `(;; Required by gdk-pixbuf-2.0.pc
-      ("glib" ,glib)
-      ("libpng" ,libpng)
-      ;; Used for testing and required at runtime.
-      ("shared-mime-info" ,shared-mime-info)))
-   (inputs
-    `(("libjpeg" ,libjpeg-turbo)
-      ("libtiff" ,libtiff)
-      ("libx11"  ,libx11)))
-   (native-inputs
+    (name "gdk-pixbuf")
+    (version "2.42.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "05ggmzwvrxq9w4zcvmrnnd6qplsmb4n95lj4q607c7arzlf6mil3"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:meson ,meson-0.55
+       #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
+       #:configure-flags '("-Dinstalled_tests=false")
+       #:phases
+       (modify-phases %standard-phases
+         ;; The slow tests take longer than the specified timeout.
+         ,@(if (any (cute string=? <> (%current-system))
+                    '("armhf-linux" "aarch64-linux"))
+               '((replace 'check
+                   (lambda _
+                     (invoke "meson" "test" "--timeout-multiplier" "5"))))
+               '()))))
+    (propagated-inputs
+     `( ;; Required by gdk-pixbuf-2.0.pc
+       ("glib" ,glib)
+       ("libpng" ,libpng)
+       ;; Used for testing and required at runtime.
+       ("shared-mime-info" ,shared-mime-info)))
+    (inputs
+     `(("libjpeg" ,libjpeg-turbo)
+       ("libtiff" ,libtiff)
+       ("libx11"  ,libx11)))
+    (native-inputs
      `(("pkg-config" ,pkg-config)
        ("gettext" ,gettext-minimal)
-       ("glib" ,glib "bin")                               ; glib-mkenums, etc.
+       ("glib" ,glib "bin")             ; glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
-   (synopsis "GNOME image loading and manipulation library")
-   (description
-    "GdkPixbuf is a library for image loading and manipulation developed
+    (synopsis "GNOME image loading and manipulation library")
+    (description
+     "GdkPixbuf is a library for image loading and manipulation developed
 in the GNOME project.")
-   (license license:lgpl2.0+)
-   (home-page "https://developer.gnome.org/gdk-pixbuf/")))
+    (license license:lgpl2.0+)
+    (home-page "https://developer.gnome.org/gdk-pixbuf/")))
 
 ;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends
 ;; on gdk-pixbuf, so this new varibale.  Also, librsvg adds 90MiB to the
-- 
2.31.0

From 82315a2aa6ea9693ead68958bb1ae35756781b12 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 10:35:56 -0500
Subject: [PATCH 32/56] gnu: gdk-pixbuf: Correct inputs.

* gnu/packages/gtk.scm (gdk-pixbuf) [propagated-inputs]: Add libx11.
Remove libpng.
[inputs]: Add libpng. Remove libx11.
---
 gnu/packages/gtk.scm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index da3c82f901..ab6c2851bc 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -607,13 +607,14 @@ highlighting and other features typical of a source code editor.")
     (propagated-inputs
      `( ;; Required by gdk-pixbuf-2.0.pc
        ("glib" ,glib)
-       ("libpng" ,libpng)
+       ;; Required by gdk-pixbuf-xlib-2.0.pc
+       ("libx11" ,libx11)
        ;; Used for testing and required at runtime.
        ("shared-mime-info" ,shared-mime-info)))
     (inputs
      `(("libjpeg" ,libjpeg-turbo)
-       ("libtiff" ,libtiff)
-       ("libx11"  ,libx11)))
+       ("libpng"  ,libpng)
+       ("libtiff" ,libtiff)))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("gettext" ,gettext-minimal)
-- 
2.31.0

From f81a7f77b227c5a76d1cacd2014f97818a4b08f7 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 10:41:10 -0500
Subject: [PATCH 33/56] gnu: gdk-pixbuf: Enable jasper support.

* gnu/packages/gtk.scm (gdk-pixbuf) [arguments]<#:configure-flags>[-Djasper]: New flag.
[inputs]: Add jasper.
---
 gnu/packages/gtk.scm | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index ab6c2851bc..3085bb9302 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -594,7 +594,7 @@ highlighting and other features typical of a source code editor.")
     (arguments
      `(#:meson ,meson-0.55
        #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
-       #:configure-flags '("-Dinstalled_tests=false")
+       #:configure-flags '("-Dinstalled_tests=false" "-Djasper=true")
        #:phases
        (modify-phases %standard-phases
          ;; The slow tests take longer than the specified timeout.
@@ -612,7 +612,8 @@ highlighting and other features typical of a source code editor.")
        ;; Used for testing and required at runtime.
        ("shared-mime-info" ,shared-mime-info)))
     (inputs
-     `(("libjpeg" ,libjpeg-turbo)
+     `(("jasper" ,jasper)
+       ("libjpeg" ,libjpeg-turbo)
        ("libpng"  ,libpng)
        ("libtiff" ,libtiff)))
     (native-inputs
-- 
2.31.0

From 251784d0b66482bd9d47a61e0077b463b3771dee Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 10:50:46 -0500
Subject: [PATCH 34/56] gnu: gdk-pixbuf: Fix documentation.

* gnu/packages/gtk.scm (gdk-pixbuf) [arguments]<#:phases>['patch-docbook]: New phase.
[native-inputs]: Add docbook-xml and docbook-xsl.
---
 gnu/packages/gtk.scm | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 3085bb9302..79fbe8b4e8 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -593,10 +593,22 @@ highlighting and other features typical of a source code editor.")
     (build-system meson-build-system)
     (arguments
      `(#:meson ,meson-0.55
-       #:glib-or-gtk? #t ; To wrap binaries and/or compile schemas
+       #:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:configure-flags '("-Dinstalled_tests=false" "-Djasper=true")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "meson.build"
+                 (("http://docbook.sourceforge.net/release/xsl/current/")
+                  (string-append (assoc-ref inputs "docbook-xsl")
+                                 "/xml/xsl/docbook-xsl-1.79.2/")))
+               (substitute* (find-files "." "\\.xml$")
+                 (("http://www.oasis-open.org/docbook/xml/4\\.3/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
          ;; The slow tests take longer than the specified timeout.
          ,@(if (any (cute string=? <> (%current-system))
                     '("armhf-linux" "aarch64-linux"))
@@ -617,10 +629,12 @@ highlighting and other features typical of a source code editor.")
        ("libpng"  ,libpng)
        ("libtiff" ,libtiff)))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("docbook-xml" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
        ("gettext" ,gettext-minimal)
        ("glib" ,glib "bin")             ; glib-mkenums, etc.
-       ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
+       ("gobject-introspection" ,gobject-introspection) ; g-ir-compiler, etc.
+       ("pkg-config" ,pkg-config)))
     (synopsis "GNOME image loading and manipulation library")
     (description
      "GdkPixbuf is a library for image loading and manipulation developed
-- 
2.31.0

From 47c185cde70784a1196dbb136e29ca750d2fa28a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 10:53:43 -0500
Subject: [PATCH 35/56] gnu: gdk-pixbuf: Update to 2.42.4.

* gnu/packages/gtk.scm (gdk-pixbuf) [version]: Update to 2.42.4.
[native-inputs]: Add perl and libxslt.
---
 gnu/packages/gtk.scm | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 79fbe8b4e8..d8d9663f96 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -581,7 +581,7 @@ highlighting and other features typical of a source code editor.")
 (define-public gdk-pixbuf
   (package
     (name "gdk-pixbuf")
-    (version "2.42.2")
+    (version "2.42.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -589,7 +589,7 @@ highlighting and other features typical of a source code editor.")
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "05ggmzwvrxq9w4zcvmrnnd6qplsmb4n95lj4q607c7arzlf6mil3"))))
+                "0k9f9177qxaryaxprwrhqnv5p2gdq4a8i6y05gm98qa8izc5v77y"))))
     (build-system meson-build-system)
     (arguments
      `(#:meson ,meson-0.55
@@ -634,7 +634,9 @@ highlighting and other features typical of a source code editor.")
        ("gettext" ,gettext-minimal)
        ("glib" ,glib "bin")             ; glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection) ; g-ir-compiler, etc.
-       ("pkg-config" ,pkg-config)))
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
     (synopsis "GNOME image loading and manipulation library")
     (description
      "GdkPixbuf is a library for image loading and manipulation developed
-- 
2.31.0

From e43fd023938282d532bef53dff63c86643c25c1f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 10:56:29 -0500
Subject: [PATCH 36/56] gnu: gdk-pixbuf: Update synopsis, description,
 home-page and license.

* gnu/packages/gtk.scm (gdk-pixbuf) [synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Update to lgpl2.1+.
---
 gnu/packages/gtk.scm | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index d8d9663f96..448f745348 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -637,12 +637,12 @@ highlighting and other features typical of a source code editor.")
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("xsltproc" ,libxslt)))
-    (synopsis "GNOME image loading and manipulation library")
-    (description
-     "GdkPixbuf is a library for image loading and manipulation developed
-in the GNOME project.")
-    (license license:lgpl2.0+)
-    (home-page "https://developer.gnome.org/gdk-pixbuf/")))
+    (synopsis "Image loading library")
+    (description "GdkPixbuf is a library that loads image data in various
+formats and stores it as linear buffers in memory.  The buffers can then be
+scaled, composited, modified, saved, or rendered.")
+    (home-page "https://wiki.gnome.org/Projects/GdkPixbuf")
+    (license license:lgpl2.1+)))
 
 ;; To build gdk-pixbuf with SVG support, we need librsvg, and librsvg depends
 ;; on gdk-pixbuf, so this new varibale.  Also, librsvg adds 90MiB to the
-- 
2.31.0

From 629222090d04d77320a96113e4d0ab8f36a557bc Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 11:00:10 -0500
Subject: [PATCH 37/56] gnu: gdk-pixbuf: Disable failing tests.

* gnu/packages/gtk.scm (gdk-pixbuf) [arguments]<#:phases>['disable-failing-tests]: New phase.
---
 gnu/packages/gtk.scm | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 448f745348..ffcd5b0a8b 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -609,6 +609,12 @@ highlighting and other features typical of a source code editor.")
                   (string-append (assoc-ref inputs "docbook-xml")
                                  "/xml/dtd/docbook/"))))
              #t))
+         (add-before 'configure 'disable-failing-tests
+           (lambda _
+             (substitute* "tests/meson.build"
+               (("\\[ 'pixbuf-fail', \\['conform', 'slow'\\], \\],")
+                ""))
+             #t))
          ;; The slow tests take longer than the specified timeout.
          ,@(if (any (cute string=? <> (%current-system))
                     '("armhf-linux" "aarch64-linux"))
-- 
2.31.0

From 64304d6df762d4f2eee457b325178fcd5ea6bcff Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 11:08:24 -0500
Subject: [PATCH 38/56] gnu: gdk-pixbuf+svg: Correct package definition to
 include changes from gdk-pixbuf.

* gnu/packages/gtk.scm (gdk-pixbuf+svg) [arguments]: Modify.
[synopsis]: Modify.
---
 gnu/packages/gtk.scm | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index ffcd5b0a8b..392ba0d492 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -660,10 +660,9 @@ scaled, composited, modified, saved, or rendered.")
      `(("librsvg" ,librsvg)
        ,@(package-inputs gdk-pixbuf)))
     (arguments
-     '(#:configure-flags '("-Dinstalled-tests=false")
-       #:tests? #f ; tested by the gdk-pixbuf package already
-       #:phases
-       (modify-phases %standard-phases
+     (substitute-keyword-arguments (package-arguments gdk-pixbuf)
+        ((#:phases phases)
+          `(modify-phases ,phases
          (add-after 'install 'register-svg-loader
            (lambda* (#:key inputs outputs #:allow-other-keys)
              (let* ((out     (assoc-ref outputs "out"))
@@ -677,9 +676,8 @@ scaled, composited, modified, saved, or rendered.")
                (apply invoke
                       gdk-pixbuf-query-loaders
                       "--update-cache"
-                      loaders)))))))
-    (synopsis
-     "GNOME image loading and manipulation library, with SVG support")))
+                      loaders))))))))
+    (synopsis "Image loading library, with SVG support")))
 
 (define-public at-spi2-core
   (package
-- 
2.31.0

From b1af4b828070993303cc32327e9877f1ab872dae Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 11:20:37 -0500
Subject: [PATCH 39/56] gnu: vala: Change build-system.

* gnu/packages/gnome.scm (vala) [build-system]: Change from gnu to glib-or-gtk.
---
 gnu/packages/gnome.scm | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 36e3346499..9c990c5512 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4262,28 +4262,28 @@ passwords in the GNOME keyring.")
               (sha256
                (base32
                 "1nx5xjarpkl9hgy0qbqfczx7d7clh5g1r8xr5xp8b97c5fsc2rb1"))))
-    (build-system gnu-build-system)
+    (build-system glib-or-gtk-build-system)
     (arguments
      '(#:phases
        (modify-phases %standard-phases
          (add-before 'check 'pre-check
-                     (lambda _
-                       (setenv "CC" "gcc")
-                       (substitute* "valadoc/tests/libvaladoc\
+           (lambda _
+             (setenv "CC" "gcc")
+             (substitute* "valadoc/tests/libvaladoc\
 /tests-extra-environment.sh"
-                         (("export PKG_CONFIG_PATH=" m)
-                          (string-append m "$PKG_CONFIG_PATH:"))))))))
+               (("export PKG_CONFIG_PATH=" m)
+                (string-append m "$PKG_CONFIG_PATH:"))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("flex" ,flex)
        ("bison" ,bison)
        ("xsltproc" ,libxslt)
-       ("dbus" ,dbus)                                     ; for dbus tests
+       ("dbus" ,dbus)                   ; for dbus tests
        ("gobject-introspection" ,gobject-introspection))) ; for gir tests
     (inputs
      `(("graphviz" ,graphviz)))
     (propagated-inputs
-     `(("glib" ,glib))) ; required by libvala-0.40.pc
+     `(("glib" ,glib)))                 ; required by libvala-0.40.pc
     (home-page "https://wiki.gnome.org/Projects/Vala/")
     (synopsis "Compiler for the GObject type system")
     (description
-- 
2.31.0

From bdc8b8a32f20c9695db3f2daf351b5933dd1007a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 11:23:56 -0500
Subject: [PATCH 40/56] gnu: vala: Enable coverage support.

* gnu/packages/gnome.scm (vala) [arguments]<#:configure-flags>
[--enable-coverage]: New flag.
---
 gnu/packages/gnome.scm | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 9c990c5512..d5de60f5d1 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4264,7 +4264,8 @@ passwords in the GNOME keyring.")
                 "1nx5xjarpkl9hgy0qbqfczx7d7clh5g1r8xr5xp8b97c5fsc2rb1"))))
     (build-system glib-or-gtk-build-system)
     (arguments
-     '(#:phases
+     '(#:configure-flags '("--enable-coverage")
+       #:phases
        (modify-phases %standard-phases
          (add-before 'check 'pre-check
            (lambda _
-- 
2.31.0

From 4f1d955509fab0c9f4f2999e83f412d0bb7731d8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 11:30:26 -0500
Subject: [PATCH 41/56] gnu: vala: Fix documentation.

* gnu/packages/gnome.scm (vala) [arguments]<#:phases>['patch-docbook-xml]: New phase.
[native-inputs]: Add docbook-xml and docbook-xsl.
---
 gnu/packages/gnome.scm | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index d5de60f5d1..49fdfa9014 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4267,6 +4267,14 @@ passwords in the GNOME keyring.")
      '(#:configure-flags '("--enable-coverage")
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc/manual"
+               (substitute* '("manual.xml" "version.xml.in")
+                 (("http://www.oasis-open.org/docbook/xml/4.4/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
          (add-before 'check 'pre-check
            (lambda _
              (setenv "CC" "gcc")
@@ -4276,6 +4284,8 @@ passwords in the GNOME keyring.")
                 (string-append m "$PKG_CONFIG_PATH:"))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)
+       ("docbook-xml" ,docbook-xml-4.4)
+       ("docbook-xsl" ,docbook-xsl)
        ("flex" ,flex)
        ("bison" ,bison)
        ("xsltproc" ,libxslt)
-- 
2.31.0

From caa8ab0a04cd4ec54b53f2036cd72b97b03c1dfb Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 11:34:48 -0500
Subject: [PATCH 42/56] gnu: vala: Update to 0.52.0.

* gnu/packages/gnome.scm (vala) [version]: Update to 0.52.0.
[native-inputs]: Add help2man and perl.
[inputs]: Move graphviz to ...
[propagated-inputs]: ... here.
---
 gnu/packages/gnome.scm | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 49fdfa9014..821e4a00eb 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -141,6 +141,7 @@
   #:use-module (gnu packages lirc)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages mail)
+  #:use-module (gnu packages man)
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages music)
@@ -4253,7 +4254,7 @@ passwords in the GNOME keyring.")
 (define-public vala
   (package
     (name "vala")
-    (version "0.50.3")
+    (version "0.52.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/vala/"
@@ -4261,7 +4262,7 @@ passwords in the GNOME keyring.")
                                   "vala-" version ".tar.xz"))
               (sha256
                (base32
-                "1nx5xjarpkl9hgy0qbqfczx7d7clh5g1r8xr5xp8b97c5fsc2rb1"))))
+                "12y6p8wdjp01vmfhxg2cgh32xnyqq6ivblvrar9clnj6vc867qhx"))))
     (build-system glib-or-gtk-build-system)
     (arguments
      '(#:configure-flags '("--enable-coverage")
@@ -4283,18 +4284,19 @@ passwords in the GNOME keyring.")
                (("export PKG_CONFIG_PATH=" m)
                 (string-append m "$PKG_CONFIG_PATH:"))))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("bison" ,bison)
+       ("dbus" ,dbus)                   ; for dbus tests
        ("docbook-xml" ,docbook-xml-4.4)
        ("docbook-xsl" ,docbook-xsl)
        ("flex" ,flex)
-       ("bison" ,bison)
-       ("xsltproc" ,libxslt)
-       ("dbus" ,dbus)                   ; for dbus tests
-       ("gobject-introspection" ,gobject-introspection))) ; for gir tests
-    (inputs
-     `(("graphviz" ,graphviz)))
+       ("gobject-introspection" ,gobject-introspection) ; for gir tests
+       ("help2man" ,help2man)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
     (propagated-inputs
-     `(("glib" ,glib)))                 ; required by libvala-0.40.pc
+     `(("glib" ,glib)                   ; required by libvala-0.40.pc
+       ("libgvc" ,graphviz)))
     (home-page "https://wiki.gnome.org/Projects/Vala/")
     (synopsis "Compiler for the GObject type system")
     (description
-- 
2.31.0

From ac5a1ab6ebce5893f57ab4d59aa03ebb59eb2c5c Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 11:38:26 -0500
Subject: [PATCH 43/56] gnu: vala: Update synopsis and description.

* gnu/packages/gnome.scm (vala) [synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 821e4a00eb..c378bdb325 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4298,12 +4298,12 @@ passwords in the GNOME keyring.")
      `(("glib" ,glib)                   ; required by libvala-0.40.pc
        ("libgvc" ,graphviz)))
     (home-page "https://wiki.gnome.org/Projects/Vala/")
-    (synopsis "Compiler for the GObject type system")
-    (description
-     "Vala is a programming language that aims to bring modern programming
-language features to GNOME developers without imposing any additional runtime
-requirements and without using a different ABI compared to applications and
-libraries written in C.")
+    (synopsis "Compiler using the GObject type system")
+    (description "Vala is a programming language using modern high level
+abstractions without imposing additional runtime requirements and without using
+a different ABI compared to applications and libraries written in C.  Vala uses
+the GObject type system and has additional code generation routines that make
+targeting the GNOME stack simple.")
     (license license:lgpl2.1+)))
 
 (define-public vte
-- 
2.31.0

From b3f83605e0fc2a2dc2084e344be645fe35f59df3 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 11:53:42 -0500
Subject: [PATCH 44/56] gnu: libgsf: Change build-system.

* gnu/packages/gnome.scm (libgsf) [build-system]: Change from gnu to glib-or-gtk.
---
 gnu/packages/gnome.scm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index c378bdb325..3b98b50d3b 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3258,7 +3258,7 @@ XML/CSS rendering engine.")
               (sha256
                (base32
                 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
-    (build-system gnu-build-system)
+    (build-system glib-or-gtk-build-system)
     (arguments
      '(#:configure-flags '("--disable-static")))
     (native-inputs
-- 
2.31.0

From 90b5c27933d42df54ffba2b4c0d6b3695c3f8021 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 11:56:04 -0500
Subject: [PATCH 45/56] gnu: libgsf: Make separate output for binaries.

* gnu/packages/gnome.scm (libgsf) [outputs]: New output "bin".
---
 gnu/packages/gnome.scm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 3b98b50d3b..6f8c00ca82 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3259,6 +3259,7 @@ XML/CSS rendering engine.")
                (base32
                 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
     (build-system glib-or-gtk-build-system)
+    (outputs '("out" "bin"))
     (arguments
      '(#:configure-flags '("--disable-static")))
     (native-inputs
-- 
2.31.0

From 5c0558597c01fc51a67e1e4cf6fc681214e73241 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 12:02:14 -0500
Subject: [PATCH 46/56] gnu: libgsf: Re-arrange inputs in alphabetical order.

* gnu/packages/gnome.scm (libgsf) [native-inputs]: Modify.
[inputs]: Modify.
---
 gnu/packages/gnome.scm | 12 +++++-------
 1 file changed, 5 insertions(+), 7 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 6f8c00ca82..eebd5d1a1f 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3263,15 +3263,13 @@ XML/CSS rendering engine.")
     (arguments
      '(#:configure-flags '("--disable-static")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("gettext" ,gettext-minimal)
-
-       ;; For tests.
+     `(("gettext" ,gettext-minimal)
        ("perl" ,perl)
-       ("perl-xml-parser" ,perl-xml-parser)))
+       ("perl-xml-parser" ,perl-xml-parser)
+       ("pkg-config" ,pkg-config)))
     (inputs
-     `(("zlib" ,zlib)
-       ("bzip2" ,bzip2)))
+     `(("bzip2" ,bzip2)
+       ("zlib" ,zlib)))
     (propagated-inputs
      `(("gdk-pixbuf" ,gdk-pixbuf)
        ("glib" ,glib)
-- 
2.31.0

From 296a65a95336f80399d71238f260b0cf7e3301fa Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 12:08:10 -0500
Subject: [PATCH 47/56] gnu: libgsf: Enable missing features.

* gnu/packages/gnome.scm (libgsf) [arguments]<#:configure-flag>[--enable-introspection]: New flag.
[--with-gir-dir=]: New flag.
[--with-typelib-dir=]: New flag.
[--with-zlib]: New flag.
[--with-bz2]: New flag.
[native-inputs]: Add gobject-introspection.
---
 gnu/packages/gnome.scm | 20 +++++++++++++++++++-
 1 file changed, 19 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index eebd5d1a1f..7a729274f0 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3261,9 +3261,27 @@ XML/CSS rendering engine.")
     (build-system glib-or-gtk-build-system)
     (outputs '("out" "bin"))
     (arguments
-     '(#:configure-flags '("--disable-static")))
+     `(#:configure-flags
+       (list
+        "--disable-static"
+        "--enable-introspection"
+        (string-append "--with-gir-dir="
+                       (assoc-ref %outputs "out")
+                       "/share/gir-"
+                       ,(version-major
+                         (package-version gobject-introspection))
+                       ".0")
+        (string-append "--with-typelib-dir="
+                       (assoc-ref %outputs "out")
+                       "/lib/girepository-"
+                       ,(version-major
+                         (package-version gobject-introspection))
+                       ".0")
+        "--with-zlib"
+        "--with-bz2")))
     (native-inputs
      `(("gettext" ,gettext-minimal)
+       ("gobject-introspection" ,gobject-introspection)
        ("perl" ,perl)
        ("perl-xml-parser" ,perl-xml-parser)
        ("pkg-config" ,pkg-config)))
-- 
2.31.0

From ea43092958eea175b16ad6a91b7ec0b0cedf87a8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 12:11:02 -0500
Subject: [PATCH 48/56] gnu: libgsf: Correct inputs.

* gnu/packages/gnome.scm (libgsf) [native-inputs]: Add python-wrapper.
[propagated-inputs]: Move gdk-pixbuf to ...
[inputs]: ... here.
---
 gnu/packages/gnome.scm | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 7a729274f0..790edba464 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3284,13 +3284,14 @@ XML/CSS rendering engine.")
        ("gobject-introspection" ,gobject-introspection)
        ("perl" ,perl)
        ("perl-xml-parser" ,perl-xml-parser)
-       ("pkg-config" ,pkg-config)))
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)))
     (inputs
      `(("bzip2" ,bzip2)
+       ("gdk-pixbuf" ,gdk-pixbuf)
        ("zlib" ,zlib)))
     (propagated-inputs
-     `(("gdk-pixbuf" ,gdk-pixbuf)
-       ("glib" ,glib)
+     `(("glib" ,glib)
        ("libxml2" ,libxml2)))
     (home-page "https://www.gnome.org/projects/libgsf")
     (synopsis "GNOME's Structured File Library")
-- 
2.31.0

From e60375bca051acaa156ececa0075adb658015e44 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 12:20:52 -0500
Subject: [PATCH 49/56] gnu: libgsf: Enable documentation.

* gnu/packages/gnome.scm (libgsf) [outputs]: New output "doc".
[arguments]<#:configure-flags>[--with-html-dir]: New flag.
[native-inputs]: Add docbook-xml.
---
 gnu/packages/gnome.scm | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 790edba464..08db85917a 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3259,7 +3259,7 @@ XML/CSS rendering engine.")
                (base32
                 "0kbpp9ksl7977xiga37sk1gdw1r039v6zviqznl7alvvg39yp26i"))))
     (build-system glib-or-gtk-build-system)
-    (outputs '("out" "bin"))
+    (outputs '("out" "bin" "doc"))
     (arguments
      `(#:configure-flags
        (list
@@ -3277,10 +3277,24 @@ XML/CSS rendering engine.")
                        ,(version-major
                          (package-version gobject-introspection))
                        ".0")
+        (string-append "--with-html-dir="
+                       (assoc-ref %outputs "doc")
+                       "/share/gtk-doc/html")
         "--with-zlib"
-        "--with-bz2")))
+        "--with-bz2")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "doc"
+               (substitute* "gsf-docs.xml"
+                 (("http://www.oasis-open.org/docbook/xml/4.5/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t)))))
     (native-inputs
-     `(("gettext" ,gettext-minimal)
+     `(("docbook-xml" ,docbook-xml)
+       ("gettext" ,gettext-minimal)
        ("gobject-introspection" ,gobject-introspection)
        ("perl" ,perl)
        ("perl-xml-parser" ,perl-xml-parser)
-- 
2.31.0

From e8559862320e1c8ed3eab5a81f889a05a8148419 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 12:22:54 -0500
Subject: [PATCH 50/56] gnu: libgsf: Update synopsis, description, home-page
 and license.

* gnu/packages/gnome.scm (libgsf) [synopsis]: Modify.
[home-page]: Modify.
[description]: Modify.
[license]: Modify.
---
 gnu/packages/gnome.scm | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 08db85917a..67f00539e7 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3307,14 +3307,16 @@ XML/CSS rendering engine.")
     (propagated-inputs
      `(("glib" ,glib)
        ("libxml2" ,libxml2)))
-    (home-page "https://www.gnome.org/projects/libgsf")
-    (synopsis "GNOME's Structured File Library")
-    (description
-     "Libgsf aims to provide an efficient extensible I/O abstraction for
-dealing with different structured file formats.")
-
-    ;; LGPLv2.1-only.
-    (license license:lgpl2.1)))
+    (synopsis "G Structured File Library")
+    (description "Libgsf aims to provide an efficient extensible I/O abstraction
+for dealing with different structured file formats.")
+    (home-page "https://gitlab.gnome.org/GNOME/libgsf")
+    (license
+     (list
+      ;; Library
+      license:lgpl2.1+
+      ;; Others
+      license:lgpl2.0+))))
 
 (define-public librsvg
   (package
-- 
2.31.0

From 1ff140785d5154e540f27aaae421fa406dad59a0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 12:39:47 -0500
Subject: [PATCH 51/56] gnu: atk: Re-arrange inputs in alphabetical order.

* gnu/packages/gtk.scm (atk) [native-inputs]: Modify.
---
 gnu/packages/gtk.scm | 44 ++++++++++++++++++++++----------------------
 1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 392ba0d492..5b18a030dc 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -98,30 +98,30 @@
 
 (define-public atk
   (package
-   (name "atk")
-   (version "2.34.1")
-   (source (origin
-            (method url-fetch)
-            (uri (string-append "mirror://gnome/sources/" name "/"
-                                (version-major+minor version)  "/"
-                                name "-" version ".tar.xz"))
-            (sha256
-             (base32
-              "1jwp16r6p5z66k4b2v8zlzhyshhwlmyi27ippkrgqr8jsary7w6l"))))
-   (build-system meson-build-system)
-   (propagated-inputs `(("glib" ,glib))) ; required by atk.pc
-   (native-inputs
-    `(("pkg-config" ,pkg-config)
-      ("gettext" ,gettext-minimal)
-      ("glib" ,glib "bin")                               ; glib-mkenums, etc.
-      ("gobject-introspection" ,gobject-introspection))) ; g-ir-compiler, etc.
-   (synopsis "GNOME accessibility toolkit")
-   (description
-    "ATK provides the set of accessibility interfaces that are implemented
+    (name "atk")
+    (version "2.34.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1jwp16r6p5z66k4b2v8zlzhyshhwlmyi27ippkrgqr8jsary7w6l"))))
+    (build-system meson-build-system)
+    (propagated-inputs `(("glib" ,glib))) ; required by atk.pc
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("glib" ,glib "bin")             ; glib-mkenums, etc.
+       ("gobject-introspection" ,gobject-introspection) ; g-ir-compiler, etc.
+       ("pkg-config" ,pkg-config)))
+    (synopsis "GNOME accessibility toolkit")
+    (description
+     "ATK provides the set of accessibility interfaces that are implemented
 by other toolkits and applications.  Using the ATK interfaces, accessibility
 tools have full access to view and control running applications.")
-   (license license:lgpl2.0+)
-   (home-page "https://developer.gnome.org/atk/")))
+    (license license:lgpl2.0+)
+    (home-page "https://developer.gnome.org/atk/")))
 
 (define-public cairo
   (package
-- 
2.31.0

From c125c4207235c60507cd1541e22b5335246ba912 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 12:44:36 -0500
Subject: [PATCH 52/56] gnu: atk: Update to 2.36.0.

* gnu/packages/gtk.scm (atk) [version]: Update to 2.36.0.
[arguments]<#:glib-or-gtk?>: New argument.
---
 gnu/packages/gtk.scm | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 5b18a030dc..dee979a012 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -99,7 +99,7 @@
 (define-public atk
   (package
     (name "atk")
-    (version "2.34.1")
+    (version "2.36.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://gnome/sources/" name "/"
@@ -107,8 +107,10 @@
                                   name "-" version ".tar.xz"))
               (sha256
                (base32
-                "1jwp16r6p5z66k4b2v8zlzhyshhwlmyi27ippkrgqr8jsary7w6l"))))
+                "1217cmmykjgkkim0zr1lv5j13733m4w5vipmy4ivw0ll6rz28xpv"))))
     (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t))  ; To wrap binaries and/or compile schemas
     (propagated-inputs `(("glib" ,glib))) ; required by atk.pc
     (native-inputs
      `(("gettext" ,gettext-minimal)
-- 
2.31.0

From 080fd5731b57764dd02b3809e7ed438fe0a8d6e0 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 12:46:00 -0500
Subject: [PATCH 53/56] gnu: atk: Update home-page and license.

* gnu/packages/gtk.scm (atk) [home-page]: Modify.
[license]: Update to lgpl2.1+.
---
 gnu/packages/gtk.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index dee979a012..92c628d3a1 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -122,8 +122,8 @@
      "ATK provides the set of accessibility interfaces that are implemented
 by other toolkits and applications.  Using the ATK interfaces, accessibility
 tools have full access to view and control running applications.")
-    (license license:lgpl2.0+)
-    (home-page "https://developer.gnome.org/atk/")))
+    (license license:lgpl2.1+)
+    (home-page "https://wiki.gnome.org/Accessibility")))
 
 (define-public cairo
   (package
-- 
2.31.0

From c5c824f5103b3e48915195acd3615c18975d42e2 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 12:50:53 -0500
Subject: [PATCH 54/56] gnu: atkmm: Update to 2.36.0.

* gnu/packages/gtk.scm (atkmm) [version]: Update to 2.36.0.
[build-system]: Change from gnu to meson.
[arguments]<#:glib-or-gtk?>: New argument.
[native-inputs]: Add m4, mm-common, perl and libxslt.
---
 gnu/packages/gtk.scm | 28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 92c628d3a1..b9878e68dd 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -78,6 +78,7 @@
   #:use-module (gnu packages image)
   #:use-module (gnu packages libffi)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages m4)
   #:use-module (gnu packages man)
   #:use-module (gnu packages pdf)
   #:use-module (gnu packages perl)
@@ -1425,17 +1426,24 @@ library.")
 (define-public atkmm
   (package
     (name "atkmm")
-    (version "2.28.0")
+    (version "2.36.0")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/" name "/"
-                                 (version-major+minor version)  "/"
-                                 name "-" version ".tar.xz"))
-             (sha256
-              (base32
-               "0fnxrspxkhhbrjphqrpvl3zjm66n50s4cywrrrwkhbflgy8zqk2c"))))
-    (build-system gnu-build-system)
-    (native-inputs `(("pkg-config" ,pkg-config)))
+              (method url-fetch)
+              (uri (string-append "mirror://gnome/sources/" name "/"
+                                  (version-major+minor version)  "/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32
+                "0wwr0663jrqx2klsasffd9wpk3kqnwisj1y3ahdkjdk5hzrsjgy9"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
+    (native-inputs
+     `(("m4" ,m4)
+       ("mm-common" ,mm-common)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("xsltproc" ,libxslt)))
     (propagated-inputs
      `(("glibmm" ,glibmm) ("atk" ,atk)))
     (home-page "https://www.gtkmm.org")
-- 
2.31.0

From fe613e4f485fad11921b39890cd2e712333ed519 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Wed, 24 Mar 2021 22:46:44 -0400
Subject: [PATCH 55/56] gnu: atkmm: Enable documentation.

* gnu/packages/gtk.scm (atkmm) [outputs]: Add new output "doc".
[arguments]<#:configure-flags>[-Denable-documentation]: New flag.
[arguments]<#:phases>['move-doc]: New phase.
[native-inputs]: Add graphviz, doxygen.
---
 gnu/packages/gtk.scm | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index b9878e68dd..7c3e384f47 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -74,6 +74,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages graphviz)
   #:use-module (gnu packages icu4c)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libffi)
@@ -1436,10 +1437,27 @@ library.")
                (base32
                 "0wwr0663jrqx2klsasffd9wpk3kqnwisj1y3ahdkjdk5hzrsjgy9"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dbuild-documentation=true")
+       #:phases
+       (modify-phases %standard-phases
+         (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
-     `(("m4" ,m4)
+     `(("dot" ,graphviz)
+       ("doxygen" ,doxygen)
+       ("m4" ,m4)
        ("mm-common" ,mm-common)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-- 
2.31.0

From 634e43a0fd9dabe5387169086ec3142f00c99d1e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <[email-masked]>
Date: Thu, 11 Mar 2021 13:01:19 -0500
Subject: [PATCH 56/56] gnu: atkmm: Update synopsis, description, home-page and
 license.

* gnu/packages/gtk.scm (atkmm) [synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Add gpl2+.
---
 gnu/packages/gtk.scm | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index 7c3e384f47..9c5474393d 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -1464,12 +1464,15 @@ library.")
        ("xsltproc" ,libxslt)))
     (propagated-inputs
      `(("glibmm" ,glibmm) ("atk" ,atk)))
-    (home-page "https://www.gtkmm.org")
-    (synopsis "C++ interface to the ATK accessibility library")
-    (description
-     "ATKmm provides a C++ programming interface to the ATK accessibility
-toolkit.")
-    (license license:lgpl2.1+)))
+    (synopsis "C++ bindings for ATK")
+    (description "ATKmm is the C++ binding for the ATK library.")
+    (home-page "https://wiki.gnome.org/Accessibility")
+    (license
+     (list
+      ;; Library
+      license:lgpl2.1+
+      ;; Tools
+      license:gpl2+))))
 
 (define-public gtkmm
   (package
-- 
2.31.0