From 90840cdb052d76d53fe9cdfbf3741db67f04ae9a Mon Sep 17 00:00:00 2001 From: "Adam C. Stephens" Date: Tue, 3 Dec 2024 15:33:05 +0000 Subject: [PATCH] nixos/kanidm: set default package version based on stateVersion --- nixos/modules/services/security/kanidm.nix | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/nixos/modules/services/security/kanidm.nix b/nixos/modules/services/security/kanidm.nix index ab85eed34eea..a54471c0b956 100644 --- a/nixos/modules/services/security/kanidm.nix +++ b/nixos/modules/services/security/kanidm.nix @@ -231,7 +231,10 @@ in enableServer = mkEnableOption "the Kanidm server"; enablePam = mkEnableOption "the Kanidm PAM and NSS integration"; - package = mkPackageOption pkgs "kanidm" { }; + package = mkPackageOption pkgs "kanidm" { + example = "kanidm_1_4"; + extraDescription = "If not set will receive a specific version based on stateVersion. Set to `pkgs.kanidm` to always receive the latest version, with the understanding that this could introduce breaking changes."; + }; serverSettings = mkOption { type = types.submodule { @@ -811,6 +814,16 @@ in ) ); + services.kanidm.package = + let + pkg = + if lib.versionAtLeast config.system.stateVersion "24.11" then + pkgs.kanidm_1_4 + else + lib.warn "No default kanidm package found for stateVersion = '${config.system.stateVersion}'. Using unpinned version. Consider setting `services.kanidm.package = pkgs.kanidm_1_x` to avoid upgrades introducing breaking changes." pkgs.kanidm; + in + lib.mkDefault pkg; + environment.systemPackages = mkIf cfg.enableClient [ cfg.package ]; systemd.tmpfiles.settings."10-kanidm" = {