Subject: [bug#47643] [PATCH 19/22] gnu: gst-plugins-bad: Update to 1.18.4.

From: Raghav Gururajan <[email-masked]>
Date: Wed, 7 Apr 2021 16:42:34 -0400

* gnu/packages/gstreamer.scm (gst-plugins-bad)[version]: Update to 1.18.4.
[arguments](glib-or-gtk): New argument.
[phases](pre-check): New phase.
[propagated-inputs]: Add gstreamer.
[native-inputs]: Add gettext-minimal, gsettings-desktop-schemas, perl and
xorg-server-for-tests. Replace python with python-wrapper.
[synopsis]: Modify.
[description]: Modify.
---
 gnu/packages/gstreamer.scm | 40 ++++++++++++++++++++++++++++----------
 1 file changed, 30 insertions(+), 10 deletions(-)

diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 2927856133..77b2988bd5 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -720,17 +720,18 @@ model to base your own plug-in on, here it is.")
 (define-public gst-plugins-bad
   (package
     (name "gst-plugins-bad")
-    (version "1.18.2")
+    (version "1.18.4")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gstreamer.freedesktop.org/src/"
                                   name "/" name "-" version ".tar.xz"))
               (sha256
                (base32
-                "06ildd4rl6cynirv3p00d2ddf5is9svj4i7mkahldzhq24pq5mca"))))
+                "0py8k4pbalm9mxkpjbjxis0gp7g74wg5g4yax5q8rccmany0ds3l"))))
     (build-system meson-build-system)
     (arguments
-     `(#:phases
+     `(#:glib-or-gtk? #t     ; To wrap binaries and/or compile schemas
+       #:phases
        (modify-phases %standard-phases
          ,@%common-gstreamer-phases
          ,@(if (string-prefix? "arm" (or (%current-target-system)
@@ -763,15 +764,32 @@ model to base your own plug-in on, here it is.")
                  ((".*elements/curlhttpsrc\\.c.*") "")
                  ;; https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/issues/1412
                  ((".*elements/dtls\\.c.*") ""))
-               #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)))))
     (propagated-inputs
-     `(("gst-plugins-base" ,gst-plugins-base)))
+     `(("gstreamer" ,gstreamer)
+       ("gst-plugins-base" ,gst-plugins-base)))
     (native-inputs
-     `(("glib:bin" ,glib "bin")         ; for glib-mkenums, etc.
+     `(("gettext" ,gettext-minimal)
+       ("glib:bin" ,glib "bin")         ; for glib-mkenums, etc.
        ("gobject-introspection" ,gobject-introspection)
+       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)
        ("gst-plugins-good" ,gst-plugins-good) ;for tests
+       ("perl" ,perl)
        ("pkg-config" ,pkg-config)
-       ("python" ,python)))
+       ("python" ,python-wrapper)
+       ("xorg-server" ,xorg-server-for-tests)))
     (inputs
      ;; XXX: The following dependencies are missing:
      ;;  vo-amrwbenc, vo-aacenc, bs2b, chromaprint, directfb, daala, libdts,
@@ -819,10 +837,12 @@ model to base your own plug-in on, here it is.")
        ("webrtc-audio-processing" ,webrtc-audio-processing)
        ("wayland" ,wayland)))
     (home-page "https://gstreamer.freedesktop.org/")
-    (synopsis "Plugins for the GStreamer multimedia library")
+    (synopsis "GStreamer plugins and helper libraries")
     (description
-     "GStreamer Bad Plug-ins is a set of plug-ins whose quality aren't up to
-par compared to the rest.")
+     "Gst-Plugins-Bad are Bad with a capital B.  They look fine on the outside,
+and might even appear to get the job done, but at the end of the day they're a
+black sheep.  Without a golden-haired angel to watch over them, they'll probably
+land in an unmarked grave at the final showdown.")
     (license license:lgpl2.0+)))
 
 (define-public gst-plugins-ugly
-- 
2.31.1