diff options
Diffstat (limited to 'pkgs/tools/X11/primus/lib.nix')
-rw-r--r-- | pkgs/tools/X11/primus/lib.nix | 32 |
1 files changed, 24 insertions, 8 deletions
diff --git a/pkgs/tools/X11/primus/lib.nix b/pkgs/tools/X11/primus/lib.nix index fccd01eaeadd..f3119a1a147b 100644 --- a/pkgs/tools/X11/primus/lib.nix +++ b/pkgs/tools/X11/primus/lib.nix @@ -1,10 +1,16 @@ -{ stdenv, fetchFromGitHub -, xlibsWrapper, mesa +{ stdenv, fetchFromGitHub, fetchpatch +, libX11, mesa_noglu , nvidia_x11 ? null -, libX11 +, libglvnd }: -stdenv.mkDerivation { +let + aPackage = + if nvidia_x11 == null then mesa_noglu + else if nvidia_x11.useGLVND then libglvnd + else nvidia_x11; + +in stdenv.mkDerivation { name = "primus-lib-2015-04-28"; src = fetchFromGitHub { @@ -14,18 +20,28 @@ stdenv.mkDerivation { sha256 = "118jm57ccawskb8vjq3a9dpa2gh72nxzvx2zk7zknpy0arrdznj1"; }; - buildInputs = [ libX11 mesa ]; + patches = [ + # Bump buffer size for long library paths. + (fetchpatch { + url = "https://github.com/abbradar/primus/commit/2f429e232581c556df4f4bf210aee8a0c99c60b7.patch"; + sha256 = "1da6ynz7r7x98495i329sf821308j1rpy8prcdraqahz7p4c89nc"; + }) + ]; + + buildInputs = [ libX11 mesa_noglu ]; makeFlags = [ "LIBDIR=$(out)/lib" - "PRIMUS_libGLa=${if nvidia_x11 == null then mesa else nvidia_x11}/lib/libGL.so" - "PRIMUS_libGLd=${mesa}/lib/libGL.so" - "PRIMUS_LOAD_GLOBAL=${mesa}/lib/libglapi.so" + "PRIMUS_libGLa=${aPackage}/lib/libGL.so" + "PRIMUS_libGLd=${mesa_noglu}/lib/libGL.so" + "PRIMUS_LOAD_GLOBAL=${mesa_noglu}/lib/libglapi.so" ]; installPhase = '' ln -s $out/lib/libGL.so.1 $out/lib/libGL.so ''; + passthru.glvnd = if nvidia_x11 != null && nvidia_x11.useGLVND then nvidia_x11 else null; + meta = with stdenv.lib; { description = "Low-overhead client-side GPU offloading"; homepage = "https://github.com/amonakov/primus"; |