diff options
Diffstat (limited to 'pkgs/tools/X11/primus/default.nix')
-rw-r--r-- | pkgs/tools/X11/primus/default.nix | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/pkgs/tools/X11/primus/default.nix b/pkgs/tools/X11/primus/default.nix new file mode 100644 index 00000000000..c5c0e3ce780 --- /dev/null +++ b/pkgs/tools/X11/primus/default.nix @@ -0,0 +1,35 @@ +# For a 64bit + 32bit system the LD_LIBRARY_PATH must contain both the 32bit and 64bit primus +# libraries. Providing a different primusrun for each architecture will not work as expected. EG: +# Using steam under wine can involve both 32bit and 64bit process. All of which inherit the +# same LD_LIBRARY_PATH. +# Other distributions do the same. +{ stdenv +, primusLib +, writeScript +, primusLib_i686 ? null +}: +with stdenv.lib; +let + version = "1.0.0748176"; + ldPath = makeLibraryPath ([primusLib] ++ optional (primusLib_i686 != null) primusLib_i686); + primusrun = writeScript "primusrun" +'' + export LD_LIBRARY_PATH=${ldPath}:$LD_LIBRARY_PATH + exec "$@" +''; +in +stdenv.mkDerivation { + name = "primus-${version}"; + builder = writeScript "builder" + '' + source $stdenv/setup + mkdir -p $out/bin + cp ${primusrun} $out/bin/primusrun + ''; + + meta = { + homepage = https://github.com/amonakov/primus; + description = "Faster OpenGL offloading for Bumblebee"; + maintainers = maintainers.coconnor; + }; +} |