home-assistant: 2024.7.4 -> 2024.8.0

https://www.home-assistant.io/blog/2024/08/07/release-20248/
This commit is contained in:
Martin Weinelt 2024-08-08 01:55:32 +02:00
parent 3d55123591
commit 32fbd1ef59
No known key found for this signature in database
GPG Key ID: 87C1E9888F856759
4 changed files with 197 additions and 597 deletions

File diff suppressed because it is too large Load Diff

View File

@ -126,17 +126,6 @@ let
doCheck = false;
});
dsmr-parser = super.dsmr-parser.overridePythonAttrs (oldAttrs: rec {
version = "1.3.1";
src = fetchFromGitHub {
owner = "ndokter";
repo = "dsmr_parser";
rev = "refs/tags/v${version}";
hash = "sha256-PULrKRHrCuDFZcR+5ha0PjkN438QFgf2CrpYhKIqYTs=";
};
doCheck = false;
});
geojson = super.geojson.overridePythonAttrs (oldAttrs: rec {
version = "2.5.0";
src = fetchFromGitHub {
@ -273,6 +262,19 @@ let
};
});
pyflume = super.pyflume.overridePythonAttrs (oldAttrs: rec {
version = "0.6.5";
src = fetchFromGitHub {
owner = "ChrisMandich";
repo = "PyFlume";
rev = "refs/tags/v${version}";
hash = "sha256-kIE3y/qlsO9Y1MjEQcX0pfaBeIzCCHk4f1Xa215BBHo=";
};
dependencies = oldAttrs.propagatedBuildInputs or [] ++ [
self.pytz
];
});
pytibber = super.pytibber.overridePythonAttrs (oldAttrs: rec {
version = "0.28.2";
src = fetchFromGitHub {
@ -411,16 +413,6 @@ let
doCheck = false;
};
voluptuous = super.voluptuous.overridePythonAttrs (oldAttrs: rec {
version = "0.13.1";
src = fetchFromGitHub {
owner = "alecthomas";
repo = "voluptuous";
rev = "refs/tags/${version}";
hash = "sha256-cz3Bd+/yPh+VOHxzi/W+gbDh/H5Nl/n4jvxDOirmAVk=";
};
});
# Pinned due to API changes ~1.0
vultr = super.vultr.overridePythonAttrs (oldAttrs: rec {
version = "0.1.2";
@ -489,7 +481,7 @@ let
extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run update-component-packages.py after updating
hassVersion = "2024.7.4";
hassVersion = "2024.8.0";
in python.pkgs.buildPythonApplication rec {
pname = "homeassistant";
@ -507,13 +499,13 @@ in python.pkgs.buildPythonApplication rec {
owner = "home-assistant";
repo = "core";
rev = "refs/tags/${version}";
hash = "sha256-PHKFQmlwdS0+XpD5Pd+Xwv5KNB2kJKouh9jfBH3aUIU=";
hash = "sha256-WGbT53bmyV1d/6GKlv5+bxLmGRqsAHEKbs2halMkPB4=";
};
# Secondary source is pypi sdist for translations
sdist = fetchPypi {
inherit pname version;
hash = "sha256-NJ5gD6k05ahIPCwktJgTz9zczxgnfuLesfjR58fbRL4=";
hash = "sha256-RfTkF8HO5bZCupo5vBLbSG2shr+b31GfDN+iJpH5sc8=";
};
build-system = with python.pkgs; [
@ -569,7 +561,6 @@ in python.pkgs.buildPythonApplication rec {
aiodns
aiohttp
aiohttp-cors
aiohttp-fast-url-dispatcher
aiohttp-fast-zlib
aiozoneinfo
astral

View File

@ -4,7 +4,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 = "20240710.0";
version = "20240806.1";
format = "wheel";
src = fetchPypi {
@ -12,7 +12,7 @@ buildPythonPackage rec {
pname = "home_assistant_frontend";
dist = "py3";
python = "py3";
hash = "sha256-EP4r59sgrLuK+n3ydq4LMCUS4xsT2XYE2OvK9N+Gd+M=";
hash = "sha256-tOM1KFffoPoS3FCdytdkwiptdLwKxpZFQJ4VU3i3WN0=";
};
# there is nothing to strip in this package

View File

@ -1,12 +1,25 @@
diff --git a/homeassistant/components/http/static.py b/homeassistant/components/http/static.py
index e6e773d4c0..b53e0b4a11 100644
index 29c5840a4bf..463c723df91 100644
--- a/homeassistant/components/http/static.py
+++ b/homeassistant/components/http/static.py
@@ -31,7 +31,6 @@ def _get_file_path(rel_url: str, directory: Path) -> Path | None:
# where the static dir is totally different
raise HTTPForbidden
filepath: Path = directory.joinpath(filename).resolve()
- filepath.relative_to(directory)
# on opening a dir, load its contents if allowed
if filepath.is_dir():
return None
@@ -7,6 +7,7 @@ from pathlib import Path
from typing import Final
from aiohttp.hdrs import CACHE_CONTROL, CONTENT_TYPE
+from aiohttp.typedefs import PathLike
from aiohttp.web import FileResponse, Request, StreamResponse
from aiohttp.web_fileresponse import CONTENT_TYPES, FALLBACK_CONTENT_TYPE
from aiohttp.web_urldispatcher import StaticResource
@@ -21,6 +22,12 @@ RESPONSE_CACHE: LRU[tuple[str, Path], tuple[Path, str]] = LRU(512)
class CachingStaticResource(StaticResource):
"""Static Resource handler that will add cache headers."""
+ def __init__(self, prefix: str, directory: PathLike, **kwargs):
+ """Allow static files to be hosted behind symlinks."""
+ kwargs.update({"follow_symlinks": True})
+ super().__init__(prefix, directory, **kwargs)
+
+
async def _handle(self, request: Request) -> StreamResponse:
"""Wrap base handler to cache file path resolution and content type guess."""
rel_url = request.match_info["filename"]