diff --git a/nixos/modules/programs/nix-required-mounts.nix b/nixos/modules/programs/nix-required-mounts.nix index a7ec09fe5f9a..df00047f6565 100644 --- a/nixos/modules/programs/nix-required-mounts.nix +++ b/nixos/modules/programs/nix-required-mounts.nix @@ -47,10 +47,7 @@ let ); driverPaths = [ - # opengl: - # NOTE: Since driverLink is just a symlink, we need to include its target as well. pkgs.addDriverRunpath.driverLink - config.systemd.tmpfiles.settings.graphics-driver."/run/opengl-driver"."L+".argument # mesa: config.hardware.graphics.package @@ -62,7 +59,9 @@ let defaults = { nvidia-gpu.onFeatures = package.allowedPatterns.nvidia-gpu.onFeatures; nvidia-gpu.paths = package.allowedPatterns.nvidia-gpu.paths ++ driverPaths; - nvidia-gpu.unsafeFollowSymlinks = false; + # TODO: Refactor `hardware.graphics` to ease referencing the closure + # NOTE: A naive implementation may e.g. introduce a conditional infinite recursion (https://github.com/NixOS/nixpkgs/pull/488199) + nvidia-gpu.unsafeFollowSymlinks = true; }; in { diff --git a/pkgs/by-name/ni/nix-required-mounts/eval-test.nix b/pkgs/by-name/ni/nix-required-mounts/eval-test.nix new file mode 100644 index 000000000000..ba7fc1234033 --- /dev/null +++ b/pkgs/by-name/ni/nix-required-mounts/eval-test.nix @@ -0,0 +1,23 @@ +{ + nixos, + lib, + runCommand, +}: +let + machine = nixos { + services.userborn.enable = true; + hardware.graphics.enable = true; + programs.nix-required-mounts = { + enable = true; + presets.nvidia-gpu.enable = true; + }; + fileSystems."/".device = "/dev/null"; + boot.loader.grub.enable = false; + system.stateVersion = lib.trivial.release; + }; +in +runCommand "nix-required-mounts-eval-nvidia-gpu-preset" { } '' + echo "Successfully evaluated ${machine.config.system.build.toplevel}" + echo "This means that combining nix-required-mounts with userborn no longer causes infinite recursion (#488199)" + touch $out +'' diff --git a/pkgs/by-name/ni/nix-required-mounts/package.nix b/pkgs/by-name/ni/nix-required-mounts/package.nix index 89069a112051..9f91c14692a1 100644 --- a/pkgs/by-name/ni/nix-required-mounts/package.nix +++ b/pkgs/by-name/ni/nix-required-mounts/package.nix @@ -55,6 +55,7 @@ python3Packages.buildPythonApplication { inherit allowedPatterns; tests = { inherit (nixosTests) nix-required-mounts; + eval-nvidia-gpu-preset = callPackage ./eval-test.nix { }; }; }; meta = {