Subject: [PATCH 2/2] gnu: tuba: Fix videoplayer crash and webp support.

From: Lilah Tascheter <[email-masked]>
Date: Sat, 8 Jul 2023 00:11:21 -0500

* gnu/packages/mastodon.scm (tuba)[arguments]<phases: Add lib-vars-wrap
  phase to set GST_PLUGIN_SYSTEM_PATH and GDK_PIXBUF_MODULE_FILE
  variables.

  (tuba)[native-inputs]: Add gdk-pixbuf.
  (tuba)[inputs]: Add gstreamer, plugins, and webp-pixbuf-loader.
---
 gnu/packages/mastodon.scm | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm
index af578bd7de..4442e6cb2a 100644
--- a/gnu/packages/mastodon.scm
+++ b/gnu/packages/mastodon.scm
@@ -33,6 +33,7 @@ (define-module (gnu packages mastodon)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gstreamer)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages pkg-config)
@@ -100,17 +101,29 @@ (define-public tuba
         #:configure-flags ''("-Ddistro=true")
         #:phases
         #~(modify-phases %standard-phases
-            (add-after 'glib-or-gtk-wrap 'symlink-package
+            (add-after 'glib-or-gtk-wrap 'lib-vars-wrap
+              (lambda _
+                (let ((gstvar "GST_PLUGIN_SYSTEM_PATH")
+                      (pixvar "GDK_PIXBUF_MODULE_FILE"))
+                  (wrap-program (string-append #$output "/bin/dev.geopjr.Tuba")
+                    `(,gstvar ":" suffix (,(getenv gstvar)))
+                    `(,pixvar ":" = (,(getenv pixvar)))))))
+            (add-after 'lib-vars-wrap 'symlink-package
               (lambda _
                 (with-directory-excursion
                   (string-append #$output "/bin")
                   (symlink "dev.geopjr.Tuba" "tuba")))))))
     (native-inputs
-     (list gettext-minimal
+     (list gdk-pixbuf ; so pixbuf loader cache (for webp) is generated
+           gettext-minimal
            `(,glib "bin") ; for glib-compile-resources
            pkg-config))
     (inputs
-     (list gtk
+     (list gst-plugins-bad
+           gst-plugins-base
+           gst-plugins-good
+           gstreamer
+           gtk
            gtksourceview
            json-glib
            libadwaita
@@ -119,7 +132,8 @@ (define-public tuba
            libsecret
            libwebp
            libxml2
-           vala))
+           vala
+           webp-pixbuf-loader))
     (home-page "https://tuba.geopjr.dev/")
     (synopsis "GTK client for Mastodon")
     (description "Tuba is a GTK client for Mastodon.  It provides a clean,
-- 
2.40.1