summary refs log tree commit diff
path: root/gnu/packages
diff options
context:
space:
mode:
authorTaylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>2015-03-14 14:57:27 +0100
committerTaylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>2015-03-19 17:20:59 +0100
commite682c327b1226898192afb70a49f40a112417624 (patch)
treed13e8637a3fcc8283a718ccf5de982b64dbea09c /gnu/packages
parenta78f535d9ab9c438ed2451f1af891a1458a7b985 (diff)
downloadguix-e682c327b1226898192afb70a49f40a112417624.tar.gz
gnu: mesa: Fix file names passed to dlopen(3).
* gnu/packages/gl.scm (mesa): Patch source files to make file names passed to
  dlopen(3) absolute.
Diffstat (limited to 'gnu/packages')
-rw-r--r--gnu/packages/gl.scm22
1 files changed, 18 insertions, 4 deletions
diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm
index 55a6e64553..585905c70f 100644
--- a/gnu/packages/gl.scm
+++ b/gnu/packages/gl.scm
@@ -223,16 +223,30 @@ also known as DXTn or DXTC) for Mesa.")
                     (substitute* "src/glsl/tests/lower_jumps/create_test_cases.py"
                       (("/usr/bin/env bash") (which "bash"))))
                   (alist-cons-before
-                   'build 'fix-dxtn-libname
-                   (lambda* (#:key inputs #:allow-other-keys)
-                     (let ((s2tc (assoc-ref inputs "s2tc")))
+                   'build 'fix-dlopen-libnames
+                   (lambda* (#:key inputs outputs #:allow-other-keys)
+                     (let ((s2tc (assoc-ref inputs "s2tc"))
+                           (udev (assoc-ref inputs "udev"))
+                           (out (assoc-ref outputs "out")))
                        ;; Remain agnostic to .so.X.Y.Z versions while doing
                        ;; the substitutions so we're future-safe.
                        (substitute*
                            '("src/gallium/auxiliary/util/u_format_s3tc.c"
                              "src/mesa/main/texcompress_s3tc.c")
                          (("\"libtxc_dxtn\\.so")
-                          (string-append "\"" s2tc "/lib/libtxc_dxtn.so")))))
+                          (string-append "\"" s2tc "/lib/libtxc_dxtn.so")))
+                       (substitute* "src/gallium/targets/egl-static/egl_st.c"
+                         (("\"libglapi\"")
+                          (string-append "\"" out "/lib/libglapi\"")))
+                       (substitute* "src/loader/loader.c"
+                         (("dlopen\\(\"libudev\\.so")
+                          (string-append "dlopen(\"" udev "/lib/libudev.so")))
+                       (substitute* "src/glx/dri_common.c"
+                         (("dlopen\\(\"libGL\\.so")
+                          (string-append "dlopen(\"" out "/lib/libGL.so")))
+                       (substitute* "src/egl/drivers/dri2/egl_dri2.c"
+                         (("\"libglapi\\.so")
+                          (string-append "\"" out "/lib/libglapi.so")))))
                    %standard-phases)))))
     (home-page "http://mesa3d.org/")
     (synopsis "OpenGL implementation")