"Taylan Ulrich Bayırlı/Kammer" <taylanbayi...@gmail.com> writes:
> From 8bb21df5e4769797ba915a83643da57168f8dc9d Mon Sep 17 00:00:00 2001 > From: =?UTF-8?q?Taylan=20Ulrich=20Bay=C4=B1rl=C4=B1/Kammer?= > <taylanbayi...@gmail.com> > Date: Tue, 28 Apr 2015 15:08:47 +0200 > Subject: [PATCH 2/3] gnu: mesa: Add libva input. > > There is a circular dependency between Mesa and libVA, so we use a > libva-for-mesa package that builds libVA without GLX and EGL support, and use > that for building Mesa. > > * gnu/packages/gl.scm (libva-for-mesa): New variable. > (mesa): Add as input. > --- > gnu/packages/gl.scm | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm > index a40749e..69dd8b7 100644 > --- a/gnu/packages/gl.scm > +++ b/gnu/packages/gl.scm > @@ -21,6 +21,7 @@ > > (define-module (gnu packages gl) > #:use-module (ice-9 match) > + #:use-module (guix build utils) > #:use-module ((guix licenses) #:prefix l:) > #:use-module (guix packages) > #:use-module (guix download) > @@ -37,6 +38,7 @@ > #:use-module (gnu packages xml) > #:use-module (gnu packages fontutils) > #:use-module (gnu packages guile) > + #:use-module (gnu packages video) > #:use-module (gnu packages xdisorg)) > > (define-public glu > @@ -159,6 +161,12 @@ Polygon meshes, and Extruded polygon meshes") > also known as DXTn or DXTC) for Mesa.") > (license l:expat))) > > +(define libva-for-mesa > + (package > + (inherit libva) > + (inputs (alist-delete "mesa" (package-inputs libva))) > + (arguments '(#:configure-flags '("--disable-glx" "--disable-egl"))))) > + > (define-public mesa > (package > (name "mesa") > @@ -188,8 +196,7 @@ also known as DXTn or DXTC) for Mesa.") > ("dri3proto" ,dri3proto) > ("presentproto" ,presentproto) > ("expat" ,expat) > - ;; TODO: Solve circular dependency with libva. > - ;; ("libva" ,libva) > + ("libva" ,libva-for-mesa) > ("libxml2" ,libxml2) > ;; TODO: Add 'libxml2-python' for OpenGL ES 1.1 and 2.0 support > ("libxvmc" ,libxvmc) > -- > 2.2.1 Look good to me, but how does it work? According to archlinux, it will build 'gallium_drv_video.so', described as VA-API implementation for gallium. IIUC, libva may dlopen this gallium_drv_video.so?