Subject: [PATCH] gnu: ffmpeg-{5,4,3}: Fix build on i686 with binutils 2.41.

From: André Batista <[email-masked]>
Date: Tue, 3 Sep 2024 11:30:59 -0300

Fixes <https://issues.guix.gnu.org/72917>.

* gnu/packages/video.scm (ffmpeg-5): Replace 'bypass-openal-check
string substitution with one that matches on this and earlier
versions of ffmpeg.
(ffmpeg-4): Inherit package arguments from ffmpeg-5.

Reported-by: Dariqq <[email-masked]>

Change-Id: Ie5b51a174be45b511757dece369563975e498bac
---
 gnu/packages/video.scm | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index ac9fabeb38..8b4da65836 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1845,6 +1845,9 @@ (define-public ffmpeg
                       ;; https://lists.gnu.org/archive/html/guix-devel/2024-08/msg00159.html
                       (lambda _
                         (substitute* "configure"
+                          ;; This string only matches on ffmpeg v6 and above.
+                          ;; Replace it with the one defined at ffmpeg-5 which
+                          ;; matches on all ffmpeg versions. See #71917.
                           (("alGetError \\|\\|")
                            "alGetError \|\| true \|\|")))))
                  #~())
@@ -1889,7 +1892,18 @@ (define-public ffmpeg-5
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0qwhyhil805hns7yksdxagnrcc90h60al7lz1rc65kd1j2w3nf2l"))))))
+                "0qwhyhil805hns7yksdxagnrcc90h60al7lz1rc65kd1j2w3nf2l"))))
+    (arguments
+     (if (target-x86-32?)
+         (substitute-keyword-arguments (package-arguments ffmpeg)
+           ((#:phases phases)
+            #~(modify-phases #$phases
+                (replace 'bypass-openal-check
+                  (lambda _
+                    (substitute* "configure"
+                      (("die \"ERROR: openal not found\"")
+                       "true")))))))
+         (package-arguments ffmpeg)))))
 
 (define-public ffmpeg-4
   (package
@@ -1907,7 +1921,7 @@ (define-public ffmpeg-4
     (inputs (modify-inputs (package-inputs ffmpeg)
               (replace "sdl2" sdl2-2.0)))
     (arguments
-     (substitute-keyword-arguments (package-arguments ffmpeg)
+     (substitute-keyword-arguments (package-arguments ffmpeg-5)
        ((#:configure-flags flags ''())
         #~(cons "--enable-avresample" #$flags))))))

base-commit: 778dd796bff808f1f8520533bab239ecbe83cd87
-- 
2.45.2