[PATCH] gnu: tuba: Fix video-player crash and webp support.

  • Done
  • quality assurance status badge
Details
3 participants
  • Juliana Sims
  • Lilah Tascheter
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Lilah Tascheter
Severity
normal
L
L
Lilah Tascheter wrote on 7 Jul 2023 21:28
(address . guix-patches@gnu.org)(name . Lilah Tascheter)(address . lilah@lunabee.space)
41881946b2ae618d37e9c9939bf3d878116a70dc.1688758089.git.lilah@lunabee.space
Without gstreamer, tuba will crash every time the user clicks on a
video. libwepb was included as an input but without a pixbuf loader, so
webp support was compiled in but didn't work.

* gnu/packages/mastodon.scm (tuba)[arguments]: Update to new style.

(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 | 41 +++++++++++++++++++++++++++------------
1 file changed, 29 insertions(+), 12 deletions(-)

Toggle diff (81 lines)
diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm
index feef8c61f9..e3334ac868 100644
--- a/gnu/packages/mastodon.scm
+++ b/gnu/packages/mastodon.scm
@@ -21,6 +21,7 @@
(define-module (gnu packages mastodon)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
@@ -32,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)
@@ -94,21 +96,35 @@ (define-public tuba
(base32 "1xhyz6wi17g4m76lr6qc75q4xnnw7c3dh3d04dg8m5gzk6j0y89x"))))
(build-system meson-build-system)
(arguments
- `(#:glib-or-gtk? #t
- #:configure-flags (list "-Ddistro=true")
- #:phases
- (modify-phases %standard-phases
- (add-after 'glib-or-gtk-wrap 'symlink-package
- (lambda* (#:key outputs #:allow-other-keys)
- (with-directory-excursion
- (string-append (assoc-ref outputs "out") "/bin")
- (symlink "dev.geopjr.Tuba" "tuba")))))))
+ (list
+ #:glib-or-gtk? #t
+ #:configure-flags ''("-Ddistro=true")
+ #:phases
+ #~(modify-phases %standard-phases
+ (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
+ gst-plugins-ugly
+ gstreamer
+ gtk
gtksourceview
json-glib
libadwaita
@@ -117,7 +133,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,

base-commit: 3e9915724718948f0d74d83aaac1b3c8061c26d2
--
2.40.1
J
J
Juliana Sims wrote on 7 Jul 2023 23:08
(address . lilah@lunabee.space)(address . 64521@debbugs.gnu.org)
SP2GXR.WPR1LR4AZZZW2@incana.org
Hello,

First of all, could you split this into multiple patches? Specifically,
could you split the fix apart from the argument modernization?

My other major concern is the inclusion of all those gstreamer plugins.
Do we really need all of them? Ideally we want to avoid *-ugly and
*-bad if we can.

I'm not sure if this is an issue with the Guix package, my personal
setup, or Tuba itself, but while testing the patch I ran into an issue
signing in. Because spaces are used to separate the permissions the
application requests, my browser seems to interpret them as indicating
new URLs instead. If you're able to fix that, that would be great!

Also, feel free to add a copyright line to the top of the file as part
of your first patch ;)

Thanks,
Juli
L
L
Lilah Tascheter wrote on 8 Jul 2023 07:08
(name . Juliana Sims)(address . juli@incana.org)(address . 64521@debbugs.gnu.org)
20230708000823.0e737833@lunabee.space
hey juli!

Toggle quote (1 lines)
> First of all, could you split this into multiple patches?
yep!

Toggle quote (3 lines)
> My other major concern is the inclusion of all those gstreamer
> plugins. Do we really need all of them? Ideally we want to avoid
> *-ugly and *-bad if we can.
-ugly can definately be removed; looks like it only provides DVD
decoding stuff. -bad, though, is required in order to play .mp4 video.

Toggle quote (3 lines)
> Because spaces are used to separate the permissions the application
> requests, my browser seems to interpret them as indicating new URLs
> instead.
I just reported it upstream; the scopes aren't properly urlencoded.

thank you so much!
~lunabee
L
L
Lilah Tascheter wrote on 8 Jul 2023 07:11
[PATCH 1/2] gnu: tuba: Update to new style.
(address . 64521@debbugs.gnu.org)
628b4da693ff055a279df3658646bc379c8f033d.1688793035.git.lilah@lunabee.space
* gnu/packages/mastodon.scm (tuba)[arguments]: Update to new style.
---
gnu/packages/mastodon.scm | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)

Toggle diff (42 lines)
diff --git a/gnu/packages/mastodon.scm b/gnu/packages/mastodon.scm
index feef8c61f9..af578bd7de 100644
--- a/gnu/packages/mastodon.scm
+++ b/gnu/packages/mastodon.scm
@@ -21,6 +21,7 @@
(define-module (gnu packages mastodon)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix gexp)
#:use-module (guix git-download)
#:use-module (guix build-system meson)
#:use-module (guix build-system python)
@@ -94,15 +95,16 @@ (define-public tuba
(base32 "1xhyz6wi17g4m76lr6qc75q4xnnw7c3dh3d04dg8m5gzk6j0y89x"))))
(build-system meson-build-system)
(arguments
- `(#:glib-or-gtk? #t
- #:configure-flags (list "-Ddistro=true")
- #:phases
- (modify-phases %standard-phases
- (add-after 'glib-or-gtk-wrap 'symlink-package
- (lambda* (#:key outputs #:allow-other-keys)
- (with-directory-excursion
- (string-append (assoc-ref outputs "out") "/bin")
- (symlink "dev.geopjr.Tuba" "tuba")))))))
+ (list
+ #:glib-or-gtk? #t
+ #:configure-flags ''("-Ddistro=true")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'glib-or-gtk-wrap 'symlink-package
+ (lambda _
+ (with-directory-excursion
+ (string-append #$output "/bin")
+ (symlink "dev.geopjr.Tuba" "tuba")))))))
(native-inputs
(list gettext-minimal
`(,glib "bin") ; for glib-compile-resources

base-commit: 3db685cb2e2ce2a4b29c62d28a66201b2eba018f
--
2.40.1
L
L
Lilah Tascheter wrote on 8 Jul 2023 07:11
[PATCH 2/2] gnu: tuba: Fix videoplayer crash and webp support.
(address . 64521@debbugs.gnu.org)
e45dca52be7ff8d71589c151be9b53897a3cddc0.1688793035.git.lilah@lunabee.space
* 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(-)

Toggle diff (57 lines)
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
J
J
Juliana Sims wrote on 8 Jul 2023 18:57
(name . Lilah Tascheter)(address . lilah@lunabee.space)(name . 64521)(address . 64521@debbugs.gnu.org)
1RLHXR.1118PYMUJDFB@incana.org
This looks good to me - but of course, the final say is with the
commiters :)

- Juli
Attachment: file
M
M
Maxim Cournoyer wrote on 10 Jul 2023 06:40
(name . Lilah Tascheter)(address . lilah@lunabee.space)
874jmcxtt2.fsf@gmail.com
Hello,

Lilah Tascheter <lilah@lunabee.space> writes:

Toggle quote (7 lines)
> * 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.

Applied this one and the precedent commit as
753428d7939bb5840d9e230215312d4bd5d487d3 and
88027480b537b391b5089fb06889835510f33e59, with minor cosmetic edits
(such as removing the whitespace in the above commit message).

Well done! :-)

--
Thanks,
Maxim
Closed
?