Subject: [PATCH] Fix audio/video in icecat

From: Julien Lepiller <[email-masked]>
Date: Thu, 19 Dec 2019 14:59:22 +0100

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.
>From c144cf973235d2e633daeeedbac45fcf61da04a1 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <[email-masked]>
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