unofficial mirror of guix-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Raghav Gururajan <raghavgururajan@disroot.org>
To: guix-devel@gnu.org
Subject: Re: [OUTREACHY]: Integration of desktop environments into GNU Guix
Date: Sun, 14 Jun 2020 09:31:04 -0400	[thread overview]
Message-ID: <73cb94f7-d7b4-ec0a-5942-e701a18bdf5c@disroot.org> (raw)
In-Reply-To: <30888750-2c5b-d94f-6199-f8539b2d0de0@disroot.org>


[-- Attachment #1.1.1: Type: text/plain, Size: 10051 bytes --]

@Danny

Please find the attached patches.

Corrections:
1) I accidentally left out a patch for glib. I have attached as separate
file. Could you please merge with glib patch while pushing to
wip-desktop? Thanks.
2) There are two two patches named gst-plugins-base. One of them is
gst-plugins-good.

Blog Update:
https://hub.disroot.org/channel/raghavgururajan?f=&cat=outreachy

@Others

Please find the following git log.

commit 1a7ac994f1c75879adaed986d3ee9a580e1dbae8
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 11 11:30:26 2020 -0400

    gnu: gst-plugins-base: Update package definition.

    * gnu/packages/gstreamer.scm (gst-plugins-base): Update package
definition.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['disable-tests-for-armhf]: Remove phase.
    ['disable-failing-tests]: Remove phase.
    ['patch-docbook-xml]: New phase.
    ['pre-check]: New phase.
    [native-inputs]: Add docbook-xml, gettext-minimal,
gobject-introspection,
    gsettings-desktop-schemas, perl, libxml2 and xorg-server-for-tests.
    [inputs]: Add bzip2, glib, glib-networking, glu, libgudev, libx11,
    libxdamage, libxfixes, libxext, libxshmfence, mesa and v4l-utils.
    Remove gst-plugins-base.
    [propagated-inputs]: Add gstreamer and gst-plugins-base.
    [synopsis]: Modify.
    [description]: Modify.

commit 5ab9cf514339d644b1aa2620196ddc08159e29d4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 11 08:40:14 2020 -0400

    gnu: gst-plugins-base: Update package definition.

    * gnu/packages/gstreamer.scm (gst-plugins-base): Update package
definition.
    [outputs]: New output 'doc'.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:configure-flags>[-Dgl]: Remove flag.
    [-Ddoc]: Remove flag.
    <#:phases>['patch]: Remove phase.
    ['patch-docbook-xml]: New phase.
    ['patch-tests]: New phase.
    ['pre-check]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml, gettext-minimal, gtk-doc,
gsettings-desktop-
    schemas, perl, libxml2 and xorg-server-for-tests.
    [inputs]: Add gdk-pixbuf+svg, glu, graphene, gtk+, iso-codes,
libgudev, libjpeg-
    turbo, libvisual, libxshmfence, mesa, sdl and wayland. Remove
arguments for opus.
    [propagated-inputs]: Add glib-networking. Remove arguments for orc.
    [synopsis]: Modify.
    [description]: Modify.

commit fe25f5ecac3e725e1738a082aab5353643d9f990
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 11 08:12:25 2020 -0400

    gnu: Add libvisual-plugins.

    * gnu/packages/gstreamer.scm (libvisual-plugins): New variable.

commit 1cec6d61ea70139390b9298e69daa960bc5d1fd4
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 11 06:31:26 2020 -0400

    gnu: Add esound.

    * gnu/packages/gstreamer.scm (esound): New variable.

commit 7a6456c0c2203e43797f02a8198817de6739903f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Thu Jun 11 04:13:59 2020 -0400

    gnu: Add libvisual.

    * gnu/packages/gstreamer.scm (libvisual): New variable.

commit 47525c79723b9556ac4044b26405291405a67a64
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Wed Jun 10 10:32:15 2020 -0400

    gnu: gstreamer: Update package definition.

    * gnu/packages/gstreamer.scm (gstreamer): Update package definition.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['patch-dockbook-xml]: New phase.
    ['disable-failing-tests]: Remove phase.
    [native-inputs]: Add bash-completion, docbook-xml, docbook-xsl,
    gettext-minimal and libxml2.
    [inputs]: Add gmp, gsl, gtk+ and libcap.
    [propagated-inputs]: Add glib-networking, elfutils and libunwind.
    [synopsis]: Modify.
    [description]: Modify.

commit d7152fbbd88c298109dc25bdc58d7b08d531b93f
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 10:14:45 2020 -0400

    gnu: gsettings-desktop-schemas: Update package definition.

    * gnu/packages/gnome.scm (gsettings-desktop-schemas) [version]:
    Update to 3.37.1.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['patch-schemas]: Remove phase.
    [native-inputs]: Add gettext-minimal. Remove intltool.
    [inputs]: Remove gnome-backgrounds.
    [synopsis]: Modify.

commit 718f5ee403075e20dc9f9c25a0ea8e8d9a92bb13
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 09:44:44 2020 -0400

    gnu: graphene: Update package definition.

    * gnu/packages/gtk.scm (graphene): Update package definition.
    [source]<origin>[method]: Change from url-fetch to git-fetch.
    [uri]: Add git-reference.
    [sha256]: Modify base32.
    [arguments]<#:glib-or-gtk?>: New argument.
    [native-inputs]: Add git-minimal and mutest.

commit ee1ee05ae094010a41ca44bc15761bd8e0f54438
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 09:43:01 2020 -0400

    gnu: Add mutest.

    * gnu/packages/check.scm (mutest): New variable.

commit 1e72d7b4078c86b268ed913ce635849f6e291dd5
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 09:07:54 2020 -0400

    gnu: gobject-introspection: Update package definition.

    * gnu/packages/glib.scm (gobject-introspection) [version]: Update
    to 1.64.1.
    [source]<origin>[sha256]: Modify base32.
    [patches]: Remove all patches.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>: Remove all phases.
    [native-inputs]: Add bison and flex.
    [inputs]: Remove bison, flex and zlib.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Modify.

commit 6c524cb1fdfaf23a5402c9b48559f58ba9fef5d6
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 07:36:50 2020 -0400

    gnu: glib-networking: Update to 2.64.3.

    * gnu/packages/gnome.scm (glib-networking) [version]: Update to
    2.64.3.
    [source]<origin>[sha256]: Modify base32.

commit 53e25ebe6777afb6fa47a5abf9a4de044c1350c9
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 07:29:17 2020 -0400

    gnu: glib-with-documentation: Update package definition.

    * gnu/packages/glib.scm (glib-with-documentation): Update package
    definition.
    [properties]: Remove field.
    [native-inputs]: Remove libxml2.
    [arguments]<#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: Modify phase.

commit 6c4c1a25fec971dc3d121212c4f116889a4d7af1
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Tue Jun 9 05:49:46 2020 -0400

    gnu: glib: Update package definition.

    * gnu/packages/glib.scm (glib) [version]: Update to 2.64.3.
    [source]<origin>[sha256]: Modify base32.
    [patches]: Add glib-disable-failing-tests.patch.
    Remove glib-tests-timer.patch.
    [arguments]<#:disallowed-references>: Remove argument.
    <#: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]: Remove phase.
    ['check]: Remove phase.
    ['move-executables]: Remove phase.
    [native-inputs]: Add intltool, python, libxml2 and libxslt.
    Remove dbus.
    [inputs]: Add dbus and libelf.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Update to lgpl2.1+.

commit 24c4a8a9d4a5ba30b630ccaebd25c069ba6bc533
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jun 6 16:10:05 2020 -0400

    gnu: glib-networking: Update to 2.62.4.

    * gnu/packages/gnome.scm (glib-networking): Update package definition.
    [version]: Update to 2.62.4.
    [source]<origin>[sha256]: Modify base32.
    [arguments]<#glib-or-gtk?>: New argument.
    <#configure-flags>[-Dopenssl]: New flag.
    [-Dlibproxy_support]: Remove flag.
    [native-inputs]: Add glib:bin and gobject-introspection.
    [inputs]: Add libproxy and openssl.
    [synopsis]: Modify.
    [description]: Modify.
    [home-page]: Modify.
    [license]: Update to lgpl2.1+.

commit b1da3aae5d880ef5dfda3fc044f57bbae9a8e604
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Sat Jun 6 00:05:37 2020 -0400

    gnu: gjs: Update to 1.58.8.

    * gnu/packages/gnome.scm (gjs): Update package definition.
    [version]: Update to 1.58.8.
    [source]<origin>[sha256]: Modify base32.
    [build-system]: Change from gnu to glib-or-gtk.
    [arguments]<#:configure-flags>[--enable-code-coverage]: New flag.
    [--enable-asan]: New flag.
    [--enable-ubsan]: New flag.
    [native-inputs]: Add gobject-introspection and lcov.
    [inputs]: Add ncurses and sysprof.
    [propagated-inputs]: Add glib and libffi.
    [home-page]: Modify.
    [license]: Add expat and lgpl2.0+. Remove gpl2+.

commit aa67f71920673e5d1267e222d93cd2b3f441d2a1
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jun 5 22:22:56 2020 -0400

    gnu: Add sysprof.

    * gnu/packages/gnome.scm (sysprof): New variable.

commit 85eaa9727a5af735f398e8b571a47325c99ce88a
Author: Raghav Gururajan <raghavgururajan@disroot.org>
Date:   Fri Jun 5 01:48:07 2020 -0400

    gnu: geoclue: Update to 2.5.6.

    * gnu/packages/gnome.scm (geoclue): Update package definition.
    [version]: Update to 2.5.6.
    [source]<origin>[method]: Change from url-fetch to git-fetch.
    [outputs]: New output 'doc'.
    [arguments]<#:glib-or-gtk?>: New argument.
    <#:phases>['patch-docbook-xml]: New phase.
    ['move-doc]: New phase.
    [native-inputs]: Add docbook-xml, glib:bin and vala. Remove libnotify
    and modem-manager.
    [inputs]: Add libnotify and modem-manager.
    [propagated-inputs]: Add glib.
    [synopsis]: Modify.
    [description]: Modify.

Regards,
RG.

[-- Attachment #1.1.2: 0017-gnu-geoclue-Update-to-2.5.6.patch --]
[-- Type: text/x-patch, Size: 4598 bytes --]

From 85eaa9727a5af735f398e8b571a47325c99ce88a Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 5 Jun 2020 01:48:07 -0400
Subject: [PATCH 17/54] gnu: geoclue: Update to 2.5.6.

* gnu/packages/gnome.scm (geoclue): Update package definition.
[version]: Update to 2.5.6.
[source]<origin>[method]: Change from url-fetch to git-fetch.
[outputs]: New output 'doc'.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, glib:bin and vala. Remove libnotify
and modem-manager.
[inputs]: Add libnotify and modem-manager.
[propagated-inputs]: Add glib.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gnome.scm | 65 +++++++++++++++++++++++++++++-------------
 1 file changed, 45 insertions(+), 20 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ca66818de2..ba01928aa8 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -4345,40 +4345,65 @@ output devices.")
 (define-public geoclue
   (package
     (name "geoclue")
-    (version "2.5.5")
+    (version "2.5.6")
     (source
      (origin
-       (method url-fetch)
+       (method git-fetch)
        (uri
-        (string-append "https://gitlab.freedesktop.org/geoclue/geoclue/-/archive/"
-                       version "/geoclue-" version ".tar.bz2"))
+        (git-reference
+         (url "https://gitlab.freedesktop.org/geoclue/geoclue.git")
+         (commit version)))
+       (file-name (git-file-name name version))
        (sha256
-        (base32
-         "1b7jqrsn4x7mxjxj8hvb2dl2cmhrpb9vibs4rvkkanky5nsx3sai"))
-       (patches (search-patches "geoclue-config.patch"))))
+        (base32 "13fk6n4j74lvcsrg3kwbw1mkxgcr3iy9dnysmy0pclfsym8z5m5m"))))
     (build-system meson-build-system)
+    (outputs '("out" "doc"))
     (arguments
-     '(#:configure-flags (list "-Dbus-srv-user=geoclue")))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Ddbus-srv-user=geoclue")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* '("geoclue-docs.xml" "lib/libgeoclue-docs.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/gtk-doc")
+                (string-append doc "/share/gtk-doc"))
+               #t))))))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("glib:bin" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
-       ("modem-manager" ,modem-manager)
-       ("libnotify" ,libnotify)
        ("gtk-doc", gtk-doc)
-       ("intltool" ,intltool)))
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)))
     (inputs
      `(("avahi" ,avahi)
-       ("glib:bin" ,glib "bin")
        ("glib-networking" ,glib-networking)
        ("json-glib" ,json-glib)
-       ("libsoup" ,libsoup)))
+       ("libnotify" ,libnotify)
+       ("libsoup" ,libsoup)
+       ("modem-manager" ,modem-manager)))
+    (propagated-inputs
+     `(("glib" ,glib)))
+    (synopsis "Geoinformation Service")
+    (description "Geoclue is a D-Bus geoinformation service.  The goal of the
+Geoclue project is to make creating location-aware applications as simple as
+possible.")
     (home-page "https://gitlab.freedesktop.org/geoclue/geoclue/-/wikis/home")
-    (synopsis "Geolocation service")
-    (description "Geoclue is a D-Bus service that provides location
-information.  The primary goal of the Geoclue project is to make creating
-location-aware applications as simple as possible, while the secondary goal is
-to ensure that no application can access location information without explicit
-permission from user.")
     (license license:gpl2+)))
 
 (define-public geocode-glib
-- 
2.26.2


[-- Attachment #1.1.3: 0018-gnu-Add-sysprof.patch --]
[-- Type: text/x-patch, Size: 2448 bytes --]

From aa67f71920673e5d1267e222d93cd2b3f441d2a1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Fri, 5 Jun 2020 22:22:56 -0400
Subject: [PATCH 18/54] gnu: Add sysprof.

* gnu/packages/gnome.scm (sysprof): New variable.
---
 gnu/packages/gnome.scm | 49 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index ba01928aa8..91774faf7a 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -258,6 +258,55 @@ Desktop.  It is designed to be as simple as possible and has some unique
 features to enable users to create their discs easily and quickly.")
     (license license:gpl2+)))
 
+(define-public sysprof
+  (package
+    (name "sysprof")
+    (version "3.36.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "024i0gzqnm79rpr4gqxdvcj6gvf82xdlcp2p1k9ikcppmi6xnw46"))))
+    (build-system meson-build-system)
+    (arguments
+     `(#:glib-or-gtk? #t    ; To wrap binaries and/or compile schemas.
+       #:configure-flags
+       (list
+        ;; SystemD not required.
+        "-Dsystemdunitdir=/tmp")))
+    (native-inputs
+     `(("desktop-file-utils" ,desktop-file-utils)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk+:bin" ,gtk+ "bin")
+       ("itstool" ,itstool)
+       ("pkg-config" ,pkg-config)
+       ("xmllint" ,libxml2)))
+    (inputs
+     `(("libdazzle" ,libdazzle)
+       ("libunwind" ,libunwind)
+       ("pango" ,pango)
+       ("polkit" ,polkit)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("gtk+" ,gtk+)))
+    (synopsis "Kernel based performance profiler")
+    (description "Sysprof is a sampling profiler that uses a kernel module to
+generate stacktraces which are then interpreted by the userspace program
+sysprof.")
+    (home-page "https://wiki.gnome.org/Apps/Sysprof")
+    (license
+     (list
+      ;; For newer codes.
+      license:gpl3+
+      ;; For older codes.
+      license:gpl2+))))
+
 (define-public gnome-photos
   (package
     (name "gnome-photos")
-- 
2.26.2


[-- Attachment #1.1.4: 0019-gnu-gjs-Update-to-1.58.8.patch --]
[-- Type: text/x-patch, Size: 6044 bytes --]

From b1da3aae5d880ef5dfda3fc044f57bbae9a8e604 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 6 Jun 2020 00:05:37 -0400
Subject: [PATCH 19/54] gnu: gjs: Update to 1.58.8.

* gnu/packages/gnome.scm (gjs): Update package definition.
[version]: Update to 1.58.8.
[source]<origin>[sha256]: Modify base32.
[build-system]: Change from gnu to glib-or-gtk.
[arguments]<#:configure-flags>[--enable-code-coverage]: New flag.
[--enable-asan]: New flag.
[--enable-ubsan]: New flag.
[native-inputs]: Add gobject-introspection and lcov.
[inputs]: Add ncurses and sysprof.
[propagated-inputs]: Add glib and libffi.
[home-page]: Modify.
[license]: Add expat and lgpl2.0+. Remove gpl2+.
---
 gnu/packages/gnome.scm | 100 +++++++++++++++++++++++------------------
 1 file changed, 56 insertions(+), 44 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 91774faf7a..4145c7b57a 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -85,6 +85,7 @@
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
+  #:use-module (gnu packages code)
   #:use-module (gnu packages compression)
   #:use-module (gnu packages crates-io)
   #:use-module (gnu packages cups)
@@ -124,6 +125,7 @@
   #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages kerberos)
   #:use-module (gnu packages libcanberra)
+  #:use-module (gnu packages libffi)
   #:use-module (gnu packages libunistring)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages libusb)
@@ -6369,61 +6371,71 @@ configuration program to choose applications starting on login.")
 (define-public gjs
   (package
     (name "gjs")
-    (version "1.58.3")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/" name "/"
-                                  (version-major+minor version) "/"
-                                  name "-" version ".tar.xz"))
-              (sha256
-               (base32
-                "1bkksx362007zs8c31ydygb29spwa5g5kch1ad2grc2sp53wv7ya"))))
-    (build-system gnu-build-system)
+    (version "1.58.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "10gkmxbhwpnq27db0gkn25b0gw28n05msjkzwjg3sdhpdisfpcvz"))))
+    (build-system glib-or-gtk-build-system)
     (arguments
-     '(#:phases
+     '(#:configure-flags
+       (list
+        "--enable-code-coverage"
+        "--enable-asan"
+        "--enable-ubsan")
+       #:phases
        (modify-phases %standard-phases
          (add-before
-          'check 'pre-check
-          (lambda _
-            ;; The test suite requires a running X server.
-            (system "Xvfb :1 &")
-            (setenv "DISPLAY" ":1")
-
-            ;; For the missing /etc/machine-id.
-            (setenv "DBUS_FATAL_WARNINGS" "0")
-
-            ;; Our mozjs-38 package does not compile the required Intl API
-            ;; support for these failing tests.
-            (substitute* "installed-tests/js/testLocale.js"
-              ((".*toBeDefined.*") "")
-              ((".*expect\\(datestr\\).*") ""))
-            (substitute* "installed-tests/scripts/testCommandLine.sh"
-              (("Valentín") "")
-              (("☭") ""))
-            #t)))))
+             'check 'pre-check
+           (lambda _
+             ;; The test suite requires a running X server.
+             (system "Xvfb :1 &")
+             (setenv "DISPLAY" ":1")
+             ;; For the missing /etc/machine-id.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             ;; Our mozjs package does not compile the required Intl API
+             ;; support for these failing tests.
+             (substitute* "installed-tests/js/testLocale.js"
+               ((".*toBeDefined.*") "")
+               ((".*expect\\(datestr\\).*") ""))
+             (substitute* "installed-tests/scripts/testCommandLine.sh"
+               (("Valentín") "")
+               (("☭") ""))
+             #t)))))
     (native-inputs
-     `(("glib:bin" ,glib "bin")       ; for glib-compile-resources
+     `(("dbus-launch" ,dbus)
+       ("dconf" ,dconf)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("lcov" ,lcov)
        ("pkg-config" ,pkg-config)
-       ("xmllint" ,libxml2)
-       ;; For testing
-       ("dbus-launch" ,dbus)
-       ("dconf" ,dconf) ; required to properly store settings
        ("uuidgen" ,util-linux)
+       ("xmllint" ,libxml2)
        ("xvfb" ,xorg-server-for-tests)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("ncurses" ,ncurses)
+       ("readline" ,readline)
+       ("sysprof" ,sysprof)))
     (propagated-inputs
-     ;; These are all in the Requires.private field of gjs-1.0.pc.
      `(("cairo" ,cairo)
-       ("gobject-introspection" ,gobject-introspection)
+       ("glib" ,glib)
+       ("libffi" ,libffi)
        ("mozjs" ,mozjs-60)))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("readline" ,readline)))
     (synopsis "Javascript bindings for GNOME")
-    (home-page "https://live.gnome.org/Gjs")
-    (description
-     "Gjs is a javascript binding for GNOME.  It's mainly based on spidermonkey
-javascript engine and the GObject introspection framework.")
-    (license license:gpl2+)))
+    (description "Gjs is a javascript binding for GNOME.  It's mainly based on
+spidermonkey javascript engine and the GObject introspection framework.")
+    (home-page "https://wiki.gnome.org/Projects/Gjs")
+    (license
+     ;; The project is dual-licensed.
+     (list
+      license:expat
+      license:lgpl2.0+))))
 
 (define-public gedit
   (package
-- 
2.26.2


[-- Attachment #1.1.5: 0020-gnu-glib-networking-Update-to-2.62.4.patch --]
[-- Type: text/x-patch, Size: 3568 bytes --]

From 24c4a8a9d4a5ba30b630ccaebd25c069ba6bc533 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Sat, 6 Jun 2020 16:10:05 -0400
Subject: [PATCH 20/54] gnu: glib-networking: Update to 2.62.4.

* gnu/packages/gnome.scm (glib-networking): Update package definition.
[version]: Update to 2.62.4.
[source]<origin>[sha256]: Modify base32.
[arguments]<#glib-or-gtk?>: New argument.
<#configure-flags>[-Dopenssl]: New flag.
[-Dlibproxy_support]: Remove flag.
[native-inputs]: Add glib:bin and gobject-introspection.
[inputs]: Add libproxy and openssl.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Update to lgpl2.1+.
---
 gnu/packages/gnome.scm | 49 ++++++++++++++++++++++++++----------------
 1 file changed, 30 insertions(+), 19 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 4145c7b57a..e7c83bf3eb 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3903,31 +3903,42 @@ library.")
 (define-public glib-networking
   (package
     (name "glib-networking")
-    (version "2.62.2")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "mirror://gnome/sources/glib-networking/"
-                                  (version-major+minor version) "/"
-                                  "glib-networking-" version ".tar.xz"))
-              (sha256
-               (base32
-                "0i2mw75297ql72h47vyvff3hqa0kcmqybblj52fqrarb0kfbhi06"))))
+    (version "2.62.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/glib-networking/"
+                       (version-major+minor version) "/"
+                       "glib-networking-" version ".tar.xz"))
+       (sha256
+        (base32 "1kwlnaiz4qfy2d1as5hd8sgxy7jjfxps1h2443hxq3s8xjg2i3y1"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags '("-Dlibproxy_support=false")))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dopenssl=auto")))
     (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("intltool" ,intltool)))
+     `(("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
     (inputs
      `(("glib" ,glib)
        ("gnutls" ,gnutls)
-       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))
-    (home-page "https://www.gnome.org")
-    (synopsis "Network-related GIO modules")
-    (description
-     "This package contains various network related extensions for the GIO
-library.")
-    (license license:lgpl2.0+)))
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("libproxy" ,libproxy)
+       ("openssl" ,openssl)))
+    (synopsis "Network extensions for GLib")
+    (description "Glib-networking contains the implementations of certain GLib
+networking features that cannot be implemented directly in GLib itself because
+of their dependencies.  Currently it contains GnuTLS and OpenSSL-based
+implementations of GTlsBackend, a libproxy-based implementation of
+GProxyResolver, GLibproxyResolver, and a GNOME GProxyResolver that uses the
+proxy information from the GSettings schemas in gsettings-desktop-schemas.")
+    (home-page "https://wiki.gnome.org/Projects/GLib")
+    (license license:lgpl2.1+)))
 
 (define-public rest
   (package
-- 
2.26.2


[-- Attachment #1.1.6: 0021-gnu-glib-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 16751 bytes --]

From 6c4c1a25fec971dc3d121212c4f116889a4d7af1 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 05:49:46 -0400
Subject: [PATCH 21/54] gnu: glib: Update package definition.

* gnu/packages/glib.scm (glib) [version]: Update to 2.64.3.
[source]<origin>[sha256]: Modify base32.
[patches]: Add glib-disable-failing-tests.patch.
Remove glib-tests-timer.patch.
[arguments]<#:disallowed-references>: Remove argument.
<#: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]: Remove phase.
['check]: Remove phase.
['move-executables]: Remove phase.
[native-inputs]: Add intltool, python, libxml2 and libxslt.
Remove dbus.
[inputs]: Add dbus and libelf.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Update to lgpl2.1+.
---
 gnu/packages/glib.scm | 318 +++++++++++++++---------------------------
 1 file changed, 110 insertions(+), 208 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index 367179aacf..a4060e3d12 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -38,6 +38,7 @@
   #: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)
@@ -165,215 +166,116 @@ or through unencrypted TCP/IP suitable for use behind a firewall with
 shared NFS home directories.")
     (license license:gpl2+)))                     ; or Academic Free License 2.1
 
-(define glib
+(define-public 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-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
-   (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
-      ("libselinux" ,libselinux)
-      ("zlib" ,zlib)))
-   (native-inputs
-    `(("gettext" ,gettext-minimal)
-      ("m4" ,m4) ; for installing m4 macros
-      ("dbus" ,dbus)                              ; for GDBus tests
-      ("pkg-config" ,pkg-config)
-      ("python" ,python-wrapper)
-      ("perl" ,perl)                              ; needed by GIO tests
-      ("tzdata" ,tzdata-for-tests)))                  ; for tests/gdatetime.c
-   (arguments
-    `(#:disallowed-references (,tzdata-for-tests)
-      #: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)))
-        (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-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.64.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/"
+                       name "/" (string-take version 4) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "08pbgiv5m3rica4ydvwvpq5mrxbyswx7l1jzjc2ch52xjabvr77y"))
+       (patches
+        (search-patches "glib-disable-failing-tests.patch"))
+       (modules '((guix build utils)))
+       (snippet
+        '(begin
+           (substitute* "tests/spawn-test.c"
+             (("/bin/sh") "sh"))
+           #t))))
+    (build-system meson-build-system)
+    (outputs '("out" "bin"))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; 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)
+             (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"
+                     (string-append (assoc-ref inputs "tzdata")
+                                    "/share/zoneinfo"))
+             ;; Some tests want write access there.
+             (setenv "HOME" (getcwd))
+             (setenv "XDG_CACHE_HOME" (getcwd))
+             #t))
+         ;; 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")))
+               (mkdir-p bin)
+               (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"))
+                 (("bindir=\\$\\{prefix\\}/bin") "")
+                 (("=\\$\\{bindir\\}/") "="))
+               #t))))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("libintl" ,intltool)
+       ("m4" ,m4)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)
+       ("python" ,python)               ; For 'patch-python-references
+       ("tzdata" ,tzdata-for-tests)
+       ("xmllint" ,libxml2)
+       ("xsltproc" ,libxslt)))
+    (inputs
+     `(("dbus" ,dbus)
+       ("libelf" ,libelf)))
+    (propagated-inputs
+     `(("libffi" ,libffi)
+       ("libselinux" ,libselinux)
+       ("pcre" ,pcre)
+       ("util-linux" ,util-linux "lib")
+       ("zlib" ,zlib)))
+    (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 "Low-level core library for GNOME projects")
+    (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://wiki.gnome.org/Projects/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.26.2


[-- Attachment #1.1.7: 0022-gnu-glib-with-documentation-Update-package-definitio.patch --]
[-- Type: text/x-patch, Size: 3165 bytes --]

From 53e25ebe6777afb6fa47a5abf9a4de044c1350c9 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 07:29:17 -0400
Subject: [PATCH 22/54] gnu: glib-with-documentation: Update package
 definition.

* gnu/packages/glib.scm (glib-with-documentation): Update package
definition.
[properties]: Remove field.
[native-inputs]: Remove libxml2.
[arguments]<#:phases>['patch-docbook-xml]: New phase.
['move-doc]: Modify phase.
---
 gnu/packages/glib.scm | 29 +++++++++++++++++++++--------
 1 file changed, 21 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index a4060e3d12..a3cf9d7cdd 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -282,27 +282,40 @@ threads, dynamic loading, and an object system.")
   ;; which in turn depends on glib.
   (package
     (inherit glib)
-    (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)
-       ("libxml2" ,libxml2)
+     `(("gtk-doc" ,gtk-doc)
+       ("docbook-xml-4.2" ,docbook-xml-4.2)
+       ("docbook-xml-4.5" ,docbook-xml)
        ,@(package-native-inputs glib)))
+    (outputs (cons "doc" (package-outputs glib)))
     (arguments
      (substitute-keyword-arguments (package-arguments glib)
        ((#:configure-flags flags ''())
         `(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/reference"
+                 (substitute* '("gio/gdbus-object-manager-example/.*\\.xml"
+                                "gio/.*\\.xml" "glib/.*\\.xml" "gobject/.*\\.xml")
+                   (("http://www.oasis-open.org/docbook/xml/4.5/")
+                    (string-append (assoc-ref inputs "docbook-xml-4.5")
+                                   "/xml/dtd/docbook/")))
+                 (substitute* "gio/gio.xml"
+                   (("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"))
                      (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))
+                 (mkdir-p (string-append doc "/share"))
+                 (rename-file
+                  (string-append out html)
+                  (string-append doc html))
                  #t)))))))))
 
 (define gobject-introspection
-- 
2.26.2


[-- Attachment #1.1.8: 0023-gnu-glib-networking-Update-to-2.64.3.patch --]
[-- Type: text/x-patch, Size: 1287 bytes --]

From 6c524cb1fdfaf23a5402c9b48559f58ba9fef5d6 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 07:36:50 -0400
Subject: [PATCH 23/54] gnu: glib-networking: Update to 2.64.3.

* gnu/packages/gnome.scm (glib-networking) [version]: Update to
2.64.3.
[source]<origin>[sha256]: Modify base32.
---
 gnu/packages/gnome.scm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index e7c83bf3eb..9e63347ed4 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3903,7 +3903,7 @@ library.")
 (define-public glib-networking
   (package
     (name "glib-networking")
-    (version "2.62.4")
+    (version "2.64.3")
     (source
      (origin
        (method url-fetch)
@@ -3912,7 +3912,7 @@ library.")
                        (version-major+minor version) "/"
                        "glib-networking-" version ".tar.xz"))
        (sha256
-        (base32 "1kwlnaiz4qfy2d1as5hd8sgxy7jjfxps1h2443hxq3s8xjg2i3y1"))))
+        (base32 "0s518l4bwvdvcp51lbjqcw8g0vq18bznpf5hq2zi6a054jqhcylk"))))
     (build-system meson-build-system)
     (arguments
      `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
-- 
2.26.2


[-- Attachment #1.1.9: 0024-gnu-gobject-introspection-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 4695 bytes --]

From 1e72d7b4078c86b268ed913ce635849f6e291dd5 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 09:07:54 -0400
Subject: [PATCH 24/54] gnu: gobject-introspection: Update package definition.

* gnu/packages/glib.scm (gobject-introspection) [version]: Update
to 1.64.1.
[source]<origin>[sha256]: Modify base32.
[patches]: Remove all patches.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>: Remove all phases.
[native-inputs]: Add bison and flex.
[inputs]: Remove bison, flex and zlib.
[synopsis]: Modify.
[description]: Modify.
[home-page]: Modify.
[license]: Modify.
---
 gnu/packages/glib.scm | 71 +++++++++++++++++++------------------------
 1 file changed, 31 insertions(+), 40 deletions(-)

diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm
index a3cf9d7cdd..7533d2c302 100644
--- a/gnu/packages/glib.scm
+++ b/gnu/packages/glib.scm
@@ -318,59 +318,50 @@ threads, dynamic loading, and an object system.")
                   (string-append doc html))
                  #t)))))))))
 
-(define gobject-introspection
+(define-public gobject-introspection
   (package
     (name "gobject-introspection")
-    (version "1.62.0")
-    (source (origin
-             (method url-fetch)
-             (uri (string-append "mirror://gnome/sources/"
-                   "gobject-introspection/" (version-major+minor version)
-                   "/gobject-introspection-" version ".tar.xz"))
-             (sha256
-              (base32 "18lhglg9v6y83lhqzyifc1z0wrlawzrhzzxx0a3h1g7xaz97xvmi"))
-             (patches (search-patches
-                       "gobject-introspection-cc.patch"
-                       "gobject-introspection-girepository.patch"
-                       "gobject-introspection-absolute-shlib-path.patch"))))
+    (version "1.64.1")
+    (source
+     (origin
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/"
+                       name "/" (version-major+minor version) "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "19vz7vp10h0zj3f491yk72dp89bix6rgkzxg4qcm4d6151ksxgl0"))))
     (build-system meson-build-system)
     (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'do-not-use-/usr/bin/env
-           (lambda _
-             (substitute* "tools/g-ir-tool-template.in"
-               (("#!@PYTHON_CMD@")
-                (string-append "#!" (which "python3"))))
-             #t)))))
-    (inputs
+     `(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
+    (native-inputs
      `(("bison" ,bison)
        ("flex" ,flex)
-       ("glib" ,glib)
-       ("python" ,python-wrapper)
-       ("zlib" ,zlib)))
-    (native-inputs
-     `(("glib" ,glib "bin")
+       ("glib" ,glib "bin")
        ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("python" ,python-wrapper)))
     (propagated-inputs
-     `(;; In practice, GIR users will need libffi when using
-       ;; gobject-introspection.
-       ("libffi" ,libffi)))
+     `(("libffi" ,libffi)))
     (native-search-paths
      (list (search-path-specification
             (variable "GI_TYPELIB_PATH")
             (files '("lib/girepository-1.0")))))
     (search-paths native-search-paths)
-    (home-page "https://wiki.gnome.org/GObjectIntrospection")
-    (synopsis "Generate interface introspection data for GObject libraries")
-    (description
-     "GObject introspection is a middleware layer between C libraries (using
-GObject) and language bindings.  The C library can be scanned at compile time
-and generate a metadata file, in addition to the actual native C library.  Then
-at runtime, language bindings can read this metadata and automatically provide
-bindings to call into the C library.")
-    ; Some bits are distributed under the LGPL2+, others under the GPL2+
-    (license license:gpl2+)))
+    (synopsis "GObject introspection tools and libraries")
+    (description "GObject introspection is a middleware layer between
+C libraries (using GObject) and language bindings.  The C library can be scanned
+at compile time and generate metadata files, in addition to the actual native
+C library.  Then language bindings can read this metadata and automatically
+provide bindings to call into the C library.")
+    (home-page "https://wiki.gnome.org/Projects/GObjectIntrospection")
+    (license
+     (list
+      ;; For library.
+      license:lgpl2.0+
+      ;; For tools.
+      license:gpl2+))))
 
 (define intltool
   (package
-- 
2.26.2


[-- Attachment #1.1.10: 0025-gnu-Add-mutest.patch --]
[-- Type: text/x-patch, Size: 1654 bytes --]

From ee1ee05ae094010a41ca44bc15761bd8e0f54438 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 09:43:01 -0400
Subject: [PATCH 25/54] gnu: Add mutest.

* gnu/packages/check.scm (mutest): New variable.
---
 gnu/packages/check.scm | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/gnu/packages/check.scm b/gnu/packages/check.scm
index 4e50bf70d5..a53ef86c97 100644
--- a/gnu/packages/check.scm
+++ b/gnu/packages/check.scm
@@ -76,9 +76,32 @@
   #:use-module (guix build-system cmake)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system go)
+  #:use-module (guix build-system meson)
   #:use-module (guix build-system python)
   #:use-module (guix build-system trivial))
 
+(define-public mutest
+  (package
+    (name "mutest")
+    (version "0.0.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/ebassi/mutest.git")
+         (commit "e6246c9")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0gdqwq6fvk06wld4rhnw5752hahrvhd69zrci045x25rwx90x26q"))))
+    (build-system meson-build-system)
+    (synopsis "Small C testing library")
+    (description "Mutest aims to be a small unit testing library for C projects,
+with an API heavily modelled on high level Behavior-Driver Development frameworks
+like Jasmine or Mocha.")
+    (home-page "https://ebassi.github.io/mutest/mutest.md.html")
+    (license license:expat)))
+
 (define-public check
   (package
     (name "check")
-- 
2.26.2


[-- Attachment #1.1.11: 0026-gnu-graphene-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 3111 bytes --]

From 718f5ee403075e20dc9f9c25a0ea8e8d9a92bb13 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 09:44:44 -0400
Subject: [PATCH 26/54] gnu: graphene: Update package definition.

* gnu/packages/gtk.scm (graphene): Update package definition.
[source]<origin>[method]: Change from url-fetch to git-fetch.
[uri]: Add git-reference.
[sha256]: Modify base32.
[arguments]<#:glib-or-gtk?>: New argument.
[native-inputs]: Add git-minimal and mutest.
---
 gnu/packages/gtk.scm | 38 +++++++++++++++++++++++---------------
 1 file changed, 23 insertions(+), 15 deletions(-)

diff --git a/gnu/packages/gtk.scm b/gnu/packages/gtk.scm
index ea60a3c80d..6056422b69 100644
--- a/gnu/packages/gtk.scm
+++ b/gnu/packages/gtk.scm
@@ -82,6 +82,7 @@
   #:use-module (gnu packages guile)
   #:use-module (gnu packages guile-xyz)
   #:use-module (gnu packages cups)
+  #:use-module (gnu packages version-control)
   #:use-module (gnu packages xml)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xdisorg)
@@ -1783,27 +1784,34 @@ Parcellite and adds bugfixes and features.")
   (package
     (name "graphene")
     (version "1.10.0")
-    (source (origin
-              (method url-fetch)
-              (uri (string-append "https://github.com/ebassi/graphene/releases/"
-                                  "download/" version
-                                  "/graphene-" version ".tar.xz"))
-              (sha256
-               (base32 "16b4hz73bnrgv5v8n96dczkd6xp9qc06lrl43zln3jnl3psrfva0"))))
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/ebassi/graphene.git")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14a0j1rvjlc7yhfdmhmckdmkzy4ch61qbzywdlw1xv58h23wx29p"))))
     (build-system meson-build-system)
     (arguments
-     `(#:configure-flags '("-Dinstalled_tests=false")))
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:configure-flags
+       (list
+        "-Dinstalled_tests=false")))
     (native-inputs
-     `(("gobject-introspection" ,gobject-introspection)
+     `(("git" ,git-minimal)
+       ("gobject-introspection" ,gobject-introspection)
+       ("mutest" ,mutest)
        ("pkg-config" ,pkg-config)))
     (inputs
-     `(("python" ,python)
-       ("glib" ,glib)))
-    (home-page "https://ebassi.github.io/graphene/")
+     `(("glib" ,glib)
+       ("python" ,python)))
     (synopsis "Thin layer of graphic data types")
-    (description "This library provides graphic types and their relative API;
-it does not deal with windowing system surfaces, drawing, scene graphs, or
-input.")
+    (description "Graphene provides graphic types and their relative API; it
+does not deal with windowing system surfaces, drawing, scene graphs, or input.")
+    (home-page "https://ebassi.github.io/graphene/")
     (license license:expat)))
 
 (define-public spread-sheet-widget
-- 
2.26.2


[-- Attachment #1.1.12: 0027-gnu-gsettings-desktop-schemas-Update-package-definit.patch --]
[-- Type: text/x-patch, Size: 3776 bytes --]

From d7152fbbd88c298109dc25bdc58d7b08d531b93f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 10:14:45 -0400
Subject: [PATCH 27/54] gnu: gsettings-desktop-schemas: Update package
 definition.

* gnu/packages/gnome.scm (gsettings-desktop-schemas) [version]:
Update to 3.37.1.
[source]<origin>[sha256]: Modify base32.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-schemas]: Remove phase.
[native-inputs]: Add gettext-minimal. Remove intltool.
[inputs]: Remove gnome-backgrounds.
[synopsis]: Modify.
---
 gnu/packages/gnome.scm | 47 ++++++++++++++----------------------------
 1 file changed, 16 insertions(+), 31 deletions(-)

diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 9e63347ed4..e84402eb17 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -1984,45 +1984,30 @@ on the GNOME Desktop with a single simple application.")
 (define-public gsettings-desktop-schemas
   (package
     (name "gsettings-desktop-schemas")
-    (version "3.34.0")
+    (version "3.37.1")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "mirror://gnome/sources/" name "/"
-                          (version-major+minor version)  "/"
-                          name "-" version ".tar.xz"))
-      (sha256
-       (base32
-        "1bayr76aylawf2fhyjhv9zgk4kpv7ivrrmd80khb0h3h1wk092r8"))))
+       (method url-fetch)
+       (uri
+        (string-append "mirror://gnome/sources/" name "/"
+                       (version-major+minor version)  "/"
+                       name "-" version ".tar.xz"))
+       (sha256
+        (base32 "0fvnchxvvx7d00ffn7cx007ahgfpwa0aw5jhspl22kd9prrazi8p"))))
     (build-system meson-build-system)
     (arguments
-     '(#:phases (modify-phases %standard-phases
-                  (add-after 'unpack 'patch-schemas
-                    (lambda* (#:key inputs #:allow-other-keys)
-                      (let ((theme (assoc-ref inputs "gnome-backgrounds")))
-                        (substitute* (find-files "schemas"
-                                                 "\\.gschema\\.xml\\.in$")
-                          ;; Provide the correct file name of the default GNOME
-                          ;; background, 'adwaita-timed.xml'.
-                          (("@datadir@/backgrounds/gnome")
-                           (string-append theme "/share/backgrounds/gnome"))
-                          ;; Do not reference fonts, that may not exist.
-                          (("'Source Code Pro 10'") "'Monospace 11'"))
-                        #t))))))
-    (inputs
-     `(("glib" ,glib)
-       ("gnome-backgrounds" ,gnome-backgrounds)))
+     '(#:glib-or-gtk? #t))   ; To wrap binaries and/or compile schemas
     (native-inputs
-     `(("intltool" ,intltool)
-       ("glib" ,glib "bin")                       ; glib-compile-schemas, etc.
+     `(("gettext" ,gettext-minimal)
+       ("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)))
+    (synopsis "Shared GSettings schemas for the GNOME desktop")
+    (description "Gsettings-desktop-schemas contains a collection of GSettings
+schemas for settings shared by various components of the GNOME desktop.")
     (home-page "https://launchpad.net/gsettings-desktop-schemas")
-    (synopsis
-     "GNOME settings for various desktop components")
-    (description
-     "Gsettings-desktop-schemas contains a collection of GSettings schemas
-for settings shared by various components of the GNOME desktop.")
     (license license:lgpl2.1+)))
 
 (define-public icon-naming-utils
-- 
2.26.2


[-- Attachment #1.1.13: 0028-gnu-gstreamer-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7529 bytes --]

From 47525c79723b9556ac4044b26405291405a67a64 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Wed, 10 Jun 2020 10:32:15 -0400
Subject: [PATCH 28/54] gnu: gstreamer: Update package definition.

* gnu/packages/gstreamer.scm (gstreamer): Update package definition.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['patch-dockbook-xml]: New phase.
['disable-failing-tests]: Remove phase.
[native-inputs]: Add bash-completion, docbook-xml, docbook-xsl,
gettext-minimal and libxml2.
[inputs]: Add gmp, gsl, gtk+ and libcap.
[propagated-inputs]: Add glib-networking, elfutils and libunwind.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gstreamer.scm | 105 +++++++++++++++++++++----------------
 1 file changed, 61 insertions(+), 44 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 7596796d68..6b78fc8d28 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -34,12 +34,17 @@
   #:use-module (guix utils)
   #:use-module (gnu packages)
   #:use-module (gnu packages audio)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages cdrom)
   #:use-module (gnu packages curl)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages docbook)
+  #:use-module (gnu packages elf)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
@@ -47,9 +52,12 @@
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages libunwind)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages maths)
   #:use-module (gnu packages mp3)
+  #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pulseaudio)
@@ -110,68 +118,77 @@ arrays of data.")
     (version "1.16.2")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append
-            "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-"
-            version ".tar.xz"))
-      (sha256
-       (base32
-        "0kp93622y29pck8asvil1fmzf55s2gx76wv475a6izc3cwj49w73"))))
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-"
+         version ".tar.xz"))
+       (sha256
+        (base32 "0kp93622y29pck8asvil1fmzf55s2gx76wv475a6izc3cwj49w73"))))
     (build-system meson-build-system)
     (outputs '("out" "doc"))
     (arguments
-     `(#:phases
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
        (modify-phases %standard-phases
-         ;; FIXME: Since switching to the meson-build-system, two tests
-         ;; started failing on i686.  See
-         ;; <https://gitlab.freedesktop.org/gstreamer/gstreamer/issues/499>.
-         ,@(if (string-prefix? "i686" (or (%current-target-system)
-                                          (%current-system)))
-               `((add-after 'unpack 'disable-some-tests
-                   (lambda _
-                     (substitute* "tests/check/gst/gstsystemclock.c"
-                       (("tcase_add_test \\(tc_chain, test_stress_cleanup_unschedule.*")
-                        "")
-                       (("tcase_add_test \\(tc_chain, test_stress_reschedule.*")
-                      ""))
-                     #t)))
-               '())
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* '("gst/building.xml" "gst/running.xml")
+                 (("http://www.oasis-open.org/docbook/xml/4.3/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.3")
+                                 "/xml/dtd/docbook/")))
+               (substitute* '("libs/gstreamer-libs-docs.sgml"
+                              "plugins/gstreamer-plugins-docs.sgml")
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml-4.1.2")
+                                 "/xml/dtd/docbook/"))))
+             #t))
          (add-after 'install 'move-docs
            (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (doc (assoc-ref outputs "doc")))
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc")))
                (mkdir-p (string-append doc "/share"))
-               (copy-recursively (string-append out "/share/gtk-doc")
-                                 (string-append doc "/share/gtk-doc"))
-               (delete-file-recursively (string-append out "/share/gtk-doc"))
+               (rename-file
+                (string-append out "/share/gtk-doc")
+                (string-append doc "/share/gtk-doc"))
                #t))))))
-    (propagated-inputs `(("glib" ,glib))) ; required by gstreamer-1.0.pc.
     (native-inputs
-     `(("bison" ,bison)
+     `(("bash-completion" ,bash-completion)
+       ("bison" ,bison)
+       ("docbook-xml-4.1.2" ,docbook-xml-4.1.2)
+       ("docbook-xml-4.3" ,docbook-xml-4.3)
+       ("docbook-xsl" ,docbook-xsl)
        ("flex" ,flex)
+       ("gettext" ,gettext-minimal)
        ("glib" ,glib "bin")
        ("gobject-introspection" ,gobject-introspection)
        ("gtk-doc" ,gtk-doc)
+       ("libxml2" ,libxml2)
        ("perl" ,perl)
        ("pkg-config" ,pkg-config)
        ("python-wrapper" ,python-wrapper)))
+    (inputs
+     `(("gmp" ,gmp)
+       ("gsl" ,gsl)
+       ("gtk+" ,gtk+)
+       ("setcap" ,libcap)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("libdw" ,elfutils)
+       ("libunwind" ,libunwind)))
     (native-search-paths
-     (list (search-path-specification
-            (variable "GST_PLUGIN_SYSTEM_PATH")
-            (files '("lib/gstreamer-1.0")))))
+     (list
+      (search-path-specification
+       (variable "GST_PLUGIN_SYSTEM_PATH")
+       (files '("lib/gstreamer-1.0")))))
+    (synopsis "Multimedia framework core library")
+    (description "GStreamer is a library for constructing graphs of
+media-handling components.  The applications it supports range from simple
+Ogg/Vorbis playback, audio/video streaming to complex audio and video
+processing.")
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis "Multimedia library")
-    (description
-     "GStreamer is a library for constructing graphs of media-handling
-components.  The applications it supports range from simple Ogg/Vorbis
-playback, audio/video streaming to complex audio mixing and video
-non-linear editing.
-
-Applications can take advantage of advances in codec and filter technology
-transparently.  Developers can add new codecs and filters by writing a
-simple plugin with a clean, generic interface.
-
-This package provides the core library and elements.")
     (license license:lgpl2.0+)))
 
 (define-public gst-plugins-base
-- 
2.26.2


[-- Attachment #1.1.14: 0029-gnu-Add-libvisual.patch --]
[-- Type: text/x-patch, Size: 4775 bytes --]

From 7a6456c0c2203e43797f02a8198817de6739903f Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 11 Jun 2020 04:13:59 -0400
Subject: [PATCH 29/54] gnu: Add libvisual.

* gnu/packages/gstreamer.scm (libvisual): New variable.
---
 gnu/packages/gstreamer.scm | 68 ++++++++++++++++++++++++++++++--------
 1 file changed, 55 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 6b78fc8d28..3d4b3bc7fb 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -29,6 +29,7 @@
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system meson)
   #:use-module (guix utils)
@@ -63,6 +64,7 @@
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
+  #:use-module (gnu packages sdl)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages xiph)
@@ -75,6 +77,46 @@
   #:use-module (gnu packages assembly)
   #:use-module (gnu packages xml))
 
+(define-public libvisual
+  (package
+    (name "libvisual")
+    (version "0.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Libvisual/libvisual.git")
+         (commit (string-append name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02xwakwkqjsznc03pjlb6hcv1li1gw3r8xvyswqsm4msix5xq18a"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         ;; The package is in a sub-dir of this repo.
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "libvisual")
+             #t)))))
+    (native-inputs
+     `(("gettext" ,gettext-minimal)
+       ("libintl" ,intltool)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("sdl" ,sdl)))          ; To compile some examples and/or tests
+    (synopsis "Audio visualisation library")
+    (description "Libvisual is a library that acts as a middle layer between
+applications that want audio visualisation and audio visualisation plugins.")
+    (home-page "http://libvisual.org/")
+    (license
+     (list
+      ;; Libraries.
+      license:lgpl2.1+
+      ;; Examples and Tests.
+      license:gpl2+))))
+
 (define-public orc
   (package
     (name "orc")
@@ -197,16 +239,16 @@ processing.")
     (version "1.16.2")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/"
-                          name "-" version ".tar.xz"))
-      (sha256
-       (base32
-        "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi"))))
+       (method url-fetch)
+       (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/"
+                           name "-" version ".tar.xz"))
+       (sha256
+        (base32
+         "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi"))))
     (build-system meson-build-system)
     (propagated-inputs
-     `(("glib" ,glib)              ;required by gstreamer-sdp-1.0.pc
-       ("gstreamer" ,gstreamer)    ;required by gstreamer-plugins-base-1.0.pc
+     `(("glib" ,glib)           ;required by gstreamer-sdp-1.0.pc
+       ("gstreamer" ,gstreamer) ;required by gstreamer-plugins-base-1.0.pc
 
        ;; XXX: Do not enable Orc optimizations on ARM systems because
        ;; it leads to two test failures.
@@ -214,7 +256,7 @@ processing.")
        ,@(if (string-prefix? "arm" (or (%current-target-system)
                                        (%current-system)))
              '()
-             `(("orc" ,orc)))))         ;required by gstreamer-audio-1.0.pc
+             `(("orc" ,orc)))))    ;required by gstreamer-audio-1.0.pc
     (inputs
      `(("cdparanoia" ,cdparanoia)
        ("pango" ,pango)
@@ -232,10 +274,10 @@ processing.")
              `(("opus" ,opus))
              '())))
     (native-inputs
-      `(("pkg-config" ,pkg-config)
-        ("glib:bin" ,glib "bin")
-        ("gobject-introspection" ,gobject-introspection)
-        ("python-wrapper" ,python-wrapper)))
+     `(("pkg-config" ,pkg-config)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("python-wrapper" ,python-wrapper)))
     (arguments
      '(#:configure-flags '("-Dgl=disabled"
                            ;; FIXME: Documentation fails to build without
-- 
2.26.2


[-- Attachment #1.1.15: 0030-gnu-Add-esound.patch --]
[-- Type: text/x-patch, Size: 3091 bytes --]

From 1cec6d61ea70139390b9298e69daa960bc5d1fd4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 11 Jun 2020 06:31:26 -0400
Subject: [PATCH 30/54] gnu: Add esound.

* gnu/packages/gstreamer.scm (esound): New variable.
---
 gnu/packages/gstreamer.scm | 48 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 48 insertions(+)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 3d4b3bc7fb..9e566b2764 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -36,6 +36,7 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages audio)
   #:use-module (gnu packages autotools)
+  #:use-module (gnu packages base)
   #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages cdrom)
@@ -60,10 +61,12 @@
   #:use-module (gnu packages mp3)
   #:use-module (gnu packages multiprecision)
   #:use-module (gnu packages ncurses)
+  #:use-module (gnu packages networking)
   #:use-module (gnu packages perl)
   #:use-module (gnu packages pulseaudio)
   #:use-module (gnu packages qt)
   #:use-module (gnu packages rdf)
+  #:use-module (gnu packages shells)
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xorg)
@@ -117,6 +120,51 @@ applications that want audio visualisation and audio visualisation plugins.")
       ;; Examples and Tests.
       license:gpl2+))))
 
+(define-public esound
+  (package
+    (name "esound")
+    (version "0.2.41")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://gitlab.gnome.org/Archive/esound.git")
+         (commit "ESOUND_0_2_41")))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "141jg70fim276i8k2kyypm84gy89i1k9mm4yf68mfwnybvjw1d6n"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("autoconf" ,autoconf)
+       ("automake" ,automake)
+       ("gettext" ,gettext-minimal)
+       ("gnome-common" ,gnome-common)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)
+       ("tcp-wrappers" ,tcp-wrappers)
+       ("tcsh" ,tcsh)
+       ("which" ,which)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("pcaudiolib" ,pcaudiolib)))
+    (propagated-inputs
+     `(("audiofile" ,audiofile)))
+    (synopsis "Enlightened Sound Daemon")
+    (description "The Enlightened Sound Daemon mixes several audio streams for
+playback by a single audio device.  You can also pre-load samples, and play them
+back without having to send all the data for the sound.  Network transparency is
+also built in, so you can play sounds on one machine, and listen to them on
+another.")
+    (home-page "https://web.archive.org/web/20160528230227/
+http://www.tux.org/~ricdude/overview.html")
+    (license
+     (list
+      ;; Libraries.
+      license:lgpl2.0+
+      ;; Others.
+      license:gpl2+))))
+
 (define-public orc
   (package
     (name "orc")
-- 
2.26.2


[-- Attachment #1.1.16: 0031-gnu-Add-libvisual-plugins.patch --]
[-- Type: text/x-patch, Size: 2766 bytes --]

From fe25f5ecac3e725e1738a082aab5353643d9f990 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 11 Jun 2020 08:12:25 -0400
Subject: [PATCH 31/54] gnu: Add libvisual-plugins.

* gnu/packages/gstreamer.scm (libvisual-plugins): New variable.
---
 gnu/packages/gstreamer.scm | 59 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 59 insertions(+)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 9e566b2764..2c6f478316 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -165,6 +165,65 @@ http://www.tux.org/~ricdude/overview.html")
       ;; Others.
       license:gpl2+))))
 
+(define-public libvisual-plugins
+  (package
+    (name "libvisual-plugins")
+    (version "0.4.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/Libvisual/libvisual.git")
+         (commit (string-append name "-" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "02xwakwkqjsznc03pjlb6hcv1li1gw3r8xvyswqsm4msix5xq18a"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:configure-flags
+       (list
+        "--disable-gstreamer-plugin"
+        "--disable-corona"
+        "--disable-gforce"
+        (string-append "--with-plugins-base-dir=" (assoc-ref %outputs "out")
+                       "/lib/libvisual-0.4"))
+       #:phases
+       (modify-phases %standard-phases
+         ;; The package is in a sub-dir of this repo.
+         (add-after 'unpack 'chdir
+           (lambda _
+             (chdir "libvisual-plugins")
+             #t)))))
+    (native-inputs
+     `(("bison" ,bison)
+       ("flex" ,flex)
+       ("gettext" ,gettext-minimal)
+       ("libintl" ,intltool)
+       ("libtool" ,libtool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("esound" ,esound)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("gtk+" ,gtk+-2)
+       ("jack" ,jack-2)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)))
+    (propagated-inputs
+     `(("libvisual" ,libvisual)))
+    (native-search-paths
+     (list
+      (search-path-specification
+       (variable "LIBVISUAL_PLUGINS_BASE_DIR")
+       (files '("lib/libvisual-0.4")))))
+    (search-paths native-search-paths)
+    (synopsis "Audio visualisation library")
+    (description "Libvisual is a library that acts as a middle layer between
+applications that want audio visualisation and audio visualisation plugins.")
+    (home-page "http://libvisual.org/")
+    (license license:gpl2+)))
+
 (define-public orc
   (package
     (name "orc")
-- 
2.26.2


[-- Attachment #1.1.17: 0032-gnu-gst-plugins-base-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7556 bytes --]

From 5ab9cf514339d644b1aa2620196ddc08159e29d4 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 11 Jun 2020 08:40:14 -0400
Subject: [PATCH 32/54] gnu: gst-plugins-base: Update package definition.

* gnu/packages/gstreamer.scm (gst-plugins-base): Update package definition.
[outputs]: New output 'doc'.
[arguments]<#:glib-or-gtk?>: New argument.
<#:configure-flags>[-Dgl]: Remove flag.
[-Ddoc]: Remove flag.
<#:phases>['patch]: Remove phase.
['patch-docbook-xml]: New phase.
['patch-tests]: New phase.
['pre-check]: New phase.
['move-doc]: New phase.
[native-inputs]: Add docbook-xml, gettext-minimal, gtk-doc, gsettings-desktop-
schemas, perl, libxml2 and xorg-server-for-tests.
[inputs]: Add gdk-pixbuf+svg, glu, graphene, gtk+, iso-codes, libgudev, libjpeg-
turbo, libvisual, libxshmfence, mesa, sdl and wayland. Remove arguments for opus.
[propagated-inputs]: Add glib-networking. Remove arguments for orc.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gstreamer.scm | 131 ++++++++++++++++++++++++-------------
 1 file changed, 85 insertions(+), 46 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 2c6f478316..5d08a423d3 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -54,6 +54,7 @@
   #:use-module (gnu packages graphics)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
+  #:use-module (gnu packages iso-codes)
   #:use-module (gnu packages libunwind)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
@@ -347,61 +348,99 @@ processing.")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/"
-                           name "-" version ".tar.xz"))
+       (uri
+        (string-append "https://gstreamer.freedesktop.org/src/" name "/"
+                       name "-" version ".tar.xz"))
        (sha256
-        (base32
-         "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi"))))
+        (base32 "0sl1hxlyq46r02k7z70v09vx1gi4rcypqmzra9jid93lzvi76gmi"))))
     (build-system meson-build-system)
-    (propagated-inputs
-     `(("glib" ,glib)           ;required by gstreamer-sdp-1.0.pc
-       ("gstreamer" ,gstreamer) ;required by gstreamer-plugins-base-1.0.pc
-
-       ;; XXX: Do not enable Orc optimizations on ARM systems because
-       ;; it leads to two test failures.
-       ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/683
-       ,@(if (string-prefix? "arm" (or (%current-target-system)
-                                       (%current-system)))
-             '()
-             `(("orc" ,orc)))))    ;required by gstreamer-audio-1.0.pc
-    (inputs
-     `(("cdparanoia" ,cdparanoia)
-       ("pango" ,pango)
-       ("libogg" ,libogg)
-       ("libtheora" ,libtheora)
-       ("libvorbis" ,libvorbis)
-       ("libx11" ,libx11)
-       ("zlib" ,zlib)
-       ("libXext" ,libxext)
-       ("libxv" ,libxv)
-       ("alsa-lib" ,alsa-lib)
-       ;; XXX Don't build with opus on 32-bit systems:
-       ;; <https://bugs.gnu.org/32360>
-       ,@(if (target-64bit?)
-             `(("opus" ,opus))
-             '())))
-    (native-inputs
-     `(("pkg-config" ,pkg-config)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("python-wrapper" ,python-wrapper)))
+    (outputs '("out" "doc"))
     (arguments
-     '(#:configure-flags '("-Dgl=disabled"
-                           ;; FIXME: Documentation fails to build without
-                           ;; enabling GL above, which causes other problems.
-                           "-Ddoc=false")
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
        #:phases
        (modify-phases %standard-phases
-         (add-before 'configure 'patch
+         (add-after 'unpack 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* '("libs/compiling.sgml"
+                              "libs/gst-plugins-base-libs-docs.sgml")
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-after 'unpack 'patch-tests
            (lambda _
              (substitute* "tests/check/libs/pbutils.c"
                (("/bin/sh") (which "sh")))
-             #t)))))
+             #t))
+         (add-before
+             'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             ;; Tests write to $HOME.
+             (setenv "HOME" (getcwd))
+             ;; Tests look for $XDG_RUNTIME_DIR.
+             (setenv "XDG_RUNTIME_DIR" (getcwd))
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             #t))
+         (add-after 'install 'move-doc
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (doc (assoc-ref outputs "doc")))
+               (mkdir-p (string-append doc "/share"))
+               (rename-file
+                (string-append out "/share/gtk-doc")
+                (string-append doc "/share/gtk-doc"))
+               #t))))))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gtk-doc" ,gtk-doc)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)
+       ("xmllint" ,libxml2)
+       ("xorg-server" ,xorg-server-for-tests)))
+    (inputs
+     `(("alsa-lib" ,alsa-lib)
+       ("cdparanoia" ,cdparanoia)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glu" ,glu)
+       ("graphene" ,graphene)
+       ("gtk+" ,gtk+)
+       ("iso-codes" ,iso-codes)
+       ("libgudev" ,libgudev)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libogg" ,libogg)
+       ("libtheora" ,libtheora)
+       ("libvisual" ,libvisual)
+       ("libvorbis" ,libvorbis)
+       ("libx11" ,libx11)
+       ("libxext" ,libxext)
+       ("libxshm" ,libxshmfence)
+       ("libxv" ,libxv)
+       ("mesa" ,mesa)
+       ("opus" ,opus)
+       ("pango" ,pango)
+       ("sdl" ,sdl)
+       ("wayland" ,wayland)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("gstreamer" ,gstreamer)
+       ("orc" ,orc)))
+    (synopsis "GStreamer plugins and helper libraries")
+    (description "Gst-Plugins-Base is a well-groomed and well-maintained
+collection of GStreamer plug-ins and elements, spanning the range of possible
+types of elements one would want to write for GStreamer.")
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis
-     "Plugins for the GStreamer multimedia library")
-    (description "This package provides an essential exemplary set of plug-ins
-for the GStreamer multimedia library.")
     (license license:lgpl2.0+)))
 
 (define-public gst-plugins-good
-- 
2.26.2


[-- Attachment #1.1.18: 0033-gnu-gst-plugins-base-Update-package-definition.patch --]
[-- Type: text/x-patch, Size: 7267 bytes --]

From 1a7ac994f1c75879adaed986d3ee9a580e1dbae8 Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Thu, 11 Jun 2020 11:30:26 -0400
Subject: [PATCH 33/54] gnu: gst-plugins-base: Update package definition.

* gnu/packages/gstreamer.scm (gst-plugins-base): Update package definition.
[arguments]<#:glib-or-gtk?>: New argument.
<#:phases>['disable-tests-for-armhf]: Remove phase.
['disable-failing-tests]: Remove phase.
['patch-docbook-xml]: New phase.
['pre-check]: New phase.
[native-inputs]: Add docbook-xml, gettext-minimal, gobject-introspection,
gsettings-desktop-schemas, perl, libxml2 and xorg-server-for-tests.
[inputs]: Add bzip2, glib, glib-networking, glu, libgudev, libx11,
libxdamage, libxfixes, libxext, libxshmfence, mesa and v4l-utils.
Remove gst-plugins-base.
[propagated-inputs]: Add gstreamer and gst-plugins-base.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gstreamer.scm | 116 ++++++++++++++++++++++---------------
 1 file changed, 68 insertions(+), 48 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 5d08a423d3..111d812c14 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -449,77 +449,97 @@ types of elements one would want to write for GStreamer.")
     (version "1.16.2")
     (source
      (origin
-      (method url-fetch)
-      (uri (string-append
-            "https://gstreamer.freedesktop.org/src/" name "/"
-            name "-" version ".tar.xz"))
-      (sha256
-       (base32
-        "068k3cbv1yf3gbllfdzqsg263kzwh21y8dpwr0wvgh15vapkpfs0"))))
+       (method url-fetch)
+       (uri
+        (string-append
+         "https://gstreamer.freedesktop.org/src/" name "/"
+         name "-" version ".tar.xz"))
+       (sha256
+        (base32 "068k3cbv1yf3gbllfdzqsg263kzwh21y8dpwr0wvgh15vapkpfs0"))))
     (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 'patch-docbook-xml
+           (lambda* (#:key inputs #:allow-other-keys)
+             (with-directory-excursion "docs"
+               (substitute* "plugins/gst-plugins-good-plugins-docs.sgml"
+                 (("http://www.oasis-open.org/docbook/xml/4.1.2/")
+                  (string-append (assoc-ref inputs "docbook-xml")
+                                 "/xml/dtd/docbook/"))))
+             #t))
+         (add-before
+             'check 'pre-check
+           (lambda _
+             ;; Tests require a running X server.
+             (system "Xvfb :1 +extension GLX &")
+             (setenv "DISPLAY" ":1")
+             ;; Tests write to $HOME.
+             (setenv "HOME" (getcwd))
+             ;; Tests look for $XDG_RUNTIME_DIR.
+             (setenv "XDG_RUNTIME_DIR" (getcwd))
+             ;; For missing '/etc/machine-id'.
+             (setenv "DBUS_FATAL_WARNINGS" "0")
+             #t)))))
+    (native-inputs
+     `(("docbook-xml" ,docbook-xml-4.1.2)
+       ("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")
+       ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
+       ("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python-wrapper" ,python-wrapper)
+       ("xmllint" ,libxml2)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      `(("aalib" ,aalib)
+       ("bzip2" ,bzip2)
        ("cairo" ,cairo)
        ("flac" ,flac)
-       ("gdk-pixbuf" ,gdk-pixbuf)
-       ("gst-plugins-base" ,gst-plugins-base)
+       ("gdk-pixbuf" ,gdk-pixbuf+svg)
+       ("glib" ,glib)
+       ("glib-networking" ,glib-networking)
+       ("glu" ,glu)
        ("gtk+" ,gtk+)
-       ("jack" ,jack-1)
+       ("jack" ,jack-2)
        ("lame" ,lame)
        ("libavc1394" ,libavc1394)
        ("libcaca" ,libcaca)
        ("libdv" ,libdv)
+       ("libgudev" ,libgudev)
        ("libiec61883" ,libiec61883)
        ("libjpeg" ,libjpeg-turbo)
        ("libpng" ,libpng)
        ("libshout" ,libshout)
        ("libsoup" ,libsoup)
        ("libvpx" ,libvpx)
+       ("libx11" ,libx11)
+       ("libxdamage" ,libxdamage)
+       ("libxfixes" ,libxfixes)
+       ("libxext" ,libxext)
+       ("libxshm" ,libxshmfence)
+       ("mesa" ,mesa)
        ("mpg123" ,mpg123)
        ("orc" ,orc)
        ("pulseaudio" ,pulseaudio)
        ("speex" ,speex)
        ("taglib" ,taglib)
        ("twolame" ,twolame)
-       ("wavpack" ,wavpack)))
-    (native-inputs
-     `(("glib:bin" ,glib "bin")
-       ("pkg-config" ,pkg-config)
-       ("python-wrapper" ,python-wrapper)))
-    (arguments
-     `(#:phases
-       (modify-phases %standard-phases
-         ,@(if (string-prefix? "arm" (or (%current-target-system)
-                                         (%current-system)))
-               ;; FIXME: These tests started failing on armhf after switching to Meson.
-               ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/689
-               `((add-after 'unpack 'disable-tests-for-armhf
-                   (lambda _
-                     (substitute* "tests/check/elements/rtpbin_buffer_list.c"
-                       (("tcase_add_test \\(tc_chain, test_bufferlist\\);")
-                        ""))
-                     (substitute* "tests/check/elements/rtpulpfec.c"
-                       (("tcase_add_loop_test.*rtpulpfecdec_recovered_from_many.*")
-                        "")
-                       (("tcase_add.*rtpulpfecdec_recovered_using_recovered_packet.*")
-                        ""))
-                     #t)))
-               '())
-         (add-after
-          'unpack 'disable-failing-tests
-          (lambda _
-            ;; Disable tests that fail non-deterministically.
-            ;; This test fails on aarch64 on 1.12.x.
-            (substitute* "tests/check/elements/alpha.c"
-              (("tcase_add_test \\(tc_chain, test_chromakeying\\);" all)
-               (string-append "/* " all " */")))
-            #t)))))
+       ("v4l-utils" ,v4l-utils)
+       ("wavpack" ,wavpack)
+       ("zlib" ,zlib)))
+    (propagated-inputs
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)))
+    (synopsis "GStreamer plugins and helper libraries")
+    (description "GStreamer-Plugins-Good is a collection of plug-ins you'd want
+to have right next to you on the battlefield.  Shooting sharp and making no
+mistakes, these plug-ins have it all: good looks, good code, and good
+licensing.  Documented and dressed up in tests.  If you're looking for a role
+model to base your own plug-in on, here it is.")
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis
-     "Plugins for the GStreamer multimedia library")
-    (description "GStreamer Good Plug-ins is a set of plug-ins for the
-GStreamer multimedia library.  This set contains those plug-ins which the
-developers consider to have good quality code and correct functionality.")
     (license license:lgpl2.0+)))
 
 (define-public gst-plugins-bad
-- 
2.26.2


[-- Attachment #1.1.19: glib-disable-failing-tests.patch --]
[-- Type: text/x-patch, Size: 2389 bytes --]

From a2e6783f2278ed32b1e552691ec5d67d6940757e Mon Sep 17 00:00:00 2001
From: Raghav Gururajan <raghavgururajan@disroot.org>
Date: Tue, 9 Jun 2020 05:17:53 -0400
Subject: [PATCH] PATCH: Disable failing tests.

---
 gio/tests/meson.build  | 19 -------------------
 glib/tests/meson.build |  2 --
 2 files changed, 21 deletions(-)

diff --git a/gio/tests/meson.build b/gio/tests/meson.build
index c7c3e3035..6e38eb39e 100644
--- a/gio/tests/meson.build
+++ b/gio/tests/meson.build
@@ -34,7 +34,6 @@ gio_tests = {
   'buffered-output-stream' : {},
   'cancellable' : {},
   'contexts' : {},
-  'contenttype' : {},
   'converter-stream' : {},
   'credentials' : {},
   'data-input-stream' : {},
@@ -78,7 +77,6 @@ gio_tests = {
   'tls-certificate' : {'extra_sources' : ['gtesttlsbackend.c']},
   'tls-interaction' : {'extra_sources' : ['gtesttlsbackend.c']},
   'tls-database' : {'extra_sources' : ['gtesttlsbackend.c']},
-  'gdbus-address-get-session' : {},
   'win32-appinfo' : {},
 }
 
@@ -135,10 +133,6 @@ endif
 if host_machine.system() != 'windows'
   gio_tests += {
     'file' : {},
-    'gdbus-peer' : {
-      'dependencies' : [libgdbus_example_objectmanager_dep],
-      'install_rpath' : installed_tests_execdir
-    },
     'gdbus-peer-object-manager' : {},
     'live-g-file' : {},
     'socket-address' : {},
@@ -173,19 +167,6 @@ if host_machine.system() != 'windows'
     }
   endif
 
-  # Uninstalled because of the check-for-executable logic in DesktopAppInfo
-  # unable to find the installed executable
-  if not glib_have_cocoa
-    gio_tests += {
-      'appinfo' : {
-        'install' : false,
-      },
-      'desktop-app-info' : {
-        'install' : false,
-      },
-    }
-  endif
-
   test_extra_programs += {
     'basic-application' : {},
     'dbus-launch' : {},
diff --git a/glib/tests/meson.build b/glib/tests/meson.build
index 8da477d19..9fa24dd49 100644
--- a/glib/tests/meson.build
+++ b/glib/tests/meson.build
@@ -103,7 +103,6 @@ glib_tests = {
   'utf8-pointer' : {},
   'utf8-validate' : {},
   'utf8-misc' : {},
-  'utils' : {},
   'unicode' : {},
   'uri' : {},
   '1bit-mutex' : {},
@@ -151,7 +150,6 @@ if host_machine.system() == 'windows'
 else
   glib_tests += {
     'include' : {},
-    'unix' : {},
   }
   if have_rtld_next
     glib_tests += {
-- 
2.26.2


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

  parent reply	other threads:[~2020-06-14 13:32 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-06  9:13 [OUTREACHY]: Integration of desktop environments into GNU Guix Raghav Gururajan
2020-05-06 14:19 ` Ludovic Courtès
2020-05-06 15:05   ` Gábor Boskovits
2020-05-06 15:49 ` Ricardo Wurmus
2020-05-06 16:03   ` Raghav Gururajan
2020-05-06 15:52 ` sirgazil
2020-05-06 16:04   ` Raghav Gururajan
2020-05-06 17:22 ` Jan Nieuwenhuizen
2020-05-06 17:23   ` Raghav Gururajan
2020-05-20 13:34 ` Raghav Gururajan
2020-05-20 13:51   ` Pierre Neidhardt
2020-05-20 13:57     ` Raghav Gururajan
2020-05-20 14:06       ` Pierre Neidhardt
2020-05-21  9:08   ` Efraim Flashner
2020-05-22 11:18     ` Raghav Gururajan
2020-05-22 11:25   ` Raghav Gururajan
2020-05-23 14:26     ` Raghav Gururajan
2020-05-25 20:08       ` Danny Milosavljevic
2020-05-28 17:11         ` Raghav Gururajan
2020-05-28 17:10       ` Raghav Gururajan
2020-05-28 18:23         ` Danny Milosavljevic
2020-05-29 21:01           ` Raghav Gururajan
2020-05-29 23:02             ` Danny Milosavljevic
2020-05-29 20:54         ` Raghav Gururajan
2020-05-29 21:08           ` Raghav Gururajan
2020-05-30 20:30             ` Raghav Gururajan
2020-05-31 13:31               ` Danny Milosavljevic
2020-06-10 13:12                 ` Raghav Gururajan
2020-06-04 18:31               ` Raghav Gururajan
2020-06-04 18:52                 ` Vincent Legoll
2020-06-10 13:06                   ` Raghav Gururajan
2020-06-04 18:57                 ` Danny Milosavljevic
2020-06-14 13:31                 ` Raghav Gururajan [this message]
2020-06-19 23:37                   ` Raghav Gururajan
2020-06-24 22:40                     ` Danny Milosavljevic
2020-07-04 10:37                       ` Raghav Gururajan
2020-07-04 11:14                         ` Raghav Gururajan
2020-07-06  1:36                           ` Raghav Gururajan
2020-07-06 19:24                           ` Danny Milosavljevic
2020-07-06 19:56                             ` Efraim Flashner
2020-07-05 19:25                         ` Danny Milosavljevic
2020-07-06  5:05                           ` Raghav Gururajan
2020-07-13 13:45                             ` Ludovic Courtès
2020-07-13 13:50                               ` Raghav Gururajan
2020-07-16  1:21                             ` Raghav Gururajan
2020-07-17 12:38                               ` Danny Milosavljevic
2020-07-18 13:29                                 ` Raghav Gururajan
2020-07-18 14:12                                   ` Danny Milosavljevic
2020-07-18 19:27                                     ` Raghav Gururajan
2020-07-18 20:18                                       ` Raghav Gururajan
2020-07-19 11:43                                         ` Danny Milosavljevic
2020-07-19 19:21                                         ` Danny Milosavljevic
2020-07-19 19:22                                   ` Danny Milosavljevic
2020-07-20  1:54                                     ` Raghav Gururajan
2020-07-24 18:29                                       ` Raghav Gururajan
2020-07-25  8:15                                         ` Raghav Gururajan
2020-07-25  8:18                                           ` Raghav Gururajan
2020-07-25  8:24                                             ` Raghav Gururajan
2020-07-25  9:12                                               ` Raghav Gururajan
2020-07-27 16:11                                                 ` Raghav Gururajan
2020-07-30 23:51                                                   ` Raghav Gururajan
2020-08-02  7:32                                                   ` Raghav Gururajan
2020-08-03 22:29                                                     ` Danny Milosavljevic
2020-08-04 10:22                                                       ` Raghav Gururajan
2020-08-04 22:50                                                         ` Raghav Gururajan
2020-08-05 15:14                                                           ` Danny Milosavljevic
2020-08-07  2:14                                                             ` Raghav Gururajan
2020-08-09 22:28                                                               ` Danny Milosavljevic
2020-08-11 10:38                                                                 ` Raghav Gururajan
2020-08-12  4:05                                                                   ` Raghav Gururajan
2020-08-12  4:11                                                                     ` Raghav Gururajan
2020-08-12  8:02                                                                       ` Danny Milosavljevic
2020-08-19 15:06                                                                         ` Raghav Gururajan
2020-08-22 14:48                                                                           ` Pierre Neidhardt
2020-08-24  3:18                                                                           ` Maxim Cournoyer
2020-08-14 14:24                                                               ` [20.08.2020 Hartmut Goebel
2020-08-14 14:28                                                                 ` [20.08.2020 Raghav Gururajan
2020-06-24 11:37                   ` [OUTREACHY]: Integration of desktop environments into GNU Guix Danny Milosavljevic
2020-06-25  4:04                     ` Raghav Gururajan
2020-06-25 11:47                       ` Danny Milosavljevic
2020-06-28  5:56                         ` Raghav Gururajan
2020-06-25 11:52                       ` Danny Milosavljevic
2020-05-25 19:58     ` Danny Milosavljevic
2020-05-25 20:00     ` Danny Milosavljevic

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=73cb94f7-d7b4-ec0a-5942-e701a18bdf5c@disroot.org \
    --to=raghavgururajan@disroot.org \
    --cc=guix-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).