make-disk-image: Compare against correct nixpkgs version
It seems that there is a difference between how `pkgs` and `lib` get passed to NixOS modules: `pkgs` is the unmodified original, `lib` is the final version after overrides etc. This causes `pkgs.lib.version` to be `24.11git` in some cases, while `lib.version` is `24.11.20241123.0c58267`. Maybe this can be fixed in nixpkgs? Either way, this change fixes that issue. Fixes #904
This commit is contained in:
@@ -340,10 +340,11 @@ let
|
|||||||
/* Checks whether nixpkgs is recent enough for vmTools to support the customQemu argument.
|
/* Checks whether nixpkgs is recent enough for vmTools to support the customQemu argument.
|
||||||
|
|
||||||
Returns false, which is technically incorrect, for a few commits on 2024-07-08, but we can't be more accurate.
|
Returns false, which is technically incorrect, for a few commits on 2024-07-08, but we can't be more accurate.
|
||||||
|
Make sure to pass lib, not pkgs.lib! See https://github.com/nix-community/disko/issues/904
|
||||||
|
|
||||||
vmToolsSupportsCustomQemu :: pkgs -> bool
|
vmToolsSupportsCustomQemu :: final_lib -> bool
|
||||||
*/
|
*/
|
||||||
vmToolsSupportsCustomQemu = pkgs: lib.versionAtLeast pkgs.lib.version "24.11.20240709";
|
vmToolsSupportsCustomQemu = final_lib: lib.versionAtLeast final_lib.version "24.11.20240709";
|
||||||
|
|
||||||
optionTypes = rec {
|
optionTypes = rec {
|
||||||
filename = lib.mkOptionType {
|
filename = lib.mkOptionType {
|
||||||
|
@@ -21,7 +21,7 @@ let
|
|||||||
(with cfg.kernelPackages; [ kernel ]
|
(with cfg.kernelPackages; [ kernel ]
|
||||||
++ lib.optional (lib.elem "zfs" cfg.extraRootModules || configSupportsZfs) zfs);
|
++ lib.optional (lib.elem "zfs" cfg.extraRootModules || configSupportsZfs) zfs);
|
||||||
}
|
}
|
||||||
// lib.optionalAttrs (diskoLib.vmToolsSupportsCustomQemu pkgs)
|
// lib.optionalAttrs (diskoLib.vmToolsSupportsCustomQemu lib)
|
||||||
{
|
{
|
||||||
customQemu = cfg.qemu;
|
customQemu = cfg.qemu;
|
||||||
};
|
};
|
||||||
|
@@ -213,7 +213,7 @@ in
|
|||||||
config = {
|
config = {
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = config.disko.imageBuilder.qemu != null -> diskoLib.vmToolsSupportsCustomQemu pkgs;
|
assertion = config.disko.imageBuilder.qemu != null -> diskoLib.vmToolsSupportsCustomQemu lib;
|
||||||
message = ''
|
message = ''
|
||||||
You have set config.disko.imageBuild.qemu, but vmTools in your nixpkgs version "${lib.version}"
|
You have set config.disko.imageBuild.qemu, but vmTools in your nixpkgs version "${lib.version}"
|
||||||
does not support overriding the qemu package with the customQemu option yet.
|
does not support overriding the qemu package with the customQemu option yet.
|
||||||
|
Reference in New Issue
Block a user