diff options
author | Martin Weinelt <hexa@darmstadt.ccc.de> | 2024-02-11 03:54:28 +0100 |
---|---|---|
committer | Martin Weinelt <hexa@darmstadt.ccc.de> | 2024-02-11 03:54:28 +0100 |
commit | ad719a45037641bf03524b956b0e71218634528e (patch) | |
tree | a5d6d1704cf974ad1e368407ccf644c0827a4215 /pkgs/servers/home-assistant | |
parent | e72d6a1d3facbcbbc771ca53f8f31c07838825b3 (diff) | |
download | nixlib-ad719a45037641bf03524b956b0e71218634528e.tar nixlib-ad719a45037641bf03524b956b0e71218634528e.tar.gz nixlib-ad719a45037641bf03524b956b0e71218634528e.tar.bz2 nixlib-ad719a45037641bf03524b956b0e71218634528e.tar.lz nixlib-ad719a45037641bf03524b956b0e71218634528e.tar.xz nixlib-ad719a45037641bf03524b956b0e71218634528e.tar.zst nixlib-ad719a45037641bf03524b956b0e71218634528e.zip |
home-assistant: update patch to follow symlinks in static dir
Diffstat (limited to 'pkgs/servers/home-assistant')
-rw-r--r-- | pkgs/servers/home-assistant/default.nix | 2 | ||||
-rw-r--r-- | pkgs/servers/home-assistant/patches/static-follow-symlinks.patch | 12 | ||||
-rw-r--r-- | pkgs/servers/home-assistant/patches/static-symlinks.patch | 37 |
3 files changed, 13 insertions, 38 deletions
diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index a3d74d51c4df..107a93fed6a9 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -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 { diff --git a/pkgs/servers/home-assistant/patches/static-follow-symlinks.patch b/pkgs/servers/home-assistant/patches/static-follow-symlinks.patch new file mode 100644 index 000000000000..c99a8d88a1e8 --- /dev/null +++ b/pkgs/servers/home-assistant/patches/static-follow-symlinks.patch @@ -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 diff --git a/pkgs/servers/home-assistant/patches/static-symlinks.patch b/pkgs/servers/home-assistant/patches/static-symlinks.patch deleted file mode 100644 index 7784a60f6b2a..000000000000 --- a/pkgs/servers/home-assistant/patches/static-symlinks.patch +++ /dev/null @@ -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 |