Change:
The RPATH of , as installed by the standard nvidia package () in nixos 23.11, has no entry for , causing it to fail if anyone actually used that particular interface. Steps to reproduce the behavior: The nvidia package should set proper RPATHs on the installed libraries. I ran into this because I was trying to clean up the steam package of issues, and steam's does a lot of sanity checking of its environment and reported the issue from inside the FHS environment. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. --Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:
That library is an internal compatibility layer for openssl1.1. Since we link openssl3 into the nvidia driver it never gets used and is meant to fail to load. Since NixOS makes sure that openssl3 is always available this library is functionally useless. We could probably just remove that file (like we do with ) to regain some disk space and satisfy the checks you mentioned.
Sounds good. Better to not ship it than ship it broken, especially if nobody needs it.

Discussion:
Processes also now run as a dynamically allocated user by default instead of root. <ins> - The nvidia driver no longer defaults to the proprietary driver starting with version 560. You will need to manually set `hardware.nvidia.open` to select the proprietary or open driver. </ins> - `singularity-tools` have the `storeDir` argument removed from its override interface and use `builtins.storeDir` instead. - Two build helpers in `singularity-tools`, i.e., `mkLayer` and `shellScript`, are deprecated, as they are no longer involved in image-building. Maintainers will remove them in future releases.

''; }; <del> open = lib.mkEnableOption '' the open source NVIDIA kernel module </del> <ins> open = lib.mkOption { example = true; description = "Whether to enable the open source NVIDIA kernel module."; type = lib.types.bool; defaultText = lib.literalExpression '' lib.mkIf (lib.versionOlder config.hardware.nvidia.package.version "560") false ''; }; gsp.enable = lib.mkEnableOption '' the GPU System Processor (GSP) on the video card </ins> '' // { <del> defaultText = lib.literalExpression ''lib.versionAtLeast config.hardware.nvidia.package.version "560"''; </del> <ins> defaultText = lib.literalExpression '' config.hardware.nvidia.open || lib.versionAtLeast config.hardware.nvidia.package.version "555" ''; </ins> }; }; };

}; environment.systemPackages = [ nvidia_x11.bin ]; <del> hardware.nvidia.open = lib.mkDefault (lib.versionAtLeast nvidia_x11.version "560"); </del> <ins> hardware.nvidia.open = lib.mkIf (lib.versionOlder nvidia_x11.version "560") (lib.mkDefault false); hardware.nvidia.gsp.enable = lib.mkDefault (cfg.open || lib.versionAtLeast nvidia_x11.version "555"); </ins> }) # X11

} { <del> assertion = cfg.open -> (cfg.package ? open && cfg.package ? firmware); message = "This version of NVIDIA driver does not provide a corresponding opensource kernel driver"; </del> <ins> assertion = cfg.gsp.enable -> (cfg.package ? firmware); message = "This version of NVIDIA driver does not provide a GSP firmware."; } { assertion = cfg.open -> (cfg.package ? open); message = "This version of NVIDIA driver does not provide a corresponding opensource kernel driver."; } { assertion = cfg.open -> cfg.gsp.enable; message = "The GSP cannot be disabled when using the opensource kernel driver."; </ins> } {

services.dbus.packages = lib.optional cfg.dynamicBoost.enable nvidia_x11.bin; <del> hardware.firmware = lib.optional (cfg.open || lib.versionAtLeast nvidia_x11.version "555") nvidia_x11.firmware; </del> <ins> hardware.firmware = lib.optional cfg.gsp.enable nvidia_x11.firmware; </ins> systemd.tmpfiles.rules = [

mkdir $i/lib/vdpau mv $i/lib/libvdpau* $i/lib/vdpau <ins> # Compatibility with openssl 1.1, unused rm -f $i/lib/libnvidia-pkcs11.so* </ins> # Install ICDs, make absolute paths. # Be careful not to modify any original files because this runs twice.