summary refs log tree commit diff
path: root/pkgs/tools/X11/bumblebee
diff options
context:
space:
mode:
authorNikolay Amiantov <ab@fmap.me>2017-01-30 00:29:39 +0300
committerNikolay Amiantov <ab@fmap.me>2017-02-08 16:57:46 +0300
commit2fd2fcf54d6453a70564bfbf1c8d4fdfb5f9f079 (patch)
tree6de8a1be9ead1d441b9cd1a6b84aa75065d9935d /pkgs/tools/X11/bumblebee
parent750e7ba0d958a08cdef16a2147263586a55a3e4d (diff)
downloadnixlib-2fd2fcf54d6453a70564bfbf1c8d4fdfb5f9f079.tar
nixlib-2fd2fcf54d6453a70564bfbf1c8d4fdfb5f9f079.tar.gz
nixlib-2fd2fcf54d6453a70564bfbf1c8d4fdfb5f9f079.tar.bz2
nixlib-2fd2fcf54d6453a70564bfbf1c8d4fdfb5f9f079.tar.lz
nixlib-2fd2fcf54d6453a70564bfbf1c8d4fdfb5f9f079.tar.xz
nixlib-2fd2fcf54d6453a70564bfbf1c8d4fdfb5f9f079.tar.zst
nixlib-2fd2fcf54d6453a70564bfbf1c8d4fdfb5f9f079.zip
linuxPackages.nvidia_x11: refactor, build more from source
* Use libglvnd;
* Compile nvidia-settings, nvidia-persistenced from source;
* Generalize builder.
Diffstat (limited to 'pkgs/tools/X11/bumblebee')
-rw-r--r--pkgs/tools/X11/bumblebee/default.nix10
1 files changed, 7 insertions, 3 deletions
diff --git a/pkgs/tools/X11/bumblebee/default.nix b/pkgs/tools/X11/bumblebee/default.nix
index eac44efdf273..7b725bfeb57c 100644
--- a/pkgs/tools/X11/bumblebee/default.nix
+++ b/pkgs/tools/X11/bumblebee/default.nix
@@ -19,12 +19,13 @@
 { stdenv, lib, fetchurl, fetchpatch, pkgconfig, help2man, makeWrapper
 , glib, libbsd
 , libX11, libXext, xorgserver, xkbcomp, kmod, xf86videonouveau
-, nvidia_x11, virtualgl, primusLib
+, nvidia_x11, virtualgl, libglvnd, primusLib
 , automake111x, autoconf
 # The below should only be non-null in a x86_64 system. On a i686
 # system the above nvidia_x11 and virtualgl will be the i686 packages.
 # TODO: Confusing. Perhaps use "SubArch" instead of i686?
 , nvidia_x11_i686 ? null
+, libglvnd_i686 ? null
 , primusLib_i686 ? null
 , useDisplayDevice ? false
 , extraNvidiaDeviceOptions ? ""
@@ -40,7 +41,10 @@ let
 
   primusLibs = lib.makeLibraryPath ([primus] ++ lib.optional (primusLib_i686 != null) primus_i686);
 
-  nvidia_x11s = [nvidia_x11] ++ lib.optional (nvidia_x11_i686 != null) nvidia_x11_i686;
+  nvidia_x11s = [ nvidia_x11 ]
+                ++ lib.optional nvidia_x11.useGLVND libglvnd
+                ++ lib.optionals (nvidia_x11_i686 != null)
+                   ([ nvidia_x11_i686 ] ++ lib.optional nvidia_x11_i686.useGLVND libglvnd_i686);
 
   nvidiaLibs = lib.makeLibraryPath nvidia_x11s;
 
@@ -120,7 +124,7 @@ in stdenv.mkDerivation rec {
     #"CONF_PRIMUS_LD_PATH=${primusLibs}"
   ] ++ lib.optionals useNvidia [
     "CONF_LDPATH_NVIDIA=${nvidiaLibs}"
-    "CONF_MODPATH_NVIDIA=${nvidia_x11}/lib/xorg/modules"
+    "CONF_MODPATH_NVIDIA=${nvidia_x11.bin}/lib/xorg/modules"
   ];
 
   CFLAGS = [