diff --git a/pkgs/applications/video/frigate/default.nix b/pkgs/applications/video/frigate/default.nix index cf381a5f42658..060046f59f037 100644 --- a/pkgs/applications/video/frigate/default.nix +++ b/pkgs/applications/video/frigate/default.nix @@ -1,6 +1,6 @@ { lib , callPackage -, python3 +, python311 , fetchFromGitHub , fetchurl , fetchpatch2 @@ -23,7 +23,7 @@ let inherit version src; }; - python = python3.override { + python = python311.override { packageOverrides = self: super: { pydantic = super.pydantic_1; @@ -71,6 +71,14 @@ python.pkgs.buildPythonApplication rec { url = "https://github.com/blakeblackshear/frigate/commit/b65656fa8733c1c2f3d944f716d2e9493ae7c99f.patch"; hash = "sha256-taPWFV4PldBGUKAwFMKag4W/3TLMSGdKLYG8bj1Y5mU="; }) + (fetchpatch2 { + # https://github.com/blakeblackshear/frigate/pull/10097 + name = "frigate-secrets-permissionerror.patch"; + url = "https://github.com/blakeblackshear/frigate/commit/a1424bad6c0163e790129ade7a9784514d0bf89d.patch"; + hash = "sha256-/kIy4aW9o5AKHJQfCDVY46si+DKaUb+CsZsCGIbXvUQ="; + }) + # https://github.com/blakeblackshear/frigate/pull/12324 + ./mpl-3.9.0.patch ]; postPatch = '' diff --git a/pkgs/applications/video/frigate/mpl-3.9.0.patch b/pkgs/applications/video/frigate/mpl-3.9.0.patch new file mode 100644 index 0000000000000..84fe7867438d7 --- /dev/null +++ b/pkgs/applications/video/frigate/mpl-3.9.0.patch @@ -0,0 +1,42 @@ +From fba8cff13186bd80ceaa06806392957598139deb Mon Sep 17 00:00:00 2001 +From: Martin Weinelt +Date: Sun, 7 Jul 2024 14:23:29 +0200 +Subject: [PATCH] Fix colormap usage with matplotlib 3.9.0 + +The mpl.cm toplevel registration has been removed. + +https://matplotlib.org/stable/api/prev_api_changes/api_changes_3.9.0.html#top-level-cmap-registration-and-access-functions-in-mpl-cm +--- + frigate/config.py | 2 +- + frigate/detectors/detector_config.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/frigate/config.py b/frigate/config.py +index 2e8b2570..af4f3263 100644 +--- a/frigate/config.py ++++ b/frigate/config.py +@@ -807,7 +807,7 @@ class CameraConfig(FrigateBaseModel): + def __init__(self, **config): + # Set zone colors + if "zones" in config: +- colors = plt.cm.get_cmap("tab10", len(config["zones"])) ++ colors = plt.colormaps["tab10"].resampled(len(config["zones"])) + config["zones"] = { + name: {**z, "color": tuple(round(255 * c) for c in colors(idx)[:3])} + for idx, (name, z) in enumerate(config["zones"].items()) +diff --git a/frigate/detectors/detector_config.py b/frigate/detectors/detector_config.py +index 7fc958a3..b65631eb 100644 +--- a/frigate/detectors/detector_config.py ++++ b/frigate/detectors/detector_config.py +@@ -125,7 +125,7 @@ class ModelConfig(BaseModel): + + def create_colormap(self, enabled_labels: set[str]) -> None: + """Get a list of colors for enabled labels.""" +- cmap = plt.cm.get_cmap("tab10", len(enabled_labels)) ++ cmap = plt.colormaps["tab10"].resampled(len(enabled_labels)) + + for key, val in enumerate(enabled_labels): + self._colormap[val] = tuple(int(round(255 * c)) for c in cmap(key)[:3]) +-- +2.45.1 +