Until 5.15, HYPERV only supports x86, so forcing module broke
configuration of 5.10 on aarch64. Our kernel configuration script
sets every module it can to "m" anyway, so it was redundant and
breakage-prone to set any value here for pre-6.18.
I've confiremd that HYPERV is still set to "m" on 6.12 after this
change.
Fixes: e9b977bc41 ("linux/common-config: update for 6.18")
6.1.y is old enough that we use simpledrm, but not old enough that
GOOGLE_FRAMEBUFFER_COREBOOT supports simpledrm. Explicitly setting
GOOGLE_FRAMEBUFFER_COREBOOT to module therefore broke 6.1.y build.
Our kernel configuration system will always answer "m" where possible,
so it's not usually necessary to set options to "module" like this.
It's less fragile to rely on that default where possible.
I've checked that building the kernel configfile now works on 5.10.y,
6.1.y, 6.12.y, and 6.18.y, and checked that all these options still
get set to "m" on at least the latter two.
Fixes: fca84bde0f ("linux/common-config: Enable coreboot firmware drivers")
The suspension/shutdown regression affects kernel 6.16 and later, not
just 6.16 specifically. Use versionAtLeast instead of equality check.
Also fix issue reference (372 was a separate issue) and typo.
The collectDrivers function was using lib.catAttrs which extracts
attribute values into a list. Since driver_modules is already a list,
this resulted in nested lists like [["i915"]] instead of ["i915"],
causing boot.initrd.kernelModules to fail with:
error: expected a string but found a list: [ "i915" ]
Restore the original foldl' implementation from nixos-facter-modules
that properly concatenates driver_modules lists into a flat result.
Add graphics_card and monitor entries to test data to catch this
regression.
Fixes: https://github.com/NixOS/nixpkgs/pull/466808#issuecomment-2749380083
Major refactor of the approach to defining tree-sitter grammars. This
provides a clearer abstraction to declare grammar sources and removes
custom update logic in favour of nix-update.