frigate: fix platform-based condition

The current condition `stdenv.hostPlatform == "x86_64-linux"` will never
be true, because `stdenv.hostPlatform` is not a string.

The intent is to use `rocmPackages.clr` only where clang-rocm can run,
which is only on x86_64-linux.

We can't use `lib.meta.availableOn` for `rocmPackages.clr` because it
only checks `meta.platform` for the package, but not for its transitive
dependencies that are unavailable.
This commit is contained in:
Matt Sturgeon 2025-04-30 17:52:12 +01:00
parent a8ada7ce4a
commit 9de82e992c
No known key found for this signature in database
GPG key ID: 4F91844CED1A8299

View file

@ -88,7 +88,8 @@ python.pkgs.buildPythonApplication rec {
--replace-fail "/usr/local/lib/vec0" "${lib.getLib sqlite-vec}/lib/vec0${stdenv.hostPlatform.extensions.sharedLibrary}"
''
+ lib.optionalString (stdenv.hostPlatform == "x86_64-linux") ''
# clang-rocm, provided by `rocmPackages.clr`, only works on x86_64-linux specifically
+ lib.optionalString (with stdenv.hostPlatform; isx86_64 && isLinux) ''
substituteInPlace frigate/detectors/plugins/rocm.py \
--replace-fail "/opt/rocm/bin/rocminfo" "rocminfo" \
--replace-fail "/opt/rocm/lib" "${rocmPackages.clr}/lib"