summary refs log tree commit diff
diff options
context:
space:
mode:
authorMartin Weinelt <hexa@darmstadt.ccc.de>2021-12-01 01:09:52 +0100
committerMartin Weinelt <hexa@darmstadt.ccc.de>2021-12-01 01:09:52 +0100
commit254dd2a1025e46bccd05c4cc0dd461093b689480 (patch)
treedd796f8f4493475e86fac466dfafc198e918a59b
parentab5a3f8226b52b4ee32ea9dcb33d007b39a1e566 (diff)
downloadnixpkgs-254dd2a1025e46bccd05c4cc0dd461093b689480.tar
nixpkgs-254dd2a1025e46bccd05c4cc0dd461093b689480.tar.gz
nixpkgs-254dd2a1025e46bccd05c4cc0dd461093b689480.tar.bz2
nixpkgs-254dd2a1025e46bccd05c4cc0dd461093b689480.tar.lz
nixpkgs-254dd2a1025e46bccd05c4cc0dd461093b689480.tar.xz
nixpkgs-254dd2a1025e46bccd05c4cc0dd461093b689480.tar.zst
nixpkgs-254dd2a1025e46bccd05c4cc0dd461093b689480.zip
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.
-rw-r--r--nixos/modules/services/misc/home-assistant.nix9
-rw-r--r--pkgs/servers/home-assistant/default.nix2
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 8279d075baf..2de25d87ed3 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 4b4cb222e96..5febf010dff 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;