From a2e0b016f838c97875c4f21da37d990f395142ca Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Fri, 3 Jan 2025 02:46:42 +0100 Subject: [PATCH] home-assistant: 2024.12.5 -> 2025.1.0 --- .../home-assistant/component-packages.nix | 112 ++++++++--- pkgs/servers/home-assistant/default.nix | 182 +----------------- pkgs/servers/home-assistant/frontend.nix | 4 +- .../patches/watchdog5-compat.patch | 13 -- .../update-component-packages.py | 3 - 5 files changed, 94 insertions(+), 220 deletions(-) delete mode 100644 pkgs/servers/home-assistant/patches/watchdog5-compat.patch diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index 85747ca2877b..cb719aea0dac 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -2,7 +2,7 @@ # Do not edit! { - version = "2024.12.5"; + version = "2025.1.0"; components = { "3_day_blinds" = ps: with ps; [ @@ -233,11 +233,9 @@ [ adb-shell androidtv - pure-python-adb ] ++ adb-shell.optional-dependencies.async - ++ androidtv.optional-dependencies.async - ++ pure-python-adb.optional-dependencies.async; + ++ androidtv.optional-dependencies.async; "androidtv_remote" = ps: with ps; [ androidtvremote2 @@ -497,6 +495,8 @@ ]; "backup" = ps: with ps; [ + aiohasupervisor + cronsim securetar ]; "baf" = @@ -776,6 +776,7 @@ "caldav" = ps: with ps; [ caldav + icalendar ]; "calendar" = ps: with ps; [ @@ -796,6 +797,7 @@ "cast" = ps: with ps; [ aiohasupervisor + cronsim ha-ffmpeg hass-nabucasa hassil @@ -810,6 +812,7 @@ pyspeex-noise python-matter-server pyturbojpeg + securetar zeroconf ]; "ccm15" = @@ -860,6 +863,7 @@ "cloud" = ps: with ps; [ aiohasupervisor + cronsim ha-ffmpeg hass-nabucasa hassil @@ -869,6 +873,7 @@ pyspeex-noise python-matter-server pyturbojpeg + securetar ]; "cloudflare" = ps: with ps; [ @@ -934,6 +939,9 @@ hassil home-assistant-intents ]; + "cookidoo" = + ps: with ps; [ + ]; # missing inputs: cookidoo-api "coolmaster" = ps: with ps; [ pycoolmasternet-async @@ -1030,6 +1038,7 @@ bluetooth-auto-recovery bluetooth-data-tools cached-ipaddress + cronsim dbus-fast fnv-hash-fast go2rtc-client @@ -1238,9 +1247,6 @@ aiohasupervisor paho-mqtt_1 ]; - "dte_energy_bridge" = - ps: with ps; [ - ]; "dublin_bus_transport" = ps: with ps; [ ]; @@ -1275,10 +1281,12 @@ "dynalite" = ps: with ps; [ aiohasupervisor + cronsim dynalite-devices dynalite-panel home-assistant-frontend pillow + securetar ]; "eafm" = ps: with ps; [ @@ -1345,6 +1353,9 @@ ps: with ps; [ pythonegardia ]; + "eheimdigital" = + ps: with ps; [ + ]; # missing inputs: eheimdigital "eight_sleep" = ps: with ps; [ ]; @@ -1817,8 +1828,10 @@ "frontend" = ps: with ps; [ aiohasupervisor + cronsim home-assistant-frontend pillow + securetar ]; "frontier_silicon" = ps: with ps; [ @@ -1891,7 +1904,9 @@ "generic" = ps: with ps; [ av + numpy pillow + pyturbojpeg ]; "generic_hygrostat" = ps: with ps; [ @@ -2126,6 +2141,9 @@ ps: with ps; [ aioharmony ]; + "harvey" = + ps: with ps; [ + ]; "hassio" = ps: with ps; [ aiohasupervisor @@ -2598,12 +2616,14 @@ "insteon" = ps: with ps; [ aiohasupervisor + cronsim home-assistant-frontend insteon-frontend-home-assistant pillow pyinsteon pyserial pyudev + securetar ]; "integration" = ps: with ps; [ @@ -2656,7 +2676,6 @@ "iron_os" = ps: with ps; [ aioesphomeapi - aiogithubapi aioruuvigateway aioshelly bleak @@ -2719,6 +2738,10 @@ "itunes" = ps: with ps; [ ]; + "ituran" = + ps: with ps; [ + pyituran + ]; "izone" = ps: with ps; [ python-izone @@ -2857,9 +2880,11 @@ "knx" = ps: with ps; [ aiohasupervisor + cronsim home-assistant-frontend knx-frontend pillow + securetar xknx xknxproject ]; @@ -2955,10 +2980,12 @@ "lcn" = ps: with ps; [ aiohasupervisor + cronsim home-assistant-frontend lcn-frontend pillow pypck + securetar ]; "ld2410_ble" = ps: with ps; [ @@ -3118,8 +3145,7 @@ ]; "livisi" = ps: with ps; [ - aiolivisi - ]; + ]; # missing inputs: livisi "llamalab_automate" = ps: with ps; [ ]; @@ -3147,10 +3173,12 @@ "logbook" = ps: with ps; [ aiohasupervisor + cronsim fnv-hash-fast home-assistant-frontend pillow psutil-home-assistant + securetar sqlalchemy ]; "logentries" = @@ -3172,6 +3200,7 @@ "loqed" = ps: with ps; [ aiohasupervisor + cronsim ha-ffmpeg hass-nabucasa hassil @@ -3182,6 +3211,7 @@ pyspeex-noise python-matter-server pyturbojpeg + securetar ]; "lovelace" = ps: with ps; [ @@ -3463,6 +3493,7 @@ "mobile_app" = ps: with ps; [ aiohasupervisor + cronsim ha-ffmpeg hass-nabucasa hassil @@ -3474,6 +3505,7 @@ pyspeex-noise python-matter-server pyturbojpeg + securetar ]; "mochad" = ps: with ps; [ @@ -3627,8 +3659,10 @@ "my" = ps: with ps; [ aiohasupervisor + cronsim home-assistant-frontend pillow + securetar ]; "myq" = ps: with ps; [ @@ -3690,6 +3724,7 @@ "netatmo" = ps: with ps; [ aiohasupervisor + cronsim ha-ffmpeg hass-nabucasa hassil @@ -3700,6 +3735,7 @@ pyspeex-noise python-matter-server pyturbojpeg + securetar ]; "netdata" = ps: with ps; [ @@ -3760,8 +3796,7 @@ ]; "niko_home_control" = ps: with ps; [ - niko-home-control - ]; + ]; # missing inputs: nhc "nilu" = ps: with ps; [ niluclient @@ -3878,6 +3913,9 @@ ps: with ps; [ defusedxml ]; + "ohme" = + ps: with ps; [ + ]; # missing inputs: ohme "ollama" = ps: with ps; [ ha-ffmpeg @@ -4070,6 +4108,7 @@ "owntracks" = ps: with ps; [ aiohasupervisor + cronsim ha-ffmpeg hass-nabucasa hassil @@ -4081,6 +4120,7 @@ pyspeex-noise python-matter-server pyturbojpeg + securetar ]; "p1_monitor" = ps: with ps; [ @@ -4105,12 +4145,17 @@ "panel_custom" = ps: with ps; [ aiohasupervisor + cronsim home-assistant-frontend pillow + securetar ]; "pcs_lighting" = ps: with ps; [ ]; + "peblar" = + ps: with ps; [ + ]; # missing inputs: peblar "peco" = ps: with ps; [ peco @@ -4180,6 +4225,7 @@ "plaato" = ps: with ps; [ aiohasupervisor + cronsim ha-ffmpeg hass-nabucasa hassil @@ -4190,6 +4236,7 @@ pyspeex-noise python-matter-server pyturbojpeg + securetar ]; "plant" = ps: with ps; [ @@ -4225,6 +4272,9 @@ "portlandgeneral" = ps: with ps; [ ]; + "powerfox" = + ps: with ps; [ + ]; # missing inputs: powerfox "powerwall" = ps: with ps; [ tesla-powerwall @@ -4414,6 +4464,7 @@ "rachio" = ps: with ps; [ aiohasupervisor + cronsim ha-ffmpeg hass-nabucasa hassil @@ -4424,6 +4475,7 @@ python-matter-server pyturbojpeg rachiopy + securetar ]; "radarr" = ps: with ps; [ @@ -4518,6 +4570,7 @@ "recovery_mode" = ps: with ps; [ aiohasupervisor + cronsim ha-ffmpeg hass-nabucasa hassil @@ -4529,6 +4582,7 @@ pyspeex-noise python-matter-server pyturbojpeg + securetar ]; "recswitch" = ps: with ps; [ @@ -4999,9 +5053,6 @@ "simu" = ps: with ps; [ ]; - "simulated" = - ps: with ps; [ - ]; "sinch" = ps: with ps; [ ]; # missing inputs: clx-sdk-xms @@ -5044,6 +5095,10 @@ ps: with ps; [ goslide-api ]; + "slide_local" = + ps: with ps; [ + goslide-api + ]; "slimproto" = ps: with ps; [ aioslimproto @@ -5072,6 +5127,7 @@ "smartthings" = ps: with ps; [ aiohasupervisor + cronsim ha-ffmpeg hass-nabucasa hassil @@ -5083,6 +5139,7 @@ pyspeex-noise python-matter-server pyturbojpeg + securetar ]; "smarttub" = ps: with ps; [ @@ -5281,10 +5338,6 @@ ps: with ps; [ pymodbus ]; # missing inputs: pystiebeleltron - "stookalert" = - ps: with ps; [ - stookalert - ]; "stookwijzer" = ps: with ps; [ stookwijzer @@ -5697,6 +5750,7 @@ "toon" = ps: with ps; [ aiohasupervisor + cronsim ha-ffmpeg hass-nabucasa hassil @@ -5706,6 +5760,7 @@ pyspeex-noise python-matter-server pyturbojpeg + securetar toonapi ]; "torque" = @@ -5726,8 +5781,12 @@ ps: with ps; [ + av + ha-ffmpeg ifaddr + numpy python-kasa + pyturbojpeg ] ++ python-kasa.optional-dependencies.speedups; "tplink_lte" = @@ -6064,6 +6123,9 @@ ps: with ps; [ waterfurnace ]; + "watergate" = + ps: with ps; [ + ]; # missing inputs: watergate-local-api "watson_iot" = ps: with ps; [ ]; # missing inputs: ibmiotf @@ -6138,6 +6200,7 @@ ps: with ps; [ aiohasupervisor aiowithings + cronsim ha-ffmpeg hass-nabucasa hassil @@ -6147,6 +6210,7 @@ pyspeex-noise python-matter-server pyturbojpeg + securetar ]; "wiz" = ps: with ps; [ @@ -6259,6 +6323,7 @@ "yale" = ps: with ps; [ aiohasupervisor + cronsim ha-ffmpeg hass-nabucasa hassil @@ -6268,6 +6333,7 @@ pyspeex-noise python-matter-server pyturbojpeg + securetar yalexs yalexs-ble ]; @@ -6353,7 +6419,7 @@ ]; "zabbix" = ps: with ps; [ - py-zabbix + zabbix-utils ]; "zamg" = ps: with ps; [ @@ -6589,7 +6655,6 @@ "drop_connect" "dsmr" "dsmr_reader" - "dte_energy_bridge" "duckdns" "duke_energy" "dunehd" @@ -6803,6 +6868,7 @@ "israel_rail" "ista_ecotrend" "isy994" + "ituran" "izone" "jellyfin" "jewish_calendar" @@ -6846,7 +6912,6 @@ "linkplay" "litejet" "litterrobot" - "livisi" "local_calendar" "local_file" "local_ip" @@ -7108,12 +7173,12 @@ "simplefin" "simplepush" "simplisafe" - "simulated" "siren" "sky_remote" "skybell" "slack" "sleepiq" + "slide_local" "slimproto" "sma" "smappee" @@ -7152,7 +7217,6 @@ "statsd" "steam_online" "steamist" - "stookalert" "stookwijzer" "stream" "streamlabswater" diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index f8b3d3f88bfd..6521effbd757 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -45,21 +45,6 @@ let ]; }); - aiopurpleair = super.aiopurpleair.overridePythonAttrs (oldAttrs: rec { - version = "2022.12.1"; - src = fetchFromGitHub { - owner = "bachya"; - repo = "aiopurpleair"; - rev = "refs/tags/${version}"; - hash = "sha256-YmJH4brWkTpgzyHwu9UnIWrY5qlDCmMtvF+KxQFXwfk="; - }; - postPatch = '' - substituteInPlace pyproject.toml --replace-fail \ - '"setuptools >= 35.0.2", "wheel >= 0.29.0", "poetry>=0.12"' \ - '"poetry-core"' - ''; - }); - aioskybell = super.aioskybell.overridePythonAttrs (oldAttrs: rec { version = "22.7.0"; src = fetchFromGitHub { @@ -115,24 +100,6 @@ let ]; }); - inline-snapshot = super.inline-snapshot.overridePythonAttrs (oldAttrs: { - disabledTests = oldAttrs.disabledTests or [ ] ++ [ - # fixture does not expect pydantic<2 - "test_pydantic_repr" - ]; - }); - - ollama = super.ollama.overridePythonAttrs (oldAttrs: rec { - version = "0.3.3"; - src = fetchFromGitHub { - owner = "ollama"; - repo = "ollama-python"; - tag = "v${version}"; - hash = "sha256-27OJwPvHBxCdaiHk8EQ2s1OeBzgsrzp1MjgKHNgvz+A="; - }; - dependencies = with self; [ httpx ]; - }); - openhomedevice = super.openhomedevice.overridePythonAttrs (oldAttrs: rec { version = "2.2"; src = fetchFromGitHub { @@ -195,18 +162,6 @@ let }; }); - pyaussiebb = super.pyaussiebb.overridePythonAttrs (oldAttrs: rec { - version = "0.0.18"; - src = fetchFromGitHub { - owner = "yaleman"; - repo = "aussiebb"; - rev = "refs/tags/v${version}"; - hash = "sha256-tEdddVsLFCHRvyLCctDakioiop2xWaJlfGE16P1ukHc="; - }; - }); - - pydantic = super.pydantic_1; - pydexcom = super.pydexcom.overridePythonAttrs (oldAttrs: rec { version = "0.2.3"; src = fetchFromGitHub { @@ -239,30 +194,6 @@ let }; }); - pylamarzocco = super.pylamarzocco.overridePythonAttrs (oldAttrs: rec { - version = "1.2.12"; - src = fetchFromGitHub { - owner = "zweckj"; - repo = "pylamarzocco"; - tag = "v${version}"; - hash = "sha256-h3Oh1y1tirOWh3I8piybLZfTKwyGk0zJJ6XmHvmbUW0="; - }; - dependencies = with self; [ - bleak - httpx - websockets - ]; - }); - - pymodbus = super.pymodbus.overridePythonAttrs (oldAttrs: rec { - version = "3.6.9"; - src = fetchFromGitHub { - inherit (oldAttrs.src) owner repo; - rev = "refs/tags/v${version}"; - hash = "sha256-ScqxDO0hif8p3C6+vvm7FgSEQjCXBwUPOc7Y/3OfkoI="; - }; - }); - pyoctoprintapi = super.pyoctoprintapi.overridePythonAttrs (oldAttrs: rec { version = "0.1.12"; src = fetchFromGitHub { @@ -283,16 +214,6 @@ let }; }); - # newer versions require pydantic>=2 - python-on-whales = super.python-on-whales.overridePythonAttrs (oldAttrs: rec { - version = "0.72.0"; - src = fetchFromGitHub { - inherit (oldAttrs.src) owner repo; - rev = "refs/tags/v${version}"; - hash = "sha256-oKI7zXfoUVmJXLQvyoDEmoCL4AwaYgaFcLKNlFFrC9o="; - }; - }); - pytradfri = super.pytradfri.overridePythonAttrs (oldAttrs: rec { version = "9.0.1"; src = fetchFromGitHub { @@ -303,45 +224,6 @@ let }; }); - # newer sigstore version transitivevly require pydantic>=2 - sigstore = super.sigstore.overridePythonAttrs (oldAttrs: rec { - version = "1.1.2"; - src = fetchFromGitHub { - owner = "sigstore"; - repo = "sigstore-python"; - rev = "refs/tags/v${version}"; - hash = "sha256-QqY5GOBS75OkbSaF5Ua5jnJAhsYfVRuWLUoWDxX8Ino="; - }; - dependencies = with self; [ - appdirs - cryptography - id - pydantic - pyjwt - pyopenssl - requests - securesystemslib - sigstore-protobuf-specs - tuf - ]; - doCheck = false; # pytest too new - }); - - sigstore-protobuf-specs = super.sigstore-protobuf-specs.overridePythonAttrs { - version = "0.1.0"; - src = fetchPypi { - pname = "sigstore-protobuf-specs"; - version = "0.1.0"; - hash = "sha256-YistIxYToo7T5mYKzYeBhnW06DSG9JoPDBmKxUdfy4E="; - }; - nativeBuildInputs = with self; [ - flit-core - ]; - pythonRelaxDeps = [ - "betterproto" - ]; - }; - slack-sdk = super.slack-sdk.overridePythonAttrs (oldAttrs: rec { version = "2.5.0"; src = fetchFromGitHub { @@ -358,31 +240,6 @@ let doCheck = false; # Tests changed a lot for > 3 }); - # pinned for sigstore - 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" - ]; - }; - - voip-utils = super.voip-utils.overridePythonAttrs (oldAttrs: rec { - version = "0.1.0"; - src = fetchFromGitHub { - inherit (oldAttrs.src) owner repo; - rev = "refs/tags/v${version}"; - hash = "sha256-PG4L6KphH9JIZO76cCN8eClFE2CneEIExlXS+x79k3U="; - }; - # tests were not implemented until version 0.2.0 - doCheck = false; - }); - vulcan-api = super.vulcan-api.overridePythonAttrs (oldAttrs: rec { version = "2.3.2"; src = fetchFromGitHub { @@ -403,36 +260,6 @@ let }; }); - xbox-webapi = super.xbox-webapi.overridePythonAttrs (oldAttrs: rec { - version = "2.0.11"; - src = fetchFromGitHub { - owner = "OpenXbox"; - repo = "xbox-webapi-python"; - rev = "refs/tags/v${version}"; - hash = "sha256-fzMB+I8+ZTJUiZovcuj+d5GdHY9BJyJd6j92EhJeIFI="; - }; - postPatch = '' - sed -i '/pytest-runner/d' setup.py - ''; - propagatedBuildInputs = with self; [ - aiohttp - appdirs - ms-cv - pydantic - ecdsa - ]; - nativeCheckInputs = with self; [ - aresponses - ]; - }); - - youtubeaio = super.youtubeaio.overridePythonAttrs (old: { - pytestFlagsArray = [ - # fails with pydantic v1 - "--deselect=tests/test_video.py::test_fetch_video" - ]; - }); - # internal python packages only consumed by home-assistant itself home-assistant-frontend = self.callPackage ./frontend.nix { }; home-assistant-intents = self.callPackage ./intents.nix { }; @@ -462,7 +289,7 @@ let extraBuildInputs = extraPackages python.pkgs; # Don't forget to run update-component-packages.py after updating - hassVersion = "2024.12.5"; + hassVersion = "2025.1.0"; in python.pkgs.buildPythonApplication rec { @@ -483,13 +310,13 @@ python.pkgs.buildPythonApplication rec { owner = "home-assistant"; repo = "core"; rev = "refs/tags/${version}"; - hash = "sha256-LJgwtVQvO1iUPYfzAsE6l9u4+EIzAnc3IJ5FZb3xniM="; + hash = "sha256-tkjOWJ29fvWzto3y6zV8h8yPIGyhC5sBIL5koOsw5i0="; }; # Secondary source is pypi sdist for translations sdist = fetchPypi { inherit pname version; - hash = "sha256-PfedigJWHLv2BqHOgVedDyJxxxSmdHe2CvPNYCWi6aA="; + hash = "sha256-xaHD93crz4wm3CwX5d/UxeuOQ769G+ZnA26iE7y7hU4="; }; build-system = with python.pkgs; [ @@ -533,8 +360,6 @@ python.pkgs.buildPythonApplication rec { src = ./patches/ffmpeg-path.patch; ffmpeg = "${lib.getExe ffmpeg-headless}"; }) - - ./patches/watchdog5-compat.patch ]; postPatch = '' @@ -559,6 +384,7 @@ python.pkgs.buildPythonApplication rec { bcrypt certifi ciso8601 + cronsim cryptography fnv-hash-fast hass-nabucasa diff --git a/pkgs/servers/home-assistant/frontend.nix b/pkgs/servers/home-assistant/frontend.nix index ab8fbd714311..3551e61b0826 100644 --- a/pkgs/servers/home-assistant/frontend.nix +++ b/pkgs/servers/home-assistant/frontend.nix @@ -8,7 +8,7 @@ buildPythonPackage rec { # the frontend version corresponding to a specific home-assistant version can be found here # https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json pname = "home-assistant-frontend"; - version = "20241127.8"; + version = "20250103.0"; format = "wheel"; src = fetchPypi { @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "home_assistant_frontend"; dist = "py3"; python = "py3"; - hash = "sha256-6VQ5IgAsPMzHlBe20EinjByGC2AzUY5mYFVHBvIdR0E="; + hash = "sha256-i+XOHFGL7UVxL+bNohhi+8pF1kZ5oOY5EpZHR3NbwL4="; }; # there is nothing to strip in this package diff --git a/pkgs/servers/home-assistant/patches/watchdog5-compat.patch b/pkgs/servers/home-assistant/patches/watchdog5-compat.patch deleted file mode 100644 index d4e27769579b..000000000000 --- a/pkgs/servers/home-assistant/patches/watchdog5-compat.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/homeassistant/components/folder_watcher/__init__.py b/homeassistant/components/folder_watcher/__init__.py -index 3aeaa6f7ef2..f5c2db513b7 100644 ---- a/homeassistant/components/folder_watcher/__init__.py -+++ b/homeassistant/components/folder_watcher/__init__.py -@@ -68,7 +68,7 @@ class EventHandler(PatternMatchingEventHandler): - - def __init__(self, patterns: list[str], hass: HomeAssistant, entry_id: str) -> None: - """Initialise the EventHandler.""" -- super().__init__(patterns) -+ super().__init__(patterns=patterns) - self.hass = hass - self.entry_id = entry_id - diff --git a/pkgs/servers/home-assistant/update-component-packages.py b/pkgs/servers/home-assistant/update-component-packages.py index 68301faf35ec..6efd2c5195f7 100755 --- a/pkgs/servers/home-assistant/update-component-packages.py +++ b/pkgs/servers/home-assistant/update-component-packages.py @@ -113,9 +113,6 @@ def parse_components(version: str = "master"): specific_integrations=None, action="generate", requirements=False, - core_integrations_path=pathlib.Path( - os.path.join(core_path, "homeassistant/components") - ), ) integrations = Integration.load_dir(config.core_integrations_path, config) for domain in sorted(integrations):