summary refs log tree commit diff
path: root/pkgs/tools/X11/primus/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/X11/primus/default.nix')
-rw-r--r--pkgs/tools/X11/primus/default.nix35
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;
+  };
+}