From 254dd2a1025e46bccd05c4cc0dd461093b689480 Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Wed, 1 Dec 2021 01:09:52 +0100 Subject: [PATCH] nixos/home-assistant: consider extraComponents in hardening Previously the extraComponents added to an overriden package would not have been considered in hardening measures enforced by the module. Home Assistant is warning the user about component definitions having moved away from YAML, so using an override to include support for a component might become the better way moving forward. --- nixos/modules/services/misc/home-assistant.nix | 9 +++++++-- pkgs/servers/home-assistant/default.nix | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/nixos/modules/services/misc/home-assistant.nix b/nixos/modules/services/misc/home-assistant.nix index 8279d075bafb..2de25d87ed39 100644 --- a/nixos/modules/services/misc/home-assistant.nix +++ b/nixos/modules/services/misc/home-assistant.nix @@ -24,6 +24,8 @@ let availableComponents = cfg.package.availableComponents; + explicitComponents = cfg.package.extraComponents; + usedPlatforms = config: if isAttrs config then optional (config ? platform) config.platform @@ -42,10 +44,13 @@ let # } ]; useComponentPlatform = component: elem component (usedPlatforms cfg.config); - # Returns whether component is used in config + useExplicitComponent = component: elem component explicitComponents; + + # Returns whether component is used in config or explicitly passed into package useComponent = component: hasAttrByPath (splitString "." component) cfg.config - || useComponentPlatform component; + || useComponentPlatform component + || useExplicitComponent component; # List of components used in config extraComponents = filter useComponent availableComponents; diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 4b4cb222e964..5febf010dff8 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -888,7 +888,7 @@ in with py.pkgs; buildPythonApplication rec { ''; passthru = { - inherit availableComponents; + inherit availableComponents extraComponents; python = py; tests = { inherit (nixosTests) home-assistant;