···
videoDrivers = config.services.xserver.videoDrivers;
+
makePackage = p: pkgs.buildEnv {
name = "mesa-drivers+txc-${p.mesa_drivers.version}";
p.mesa_noglu # mainly for libGL
(if cfg.s3tcSupport then p.libtxc_dxtn else p.libtxc_dxtn_s2tc)
+
package = pkgs.buildEnv {
+
name = "opengl-drivers";
+
paths = [ cfg.package ] ++ cfg.extraPackages;
+
package32 = pkgs.buildEnv {
+
name = "opengl-drivers-32bit";
+
paths = [ cfg.package32 ] ++ cfg.extraPackages32;
···
The package that provides the 32-bit OpenGL implementation on
+
64-bit systems. Used when <option>driSupport32Bit</option> is
+
hardware.opengl.extraPackages = mkOption {
+
type = types.listOf types.package;
+
Additional packages to add to OpenGL drivers.
+
hardware.opengl.extraPackages32 = mkOption {
+
type = types.listOf types.package;
+
Additional packages to add to 32-bit OpenGL drivers on
+
64-bit systems. Used when <option>driSupport32Bit</option> is
···
system.activationScripts.setup-opengl =
+
ln -sfn ${package} /run/opengl-driver
${if pkgs.stdenv.isi686 then ''
ln -sfn opengl-driver /run/opengl-driver-32
'' else if cfg.driSupport32Bit then ''
+
ln -sfn ${package32} /run/opengl-driver-32
rm -f /run/opengl-driver-32