mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-02-20 11:05:14 +00:00
Merge pull request #287926 from mweinelt/home-assistant-2024.2.0-fixes
home-assistant: fixes for 2024.2.0
This commit is contained in:
commit
18899b0c58
@ -52,7 +52,7 @@ let
|
||||
hasAttrByPath (splitString "." component) cfg.config
|
||||
|| useComponentPlatform component
|
||||
|| useExplicitComponent component
|
||||
|| builtins.elem component cfg.extraComponents;
|
||||
|| builtins.elem component (cfg.extraComponents ++ cfg.defaultIntegrations);
|
||||
|
||||
# Final list of components passed into the package to include required dependencies
|
||||
extraComponents = filter useComponent availableComponents;
|
||||
@ -103,6 +103,45 @@ in {
|
||||
description = lib.mdDoc "The config directory, where your {file}`configuration.yaml` is located.";
|
||||
};
|
||||
|
||||
defaultIntegrations = mkOption {
|
||||
type = types.listOf (types.enum availableComponents);
|
||||
# https://github.com/home-assistant/core/blob/dev/homeassistant/bootstrap.py#L109
|
||||
default = [
|
||||
"application_credentials"
|
||||
"frontend"
|
||||
"hardware"
|
||||
"logger"
|
||||
"network"
|
||||
"system_health"
|
||||
|
||||
# key features
|
||||
"automation"
|
||||
"person"
|
||||
"scene"
|
||||
"script"
|
||||
"tag"
|
||||
"zone"
|
||||
|
||||
# built-in helpers
|
||||
"counter"
|
||||
"input_boolean"
|
||||
"input_button"
|
||||
"input_datetime"
|
||||
"input_number"
|
||||
"input_select"
|
||||
"input_text"
|
||||
"schedule"
|
||||
"timer"
|
||||
|
||||
# non-supervisor
|
||||
"backup"
|
||||
];
|
||||
readOnly = true;
|
||||
description = ''
|
||||
List of integrations set are always set up, unless in recovery mode.
|
||||
'';
|
||||
};
|
||||
|
||||
extraComponents = mkOption {
|
||||
type = types.listOf (types.enum availableComponents);
|
||||
default = [
|
||||
|
@ -485,7 +485,7 @@ in python.pkgs.buildPythonApplication rec {
|
||||
# leave this in, so users don't have to constantly update their downstream patch handling
|
||||
patches = [
|
||||
# Follow symlinks in /var/lib/hass/www
|
||||
./patches/static-symlinks.patch
|
||||
./patches/static-follow-symlinks.patch
|
||||
|
||||
# Patch path to ffmpeg binary
|
||||
(substituteAll {
|
||||
|
@ -0,0 +1,12 @@
|
||||
diff --git a/homeassistant/components/http/static.py b/homeassistant/components/http/static.py
|
||||
index e6e773d4c0..b53e0b4a11 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
|
@ -1,37 +0,0 @@
|
||||
diff --git a/homeassistant/components/frontend/__init__.py b/homeassistant/components/frontend/__init__.py
|
||||
index 2ec991750f..9a937006ce 100644
|
||||
--- a/homeassistant/components/frontend/__init__.py
|
||||
+++ b/homeassistant/components/frontend/__init__.py
|
||||
@@ -383,7 +383,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
||||
|
||||
local = hass.config.path("www")
|
||||
if os.path.isdir(local):
|
||||
- hass.http.register_static_path("/local", local, not is_dev)
|
||||
+ hass.http.register_static_path("/local", local, not is_dev, follow_symlinks=True)
|
||||
|
||||
# Can be removed in 2023
|
||||
hass.http.register_redirect("/config/server_control", "/developer-tools/yaml")
|
||||
diff --git a/homeassistant/components/http/__init__.py b/homeassistant/components/http/__init__.py
|
||||
index 122b7b79ce..3cf2b7e0db 100644
|
||||
--- a/homeassistant/components/http/__init__.py
|
||||
+++ b/homeassistant/components/http/__init__.py
|
||||
@@ -411,16 +411,16 @@ class HomeAssistantHTTP:
|
||||
)
|
||||
|
||||
def register_static_path(
|
||||
- self, url_path: str, path: str, cache_headers: bool = True
|
||||
+ self, url_path: str, path: str, cache_headers: bool = True, follow_symlinks: bool = False
|
||||
) -> None:
|
||||
"""Register a folder or file to serve as a static path."""
|
||||
if os.path.isdir(path):
|
||||
if cache_headers:
|
||||
resource: CachingStaticResource | web.StaticResource = (
|
||||
- CachingStaticResource(url_path, path)
|
||||
+ CachingStaticResource(url_path, path, follow_symlinks=follow_symlinks)
|
||||
)
|
||||
else:
|
||||
- resource = web.StaticResource(url_path, path)
|
||||
+ resource = web.StaticResource(url_path, path, follow_symlinks=follow_symlinks)
|
||||
self.app.router.register_resource(resource)
|
||||
self.app["allow_configured_cors"](resource)
|
||||
return
|
Loading…
Reference in New Issue
Block a user