diff mbox series

[bug#38670] Fix audio/video in icecat

Message ID 20191219145922.715720ad@sybil.lepiller.eu
State Accepted
Headers show
Series [bug#38670] Fix audio/video in icecat | expand

Commit Message

Julien Lepiller Dec. 19, 2019, 1:59 p.m. UTC
Hi guix,

since the update to icecat 68, mpeg decoding doesn't work in IceCat
(mp3/mp4 would not play, breaking a lot of online media players). This
patch addresses that issue, that was caused by IceCat not finding
ffmpeg's library. It was dlopening libavcodec.so, but could not find
it. I replaced it with an absolute reference to the library in the
store, which now allows IceCat to load the library at runtime. It also
adds ffmpeg to icecat's closure, ensuring it will always find it.

Comments

Ludovic Courtès Dec. 21, 2019, 10:49 p.m. UTC | #1
Hi Julien,

Julien Lepiller <julien@lepiller.eu> skribis:

> since the update to icecat 68, mpeg decoding doesn't work in IceCat
> (mp3/mp4 would not play, breaking a lot of online media players). This
> patch addresses that issue, that was caused by IceCat not finding
> ffmpeg's library. It was dlopening libavcodec.so, but could not find
> it. I replaced it with an absolute reference to the library in the
> store, which now allows IceCat to load the library at runtime. It also
> adds ffmpeg to icecat's closure, ensuring it will always find it.

Great that you found out!

>>From c144cf973235d2e633daeeedbac45fcf61da04a1 Mon Sep 17 00:00:00 2001
> From: Julien Lepiller <julien@lepiller.eu>
> Date: Thu, 19 Dec 2019 13:02:34 +0100
> Subject: [PATCH] gnu: icecat: Fix linking with ffmpeg.
>
> * gnu/packages/gnuzilla.scm (icecat): Use absolute path for ffmpeg
> library loading.

LGTM!  (Cc’ing Mark for a heads-up.)

Thanks,
Ludo’.
Julien Lepiller Dec. 23, 2019, 11:50 a.m. UTC | #2
Pushed Mark's version as 8e5567195f5d29301d571612085b5afdb460619d.
diff mbox series

Patch

From c144cf973235d2e633daeeedbac45fcf61da04a1 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <julien@lepiller.eu>
Date: Thu, 19 Dec 2019 13:02:34 +0100
Subject: [PATCH] gnu: icecat: Fix linking with ffmpeg.

* gnu/packages/gnuzilla.scm (icecat): Use absolute path for ffmpeg
library loading.
---
 gnu/packages/gnuzilla.scm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index 2f15beecc7..ce63f6762e 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -950,7 +950,7 @@  from forcing GEXP-PROMISE."
                          ))
              #t))
          (add-after 'remove-bundled-libraries 'link-libxul-with-libraries
-           (lambda _
+           (lambda* (#:key inputs #:allow-other-keys)
              ;; libxul.so dynamically opens libraries, so here we explicitly
              ;; link them into libxul.so instead.
              ;;
@@ -963,6 +963,9 @@  from forcing GEXP-PROMISE."
     'GL', 'gnome-2', 'canberra', 'Xss', 'cups', 'gssapi_krb5',
     'avcodec', 'avutil', 'pulse' ]\n\n"
                                all)))
+             (substitute* "dom/media/platforms/ffmpeg/FFmpegRuntimeLinker.cpp"
+               (("libavcodec.so.[0-9]*")
+                (string-append (assoc-ref inputs "ffmpeg") "/lib/libavcodec.so")))
              #t))
          (replace 'bootstrap
            (lambda _
-- 
2.24.0