From 51e9e9d0510fc86278a7bd125366a765a10c365a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?= Date: Tue, 28 Apr 2015 17:48:24 +0200 Subject: [PATCH 2/4] gnu: libva: Patch a dlopen call, set drivers path. * gnu/packages/video.scm (libva): Patch the reference to libva-x11.so (passed to dlopen()) to use an absolute path. Add --with-drivers-path= to #:configure-flags with a value pointing to mesa's $prefix/lib/dri. --- gnu/packages/video.scm | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 2e2460d..c890d45 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -264,6 +264,27 @@ SMPTE 314M.") ("libxext" ,libxext) ("libxfixes" ,libxfixes) ("mesa" ,mesa))) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-before + 'build 'fix-dlopen-paths + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "va/drm/va_drm_auth_x11.c" + (("\"libva-x11\\.so\\.%d\"") + (string-append "\"" out "/lib/libva-x11.so.%d\""))))))) + ;; Most drivers are in mesa's $prefix/lib/dri, so use that. (Can be + ;; overridden at run-time via LIBVA_DRIVERS_PATH.) + #:configure-flags + (list (string-append "--with-drivers-path=" + (assoc-ref %build-inputs "mesa") "/lib/dri")) + ;; However, we can't write to mesa's store directory, so override the + ;; following make variable to install the dummy driver to libva's + ;; $prefix/lib/dri directory. + #:make-flags + (list (string-append "dummy_drv_video_ladir=" + (assoc-ref %outputs "out") "/lib/dri")))) (home-page "http://www.freedesktop.org/wiki/Software/vaapi/") (synopsis "Video acceleration library") (description "The main motivation for VA-API (Video Acceleration API) is -- 2.2.1