~ruther/guix-local

e682c327b1226898192afb70a49f40a112417624 — Taylan Ulrich Bayırlı/Kammer 11 years ago a78f535
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.
1 files changed, 18 insertions(+), 4 deletions(-)

M gnu/packages/gl.scm
M gnu/packages/gl.scm => gnu/packages/gl.scm +18 -4
@@ 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")