Skip to content

Commit

Permalink
make-disk-image: Compare against correct nixpkgs version
Browse files Browse the repository at this point in the history
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
  • Loading branch information
iFreilicht committed Nov 29, 2024
1 parent 341482e commit 5655a13
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 4 deletions.
5 changes: 3 additions & 2 deletions lib/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -340,10 +340,11 @@ let
/* 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.
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 {
filename = lib.mkOptionType {
Expand Down
2 changes: 1 addition & 1 deletion lib/make-disk-image.nix
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ let
(with cfg.kernelPackages; [ kernel ]
++ lib.optional (lib.elem "zfs" cfg.extraRootModules || configSupportsZfs) zfs);
}
// lib.optionalAttrs (diskoLib.vmToolsSupportsCustomQemu pkgs)
// lib.optionalAttrs (diskoLib.vmToolsSupportsCustomQemu lib)
{
customQemu = cfg.qemu;
};
Expand Down
2 changes: 1 addition & 1 deletion module.nix
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ in
config = {
assertions = [
{
assertion = config.disko.imageBuilder.qemu != null -> diskoLib.vmToolsSupportsCustomQemu pkgs;
assertion = config.disko.imageBuilder.qemu != null -> diskoLib.vmToolsSupportsCustomQemu lib;
message = ''
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.
Expand Down

0 comments on commit 5655a13

Please sign in to comment.