nvidia-x11: add an assert that useSettings implies more than libsOnly

Without the change `primusLib.glvnd.settings` fails the eval without a
chance of recovery (uncatchable error):

    $ NIXPKGS_ALLOW_UNFREE=1 nix build --no-link -f. primusLib.glvnd.settings
    error:
       … while calling the 'derivationStrict' builtin

         at /derivation-internal.nix:9:12:

            8|
            9|   strict = derivationStrict drvAttrs;
             |            ^
           10|

       … while evaluating derivation 'nvidia-settings-545.29.06'
         whose name attribute is located at pkgs/stdenv/generic/make-derivation.nix:348:7

       … while evaluating attribute 'postPatch' of derivation 'nvidia-settings-545.29.06'

         at pkgs/os-specific/linux/nvidia-x11/settings.nix:81:3:

           80|
           81|   postPatch = lib.optionalString nvidia_x11.useProfiles ''
             |   ^
           82|     sed -i 's,/usr/share/nvidia/,${nvidia_x11.bin}/share/nvidia/,g' src/gtk+-2.x/ctkappprofile.c

       error: attribute 'bin' missing

       at pkgs/os-specific/linux/nvidia-x11/settings.nix:82:36:

           81|   postPatch = lib.optionalString nvidia_x11.useProfiles ''
           82|     sed -i 's,/usr/share/nvidia/,${nvidia_x11.bin}/share/nvidia/,g' src/gtk+-2.x/ctkappprofile.c
             |                                    ^
           83|   '';

After the change `builtins.tryEval` can catch errors thrown by `assert`.
This commit is contained in:
Sergei Trofimovich 2024-01-05 10:39:00 +00:00
parent 12f69cd485
commit 9c51fb0606

View File

@ -58,6 +58,7 @@
with lib;
assert useSettings -> !libsOnly;
assert !libsOnly -> kernel != null;
assert versionOlder version "391" -> sha256_32bit != null;
assert useSettings -> settingsSha256 != null;