Does that main I’m out of luck if I also need a ZFS compatible kernel?
I’m selecting my kernel through:
zfsCompatibleKernelPackages = l.filterAttrs (
name: kernelPackages:
(builtins.match "linux_[0-9]+_[0-9]+" name) != null
&& (builtins.tryEval kernelPackages).success
&& (!kernelPackages.${config.boot.zfs.package.kernelModuleAttribute}.meta.broken)
) pkgs.linuxKernel.packages;
latestKernelPackage = l.last (
l.sort (a: b: (l.versionOlder a.kernel.version b.kernel.version)) (
builtins.attrValues zfsCompatibleKernelPackages
)
);
as it is recommended by the wiki.
However that causes be to fail the build on nvidia-open-6.16.11-570.153.02…
I have tried nixpkgs/nixos-25.05, nixpkgs/nixos-unstable and even a fairly recent nixpkgs/master…
Edit: Add build log for failing build of /nix/store/d0swbckg5sapj65v7b5h3hizjh1d0yqc-nvidia-open-6.16.11-570.153.02.drv:
nvidia/nv.c:3131:5: 01;36mnote: in expansion of macro 'NV_KMALLOC'
3131 | 01;36mNV_KMALLOC(pages, sizeof(struct page *) * page_count);
| 01;36m^~~~~~~~~~
nvidia/nv.c: In function 'nv_alloc_kernel_mapping':
././common/inc/nv-linux.h:564:37: 01;35mwarning: suggest braces around empty body in an 'if' statement [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/W
564 | NV_MEMDBG_ADD(ptr, size)01;35m; \
| 01;35m^
nvidia/nv.c:3626:13: 01;36mnote: in expansion of macro 'NV_KMALLOC'
3626 | 01;36mNV_KMALLOC(pages, sizeof(struct page *) * page_count);
| 01;36m^~~~~~~~~~
nvidia/nv.c: In function 'nv_post_event':
././common/inc/nv-linux.h:578:37: 01;35mwarning: suggest braces around empty body in an 'if' statement [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/W
578 | NV_MEMDBG_ADD(ptr, size)01;35m; \
| 01;35m^
nvidia/nv.c:3881:9: 01;36mnote: in expansion of macro 'NV_KMALLOC_ATOMIC'
3881 | 01;36mNV_KMALLOC_ATOMIC(nvet, sizeof(nvidia_event_t));
| 01;36m^~~~~~~~~~~~~~~~~
CC [M] nvidia/libspdm_hkdf_sha.o
nvidia/nv-dmabuf.c: In function 'nv_dma_buf_map':
nvidia/nv-dmabuf.c:844:9: 01;31merror: implicit declaration of function 'dma_buf_attachment_is_dynamic' [01;31m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/
844 | 01;31mdma_buf_attachment_is_dynamic(attachment) &&
| 01;31m^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CC [M] nvidia/libspdm_ec.o
CC [M] nvidia/libspdm_x509.o
CC [M] nvidia/libspdm_rsa_ext.o
make[5]: *** [/nix/store/4rblr992mvckliqw9dgmcrrq1l2gjink-linux-6.16.11-dev/lib/modules/6.16.11/source/scripts/Makefile.build:287: nvidia/nv-dmabuf.o] Error 1
make[5]: *** Waiting for unfinished jobs....
In file included from nvidia/nv-caps.c:24:
nvidia/nv-caps.c: In function 'nv_cap_procfs_open':
././common/inc/nv-linux.h:564:37: 01;35mwarning: suggest braces around empty body in an 'if' statement [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/W
564 | NV_MEMDBG_ADD(ptr, size)01;35m; \
| 01;35m^
nvidia/nv-caps.c:435:5: 01;36mnote: in expansion of macro 'NV_KMALLOC'
435 | 01;36mNV_KMALLOC(private, sizeof(nv_cap_file_private_t));
| 01;36m^~~~~~~~~~
nvidia/nv-caps.c: In function 'nv_cap_alloc':
././common/inc/nv-linux.h:564:37: 01;35mwarning: suggest braces around empty body in an 'if' statement [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/W
564 | NV_MEMDBG_ADD(ptr, size)01;35m; \
| 01;35m^
nvidia/nv-caps.c:635:5: 01;36mnote: in expansion of macro 'NV_KMALLOC'
635 | 01;36mNV_KMALLOC(cap, sizeof(nv_cap_t));
| 01;36m^~~~~~~~~~
././common/inc/nv-linux.h:564:37: 01;35mwarning: suggest braces around empty body in an 'if' statement [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/W
564 | NV_MEMDBG_ADD(ptr, size)01;35m; \
| 01;35m^
nvidia/nv-caps.c:642:5: 01;36mnote: in expansion of macro 'NV_KMALLOC'
642 | 01;36mNV_KMALLOC(cap->path, len);
| 01;36m^~~~~~~~~~
././common/inc/nv-linux.h:564:37: 01;35mwarning: suggest braces around empty body in an 'if' statement [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/W
564 | NV_MEMDBG_ADD(ptr, size)01;35m; \
| 01;35m^
nvidia/nv-caps.c:654:5: 01;36mnote: in expansion of macro 'NV_KMALLOC'
654 | 01;36mNV_KMALLOC(cap->name, len);
| 01;36m^~~~~~~~~~
nvidia/nv-caps.c: In function 'nv_cap_init':
././common/inc/nv-linux.h:564:37: 01;35mwarning: suggest braces around empty body in an 'if' statement [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/W
564 | NV_MEMDBG_ADD(ptr, size)01;35m; \
| 01;35m^
nvidia/nv-caps.c:759:5: 01;36mnote: in expansion of macro 'NV_KMALLOC'
759 | 01;36mNV_KMALLOC(name, (strlen(path) + strlen(dir)) + 1);
| 01;36m^~~~~~~~~~
nvidia/libspdm_internal_crypt_lib.c:31:6: 01;35mwarning: no previous prototype for 'libspdm_check_crypto_backend' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-1
31 | bool 01;35mlibspdm_check_crypto_backend(void)
| 01;35m^~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_hkdf_sha.c:29:6: 01;35mwarning: no previous prototype for 'libspdm_hkdf_sha256_extract_and_expand' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-1
29 | bool 01;35mlibspdm_hkdf_sha256_extract_and_expand(const uint8_t *key, size_t key_size,
| 01;35m^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_hkdf_sha.c:57:6: 01;35mwarning: no previous prototype for 'libspdm_hkdf_sha384_extract_and_expand' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-1
57 | bool 01;35mlibspdm_hkdf_sha384_extract_and_expand(const uint8_t *key, size_t key_size,
| 01;35m^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_hkdf_sha.c:85:6: 01;35mwarning: no previous prototype for 'libspdm_hkdf_sha512_extract_and_expand' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-1
85 | bool 01;35mlibspdm_hkdf_sha512_extract_and_expand(const uint8_t *key, size_t key_size,
| 01;35m^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_x509.c:35:6: 01;35mwarning: no previous prototype for 'libspdm_x509_construct_certificate' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gc
35 | bool 01;35mlibspdm_x509_construct_certificate(const uint8_t *cert, size_t cert_size,
| 01;35m^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_x509.c:42:6: 01;35mwarning: no previous prototype for 'libspdm_x509_construct_certificate_stack' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.
42 | bool 01;35mlibspdm_x509_construct_certificate_stack(uint8_t **x509_stack, ...)
| 01;35m^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_x509.c:48:6: 01;35mwarning: no previous prototype for 'libspdm_x509_free' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/Warning-Options
48 | void 01;35mlibspdm_x509_free(void *x509_cert)
| 01;35m^~~~~~~~~~~~~~~~~
nvidia/libspdm_x509.c:53:6: 01;35mwarning: no previous prototype for 'libspdm_x509_stack_free' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/Warning-O
53 | void 01;35mlibspdm_x509_stack_free(void *x509_stack)
| 01;35m^~~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_x509.c:111:6: 01;35mwarning: no previous prototype for 'libspdm_x509_get_common_name' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/Warning-Options.html#index-Wmissing-prototypes-Wmissing-prototypes]
111 | bool 01;35mlibspdm_x509_get_common_name(const uint8_t *cert, size_t cert_size,
| 01;35m^~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_x509.c:120:1: 01;35mwarning: no previous prototype for 'libspdm_x509_get_organization_name' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/Warning-Options.html#index-Wmissing-prototypes-Wmissing-prototypes]
120 | 01;35mlibspdm_x509_get_organization_name(const uint8_t *cert, size_t cert_size,
| 01;35m^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_x509.c:340:6: 01;35mwarning: no previous prototype for 'libspdm_x509_get_tbs_cert' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/Warning-Options.html#index-Wmissing-prototypes-Wmissing-prototypes]
340 | bool 01;35mlibspdm_x509_get_tbs_cert(const uint8_t *cert, size_t cert_size,
| 01;35m^~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_x509.c:371:1: 01;35mwarning: no previous prototype for 'libspdm_x509_get_issuer_common_name' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/Warning-Options.html#index-Wmissing-prototypes-Wmissing-prototypes]
371 | 01;35mlibspdm_x509_get_issuer_common_name(const uint8_t *cert, size_t cert_size,
| 01;35m^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_x509.c:380:1: 01;35mwarning: no previous prototype for 'libspdm_x509_get_issuer_orgnization_name' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/Warning-Options.html#index-Wmissing-prototypes-Wmissing-prototypes]
380 | 01;35mlibspdm_x509_get_issuer_orgnization_name(const uint8_t *cert, size_t cert_size,
| 01;35m^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_x509.c:388:6: 01;35mwarning: no previous prototype for 'libspdm_x509_get_signature_algorithm' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/Warning-Options.html#index-Wmissing-prototypes-Wmissing-prototypes]
388 | bool 01;35mlibspdm_x509_get_signature_algorithm(const uint8_t *cert,
| 01;35m^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_x509.c:449:6: 01;35mwarning: no previous prototype for 'libspdm_gen_x509_csr' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/Warning-Options.html#index-Wmissing-prototypes-Wmissing-prototypes]
449 | bool 01;35mlibspdm_gen_x509_csr(size_t hash_nid, size_t asym_nid,
| 01;35m^~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_ec.c:36:6: 01;35mwarning: no previous prototype for 'libspdm_ec_set_pub_key' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/Warning-Options.html#index-Wmissing-prototypes-Wmissing-prototypes]
36 | bool 01;35mlibspdm_ec_set_pub_key(void *ec_context, const uint8_t *public_key,
| 01;35m^~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_ec.c:46:6: 01;35mwarning: no previous prototype for 'libspdm_ec_get_pub_key' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/Warning-Options.html#index-Wmissing-prototypes-Wmissing-prototypes]
46 | bool 01;35mlibspdm_ec_get_pub_key(void *ec_context, uint8_t *public_key,
| 01;35m^~~~~~~~~~~~~~~~~~~~~~
nvidia/libspdm_ec.c:60:6: 01;35mwarning: no previous prototype for 'libspdm_ec_check_key' [01;35m8;;https://gcc.gnu.org/onlinedocs/gcc-14.3.0/gcc/Warning-Options.html#index-Wmissing-prototypes-Wmissing-prototypes]
60 | bool 01;35mlibspdm_ec_check_key(const void *ec_context)
| 01;35m^~~~~~~~~~~~~~~~~~~~
make[4]: *** [/nix/store/4rblr992mvckliqw9dgmcrrq1l2gjink-linux-6.16.11-dev/lib/modules/6.16.11/source/Makefile:2003: .] Error 2
make[3]: *** [/nix/store/4rblr992mvckliqw9dgmcrrq1l2gjink-linux-6.16.11-dev/lib/modules/6.16.11/source/Makefile:248: __sub-make] Error 2
make[3]: Leaving directory '/build/source/kernel-open'
make[2]: *** [Makefile:248: __sub-make] Error 2
make[2]: Leaving directory '/nix/store/4rblr992mvckliqw9dgmcrrq1l2gjink-linux-6.16.11-dev/lib/modules/6.16.11/source'
make[1]: *** [Makefile:115: modules] Error 2
make[1]: Leaving directory '/build/source/kernel-open'
make: *** [Makefile:59: modules] Error 2