summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndreas Enge <andreas@enge.fr>2013-12-17 21:19:41 +0100
committerAndreas Enge <andreas@enge.fr>2013-12-17 21:19:41 +0100
commitf22e0e264e400b69fc91509c676f9069b7cdbc2e (patch)
tree7600981f46bb81eb54e0d88a77a7cc7d3f02ba6e
parentf733c4c838640090c6da721d065d0640031a6158 (diff)
downloadguix-f22e0e264e400b69fc91509c676f9069b7cdbc2e.tar.gz
gnu: ffmpeg: Modify runpath of binaries to include output library path.
* gnu/packages/video.scm (ffmpeg): Patch binaries to add output library path
    to runpath.
-rw-r--r--gnu/packages/video.scm20
1 files changed, 19 insertions, 1 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 1a90527f21..b1d1270c05 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -23,6 +23,7 @@
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages elf)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages oggvorbis)
   #:use-module (gnu packages openssl)
@@ -48,6 +49,7 @@
        ("freetype" ,freetype)
        ("libtheora" ,libtheora)
        ("libvorbis" ,libvorbis)
+       ("patchelf" ,patchelf)
        ("speex" ,speex)
        ("zlib", zlib)))
     (native-inputs
@@ -60,6 +62,13 @@
        ("yasm" ,yasm)))
     (arguments
      `(#:test-target "fate"
+       #:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (guix build rpath)
+                  (srfi srfi-26))
+       #:imported-modules ((guix build gnu-build-system)
+                           (guix build utils)
+                           (guix build rpath))
        #:phases
          (alist-replace
           'configure
@@ -166,7 +175,16 @@
                       "--disable-mipsdspr1"
                       "--disable-mipsdspr2"
                       "--disable-mipsfpu"))))
-          %standard-phases)))
+       (alist-cons-after
+        'strip 'add-lib-to-runpath
+        (lambda* (#:key outputs #:allow-other-keys)
+          (let* ((out (assoc-ref outputs "out"))
+                 (lib (string-append out "/lib")))
+            ;; Add LIB to the RUNPATH of all the executables.
+            (with-directory-excursion out
+              (for-each (cut augment-rpath <> lib)
+                        (find-files "bin" ".*")))))
+          %standard-phases))))
     (home-page "http://www.ffmpeg.org/")
     (synopsis "Audio and video framework")
     (description "FFmpeg is a complete, cross-platform solution to record,