From 0ad87ab46ea2f707e55a00b75a5de2095e1ddbc2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20=C4=8Cun=C3=A1t?= Date: Thu, 16 May 2013 17:23:31 +0200 Subject: [PATCH] WARNING: history will change from now on (mesa updates) Fix some paths set, drivers in mesa_drivers now, WIP. --- .../services/x11/display-managers/lightdm.nix | 2 +- modules/services/x11/xserver.nix | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/modules/services/x11/display-managers/lightdm.nix b/modules/services/x11/display-managers/lightdm.nix index 1bce30037dc..9f1eae5ffb8 100644 --- a/modules/services/x11/display-managers/lightdm.nix +++ b/modules/services/x11/display-managers/lightdm.nix @@ -13,7 +13,7 @@ let xserverWrapper = writeScript "xserver-wrapper" '' #! /bin/sh - export XORG_DRI_DRIVER_PATH="${pkgs.mesa}/lib/dri" + #export XORG_DRI_DRIVER_PATH="${pkgs.mesa_drivers}/lib/dri" # ?? X sets this itself export XKB_BINDIR="${pkgs.xorg.xkbcomp}/bin" exec ${dmcfg.xserverBin} ${dmcfg.xserverArgs} ''; diff --git a/modules/services/x11/xserver.nix b/modules/services/x11/xserver.nix index 59e8a56982a..6f5e51043e9 100644 --- a/modules/services/x11/xserver.nix +++ b/modules/services/x11/xserver.nix @@ -393,6 +393,7 @@ in }; + ###### implementation config = mkIf cfg.enable (checkAgent (checkPolkit { @@ -461,9 +462,7 @@ in environment = { FONTCONFIG_FILE = "/etc/fonts/fonts.conf"; # !!! cleanup XKB_BINDIR = "${xorg.xkbcomp}/bin"; # Needed for the Xkb extension. - } # !!! Depends on the driver selected at runtime. - // optionalAttrs (!elem "nvidia" driverNames) { - XORG_DRI_DRIVER_PATH = "${pkgs.mesa}/lib/dri"; + XORG_DRI_DRIVER_PATH = "/run/opengl-driver/lib/dri"; # !!! Depends on the driver selected at runtime. } // optionalAttrs (elem "nvidia" driverNames) { LD_LIBRARY_PATH = "${xorg.libX11}/lib:${xorg.libXext}/lib:${kernelPackages.nvidia_x11}/lib"; } // optionalAttrs (elem "nvidiaLegacy96" driverNames) { @@ -474,18 +473,18 @@ in LD_LIBRARY_PATH = "${xorg.libX11}/lib:${xorg.libXext}/lib:${kernelPackages.nvidia_x11_legacy304}/lib"; } // optionalAttrs (elem "ati_unfree" driverNames) { LD_LIBRARY_PATH = "${xorg.libX11}/lib:${xorg.libXext}/lib:${kernelPackages.ati_drivers_x11}/lib:${kernelPackages.ati_drivers_x11}/X11R6/lib64/modules/linux"; - XORG_DRI_DRIVER_PATH = "${kernelPackages.ati_drivers_x11}/lib/dri"; # is ignored because ati drivers ship their own unpatched libglx.so ! + #XORG_DRI_DRIVER_PATH = "${kernelPackages.ati_drivers_x11}/lib/dri"; # is ignored because ati drivers ship their own unpatched libglx.so ! } // cfg.displayManager.job.environment; preStart = '' rm -f /run/opengl-driver - rm -f /run/opengl-driver-32 + ln -sf opengl-driver /run/opengl-driver-32 ${# !!! The OpenGL driver depends on what's detected at runtime. if elem "nvidia" driverNames then '' ln -sf ${kernelPackages.nvidia_x11} /run/opengl-driver - ${optionalString (pkgs.stdenv.system == "x86_64-linux" && cfg.driSupport32Bit) + ${optionalString cfg.driSupport32Bit "ln -sf ${pkgs_i686.linuxPackages.nvidia_x11.override { libsOnly = true; kernelDev = null; } } /run/opengl-driver-32"} '' else if elem "nvidiaLegacy96" driverNames then @@ -495,16 +494,16 @@ in else if elem "nvidiaLegacy304" driverNames then '' ln -sf ${kernelPackages.nvidia_x11_legacy304} /run/opengl-driver - ${optionalString (pkgs.stdenv.system == "x86_64-linux" && cfg.driSupport32Bit) + ${optionalString cfg.driSupport32Bit "ln -sf ${pkgs_i686.linuxPackages.nvidia_x11_legacy304.override { libsOnly = true; kernelDev = null; } } /run/opengl-driver-32"} '' else if elem "ati_unfree" driverNames then "ln -sf ${kernelPackages.ati_drivers_x11} /run/opengl-driver" else '' - ${optionalString cfg.driSupport "ln -sf ${pkgs.mesa} /run/opengl-driver"} - ${optionalString (pkgs.stdenv.system == "x86_64-linux" && cfg.driSupport32Bit) - "ln -sf ${pkgs_i686.mesa} /run/opengl-driver-32"} + ${optionalString cfg.driSupport "ln -sf ${pkgs.mesa_drivers} /run/opengl-driver"} + ${optionalString cfg.driSupport32Bit + "ln -sf ${pkgs_i686.mesa_drivers} /run/opengl-driver-32"} '' } @@ -625,3 +624,4 @@ in })); } +