linuxPackages.nvidia_x11: refactor, build more from source
* Use libglvnd; * Compile nvidia-settings, nvidia-persistenced from source; * Generalize builder.
This commit is contained in:
@@ -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 = [
|
||||
|
||||
Reference in New Issue
Block a user