summary refs log tree commit diff
path: root/nixos/modules/services/x11/mesa.nix
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2014-02-05 19:16:15 +0100
committerVladimír Čunát <vcunat@gmail.com>2014-02-05 19:20:42 +0100
commit428469443987e063760cf85235d96f02f51dc891 (patch)
treed19860666459418e61b9df198d1de312cd38bc91 /nixos/modules/services/x11/mesa.nix
parenta123a2675bdd7da9b592fb7ab3db328208f88843 (diff)
downloadnixpkgs-428469443987e063760cf85235d96f02f51dc891.tar
nixpkgs-428469443987e063760cf85235d96f02f51dc891.tar.gz
nixpkgs-428469443987e063760cf85235d96f02f51dc891.tar.bz2
nixpkgs-428469443987e063760cf85235d96f02f51dc891.tar.lz
nixpkgs-428469443987e063760cf85235d96f02f51dc891.tar.xz
nixpkgs-428469443987e063760cf85235d96f02f51dc891.tar.zst
nixpkgs-428469443987e063760cf85235d96f02f51dc891.zip
nixos/mesa: don't create /run/opengl-driver-32 ...
... if on 64-bit and without 32-bit drivers.
Also assert against requesting 32-bit drivers on 32-bit machine.
Diffstat (limited to 'nixos/modules/services/x11/mesa.nix')
-rw-r--r--nixos/modules/services/x11/mesa.nix16
1 files changed, 10 insertions, 6 deletions
diff --git a/nixos/modules/services/x11/mesa.nix b/nixos/modules/services/x11/mesa.nix
index f892a151758..12fc7ae1178 100644
--- a/nixos/modules/services/x11/mesa.nix
+++ b/nixos/modules/services/x11/mesa.nix
@@ -61,13 +61,18 @@ in {
   };
 
   config = mkIf cfg.enable {
+    assertions = pkgs.lib.singleton {
+      assertion = cfg.driSupport32Bit -> pkgs.stdenv.isx86_64;
+      message = "Option driSupport32Bit only makes sens on a 64-bit system.";
+    };
+
     system.activationScripts.setup-opengl.deps = [];
     system.activationScripts.setup-opengl.text = ''
       rm -f /run/opengl-driver{,-32}
-      ${optionalString (!cfg.driSupport32Bit) "ln -sf opengl-driver /run/opengl-driver-32"}
-
-      ${# !!! The OpenGL driver depends on what's detected at runtime.
-        if elem "nvidia" cfg.videoDrivers then
+      ${optionalString (pkgs.stdenv.isi686) "ln -sf opengl-driver /run/opengl-driver-32"}
+    ''
+      #TODO:  The OpenGL driver should depend on what's detected at runtime.
+     +( if elem "nvidia" cfg.videoDrivers then
           ''
             ln -sf ${kernelPackages.nvidia_x11} /run/opengl-driver
             ${optionalString cfg.driSupport32Bit
@@ -89,8 +94,7 @@ in {
             ${optionalString cfg.driSupport32Bit
               "ln -sf ${pkgs_i686.mesa_drivers} /run/opengl-driver-32"}
           ''
-      }
-    '';
+      );
 
     environment.variables.LD_LIBRARY_PATH =
       [ "/run/opengl-driver/lib" "/run/opengl-driver-32/lib" ]