Unverified Commit e01ccd62 authored by Martin Weinelt's avatar Martin Weinelt
Browse files

home-assistant: Inject extra dependencies through PYTHONPATH

Injecting configuration specific dependencies into the
propagatedBuildInputs of the home-assistant package forces alot of
rebuilds while setting up home-assistant, which is annoying.

By passing optional dependencies into home-assistant via the systemd
units PYTHONPATH environment variable, only he concatenation of
library paths in the systemd unit requires a rebuild.

This also means users can rely heavily on the cached home-assistant
package and will rarely have to build from source, if ever.
parent 3fa7dc20
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -409,6 +409,7 @@ in {
        (optionalString (cfg.config != null) copyConfig) +
        (optionalString (cfg.lovelaceConfig != null) copyLovelaceConfig)
      ;
      environment.PYTHONPATH = package.pythonPath;
      serviceConfig = let
        # List of capabilities to equip home-assistant with, depending on configured components
        capabilities = lib.unique ([
+2 −1
Original line number Diff line number Diff line
@@ -355,7 +355,7 @@ in python.pkgs.buildPythonApplication rec {
    yarl
    # Implicit dependency via homeassistant/requirements.py
    setuptools
  ] ++ componentBuildInputs ++ extraBuildInputs;
  ];

  makeWrapperArgs = lib.optional skipPip "--add-flags --skip-pip";

@@ -431,6 +431,7 @@ in python.pkgs.buildPythonApplication rec {
      getPackages
      python
      supportedComponentsWithTests;
    pythonPath = python3.pkgs.makePythonPath (componentBuildInputs ++ extraBuildInputs);
    intents = python.pkgs.home-assistant-intents;
    tests = {
      nixos = nixosTests.home-assistant;