Subject: [bug#52247] [PATCH v2 1/2] gnu: shotcut: Find ffmpeg and mlt at runtime.

From: Vinicius Monego <[email-masked]>
Date: Sat, 18 Dec 2021 18:12:26 +0000

* gnu/packages/video.scm (shotcut)[arguments]<:#phases>: Add phase
'patch-executable-paths to use full store paths for ffmpeg and mlt.
---
This adds the suggestion from above, using just the string for replacement.

 gnu/packages/video.scm | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 4b7251ee23..9b5738358b 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -4818,9 +4818,20 @@ transitions, and effects and then export your film to many common formats.")
         (base32 "0jgv6wl65gf6c4nmfica8k9vbgn3w3594d1phx1mb7zjvyy9y97k"))))
     (build-system qt-build-system)
     (arguments
-     `(#:tests? #f ;there are no tests
+     `(#:tests? #f                      ;there are no tests
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-executable-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             ;; Shotcut expects ffmpeg and melt executables in the shotcut
+             ;; directory.  Use full store paths.
+             (let* ((ffmpeg (assoc-ref inputs "ffmpeg"))
+                    (mlt (assoc-ref inputs "mlt")))
+               (substitute* "src/jobs/ffmpegjob.cpp"
+                 (("\"ffmpeg\"") (string-append "\"" ffmpeg "/bin/ffmpeg\"")))
+               (substitute* "src/jobs/meltjob.cpp"
+                 (("\"melt\"") (string-append "\"" mlt "/bin/melt\""))
+                 (("\"melt-7\"") (string-append "\"" mlt "/bin/melt-7\""))))))
          (replace 'configure
            (lambda* (#:key outputs #:allow-other-keys)
              (let* ((out (assoc-ref outputs "out")))

base-commit: 86d6c6053c7d1c7a82c83f0daf0f5e09b1ecfb63
-- 
2.30.2