nixos opengl: add extraPackages and extraPackages32

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