diff options
Diffstat (limited to 'pkgs/servers/home-assistant/default.nix')
-rw-r--r-- | pkgs/servers/home-assistant/default.nix | 192 |
1 files changed, 101 insertions, 91 deletions
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index 0f90061ad61f0..2e60e21ae8f2a 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -30,24 +30,6 @@ let # Override the version of some packages pinned in Home Assistant's setup.py and requirements_all.txt (self: super: { - aioaladdinconnect = super.aioaladdinconnect.overridePythonAttrs (oldAttrs: rec { - version = "0.1.58"; - src = fetchPypi { - pname = "AIOAladdinConnect"; - inherit version; - hash = "sha256-ymynaOKvnqqHIEuQc+5CagsaH5cHnQit8ileoUO6G+I="; - }; - }); - - aioautomower = super.aioautomower.overridePythonAttrs (oldAttrs: rec { - version = "2024.3.4"; - src = fetchFromGitHub { - inherit (oldAttrs.src) owner repo; - rev = "refs/tags/${version}"; - hash = "sha256-dk8HfIiQOKq7Ky+vYa3wKmTS78gTw6J0yyQT2Folpp0="; - }; - }); - aioelectricitymaps = super.aioelectricitymaps.overridePythonAttrs (oldAttrs: rec { version = "0.4.0"; src = fetchFromGitHub { @@ -61,19 +43,14 @@ let ]; }); - aiogithubapi = super.aiogithubapi.overridePythonAttrs (oldAttrs: rec { - version = "22.10.1"; + aiolyric = super.aiolyric.overridePythonAttrs (oldAttrs: rec { + version = "1.1.1"; src = fetchFromGitHub { - owner = "ludeeus"; - repo = "aiogithubapi"; + owner = "timmo001"; + repo = "aiolyric"; rev = "refs/tags/${version}"; - hash = "sha256-ceBuqaMqqL6qwN52765MG4sLt+08hx2G9rUVNC7x6ik="; + hash = "sha256-FZhLjVrLzLv6CZz/ROlvbtBK9XnpO8pG48aSIoBxhCo="; }; - propagatedBuildInputs = with self; [ - aiohttp - async-timeout - backoff - ]; }); aiopurpleair = super.aiopurpleair.overridePythonAttrs (oldAttrs: rec { @@ -116,13 +93,15 @@ let ''; }); - anova-wifi = super.anova-wifi.overridePythonAttrs (old: rec { - version = "0.10.3"; + aiowithings = super.aiowithings.overridePythonAttrs (oldAttrs: rec { + version = "2.1.0"; src = fetchFromGitHub { - owner = "Lash-L"; - repo = "anova_wifi"; - rev = "refs/tags/v${version}"; - hash = "sha256-tCmvp29KSCkc+g0w0odcB7vGjtDx6evac7XsHEF0syM="; + inherit (oldAttrs.src) + owner + repo + ; + rev = "refs/tags/${version}"; + hash = "sha256-+pIIVCR+QsW9M3pH9Ss3dMvkeKM1OdhQ1y+s/T6pHtk="; }; }); @@ -271,6 +250,16 @@ let patches = []; }); + pymelcloud = super.pymelcloud.overridePythonAttrs (oldAttrs: { + version = "2.5.9"; + src = fetchFromGitHub { + owner = "vilppuvuorinen"; + repo = "pymelcloud"; + rev = "33a827b6cd0b34f276790faa49bfd0994bb7c2e4"; # 2.5.x branch + sha256 = "sha256-Q3FIo9YJwtWPHfukEBjBANUQ1N1vr/DMnl1dgiN7vYg="; + }; + }); + notifications-android-tv = super.notifications-android-tv.overridePythonAttrs (oldAttrs: rec { version = "0.1.5"; format = "setuptools"; @@ -293,16 +282,16 @@ let doCheck = false; # no tests }); - # Pinned due to API changes in 1.3.0 - ovoenergy = super.ovoenergy.overridePythonAttrs (oldAttrs: rec { - version = "1.2.0"; + # Can probably be removed with 2024.6.0 + plugwise = super.plugwise.overridePythonAttrs rec { + version = "0.37.3"; src = fetchFromGitHub { - owner = "timmo001"; - repo = "ovoenergy"; + owner = "plugwise"; + repo = "python-plugwise"; rev = "refs/tags/v${version}"; - hash = "sha256-OSK74uvpHuEtWgbLVFrz1NO7lvtHbt690smGQ+GlsOI="; + hash = "sha256-aQz0p+DNi1XVoFwdFjc3RjpHqA2kGf4pU1QS6m271gU="; }; - }); + }; # Pinned due to API changes in 0.1.0 poolsense = super.poolsense.overridePythonAttrs (oldAttrs: rec { @@ -314,16 +303,6 @@ let }; }); - py-synologydsm-api = super.py-synologydsm-api.overridePythonAttrs (oldAttrs: rec { - version = "2.1.4"; - src = fetchFromGitHub { - owner = "mib1185"; - repo = "py-synologydsm-api"; - rev = "refs/tags/v${version}"; - hash = "sha256-37JzdhMny6YDTBO9NRzfrZJAVAOPnpcr95fOKxisbTg="; - }; - }); - pyasn1 = super.pyasn1.overridePythonAttrs (oldAttrs: rec { version = "0.4.8"; src = fetchPypi { @@ -366,20 +345,6 @@ let }; }); - python-roborock = super.python-roborock.overridePythonAttrs (oldAttrs: rec { - version = "0.40.0"; - src = fetchFromGitHub { - owner = "humbertogontijo"; - repo = "python-roborock"; - rev = "refs/tags/v${version}"; - hash = "sha256-H4xwgulNLs3R1Q5GhvQffpAZ1CWXZUJAja8BskW+YJk="; - }; - postPatch = '' - substituteInPlace pyproject.toml \ - --replace-fail "poetry-core==" "poetry-core>=" - ''; - }); - pytibber = super.pytibber.overridePythonAttrs (oldAttrs: rec { version = "0.28.2"; src = fetchFromGitHub { @@ -436,27 +401,62 @@ let }; }); - tesla-powerwall = super.tesla-powerwall.overridePythonAttrs (oldAttrs: rec { - version = "0.5.1"; + # newer sigstore version transitivevly require pydantic>=2 + sigstore = super.sigstore.overridePythonAttrs (oldAttrs: rec { + version = "1.1.2"; src = fetchFromGitHub { - owner = "jrester"; - repo = "tesla_powerwall"; + owner = "sigstore"; + repo = "sigstore-python"; rev = "refs/tags/v${version}"; - hash = "sha256-if/FCfxAB48WGXZOMvCtdSOW2FWO43OrlcHZbXIPmGE="; + hash = "sha256-QqY5GOBS75OkbSaF5Ua5jnJAhsYfVRuWLUoWDxX8Ino="; }; + dependencies = with self; [ + appdirs + cryptography + id + pydantic + pyjwt + pyopenssl + requests + securesystemslib + sigstore-protobuf-specs + tuf + ]; + doCheck = false; # pytest too new }); - versioningit = super.versioningit.overridePythonAttrs (oldAttrs: rec { - version = "2.2.0"; + sigstore-protobuf-specs = super.sigstore-protobuf-specs.overridePythonAttrs { + version = "0.1.0"; src = fetchPypi { - inherit (oldAttrs) pname; - inherit version; - hash = "sha256-6xjnunJoqIC/HM/pLlNOlqs04Dl/KNy8s/wNpPaltr0="; + pname = "sigstore-protobuf-specs"; + version = "0.1.0"; + hash = "sha256-YistIxYToo7T5mYKzYeBhnW06DSG9JoPDBmKxUdfy4E="; }; - pytestFlagsArray = [ - "-W" "ignore::DeprecationWarning" + nativeBuildInputs = with self; [ + flit-core + pythonRelaxDepsHook ]; - }); + pythonRelaxDeps = [ + "betterproto" + ]; + }; + + tuf = super.tuf.overridePythonAttrs rec { + version = "2.1.0"; + src = fetchFromGitHub { + owner = "theupdateframework"; + repo = "python-tuf"; + rev = "refs/tags/v${version}"; + hash = "sha256-MdPctAZuKn/YAwpMJ5gWU7PXJD3iK7bYprLXV52wNQQ="; + }; + disabledTests = [ + "test_sign_failures" + ]; + }; + + versioningit = super.versioningit.overridePythonAttrs { + doCheck = false; + }; voluptuous = super.voluptuous.overridePythonAttrs (oldAttrs: rec { version = "0.13.1"; @@ -533,12 +533,12 @@ let extraBuildInputs = extraPackages python.pkgs; # Don't forget to run update-component-packages.py after updating - hassVersion = "2024.4.4"; + hassVersion = "2024.6.3"; in python.pkgs.buildPythonApplication rec { pname = "homeassistant"; version = assert (componentPackages.version == hassVersion); hassVersion; - format = "pyproject"; + pyproject = true; # check REQUIRED_PYTHON_VER in homeassistant/const.py disabled = python.pythonOlder "3.11"; @@ -551,16 +551,16 @@ in python.pkgs.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = "refs/tags/${version}"; - hash = "sha256-bZcrFtaO0S22M6Wt2otK8rCg+NhpXr+/yRFxi02QJJI="; + hash = "sha256-hpKfdcTc9vddA/1EsfugDIKUPe0g3fPQnmwHLSEIF9w="; }; # Secondary source is pypi sdist for translations sdist = fetchPypi { inherit pname version; - hash = "sha256-NyIBFpDstX1MEoLS9p7GXl/+V6xB2hklNf2LmNLUMQk="; + hash = "sha256-lhTVAYwtYf7UzplAIHTWqgd0P7V93gjNbBUlMd3i3oQ="; }; - nativeBuildInputs = with python.pkgs; [ + build-system = with python.pkgs; [ pythonRelaxDepsHook setuptools ]; @@ -571,11 +571,14 @@ in python.pkgs.buildPythonApplication rec { "bcrypt" "ciso8601" "cryptography" + "jinja2" "hass-nabucasa" "httpx" "orjson" "pillow" "pyopenssl" + "requests" + "sqlalchemy" "typing-extensions" "urllib3" ]; @@ -600,16 +603,20 @@ in python.pkgs.buildPythonApplication rec { postPatch = '' substituteInPlace tests/test_config.py --replace-fail '"/usr"' '"/build/media"' + substituteInPlace pyproject.toml --replace-fail "wheel~=0.43.0" wheel + sed -i 's/setuptools[~=]/setuptools>/' pyproject.toml sed -i 's/wheel[~=]/wheel>/' pyproject.toml ''; - propagatedBuildInputs = with python.pkgs; [ + dependencies = with python.pkgs; [ # Only packages required in pyproject.toml + aiodns aiohttp aiohttp-cors aiohttp-fast-url-dispatcher - aiohttp-zlib-ng + aiohttp-fast-zlib + aiozoneinfo astral async-interrupt atomicwrites-homeassistant @@ -621,8 +628,8 @@ in python.pkgs.buildPythonApplication rec { cryptography fnv-hash-fast hass-nabucasa - httpx home-assistant-bluetooth + httpx ifaddr jinja2 lru-dict @@ -631,8 +638,8 @@ in python.pkgs.buildPythonApplication rec { pillow pip psutil-home-assistant - pyopenssl pyjwt + pyopenssl python-slugify pyyaml requests @@ -674,11 +681,14 @@ in python.pkgs.buildPythonApplication rec { tomli # Sneakily imported in tests/conftest.py paho-mqtt + # Used in tests/non_packaged_scripts/test_alexa_locales.py + beautifulsoup4 ] ++ lib.concatMap (component: getPackages component python.pkgs) [ # some components are needed even if tests in tests/components are disabled "default_config" "debugpy" "hue" + "qwikswitch" "sentry" ]; @@ -692,10 +702,10 @@ in python.pkgs.buildPythonApplication rec { "--showlocals" # AssertionError: assert 1 == 0 "--deselect tests/test_config.py::test_merge" - # AssertionError: assert 'WARNING' not in '2023-11-10 ...nt abc[L]>\n'" - "--deselect=tests/helpers/test_script.py::test_multiple_runs_repeat_choose" - # SystemError: PyThreadState_SetAsyncExc failed - "--deselect=tests/helpers/test_template.py::test_template_timeout" + # AssertionError: assert 6 == 5 + "--deselect=tests/helpers/test_translation.py::test_caching" + # assert "Detected that integration 'hue' attempted to create an asyncio task from a thread at homeassistant/components/hue/light.py, line 23 + "--deselect=tests/util/test_async.py::test_create_eager_task_from_thread_in_integration" # tests are located in tests/ "tests" ]; |