Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2026-02-28 06:09:00 +00:00
committed by GitHub
58 changed files with 1044 additions and 714 deletions
@@ -23,6 +23,8 @@ in
boot.extraModulePackages = [ evdi ];
boot.kernelModules = [ "evdi" ];
services.xserver.externallyConfiguredDrivers = [ "displaylink" ];
environment.etc."X11/xorg.conf.d/40-displaylink.conf".text = ''
Section "OutputClass"
Identifier "DisplayLink"
@@ -18,10 +18,6 @@ let
types
;
inherit (builtins)
toString
;
inherit (utils)
escapeSystemdExecArgs
;
@@ -36,230 +32,261 @@ in
description = ''
Attribute set of wyoming-faster-whisper instances to spawn.
'';
type = attrsOf (submodule {
options = {
enable = mkEnableOption "Wyoming faster-whisper server";
type = attrsOf (
submodule (
{ name, ... }:
{
options = {
enable = mkEnableOption "Wyoming faster-whisper server";
model = mkOption {
type = str;
default = "tiny-int8";
example = "Systran/faster-distil-whisper-small.en";
# https://github.com/home-assistant/addons/blob/master/whisper/DOCS.md#option-model
description = ''
Name of the voice model to use. Can also be a HuggingFace model ID or a path to
a custom model directory.
zeroconf = {
enable = mkEnableOption "zeroconf discovery" // {
default = true;
};
With {option}`useTranformers` enabled, a HuggingFace transformers Whisper model
ID from HuggingFace like `openai/whisper-tiny.en` must be used.
name = mkOption {
type = str;
default = "faster-whisper-${name}";
description = ''
The advertised name for zeroconf discovery.
'';
};
};
Compressed models (`int8`) are slightly less accurate, but smaller and faster.
Distilled models are uncompressed and faster and smaller than non-distilled models.
sttLibrary = mkOption {
type = enum [
"auto"
"faster-whisper"
"onnx-asr"
"sherpa"
"transformers"
];
default = "auto";
example = "sherpa";
description = ''
Library used for speech-to-text process.
Available models:
- `tiny-int8` (compressed)
- `tiny`
- `tiny.en` (English only)
- `base-int8` (compressed)
- `base`
- `base.en` (English only)
- `small-int8` (compressed)
- `distil-small.en` (distilled, English only)
- `small`
- `small.en` (English only)
- `medium-int8` (compressed)
- `distil-medium.en` (distilled, English only)
- `medium`
- `medium.en` (English only)
- `large`
- `large-v1`
- `distil-large-v2` (distilled, English only)
- `large-v2`
- `distil-large-v3` (distilled, English only)
- `large-v3`
- `turbo` (faster than large-v3)
'';
};
When set to `auto` picks a default based on the {option}`language`.
'';
};
useTransformers = mkOption {
type = bool;
default = false;
description = ''
Whether to provide the dependencies to allow using transformer models.
'';
};
model = mkOption {
type = str;
default = "auto";
example = "sherpa-onnx-nemo-parakeet-tdt-0.6b-v3-int8";
# https://github.com/home-assistant/addons/blob/master/whisper/DOCS.md#option-model
description = ''
Name of the voice model to use. Can also be a HuggingFace model ID or a path to
a custom model directory.
uri = mkOption {
type = strMatching "^(tcp|unix)://.*$";
example = "tcp://0.0.0.0:10300";
description = ''
URI to bind the wyoming server to.
'';
};
When set to `auto` picks a default based on the {option}`language`,
device = mkOption {
# https://opennmt.net/CTranslate2/python/ctranslate2.models.Whisper.html#
type = enum [
"cpu"
"cuda"
"auto"
];
default = "cpu";
description = ''
Determines the platform faster-whisper is run on. CPU works everywhere, CUDA requires a compatible NVIDIA GPU.
'';
};
With {option}`sttLibrary` set to `transformers`, a HuggingFace transformers Whisper model
ID from HuggingFace like `openai/whisper-tiny` or `openai/whisper-base` must be used.
language = mkOption {
type = enum [
# https://github.com/home-assistant/addons/blob/master/whisper/config.yaml#L20
"auto"
"af"
"am"
"ar"
"as"
"az"
"ba"
"be"
"bg"
"bn"
"bo"
"br"
"bs"
"ca"
"cs"
"cy"
"da"
"de"
"el"
"en"
"es"
"et"
"eu"
"fa"
"fi"
"fo"
"fr"
"gl"
"gu"
"ha"
"haw"
"he"
"hi"
"hr"
"ht"
"hu"
"hy"
"id"
"is"
"it"
"ja"
"jw"
"ka"
"kk"
"km"
"kn"
"ko"
"la"
"lb"
"ln"
"lo"
"lt"
"lv"
"mg"
"mi"
"mk"
"ml"
"mn"
"mr"
"ms"
"mt"
"my"
"ne"
"nl"
"nn"
"no"
"oc"
"pa"
"pl"
"ps"
"pt"
"ro"
"ru"
"sa"
"sd"
"si"
"sk"
"sl"
"sn"
"so"
"sq"
"sr"
"su"
"sv"
"sw"
"ta"
"te"
"tg"
"th"
"tk"
"tl"
"tr"
"tt"
"uk"
"ur"
"uz"
"vi"
"yi"
"yue"
"yo"
"zh"
];
example = "en";
description = ''
The language used to to parse words and sentences.
'';
};
Compressed models (`int8`) are slightly less accurate, but smaller and faster.
Distilled models are uncompressed and faster and smaller than non-distilled models.
initialPrompt = mkOption {
type = nullOr str;
default = null;
# https://github.com/home-assistant/addons/blob/master/whisper/DOCS.md#option-custom_model_type
example = ''
The following conversation takes place in the universe of
Wizard of Oz. Key terms include 'Yellow Brick Road' (the path
to follow), 'Emerald City' (the ultimate goal), and 'Ruby
Slippers' (the magical tools to succeed). Keep these in mind as
they guide the journey.
'';
description = ''
Optional text to provide as a prompt for the first window. This can be used to provide, or
"prompt-engineer" a context for transcription, e.g. custom vocabularies or proper nouns
to make it more likely to predict those word correctly.
Available models for faster-whisper:
- `tiny-int8` (compressed)
- `tiny`
- `tiny.en` (English only)
- `base-int8` (compressed)
- `base`
- `base.en` (English only)
- `small-int8` (compressed)
- `distil-small.en` (distilled, English only)
- `small`
- `small.en` (English only)
- `medium-int8` (compressed)
- `distil-medium.en` (distilled, English only)
- `medium`
- `medium.en` (English only)
- `large`
- `large-v1`
- `distil-large-v2` (distilled, English only)
- `large-v2`
- `distil-large-v3` (distilled, English only)
- `large-v3`
- `turbo` (faster than large-v3)
'';
};
Not supported when the {option}`customModelType` is `transformers`.
'';
};
uri = mkOption {
type = strMatching "^(tcp|unix)://.*$";
example = "tcp://0.0.0.0:10300";
description = ''
URI to bind the wyoming server to.
'';
};
beamSize = mkOption {
type = ints.unsigned;
default = 0;
example = 5;
description = ''
The number of beams to use in beam search.
Use `0` to automatically select a value based on the CPU.
'';
apply = toString;
};
device = mkOption {
# https://opennmt.net/CTranslate2/python/ctranslate2.models.Whisper.html#
type = enum [
"cpu"
"cuda"
"auto"
];
default = "cpu";
description = ''
Determines the platform faster-whisper is run on. CPU works everywhere, CUDA requires a compatible NVIDIA GPU.
'';
};
extraArgs = mkOption {
type = listOf str;
default = [ ];
description = ''
Extra arguments to pass to the server commandline.
'';
};
};
});
language = mkOption {
type = enum [
# https://github.com/home-assistant/addons/blob/master/whisper/config.yaml#L20
"auto"
"af"
"am"
"ar"
"as"
"az"
"ba"
"be"
"bg"
"bn"
"bo"
"br"
"bs"
"ca"
"cs"
"cy"
"da"
"de"
"el"
"en"
"es"
"et"
"eu"
"fa"
"fi"
"fo"
"fr"
"gl"
"gu"
"ha"
"haw"
"he"
"hi"
"hr"
"ht"
"hu"
"hy"
"id"
"is"
"it"
"ja"
"jw"
"ka"
"kk"
"km"
"kn"
"ko"
"la"
"lb"
"ln"
"lo"
"lt"
"lv"
"mg"
"mi"
"mk"
"ml"
"mn"
"mr"
"ms"
"mt"
"my"
"ne"
"nl"
"nn"
"no"
"oc"
"pa"
"pl"
"ps"
"pt"
"ro"
"ru"
"sa"
"sd"
"si"
"sk"
"sl"
"sn"
"so"
"sq"
"sr"
"su"
"sv"
"sw"
"ta"
"te"
"tg"
"th"
"tk"
"tl"
"tr"
"tt"
"uk"
"ur"
"uz"
"vi"
"yi"
"yue"
"yo"
"zh"
];
example = "en";
description = ''
The language used to to parse words and sentences.
'';
};
initialPrompt = mkOption {
type = nullOr str;
default = null;
# https://github.com/home-assistant/addons/blob/master/whisper/DOCS.md#option-custom_model_type
example = ''
The following conversation takes place in the universe of
Wizard of Oz. Key terms include 'Yellow Brick Road' (the path
to follow), 'Emerald City' (the ultimate goal), and 'Ruby
Slippers' (the magical tools to succeed). Keep these in mind as
they guide the journey.
'';
description = ''
Optional text to provide as a prompt for the first window. This can be used to provide, or
"prompt-engineer" a context for transcription, e.g. custom vocabularies or proper nouns
to make it more likely to predict those word correctly.
Only supported when the {option}`sttLibrary` is `faster-whisper`.
'';
};
beamSize = mkOption {
type = ints.unsigned;
default = 0;
example = 5;
description = ''
The number of beams to use in beam search.
The default (`0`) will use 1 beam on ARM systems (assumes an ARM SBC) and 5 everywhere else.
'';
apply = toString;
};
extraArgs = mkOption {
type = listOf str;
default = [ ];
description = ''
Extra arguments to pass to the server commandline.
'';
};
};
}
)
);
};
};
@@ -273,8 +300,8 @@ in
in
mkIf (cfg.servers != { }) {
assertions = mapAttrsToList (server: options: {
assertion = options.useTransformers -> options.initialPrompt == null;
message = "wyoming-faster-whisper/${server}: Transformer models (`useTransformers`) do not currently support an `initialPrompt`.";
assertion = options.sttLibrary != "faster-whisper" -> options.initialPrompt == null;
message = "wyoming-faster-whisper/${server}: Initial prompt is only supported when using `faster-whisper` as `sttLibrary`.";
}) cfg.servers;
systemd.services = mapAttrs' (
@@ -283,8 +310,14 @@ in
finalPackage = cfg.package.overridePythonAttrs (oldAttrs: {
dependencies =
oldAttrs.dependencies
# for transformer model support
++ optionals options.useTransformers oldAttrs.optional-dependencies.transformers;
++ optionals options.zeroconf.enable oldAttrs.optional-dependencies.zeroconf
++ optionals (
options.sttLibrary == "onnx-asr" || options.sttLibrary == "auto" && options.language == "ru"
) oldAttrs.optional-dependencies.onnx_asr
++ optionals (
options.sttLibrary == "sherpa-onnx" || options.sttLibrary == "auto" && options.language == "en"
) oldAttrs.optional-dependencies.sherpa
++ optionals (options.sttLibrary == "transformers") oldAttrs.optional-dependencies.transformers;
});
in
nameValuePair "wyoming-faster-whisper-${server}" {
@@ -316,6 +349,8 @@ in
options.uri
"--device"
options.device
"--stt-library"
options.sttLibrary
"--model"
options.model
"--language"
@@ -323,8 +358,9 @@ in
"--beam-size"
options.beamSize
]
++ lib.optionals options.useTransformers [
"--use-transformers"
++ lib.optionals options.zeroconf.enable [
"--zeroconf"
options.zeroconf.name
]
++ lib.optionals (options.initialPrompt != null) [
"--initial-prompt"
@@ -366,6 +402,10 @@ in
"AF_INET"
"AF_INET6"
"AF_UNIX"
]
++ lib.optionals options.zeroconf.enable [
# Zeroconf support require network interface enumeration
"AF_NETLINK"
];
RestrictNamespaces = true;
RestrictRealtime = true;
@@ -37,7 +37,7 @@ in
'';
type = types.attrsOf (
types.submodule (
{ ... }:
{ name, ... }:
{
options = {
enable = mkEnableOption "Wyoming Piper server";
@@ -49,7 +49,7 @@ in
name = mkOption {
type = str;
default = "piper";
default = "piper-${name}";
description = ''
The advertised name for zeroconf discovery.
'';
@@ -205,8 +205,11 @@ in
RestrictAddressFamilies = [
"AF_INET"
"AF_INET6"
"AF_NETLINK"
"AF_UNIX"
]
++ lib.optionals options.zeroconf.enable [
# Zeroconf support require network interface enumeration
"AF_NETLINK"
];
RestrictNamespaces = true;
RestrictRealtime = true;
+28
View File
@@ -348,6 +348,10 @@ in
proxy_set_header X-Forwarded-Groups $http_x_forwarded_groups;
proxy_set_header X-Forwarded-Email $http_x_forwarded_email;
proxy_set_header X-Forwarded-Preferred-Username $http_x_forwarded_preferred_username;
proxy_set_header X-Auth-Request-User $http_x_auth_request_user;
proxy_set_header X-Auth-Request-Groups $http_x_auth_request_groups;
proxy_set_header X-Auth-Request-Email $http_x_auth_request_email;
proxy_set_header X-Auth-Request-Preferred-Username $http_x_auth_request_preferred_username;
proxy_set_header X-authentik-username $http_x_authentik_username;
proxy_set_header X-authentik-groups $http_x_authentik_groups;
proxy_set_header X-authentik-email $http_x_authentik_email;
@@ -362,6 +366,10 @@ in
aio threads;
vod hls;
# Use fMP4 (fragmented MP4) instead of MPEG-TS for better performance
# Smaller segments, faster generation, better browser compatibility
vod_hls_container_format fmp4;
secure_token $args;
secure_token_types application/vnd.apple.mpegurl;
@@ -555,6 +563,16 @@ in
${nginxProxySettings}
}
location /api/auth/first_time_login {
auth_request off;
limit_except GET {
deny all;
}
rewrite ^/api(/.*)$ $1 break;
proxy_pass http://frigate-api;
${nginxProxySettings}
}
location /api/stats {
${nginxAuthRequest}
access_log off;
@@ -582,6 +600,14 @@ in
add_header Cache-Control "public";
'';
};
"/fonts" = {
root = cfg.package.web;
extraConfig = ''
access_log off;
expires 1y;
add_header Cache-Control "public";
'';
};
"/locales/" = {
root = cfg.package.web;
extraConfig = ''
@@ -623,6 +649,8 @@ in
vod_manifest_segment_durations_mode accurate;
vod_ignore_edit_list on;
vod_segment_duration 10000;
# MPEG-TS settings (not used when fMP4 is enabled, kept for reference)
vod_hls_mpegts_align_frames off;
vod_hls_mpegts_interleave_frames on;
+23 -2
View File
@@ -497,7 +497,26 @@ in
internal = true;
description = ''
A list of attribute sets specifying drivers to be loaded by
the X11 server.
the X11 server. This module will create a Device section in
the Xorg config for every driver listed here, along with a
Screen section if the driver's {option}`display` attribute is
`true`. If such configuration sections should not be created,
use {options}`services.xserver.externallyConfiguredDrivers`
instead.
Users should not add drivers to this option but should instead
add drivers to {option}`services.xserver.videoDrivers`.
'';
};
externallyConfiguredDrivers = mkOption {
type = types.listOf types.str;
internal = true;
default = [ ];
description = ''
A list of externally configured drivers (by name). Modules that
manually configure their drivers should add said drivers to this
list to let this module know that the driver has been configured.
'';
};
@@ -865,7 +884,9 @@ in
}
]
++ map (driver: {
assertion = builtins.elem driver (builtins.catAttrs "name" cfg.drivers);
assertion = builtins.elem driver (
(builtins.catAttrs "name" cfg.drivers) ++ cfg.externallyConfiguredDrivers
);
message = "Unknown X11 driver ${driver} specified in `services.xserver.videoDrivers`.";
}) cfg.videoDrivers;
+1 -1
View File
@@ -27,7 +27,7 @@ stdenv.mkDerivation rec {
rm -rf libpng zlib zopfli
'';
NIX_CFLAGS_LINK = "-lzopfli";
env.NIX_CFLAGS_LINK = "-lzopfli";
installPhase = ''
install -Dt $out/bin apngasm
@@ -436,13 +436,13 @@
"vendorHash": "sha256-FcxAh8EOvnT8r1GHu0Oj2C5Jgbr2WPwD7/vY4/qIvTA="
},
"gitlabhq_gitlab": {
"hash": "sha256-iBgACKVMJmfDLlIU6TZZiED+eEG7c4CMSkfEjU1Dmiw=",
"hash": "sha256-qsETOpigad1T2Zc2zQ3gs4AW3rrGsqt5Bse85QfGZkA=",
"homepage": "https://registry.terraform.io/providers/gitlabhq/gitlab",
"owner": "gitlabhq",
"repo": "terraform-provider-gitlab",
"rev": "v18.8.0",
"rev": "v18.9.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-a2y8bnbQr8RNN3hJZFupUHvrIrV8HkAvZQn+7MIod0U="
"vendorHash": "sha256-Yy7yF0x8AtXTP7EMCbrZUTAO317VDyktGbHN+iSuQkg="
},
"go-gandi_gandi": {
"hash": "sha256-fsCtmwyxkXfOtiZG27VEb010jglK35yr4EynnUWlFog=",
@@ -778,13 +778,13 @@
"vendorHash": "sha256-mnKXYT0GfIS+ODzBCS9l4rLF1ugadesmpgdOgj74nLg="
},
"jianyuan_sentry": {
"hash": "sha256-J8hINbcBEdukkSLw+nKwbln9EfNh4sIb5F7FPLmXLE4=",
"hash": "sha256-sZdF4YnrsjTt8wsgdDdocHciRZbv2+l+b8zOr/WZYiQ=",
"homepage": "https://registry.terraform.io/providers/jianyuan/sentry",
"owner": "jianyuan",
"repo": "terraform-provider-sentry",
"rev": "v0.14.9",
"rev": "v0.14.10",
"spdx": "MIT",
"vendorHash": "sha256-ILb6eUVt961ZBcEVKT324OXMxF/d+Wx9tzA3PDTe5iU="
"vendorHash": "sha256-vJmzsdY2Yt09X2ZQgC5SA0mntjH/rIanaxQfBuivE7M="
},
"joneshf_openwrt": {
"hash": "sha256-z78IceF2VJtiQpVqC+rTUDsph73LZawIK+az3rEhljA=",
@@ -896,13 +896,13 @@
"vendorHash": "sha256-2IlD9IdiN+TBk/Eng2K4jZD8GB91IvQPeVAKhxI/6aY="
},
"metio_migadu": {
"hash": "sha256-K1wvS8rKetDuEdcommxdw07BkWJoSiZJ4sB3EfJ3uaI=",
"hash": "sha256-FPUWuQnklyy66SXUY3QpCHza5f0oVMrticd+j/YwKNc=",
"homepage": "https://registry.terraform.io/providers/metio/migadu",
"owner": "metio",
"repo": "terraform-provider-migadu",
"rev": "2026.2.12",
"rev": "2026.2.26",
"spdx": "0BSD",
"vendorHash": "sha256-Kag6QOY+ek9XIhvSJbzk+HGa9NxXh8MTMmoMXbFZxgI="
"vendorHash": "sha256-sxOopd49N1ABIZkp9XpP03N2BMIA5FO9reZPl8aSomU="
},
"mongey_kafka": {
"hash": "sha256-rTa6c7jAMH027V7h/yUGVGz6TS0PDdObilxU0Vpr6FI=",
@@ -1337,13 +1337,13 @@
"vendorHash": "sha256-SF11E60OQiRdf+Pf6XyJg60yGRnGOcSzhrYccrWaeYE="
},
"terraform-lxd_lxd": {
"hash": "sha256-6dLtlUIFyP2cW1V6/M6z/uAFLVHKi9cJCQhb4cFJdkA=",
"hash": "sha256-Vjvj/zcs/EyGsQWOFGOcDWnmPv1ZxaLzs18GDvCccSA=",
"homepage": "https://registry.terraform.io/providers/terraform-lxd/lxd",
"owner": "terraform-lxd",
"repo": "terraform-provider-lxd",
"rev": "v2.6.2",
"rev": "v2.7.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-3UzczIdB7Uns0X6ywSCoSWQcYhxSg43u95GEDQz2d28="
"vendorHash": "sha256-bcynhUj61VrSooyZ+oF0gWpAA+FtsYHXUpV/hTMyl7Q="
},
"terraform-provider-openstack_openstack": {
"hash": "sha256-6TcyPUacJNfGsaevg1DQ+WJrMFvGeo2mmsE2+P3RAZM=",
@@ -41,8 +41,10 @@ let
doCheck = false;
BUILD_USER = "nix";
BUILD_HOST = "nix";
env = {
BUILD_USER = "nix";
BUILD_HOST = "nix";
};
buildPhase = ''
runHook preBuild
+1 -1
View File
@@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: {
]
++ lib.optional stdenv.hostPlatform.isFreeBSD ./include-static-dependencies.patch;
NIX_CFLAGS_LINK = [ "-lcrypt" ];
env.NIX_CFLAGS_LINK = toString [ "-lcrypt" ];
outputs = [
"out"
@@ -7,14 +7,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "changedetection-io";
version = "0.53.5";
version = "0.54.2";
format = "setuptools";
src = fetchFromGitHub {
owner = "dgtlmoon";
repo = "changedetection.io";
tag = version;
hash = "sha256-B5T9M4JpNn4hUeV8rR1SIJobLKnuMkr4Se8d+Zu/xxY=";
hash = "sha256-EOvZdPMfGfllM57hbc/HMHw1rh9n9uwlA4VSkoY0MWY=";
};
pythonRelaxDeps = true;
+71 -51
View File
@@ -431,10 +431,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "003xl226y120cbq1n99805jw6w75gcz1gs941yz3h7li3qy3kqha";
sha256 = "14qb2gy6ypnqri92v9x8szbq7fzw27pc1z5cl367n5f5cpd2rmks";
type = "gem";
};
version = "1.18.6";
version = "1.20.1";
};
brakeman = {
dependencies = [ "racc" ];
@@ -469,15 +469,16 @@
dependencies = [ "thor" ];
groups = [
"development"
"staging"
"test"
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0j0h5cgnzk0ms17ssjkzfzwz65ggrs3lsp53a1j46p4616m1s1bk";
sha256 = "1sdlr4rj7x5nbrl8zkd3dqdg4fc50bnpx37rl0l0szg4f5n7dj41";
type = "gem";
};
version = "0.9.2";
version = "0.9.3";
};
byebug = {
groups = [
@@ -690,10 +691,10 @@
];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1rbfqkzr6i8b6538z16chvrkgywf5p5vafsgmnbmvrmh0ingsx2y";
sha256 = "1h0db8r2v5llxdbzkzyllkfniqw9gm092qn7cbaib73v9lw0c3bm";
type = "gem";
};
version = "3.5.0";
version = "3.5.1";
};
debug = {
dependencies = [
@@ -773,15 +774,16 @@
groups = [
"default"
"development"
"staging"
"test"
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1hwjsddv666wpp42bip3fqx7c5qq6s8lwf74dj71yn7d1h37c4cy";
sha256 = "17b1zr9kih0i3wb7h4yq9i8vi6hjfq07857j437a8z7a44qvhxg3";
type = "gem";
};
version = "3.1.8";
version = "3.2.0";
};
dotenv-rails = {
dependencies = [
@@ -790,15 +792,16 @@
];
groups = [
"development"
"staging"
"test"
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1i40g6kzwp8yxsxzpzgsq2hww9gxryl5lck1bwxshn4bd8id3ja6";
sha256 = "1axy0frn3xn3jf1gdafx5rzz843551q1ckwcbp4zy8m69dajazk5";
type = "gem";
};
version = "3.1.8";
version = "3.2.0";
};
drb = {
groups = [
@@ -848,10 +851,10 @@
];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0y95ynlfngs0s5x1w6mwralszhbi9d75lcdbdkqk75wcklzqjc17";
sha256 = "1rcpq49pyaiclpjp3c3qjl25r95hqvin2q2dczaynaj7qncxvv18";
type = "gem";
};
version = "6.0.0";
version = "6.0.1";
};
erubi = {
groups = [
@@ -1090,14 +1093,15 @@
version = "1.2.1";
};
hashie = {
dependencies = [ "logger" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1nh3arcrbz1rc1cr59qm53sdhqm137b258y8rcb4cvd3y98lwv4x";
sha256 = "0w1qrab701d3a63aj2qavwc2fpcqmkzzh1w2x93c88zkjqc4frn2";
type = "gem";
};
version = "5.0.0";
version = "5.1.0";
};
httparty = {
dependencies = [
@@ -1149,6 +1153,7 @@
groups = [
"default"
"development"
"staging"
"test"
];
platforms = [
@@ -1167,10 +1172,10 @@
];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1jszj95hazqqpnrjjzr326nn1j32xmsc9xvd97mbcrrgdc54858y";
sha256 = "1k0lk3pwadm2myvpg893n8jshmrf2sigrd4ki15lymy7gixaxqyn";
type = "gem";
};
version = "0.8.1";
version = "0.8.2";
};
irb = {
dependencies = [
@@ -1200,10 +1205,10 @@
];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1aja320qnimlnfc80wf2i2x8i99kl5sdzfacsfzzfzzs3vzysja3";
sha256 = "01h8bdksg0cr8bw5dhlhr29ix33rp822jmshy6rdqz4lmk4mdgia";
type = "gem";
};
version = "1.15.3";
version = "1.16.0";
};
jmespath = {
groups = [ "default" ];
@@ -1390,15 +1395,16 @@
groups = [
"default"
"development"
"staging"
"test"
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0dx316q03x6rpdbl610rdaj2vfd5s8fanixk21j4gv3h5f230nk5";
sha256 = "1rk0n13c9nmk8di2x5gqk5r04vf8bkp7ff6z0b44wsmc7fndfpnz";
type = "gem";
};
version = "2.24.1";
version = "2.25.0";
};
mail = {
dependencies = [
@@ -1502,10 +1508,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "04ihgnwp2ka68v82a6jpk9yqmazfwnbk3vsz6sb040kq6gf53dzd";
sha256 = "0cnpnbn2yivj9gxkh8mjklbgnpx6nf7b8j2hky01dl0040hy0k76";
type = "gem";
};
version = "1.7.3";
version = "1.8.0";
};
multi_json = {
groups = [ "default" ];
@@ -1610,10 +1616,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1hcwwr2h8jnqqxmf8mfb52b0dchr7pm064ingflb78wa00qhgk6m";
sha256 = "15anyh2ir3kdji93kw770xxwm5rspn9rzx9b9zh1h9gnclcd4173";
type = "gem";
};
version = "1.18.10";
version = "1.19.0";
};
oauth2 = {
dependencies = [
@@ -1717,10 +1723,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1q2zvkw34vk1vyhn5kp30783w1wzam9i9g5ygsdjn2gz59kzsw0i";
sha256 = "0bf3m2ds78scmgacb1wx38zjj1czzkym0bdmgi9vn99rgr6j1qy6";
type = "gem";
};
version = "1.0.2";
version = "2.0.1";
};
omniauth_openid_connect = {
dependencies = [
@@ -1937,10 +1943,10 @@
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "00silqnlzzm97gn21lm39q95hjn058waqky44j25r67p9drjy1hh";
sha256 = "11ggfikcs1lv17nhmhqyyp6z8nq5pkfcj6a904047hljkxm0qlvv";
type = "gem";
};
version = "1.7.0";
version = "1.9.0";
};
prometheus_exporter = {
dependencies = [ "webrick" ];
@@ -2010,6 +2016,7 @@
groups = [
"default"
"development"
"staging"
"test"
];
platforms = [
@@ -2028,10 +2035,10 @@
];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0vii1xc7x81hicdbp7dlllhmbw5w3jy20shj696n0vfbbnm2hhw1";
sha256 = "0x0r3gc66abv8i4dw0x0370b5hrshjfp6kpp7wbp178cy775fypb";
type = "gem";
};
version = "5.2.6";
version = "5.3.1";
};
public_suffix = {
groups = [
@@ -2180,15 +2187,16 @@
groups = [
"default"
"development"
"staging"
"test"
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "13brkq5xkj6lcdxj3f0k7v28hgrqhqxjlhd4y2vlicy5slgijdzp";
sha256 = "0s48d2a0z5f0cg4npvzznf933vipi6j7gmk16yc913kpadkw4ybc";
type = "gem";
};
version = "2.2.1";
version = "2.3.1";
};
rails = {
dependencies = [
@@ -2380,10 +2388,10 @@
];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0p4z1cs2zvkkvl0xiiy76ys1ipbhx0df15241jx7gnp61317qdbi";
sha256 = "0qvky4s2fx5xbaz1brxanalqbcky3c7xbqd6dicpih860zgrjj29";
type = "gem";
};
version = "6.16.1";
version = "7.1.0";
};
redis = {
dependencies = [ "redis-client" ];
@@ -2461,6 +2469,27 @@
};
version = "1.7.0";
};
resolv = {
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1bc3n2h2dpalms230rsh1zw0jr8nnpcm53x97b8in78y1p0f4372";
type = "gem";
};
version = "0.7.0";
};
resolv-replace = {
dependencies = [ "resolv" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0c1vb75a6wjn6cijlrpndqn2xia1nri1jpcigbibji57qqnwklkn";
type = "gem";
};
version = "0.2.0";
};
responders = {
dependencies = [
"actionpack"
@@ -3015,21 +3044,10 @@
];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "1v74k5yw7ndikr53wgbjn6j51p83qnzqbn9z4b53r102jcx3ri4r";
sha256 = "1q92y9627yisykyscv0bdsrrgyaajc2qr56dwlzx7ysgigjv4z63";
type = "gem";
};
version = "3.1.8";
};
strong_migrations = {
dependencies = [ "activerecord" ];
groups = [ "default" ];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "09llhlw9ddsjyv6c59z3yjwdhrxc2q60a60wjvqhrhhy96dkmjlb";
type = "gem";
};
version = "2.5.1";
version = "3.2.0";
};
super_diff = {
dependencies = [
@@ -3090,15 +3108,16 @@
groups = [
"default"
"development"
"staging"
"test"
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "0gcarlmpfbmqnjvwfz44gdjhcmm634di7plcx2zdgwdhrhifhqw7";
sha256 = "0wsy88vg2mazl039392hqrcwvs5nb9kq8jhhrrclir2px1gybag3";
type = "gem";
};
version = "1.4.0";
version = "1.5.0";
};
timeout = {
groups = [
@@ -3377,14 +3396,15 @@
groups = [
"default"
"development"
"staging"
"test"
];
platforms = [ ];
source = {
remotes = [ "https://rubygems.org" ];
sha256 = "119ypabas886gd0n9kiid3q41w76gz60s8qmiak6pljpkd56ps5j";
sha256 = "12zcvhzfnlghzw03czy2ifdlyfpq0kcbqcmxqakfkbxxavrr1vrb";
type = "gem";
};
version = "2.7.3";
version = "2.7.4";
};
}
+3 -3
View File
@@ -1,5 +1,5 @@
{
"version": "0.37.3",
"hash": "sha256-cZBT3ek5mzHbPr4aVHU47SNstEuBnpBNaCfaAe/IAEw=",
"npmHash": "sha256-wDe1Zx9HyheS76ltLtDQ+f4M7ohu/pyRuRaGGCnhkQI="
"version": "1.3.1",
"hash": "sha256-ziOp6R00uaWdv7KHHPe+2H5bX5fRtHmwhfoiQSSqEn4=",
"npmHash": "sha256-Y6tEaApfGXAtmy0W85+4qGbrEkUkrKXTssl7wXeVnQY="
}
+13 -2
View File
@@ -103,8 +103,19 @@ stdenv.mkDerivation (finalAttrs: {
libnsl
libnl
];
NIX_CFLAGS_LINK = "-lglib-2.0 -lpthread -ltirpc -lnl-3 -lnl-genl-3";
env.NIX_CFLAGS_COMPILE = toString [ "-I${libtirpc.dev}/include/tirpc" ];
env = {
NIX_CFLAGS_LINK = toString [
"-lglib-2.0"
"-lpthread"
"-ltirpc"
"-lnl-3"
"-lnl-genl-3"
];
NIX_CFLAGS_COMPILE = toString [
"-I${libtirpc.dev}/include/tirpc"
];
};
postPatch = ''
for patch in debian/patches/*.patch; do
patch < $patch
+47 -11
View File
@@ -1,8 +1,8 @@
diff --git a/frigate/data_processing/real_time/bird.py b/frigate/data_processing/real_time/bird.py
index d547f2dd..402876b7 100644
index 7851c0997..520440005 100644
--- a/frigate/data_processing/real_time/bird.py
+++ b/frigate/data_processing/real_time/bird.py
@@ -21,7 +21,7 @@ from .api import RealTimeProcessorApi
@@ -22,7 +22,7 @@ from .api import RealTimeProcessorApi
try:
from tflite_runtime.interpreter import Interpreter
except ModuleNotFoundError:
@@ -11,11 +11,46 @@ index d547f2dd..402876b7 100644
logger = logging.getLogger(__name__)
diff --git a/frigate/data_processing/real_time/custom_classification.py b/frigate/data_processing/real_time/custom_classification.py
index 229383d9f..2c74a6575 100644
--- a/frigate/data_processing/real_time/custom_classification.py
+++ b/frigate/data_processing/real_time/custom_classification.py
@@ -32,7 +32,7 @@ from .api import RealTimeProcessorApi
try:
from tflite_runtime.interpreter import Interpreter
except ModuleNotFoundError:
- from tensorflow.lite.python.interpreter import Interpreter
+ from ai_edge_litert.interpreter import Interpreter
logger = logging.getLogger(__name__)
@@ -76,7 +76,7 @@ class CustomStateClassificationProcessor(RealTimeProcessorApi):
try:
from tflite_runtime.interpreter import Interpreter
except ModuleNotFoundError:
- from tensorflow.lite.python.interpreter import Interpreter
+ from ai_edge_litert.interpreter import Interpreter
model_path = os.path.join(self.model_dir, "model.tflite")
labelmap_path = os.path.join(self.model_dir, "labelmap.txt")
diff --git a/frigate/detectors/detector_utils.py b/frigate/detectors/detector_utils.py
index d732de871..d8930b2ae 100644
--- a/frigate/detectors/detector_utils.py
+++ b/frigate/detectors/detector_utils.py
@@ -6,7 +6,7 @@ import numpy as np
try:
from tflite_runtime.interpreter import Interpreter, load_delegate
except ModuleNotFoundError:
- from tensorflow.lite.python.interpreter import Interpreter, load_delegate
+ from ai_edge_litert.interpreter import Interpreter, load_delegate
logger = logging.getLogger(__name__)
diff --git a/frigate/detectors/plugins/cpu_tfl.py b/frigate/detectors/plugins/cpu_tfl.py
index 8a54363e..68ae558b 100644
index 00351f519..6d336bb6b 100644
--- a/frigate/detectors/plugins/cpu_tfl.py
+++ b/frigate/detectors/plugins/cpu_tfl.py
@@ -10,7 +10,7 @@ from frigate.detectors.detector_config import BaseDetectorConfig
@@ -12,7 +12,7 @@ from ..detector_utils import tflite_detect_raw, tflite_init
try:
from tflite_runtime.interpreter import Interpreter
except ModuleNotFoundError:
@@ -25,23 +60,23 @@ index 8a54363e..68ae558b 100644
logger = logging.getLogger(__name__)
diff --git a/frigate/detectors/plugins/edgetpu_tfl.py b/frigate/detectors/plugins/edgetpu_tfl.py
index 246d2dd4..e855bf87 100644
index 2b94fde39..36c769b4b 100644
--- a/frigate/detectors/plugins/edgetpu_tfl.py
+++ b/frigate/detectors/plugins/edgetpu_tfl.py
@@ -11,7 +11,7 @@ from frigate.detectors.detector_config import BaseDetectorConfig
@@ -13,7 +13,7 @@ from frigate.detectors.detector_config import BaseDetectorConfig, ModelTypeEnum
try:
from tflite_runtime.interpreter import Interpreter, load_delegate
except ModuleNotFoundError:
- from tensorflow.lite.python.interpreter import Interpreter, load_delegate
+ from ai_edge_litert.interpreter import Interpreter, load_delegate
logger = logging.getLogger(__name__)
diff --git a/frigate/embeddings/onnx/face_embedding.py b/frigate/embeddings/onnx/face_embedding.py
index eb04b43b..0c6c26fc 100644
index 04d756897..75dfedc94 100644
--- a/frigate/embeddings/onnx/face_embedding.py
+++ b/frigate/embeddings/onnx/face_embedding.py
@@ -14,7 +14,7 @@ from .runner import ONNXModelRunner
@@ -17,7 +17,7 @@ from .base_embedding import BaseEmbedding
try:
from tflite_runtime.interpreter import Interpreter
except ModuleNotFoundError:
@@ -51,10 +86,10 @@ index eb04b43b..0c6c26fc 100644
logger = logging.getLogger(__name__)
diff --git a/frigate/events/audio.py b/frigate/events/audio.py
index f2a217fd..82206b5a 100644
index e88f2ae71..ad87d19c1 100644
--- a/frigate/events/audio.py
+++ b/frigate/events/audio.py
@@ -36,7 +36,7 @@ from frigate.video import start_or_restart_ffmpeg, stop_ffmpeg
@@ -43,7 +43,7 @@ from frigate.video import start_or_restart_ffmpeg, stop_ffmpeg
try:
from tflite_runtime.interpreter import Interpreter
except ModuleNotFoundError:
@@ -62,3 +97,4 @@ index f2a217fd..82206b5a 100644
+ from ai_edge_litert.interpreter import Interpreter
logger = logging.getLogger(__name__)
-22
View File
@@ -1,22 +0,0 @@
diff --git a/frigate/comms/webpush.py b/frigate/comms/webpush.py
index c5986d45..b767e19e 100644
--- a/frigate/comms/webpush.py
+++ b/frigate/comms/webpush.py
@@ -17,7 +17,7 @@ from titlecase import titlecase
from frigate.comms.base_communicator import Communicator
from frigate.comms.config_updater import ConfigSubscriber
from frigate.config import FrigateConfig
-from frigate.const import CONFIG_DIR
+from frigate.const import BASE_DIR, CONFIG_DIR
from frigate.models import User
logger = logging.getLogger(__name__)
@@ -333,7 +333,7 @@ class WebPushClient(Communicator): # type: ignore[misc]
title = f"{titlecase(', '.join(sorted_objects).replace('_', ' '))}{' was' if state == 'end' else ''} detected in {titlecase(', '.join(payload['after']['data']['zones']).replace('_', ' '))}"
message = f"Detected on {titlecase(camera.replace('_', ' '))}"
- image = f"{payload['after']['thumb_path'].replace('/media/frigate', '')}"
+ image = f"{payload['after']['thumb_path'].replace(BASE_DIR, '')}"
# if event is ongoing open to live view otherwise open to recordings view
direct_url = f"/review?id={reviewId}" if state == "end" else f"/#{camera}"
+4 -4
View File
@@ -1,5 +1,5 @@
diff --git a/frigate/config/camera/ffmpeg.py b/frigate/config/camera/ffmpeg.py
index 04bbfac7..396bcc4b 100644
index 2c1e4cdca..d1a1f7065 100644
--- a/frigate/config/camera/ffmpeg.py
+++ b/frigate/config/camera/ffmpeg.py
@@ -1,4 +1,5 @@
@@ -8,7 +8,7 @@ index 04bbfac7..396bcc4b 100644
from typing import Union
from pydantic import Field, field_validator
@@ -69,21 +70,11 @@ class FfmpegConfig(FrigateBaseModel):
@@ -71,21 +72,11 @@ class FfmpegConfig(FrigateBaseModel):
@property
def ffmpeg_path(self) -> str:
@@ -33,10 +33,10 @@ index 04bbfac7..396bcc4b 100644
class CameraRoleEnum(str, Enum):
diff --git a/frigate/record/export.py b/frigate/record/export.py
index 0d3f96da..463bcff4 100644
index d4b49bb4b..bbcccff61 100644
--- a/frigate/record/export.py
+++ b/frigate/record/export.py
@@ -126,7 +126,7 @@ class RecordingExporter(threading.Thread):
@@ -127,7 +127,7 @@ class RecordingExporter(threading.Thread):
minutes = int(diff / 60)
seconds = int(diff % 60)
ffmpeg_cmd = [
@@ -0,0 +1,13 @@
diff --git a/frigate/detectors/plugins/teflon_tfl.py b/frigate/detectors/plugins/teflon_tfl.py
index 7e29d6630..98e446d84 100644
--- a/frigate/detectors/plugins/teflon_tfl.py
+++ b/frigate/detectors/plugins/teflon_tfl.py
@@ -26,7 +26,7 @@ class TeflonTfl(DetectionApi):
def __init__(self, detector_config: TeflonDetectorConfig):
# Location in Debian's mesa-teflon-delegate
- delegate_library = "/usr/lib/teflon/libteflon.so"
+ delegate_library = "@driverLink@/lib/libteflon.so"
device_config = {}
interpreter = tflite_load_delegate_interpreter(
@@ -1,19 +1,12 @@
Disable the SimplifedLayerNormFusion optimization for onnxruntime embedding
models to prevent a crash when using FP16 models (like jinna-clip-v1) with newer
onnxruntime versions.
https://github.com/microsoft/onnxruntime/issues/26717#issuecomment-3800462654
diff --git a/frigate/embeddings/onnx/runner.py b/frigate/embeddings/onnx/runner.py
index c34c97a8d..dca91daae 100644
--- a/frigate/embeddings/onnx/runner.py
+++ b/frigate/embeddings/onnx/runner.py
@@ -52,6 +52,7 @@ class ONNXModelRunner:
model_path,
providers=providers,
provider_options=options,
+ disabled_optimizers=["SimplifiedLayerNormFusion"],
)
def get_input_names(self) -> list[str]:
diff --git a/frigate/detectors/detection_runners.py b/frigate/detectors/detection_runners.py
index fcbb41e66..5b4d3f310 100644
--- a/frigate/detectors/detection_runners.py
+++ b/frigate/detectors/detection_runners.py
@@ -603,6 +603,7 @@ def get_optimized_runner(
),
providers=providers,
provider_options=options,
+ disabled_optimizers=["SimplifiedLayerNormFusion"],
),
model_type=model_type,
)
+38 -26
View File
@@ -1,6 +1,8 @@
{
lib,
stdenv,
replaceVars,
addDriverRunpath,
callPackage,
python313Packages,
fetchFromGitHub,
@@ -9,18 +11,17 @@
sqlite-vec,
frigate,
nixosTests,
fetchpatch,
}:
let
version = "0.16.4";
version = "0.17.0";
src = fetchFromGitHub {
name = "frigate-${version}-source";
owner = "blakeblackshear";
repo = "frigate";
tag = "v${version}";
hash = "sha256-TPiCT/z0YuoQkQsxyZsRMQa0XwqMLCgwMbrASOKrMjA=";
hash = "sha256-K41tWnj0u+Fw+G++aPFfMa0uFYEvvZ0r6xNPQ7J1cYs=";
};
frigate-web = callPackage ./web.nix {
@@ -38,6 +39,9 @@ let
hash = "sha256-95xtUzzIxxvDtpHX/5uCHnTQTB8Fc08DZGUOR/SdKLs=";
};
});
huggingface-hub = super.huggingface-hub_0;
transformers = super.transformers_4;
};
};
python3Packages = python.pkgs;
@@ -77,27 +81,23 @@ python3Packages.buildPythonApplication rec {
inherit src;
patches = [
./constants.patch
# Fixes hardcoded path /media/frigate/clips/faces. Remove in next version.
(fetchpatch {
url = "https://github.com/blakeblackshear/frigate/commit/b86e6e484f64bd43b64d7adebe78671a7a426edb.patch";
hash = "sha256-1+n0n0yCtjfAHkXzsZdIF0iCVdPGmsG7l8/VTqBVEjU=";
})
# Always lookup ffmpeg from config setting
./ffmpeg.patch
# Adjust libteflon.so location
(replaceVars ./libteflon-driverlink-path.patch {
inherit (addDriverRunpath) driverLink;
})
# Use ai-edge-litert as tensorflow interpreter
# https://github.com/blakeblackshear/frigate/pull/21876
./ai-edge-litert.patch
(fetchpatch {
# peewee-migrate 0.14.x compat
url = "https://github.com/blakeblackshear/frigate/commit/dde02cadb2168c44e9eb395ddfbb7b169096bd15.patch";
excludes = [
"docker/main/requirements-wheels.txt"
"migrations/031_create_trigger_table.py"
"migrations/032_add_password_changed_at.py"
];
hash = "sha256-RrmwjE4SHJIUOYfqcCtMy9Pht7UXhHcoAZlFQv9aQFw=";
})
# Disable failing optimization in onnxruntime
# https://github.com/microsoft/onnxruntime/issues/26717
./onnxruntime-compat.patch
# Fix excessive trailing whitespaces in process commandlines
# https://github.com/blakeblackshear/frigate/pull/22089
./proc-cmdline-strip.patch
];
@@ -107,7 +107,7 @@ python3Packages.buildPythonApplication rec {
substituteInPlace \
frigate/app.py \
frigate/test/test_{http,storage}.py \
frigate/test/test_storage.py \
frigate/test/http_api/base_http_test.py \
--replace-fail "Router(migrate_db)" 'Router(migrate_db, "${placeholder "out"}/share/frigate/migrations")'
@@ -118,7 +118,13 @@ python3Packages.buildPythonApplication rec {
--replace-fail "/config" "/var/lib/frigate" \
--replace-fail "{CONFIG_DIR}/model_cache" "/var/cache/frigate/model_cache"
substituteInPlace frigate/comms/{config,embeddings}_updater.py frigate/comms/{zmq_proxy,inter_process}.py \
substituteInPlace \
frigate/comms/config_updater.py \
frigate/comms/embeddings_updater.py \
frigate/comms/inter_process.py \
frigate/comms/object_detector_signaler.py \
frigate/comms/zmq_proxy.py \
frigate/detectors/plugins/zmq_ipc.py \
--replace-fail "ipc:///tmp/cache" "ipc:///run/frigate"
substituteInPlace frigate/db/sqlitevecq.py \
@@ -140,25 +146,27 @@ python3Packages.buildPythonApplication rec {
dontBuild = true;
dependencies = with python3Packages; [
# docker/main/requirements.txt
scikit-build
# docker/main/requirements-wheel.txt
# TODO: degirum (no source repo, binary wheels only)
ai-edge-litert
aiofiles
aiohttp
appdirs
argcomplete
contextlib2
click
contextlib2
cryptography
distlib
fastapi
faster-whisper
filelock
google-genai
importlib-metadata
importlib-resources
google-generativeai
joserfc
levenshtein
librosa
markupsafe
memray
netaddr
netifaces
norfair
@@ -184,14 +192,18 @@ python3Packages.buildPythonApplication rec {
py-vapid
pywebpush
pyzmq
rapidfuzz
requests
ruamel-yaml
scipy
setproctitle
shapely
sherpa-onnx
slowapi
soundfile
starlette
starlette-context
tensorflow
titlecase
transformers
tzlocal
@@ -1,13 +1,8 @@
Strip trailing whitespace from process commandlines. This is annoying for exact
process matches against Prometheus labels.
https://github.com/blakeblackshear/frigate/pull/22089
diff --git a/frigate/util/services.py b/frigate/util/services.py
index b31a7eea3..f1e8f0f5f 100644
index 64d83833d..912ce67bd 100644
--- a/frigate/util/services.py
+++ b/frigate/util/services.py
@@ -118,7 +118,7 @@ def get_cpu_stats() -> dict[str, dict]:
@@ -121,7 +121,7 @@ def get_cpu_stats() -> dict[str, dict]:
pid = str(process.info["pid"])
try:
cpu_percent = process.info["cpu_percent"]
@@ -16,7 +11,7 @@ index b31a7eea3..f1e8f0f5f 100644
with open(f"/proc/{pid}/stat", "r") as f:
stats = f.readline().split()
@@ -152,7 +152,7 @@ def get_cpu_stats() -> dict[str, dict]:
@@ -155,7 +155,7 @@ def get_cpu_stats() -> dict[str, dict]:
"cpu": str(cpu_percent),
"cpu_average": str(round(cpu_average_usage, 2)),
"mem": f"{mem_pct}",
+4 -5
View File
@@ -18,21 +18,20 @@ buildNpmPackage {
--replace-fail '/BASE_PATH/' '/'
substituteInPlace \
src/pages/Exports.tsx \
src/components/preview/ScrubbablePreview.tsx \
src/components/card/AnimatedEventCard.tsx \
src/components/card/ExportCard.tsx \
src/components/card/ReviewCard.tsx \
src/components/card/AnimatedEventCard.tsx \
src/components/player/PreviewThumbnailPlayer.tsx \
src/components/preview/ScrubbablePreview.tsx \
src/pages/Exports.tsx \
src/views/system/StorageMetrics.tsx \
src/components/timeline/EventSegment.tsx \
--replace-fail "/media/frigate" "/var/lib/frigate" \
substituteInPlace src/views/system/StorageMetrics.tsx \
--replace-fail "/tmp/cache" "/var/cache/frigate"
'';
npmDepsHash = "sha256-CrK/6BaKmKIxlohEZdGEEKJkioszBUupyKQx4nBeLqI=";
npmDepsHash = "sha256-iIqP3pspkDbaXZkZ5MIT/GVGiKBJCkFXQ7Av5h1rWKk=";
installPhase = ''
cp -rv dist/ $out
+4 -5
View File
@@ -40,13 +40,12 @@ rustPlatform.buildRustPackage (finalAttrs: {
env = {
OPENSSL_NO_VENDOR = 1;
NIX_CFLAGS_LINK = toString [
"-L${lib.getLib openssl}/lib"
"-L${lib.getLib sqlite}/lib"
];
};
NIX_CFLAGS_LINK = [
"-L${lib.getLib openssl}/lib"
"-L${lib.getLib sqlite}/lib"
];
passthru.updateScript = unstableGitUpdater { };
meta = {
@@ -13,23 +13,23 @@
buildNpmPackage.override { nodejs = nodejs_22; } (finalAttrs: {
pname = "homebridge-config-ui-x";
version = "5.17.0";
version = "5.18.0";
src = fetchFromGitHub {
owner = "homebridge";
repo = "homebridge-config-ui-x";
tag = "v${finalAttrs.version}";
hash = "sha256-6s3Ia9vWuYJjNnE4iQz8jbOKjcn5dGe8DjpGcsrSwEc=";
hash = "sha256-bdE/uu3uh3qgPNaDKU47wD1LtER/wJfLmwp2J624rK4=";
};
# Deps hash for the root package
npmDepsHash = "sha256-HrTnzoN/Mku60U84bh0I+ImlyCLVcfMlOAfjkezHErE=";
npmDepsHash = "sha256-pbmnAAQs6RVwklAoKY4LY0k+nheX2BeAgkQEFNVDofc=";
# Deps src and hash for ui subdirectory
npmDeps_ui = fetchNpmDeps {
name = "npm-deps-ui";
src = "${finalAttrs.src}/ui";
hash = "sha256-RNzPrSdHYEd8U3FD9h7DiLCWVuRojZgL+Q5mmsPm9wc=";
hash = "sha256-uBB2WxbCXJL2Ys6sMFcLUlh88TLAz3U+XMhvDc8yFPk=";
};
# Need to also run npm ci in the ui subdirectory
+9 -5
View File
@@ -47,11 +47,15 @@ stdenv.mkDerivation (finalAttrs: {
];
nativeBuildInputs = [ makeWrapper ];
env.NIX_CFLAGS_COMPILE = toString [
"-I${lib.getInclude SDL2}/include/SDL2"
"-I${opusfile.dev}/include/opus"
];
NIX_CFLAGS_LINK = [ "-lSDL2" ];
env = {
NIX_CFLAGS_COMPILE = toString [
"-I${lib.getInclude SDL2}/include/SDL2"
"-I${opusfile.dev}/include/opus"
];
NIX_CFLAGS_LINK = toString [
"-lSDL2"
];
};
postInstall = ''
for i in `find $out/opt/iortcw -maxdepth 1 -type f -executable`; do
+4 -1
View File
@@ -78,7 +78,10 @@ stdenv.mkDerivation (finalAttrs: {
'';
# Needed on Darwin.
NIX_CFLAGS_LINK = "-logg -lvorbis";
env.NIX_CFLAGS_LINK = toString [
"-logg"
"-lvorbis"
];
# Broken with libopus >= 1.6.0
doCheck = false;
+2 -2
View File
@@ -47,14 +47,14 @@ assert
python.pkgs.buildPythonApplication rec {
pname = "music-assistant";
version = "2.7.8";
version = "2.7.9";
pyproject = true;
src = fetchFromGitHub {
owner = "music-assistant";
repo = "server";
tag = version;
hash = "sha256-o17H8cmMC8szh/hfgdq0JWCPh45TkrhuXOikr+DcBw8=";
hash = "sha256-c6WTalpjaZcUvppyYaTP03ErX5b+k7fUbphj58FVBS8=";
};
patches = [
@@ -1,7 +1,7 @@
# Do not edit manually, run ./update-providers.py
{
version = "2.7.8";
version = "2.7.9";
providers = {
airplay =
ps: with ps; [
+1 -1
View File
@@ -93,7 +93,7 @@ stdenv.mkDerivation rec {
cp $notoFont $out/share/games/openspades/Resources/
'';
NIX_CFLAGS_LINK = "-lopenal";
env.NIX_CFLAGS_LINK = "-lopenal";
meta = {
description = "Compatible client of Ace of Spades 0.75";
-12
View File
@@ -1,12 +0,0 @@
diff --git i/src/Implicit/impSurface.h w/src/Implicit/impSurface.h
index 41fab81..027587f 100644
--- i/src/Implicit/impSurface.h
+++ w/src/Implicit/impSurface.h
@@ -25,6 +25,7 @@
#ifdef WIN32
#include <windows.h>
#endif
+#include <cstddef>
#include <vector>
#include <GL/gl.h>
-54
View File
@@ -1,54 +0,0 @@
{
lib,
stdenv,
fetchurl,
autoconf,
pkg-config,
libx11,
libxext,
libGLU,
libGL,
imagemagick6,
libtiff,
bzip2,
}:
stdenv.mkDerivation rec {
version = "0.9.1";
pname = "rss-glx";
src = fetchurl {
url = "mirror://sourceforge/rss-glx/rss-glx_${version}.tar.bz2";
sha256 = "1aikafjqrfmv23jnrrm5d56dg6injh4l67zjdxzdapv9chw7g3cg";
};
nativeBuildInputs = [
autoconf
pkg-config
];
buildInputs = [
libGLU
libGL
libx11
libxext
imagemagick6
libtiff
bzip2
];
patches = [
./cstddef.patch
];
env.NIX_CFLAGS_COMPILE = "-I${imagemagick6.dev}/include/ImageMagick";
meta = {
description = "Really Slick Screensavers Port to GLX";
longDescription = ''
This package currently contains all of the screensavers from the
original collection, plus a few others.
'';
license = lib.licenses.gpl2Only;
platforms = lib.platforms.linux;
};
}
+3 -3
View File
@@ -26,14 +26,14 @@
stdenv.mkDerivation (finalAttrs: {
pname = "s7";
version = "11.7-unstable-2026-02-20";
version = "11.7-unstable-2026-02-27";
src = fetchFromGitLab {
domain = "cm-gitlab.stanford.edu";
owner = "bil";
repo = "s7";
rev = "d4abc485036d30b65bc80ef041690a1d1fc371c8";
hash = "sha256-nJskuS4WM58na0ohsNppqKiOLa98TInXkaWvPzhctoY=";
rev = "762eed4ddfc1134f8b18b74a0cc39434a65bc64c";
hash = "sha256-3ww14LOWres0HA/4TRNMmNFkaFVqXBOrpsJgFv6qaYY=";
};
buildInputs =
+2 -2
View File
@@ -7,14 +7,14 @@
buildGoModule (finalAttrs: {
pname = "tempo";
version = "2.10.0";
version = "2.10.1";
src = fetchFromGitHub {
owner = "grafana";
repo = "tempo";
tag = "v${finalAttrs.version}";
fetchSubmodules = true;
hash = "sha256-ciiJg8PdvifYGalfo/V8RFTKkZ8pHM9RlwfGRKeRAhU=";
hash = "sha256-XhtG3+0Xy7Bi3RuY5MNcHB7Hp6lXjzksdGu7eztXmnU=";
};
vendorHash = null;
+3 -3
View File
@@ -9,19 +9,19 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "tombi";
version = "0.7.31";
version = "0.7.33";
src = fetchFromGitHub {
owner = "tombi-toml";
repo = "tombi";
tag = "v${finalAttrs.version}";
hash = "sha256-1md4NoDoqTcIPXzMK9IdYk8PCf0jcZIUcOViAm7N+90=";
hash = "sha256-MNzz4mgHiKdmrkKwh2E6XlQK2jelEnjoFHolpZJxjw0=";
};
# Tests relies on the presence of network
doCheck = false;
cargoBuildFlags = [ "--package tombi-cli" ];
cargoHash = "sha256-a7+M+KOYD3SboIzg1kmNV+kehHsae0/+C6hneBeRFGo=";
cargoHash = "sha256-5EZNL5aBdS+1TI4Gx2AQw6Di+5rYQBR3ukexSnFFIcs=";
postPatch = ''
substituteInPlace Cargo.toml \
+3 -1
View File
@@ -85,7 +85,9 @@ stdenv.mkDerivation (finalAttrs: {
# cross compiles correctly but needs the following
lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ "--disable-tool-name-check" ];
NIX_CFLAGS_LINK = lib.optionalString stdenv.cc.isGNU "-lgcc_s";
env = lib.optionalAttrs stdenv.cc.isGNU {
NIX_CFLAGS_LINK = "-lgcc_s";
};
postPatch = ''
substituteInPlace contrib/client-tools/torify \
+15 -14
View File
@@ -30,12 +30,21 @@ stdenv.mkDerivation (finalAttrs: {
sha256 = "1drhh08cqqkwv1yz3z4ngkplr23pqqrdx6cp8c3isy320gy25cvb";
};
# Workaround build failure on -fno-common toolchains:
# ld: r_gl.h:52: multiple definition of `qglGenBuffers';
# r_gl.h:52: first defined here
# TODO: drop once release contains upstream fix:
# https://github.com/ufoai/ufoai/commit/8a3075fffdad294e
env.NIX_CFLAGS_COMPILE = "-fcommon";
env = {
# Workaround build failure on -fno-common toolchains:
# ld: r_gl.h:52: multiple definition of `qglGenBuffers';
# r_gl.h:52: first defined here
# TODO: drop once release contains upstream fix:
# https://github.com/ufoai/ufoai/commit/8a3075fffdad294e
NIX_CFLAGS_COMPILE = "-fcommon";
NIX_CFLAGS_LINK = toString [
# to avoid occasional runtime error in finding libgcc_s.so.1
"-lgcc_s"
# tests are underlinked against libm:
# ld: release-linux-x86_64/testall/client/sound/s_mix.c.o: undefined reference to symbol 'acos@@GLIBC_2.2.5'
"-lm"
];
};
preConfigure = ''tar xvf "${finalAttrs.srcData}"'';
@@ -60,14 +69,6 @@ stdenv.mkDerivation (finalAttrs: {
cunit
];
NIX_CFLAGS_LINK = [
# to avoid occasional runtime error in finding libgcc_s.so.1
"-lgcc_s"
# tests are underlinked against libm:
# ld: release-linux-x86_64/testall/client/sound/s_mix.c.o: undefined reference to symbol 'acos@@GLIBC_2.2.5'
"-lm"
];
meta = {
homepage = "http://ufoai.org";
description = "Squad-based tactical strategy game in the tradition of X-Com";
@@ -6,14 +6,14 @@
python3Packages.buildPythonApplication (finalAttrs: {
pname = "wyoming-faster-whisper";
version = "2.5.0";
version = "3.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "rhasspy";
repo = "wyoming-faster-whisper";
tag = "v${finalAttrs.version}";
hash = "sha256-MKB6gZdGdAYoNK8SRiDHG8xtMZ5mXdaSn+bH4T6o/K4=";
hash = "sha256-p1FCyj/D7ndKJD1/V5YzhT0xlkg61DSx2m3DCELmPO8=";
};
build-system = with python3Packages; [
@@ -25,18 +25,33 @@ python3Packages.buildPythonApplication (finalAttrs: {
"wyoming"
];
pythonRemoveDeps = [
# https://github.com/rhasspy/wyoming-faster-whisper/pull/81
"requests"
];
dependencies = with python3Packages; [
faster-whisper
wyoming
];
optional-dependencies = {
transformers =
with python3Packages;
[
transformers
]
++ transformers.optional-dependencies.torch;
optional-dependencies = with python3Packages; {
transformers = [
transformers
]
++ transformers.optional-dependencies.torch;
sherpa = [
sherpa-onnx
];
onnx_asr = [
onnx-asr
]
++ onnx-asr.optional-dependencies.cpu
++ onnx-asr.optional-dependencies.hub;
zeroconf = [
wyoming
]
++ wyoming.optional-dependencies.zeroconf;
};
pythonImportsCheck = [
+1 -1
View File
@@ -28,7 +28,7 @@ stdenv.mkDerivation (finalAttrs: {
motif
];
NIX_CFLAGS_LINK = "-lXpm";
env.NIX_CFLAGS_LINK = "-lXpm";
configureFlags = [
"--with-x"
+2 -2
View File
@@ -16,13 +16,13 @@
stdenv.mkDerivation rec {
pname = "xv";
version = "6.1.0";
version = "6.2.0";
src = fetchFromGitHub {
owner = "jasper-software";
repo = "xv";
rev = "v${version}";
sha256 = "sha256-bq9xEGQRzWZ3/Unu49q6EW9/XSCgpalyXn4l4Mg255g=";
sha256 = "sha256-LylTpHTifH/n2vAPlLQooVM3Oox2BJ9eoQYx3USQ/No=";
};
nativeBuildInputs = [ cmake ];
+1 -1
View File
@@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
sourceRoot = ".";
NIX_CFLAGS_LINK = [
env.NIX_CFLAGS_LINK = toString [
"-lopenal"
"-lfluidsynth"
];
+13 -11
View File
@@ -103,18 +103,20 @@ stdenv.mkDerivation (finalAttrs: {
]
++ lib.optional withEditor wxGTK32;
env.NIX_CFLAGS_COMPILE = toString [
"-I${xorgproto}/include"
"-I${libx11.dev}/include"
"-I${libxcursor.dev}/include"
"-I${SDL2}/include/SDL2"
"-I${fmt_9.dev}/include"
"-I${nvidia-texture-tools.dev}/include"
];
env = {
NIX_CFLAGS_COMPILE = toString [
"-I${xorgproto}/include"
"-I${libx11.dev}/include"
"-I${libxcursor.dev}/include"
"-I${SDL2}/include/SDL2"
"-I${fmt_9.dev}/include"
"-I${nvidia-texture-tools.dev}/include"
];
NIX_CFLAGS_LINK = toString [
"-L${nvidia-texture-tools.lib}/lib/static"
];
NIX_CFLAGS_LINK = toString [
"-L${nvidia-texture-tools.lib}/lib/static"
];
};
patches = [
./rootdir_env.patch
+1 -1
View File
@@ -17855,7 +17855,7 @@ self: {
badPlatforms = lib.platforms.darwin;
hydraPlatforms = lib.platforms.none;
}
) { inherit (pkgs) pfstools; };
) { pfstools = null; };
HERA = callPackage (
{
@@ -60,7 +60,7 @@ stdenv.mkDerivation rec {
];
# Fix broken DT_NEEDED in lib/redland/librdf_storage_sqlite.so.
NIX_CFLAGS_LINK = "-lraptor2";
env.NIX_CFLAGS_LINK = "-lraptor2";
doCheck = false; # fails 1 out of 17 tests with a segmentation fault
@@ -20,14 +20,14 @@
buildPythonPackage rec {
pname = "aiosendspin";
version = "3.0.1";
version = "2.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Sendspin";
repo = "aiosendspin";
tag = version;
hash = "sha256-Z0hQyJayA/8OR6nkKxd1HfjskX+WBBkBl7l8rleV+fo=";
hash = "sha256-9VhNtfXH2r/cGkscz51PIK2/66pPOGv0S0IpO0wFvO4=";
};
# https://github.com/Sendspin/aiosendspin/blob/1.2.0/pyproject.toml#L7
@@ -55,6 +55,9 @@ buildPythonPackage rec {
"aiosendspin"
];
# needs manual compat testing with music-assistant (sendspin provider)
passthru.skipBulkUpdate = true; # nixpkgs-update: no auto update
meta = {
changelog = "https://github.com/Sendspin/aiosendspin/releases/tag/${src.tag}";
description = "Async Python library implementing the Sendspin Protocol";
@@ -9,18 +9,23 @@
buildPythonPackage rec {
pname = "cucumber-expressions";
version = "18.1.0";
version = "19.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "cucumber";
repo = "cucumber-expressions";
tag = "v${version}";
hash = "sha256-X/ukgf5+Tn0G9E40W8KsVfo3f0NYEOnYWag4IXmHjY8=";
hash = "sha256-0KuHvByHYx7/mjySfWIKp1+ZYw+XNO25eoo5DhPcUsY=";
};
sourceRoot = "${src.name}/python";
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "uv_build>=0.9.0,<0.10.0" uv_build
'';
build-system = [ uv-build ];
pythonImportsCheck = [ "cucumber_expressions" ];
@@ -5,27 +5,30 @@
pytestCheckHook,
pytest-html,
pyyaml,
setuptools,
setuptools-scm,
uv-build,
}:
buildPythonPackage rec {
pname = "cucumber-tag-expressions";
version = "7.0.0";
version = "9.1.0";
pyproject = true;
src = fetchFromGitHub {
owner = "cucumber";
repo = "tag-expressions";
tag = "v${version}";
hash = "sha256-U8x7c4NeP9GdwormQD79RWcAA2B39Yvrf/Zk0xTUtNA=";
hash = "sha256-jkuez7C3YDGmv484Lmc5PszVbnVXkcC12RryvTJkxxg=";
};
sourceRoot = "${src.name}/python";
postPatch = ''
substituteInPlace pyproject.toml \
--replace-fail "uv_build>=0.10.0,<0.11.0" uv_build
'';
build-system = [
setuptools
setuptools-scm
uv-build
];
nativeCheckInputs = [
@@ -35,6 +38,7 @@ buildPythonPackage rec {
];
meta = {
changelog = "https://github.com/cucumber/tag-expressions/blob/${src.tag}/CHANGELOG.md";
homepage = "https://github.com/cucumber/tag-expressions";
description = "Provides tag-expression parser for cucumber/behave";
license = lib.licenses.mit;
@@ -0,0 +1,124 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
setuptools,
# dependencies
filelock,
fsspec,
hf-xet,
packaging,
pyyaml,
requests,
tqdm,
typing-extensions,
# optional-dependencies
# cli
inquirerpy,
# inference
aiohttp,
# torch
torch,
safetensors,
# hf_transfer
hf-transfer,
# fastai
toml,
fastai,
fastcore,
# tensorflow
tensorflow,
pydot,
graphviz,
# tensorflow-testing
keras,
# tests
versionCheckHook,
}:
buildPythonPackage rec {
pname = "huggingface-hub";
version = "0.36.2";
pyproject = true;
src = fetchFromGitHub {
owner = "huggingface";
repo = "huggingface_hub";
tag = "v${version}";
hash = "sha256-cUp5Mm8vgJI/0N/9inQVedGWRde8lioduFoccq6b7UE=";
};
build-system = [ setuptools ];
dependencies = [
filelock
fsspec
hf-xet
packaging
pyyaml
requests
tqdm
typing-extensions
];
optional-dependencies = {
all = [
];
cli = [
inquirerpy
];
inference = [
aiohttp
];
torch = [
torch
safetensors
]
++ safetensors.optional-dependencies.torch;
hf_transfer = [
hf-transfer
];
fastai = [
toml
fastai
fastcore
];
tensorflow = [
tensorflow
pydot
graphviz
];
tensorflow-testing = [
tensorflow
keras
];
hf_xet = [
hf-xet
];
};
nativeCheckInputs = [
versionCheckHook
];
versionCheckProgramArg = "version";
pythonImportsCheck = [ "huggingface_hub" ];
meta = {
description = "Download and publish models and other files on the huggingface.co hub";
mainProgram = "hf";
homepage = "https://github.com/huggingface/huggingface_hub";
changelog = "https://github.com/huggingface/huggingface_hub/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [
GaetanLepage
osbm
];
};
}
@@ -2,6 +2,7 @@
lib,
buildPythonPackage,
fetchFromGitHub,
gitUpdater,
# build-system
hatchling,
@@ -12,24 +13,28 @@
pymongo,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "langgraph-checkpoint-mongodb";
version = "0.11.0";
version = "0.3.1";
pyproject = true;
src = fetchFromGitHub {
owner = "langchain-ai";
repo = "langchain-mongodb";
tag = "libs/langchain-mongodb/v${version}";
hash = "sha256-dO0dASjyNMxnbxZ/ry8lcJxedPdrv6coYiTjOcaT8/0=";
tag = "libs/langgraph-checkpoint-mongodb/v${finalAttrs.version}";
hash = "sha256-vCiZ6Mp6aHmSEkLbeM6qTLJaxH0uoAdq80olTT5saX0=";
};
sourceRoot = "${src.name}/libs/langgraph-checkpoint-mongodb";
sourceRoot = "${finalAttrs.src.name}/libs/langgraph-checkpoint-mongodb";
build-system = [
hatchling
];
pythonRelaxDeps = [
"pymongo"
];
dependencies = [
langgraph-checkpoint
langchain-mongodb
@@ -41,14 +46,22 @@ buildPythonPackage rec {
# Connection refused (to localhost:27017) for all tests
doCheck = false;
passthru = {
# python updater script sets the wrong tag
skipBulkUpdate = true;
updateScript = gitUpdater {
rev-prefix = "libs/langgraph-checkpoint-mongodb/v";
};
};
# no pythonImportsCheck as this package does not provide any direct imports
pythonImportsCheck = [ "langgraph.checkpoint.mongodb" ];
meta = {
description = "Integrations between MongoDB, Atlas, LangChain, and LangGraph";
homepage = "https://github.com/langchain-ai/langchain-mongodb/tree/main/libs/langgraph-checkpoint-mongodb";
changelog = "https://github.com/langchain-ai/langchain-mongodb/releases/tag/${src.tag}";
changelog = "https://github.com/langchain-ai/langchain-mongodb/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ sarahec ];
};
}
})
@@ -26,14 +26,14 @@
buildPythonPackage rec {
pname = "langgraph-checkpoint";
version = "3.0.1";
version = "4.0.0";
pyproject = true;
src = fetchFromGitHub {
owner = "langchain-ai";
repo = "langgraph";
tag = "checkpoint==${version}";
hash = "sha256-3hh1KyEIsp9JzhaJW1ycp179FGpggPYzg6OwnD/cTBM=";
hash = "sha256-IE9Y+kFkDN49SuwvTNwa2kK+Hig18sJPZmZCqHUP3DM=";
};
sourceRoot = "${src.name}/libs/checkpoint";
@@ -2,6 +2,7 @@
lib,
buildPythonPackage,
fetchFromGitHub,
nix-update-script,
# build-system
hatchling,
@@ -11,19 +12,19 @@
langchain-mongodb,
}:
buildPythonPackage rec {
buildPythonPackage (finalAttrs: {
pname = "langgraph-store-mongodb";
version = "0.11.0";
version = "0.2.0";
pyproject = true;
src = fetchFromGitHub {
owner = "langchain-ai";
repo = "langchain-mongodb";
tag = "libs/langchain-mongodb/v${version}";
hash = "sha256-dO0dASjyNMxnbxZ/ry8lcJxedPdrv6coYiTjOcaT8/0=";
tag = "libs/langgraph-store-mongodb/v${finalAttrs.version}";
hash = "sha256-IXISxo3mC0/FkjGdHTmin6z/fk71ecto+L+VZ6VFdeE=";
};
sourceRoot = "${src.name}/libs/langgraph-store-mongodb";
sourceRoot = "${finalAttrs.src.name}/libs/langgraph-store-mongodb";
build-system = [
hatchling
@@ -40,11 +41,22 @@ buildPythonPackage rec {
pythonImportsCheck = [ "langgraph.store.mongodb" ];
# updater script selects wrong tag
passthru = {
skipBulkUpdate = true;
updateScript = nix-update-script {
extraArgs = [
"-vr"
"libs/langgraph-store-mongodb/v(.*)"
];
};
};
meta = {
description = "Integrations between MongoDB, Atlas, LangChain, and LangGraph";
homepage = "https://github.com/langchain-ai/langchain-mongodb/tree/main/libs/langgraph-store-mongodb";
changelog = "https://github.com/langchain-ai/langchain-mongodb/releases/tag/${src.tag}";
changelog = "https://github.com/langchain-ai/langchain-mongodb/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ sarahec ];
};
}
})
@@ -0,0 +1,208 @@
{
lib,
buildPythonPackage,
fetchFromGitHub,
# build-system
setuptools,
# dependencies
filelock,
huggingface-hub,
numpy,
protobuf,
packaging,
pyyaml,
regex,
requests,
tokenizers,
safetensors,
tqdm,
# optional-dependencies
diffusers,
scikit-learn,
tensorflow,
onnxconverter-common,
opencv4,
tf2onnx,
torch,
accelerate,
faiss,
datasets,
jax,
jaxlib,
flax,
optax,
ftfy,
onnxruntime,
onnxruntime-tools,
cookiecutter,
sagemaker,
fairscale,
optuna,
ray,
pydantic,
uvicorn,
fastapi,
starlette,
librosa,
phonemizer,
torchaudio,
pillow,
timm,
torchvision,
av,
sentencepiece,
hf-xet,
}:
buildPythonPackage (finalAttrs: {
pname = "transformers";
version = "4.57.6";
pyproject = true;
src = fetchFromGitHub {
owner = "huggingface";
repo = "transformers";
tag = "v${finalAttrs.version}";
hash = "sha256-a78ornUAYlOpr30iFdq1oUiWQTm6GeT0iq8ras5i3DQ=";
};
build-system = [ setuptools ];
dependencies = [
filelock
huggingface-hub
numpy
packaging
pyyaml
regex
requests
tokenizers
safetensors
tqdm
];
pythonRelaxDeps = [ "huggingface-hub" ];
optional-dependencies =
let
audio = [
librosa
# pyctcdecode
phonemizer
# kenlm
];
vision = [ pillow ];
in
{
agents = [
diffusers
accelerate
datasets
torch
sentencepiece
opencv4
pillow
];
ja = [
# fugashi
# ipadic
# rhoknp
# sudachidict_core
# sudachipy
# unidic
# unidic_lite
];
sklearn = [ scikit-learn ];
tf = [
tensorflow
onnxconverter-common
tf2onnx
# tensorflow-text
# keras-nlp
];
torch = [
torch
accelerate
];
retrieval = [
faiss
datasets
];
flax = [
jax
jaxlib
flax
optax
];
hf_xet = [
hf-xet
];
tokenizers = [ tokenizers ];
ftfy = [ ftfy ];
onnxruntime = [
onnxruntime
onnxruntime-tools
];
onnx = [
onnxconverter-common
tf2onnx
onnxruntime
onnxruntime-tools
];
modelcreation = [ cookiecutter ];
sagemaker = [ sagemaker ];
deepspeed = [
# deepspeed
accelerate
];
fairscale = [ fairscale ];
optuna = [ optuna ];
ray = [ ray ] ++ ray.optional-dependencies.tune;
# sigopt = [ sigopt ];
# integrations = ray ++ optuna ++ sigopt;
serving = [
pydantic
uvicorn
fastapi
starlette
];
audio = audio;
speech = [ torchaudio ] ++ audio;
torch-speech = [ torchaudio ] ++ audio;
tf-speech = audio;
flax-speech = audio;
timm = [ timm ];
torch-vision = [ torchvision ] ++ vision;
# natten = [ natten ];
# codecarbon = [ codecarbon ];
video = [
av
];
sentencepiece = [
sentencepiece
protobuf
];
};
# Many tests require internet access.
doCheck = false;
pythonImportsCheck = [ "transformers" ];
meta = {
broken = lib.versionAtLeast huggingface-hub.version "1.0";
homepage = "https://github.com/huggingface/transformers";
description = "Natural Language Processing for TensorFlow 2.0 and PyTorch";
mainProgram = "transformers-cli";
changelog = "https://github.com/huggingface/transformers/releases/tag/${finalAttrs.src.tag}";
license = lib.licenses.asl20;
platforms = lib.platforms.unix;
maintainers = with lib.maintainers; [
pashashocky
happysalada
];
};
})
-91
View File
@@ -1,91 +0,0 @@
{
lib,
stdenv,
fetchurl,
cmake,
pkg-config,
wrapQtAppsHook,
openexr,
zlib,
imagemagick6,
libGLU,
libGL,
libglut,
fftwFloat,
fftw,
gsl,
libexif,
perl,
qtbase,
netpbm,
enableUnfree ? false,
opencv,
}:
stdenv.mkDerivation rec {
pname = "pfstools";
version = "2.2.0";
src = fetchurl {
url = "mirror://sourceforge/${pname}/${version}/${pname}-${version}.tgz";
sha256 = "sha256-m/aESYVmMibCGZjutDwmGsuOSziRuakbcpVUQGKJ18o=";
};
outputs = [
"out"
"dev"
"man"
];
cmakeFlags = [ "-DWITH_MATLAB=false" ];
preConfigure = ''
sed -e 's|#include( ''${PROJECT_SRC_DIR}/cmake/FindNETPBM.cmake )|include( ''${PROJECT_SOURCE_DIR}/cmake/FindNETPBM.cmake )|' -i CMakeLists.txt
rm cmake/FindNETPBM.cmake
echo "SET(NETPBM_LIBRARY `find ${lib.getLib netpbm} -name "*${stdenv.hostPlatform.extensions.sharedLibrary}*" -type f`)" >> cmake/FindNETPBM.cmake
echo "SET(NETPBM_LIBRARIES `find ${lib.getLib netpbm} -name "*${stdenv.hostPlatform.extensions.sharedLibrary}*" -type f`)" >> cmake/FindNETPBM.cmake
echo "SET(NETPBM_INCLUDE_DIR ${lib.getDev netpbm}/include/netpbm)" >> cmake/FindNETPBM.cmake
echo "INCLUDE(FindPackageHandleStandardArgs)" >> cmake/FindNETPBM.cmake
echo "FIND_PACKAGE_HANDLE_STANDARD_ARGS(NETPBM DEFAULT_MSG NETPBM_LIBRARY NETPBM_INCLUDE_DIR)" >> cmake/FindNETPBM.cmake
'';
nativeBuildInputs = [
cmake
pkg-config
wrapQtAppsHook
];
buildInputs = [
openexr
zlib
imagemagick6
fftwFloat
fftw
gsl
libexif
perl
qtbase
netpbm
]
++ lib.optionals (!stdenv.hostPlatform.isDarwin) [
libGLU
libGL
libglut
]
++ lib.optional enableUnfree (opencv.override { enableUnfree = true; });
patches = [
./glut.patch
./threads.patch
./pfstools.patch
./pfsalign.patch
];
meta = {
homepage = "https://pfstools.sourceforge.net/";
description = "Toolkit for manipulation of HDR images";
platforms = lib.platforms.linux;
license = lib.licenses.lgpl2;
maintainers = [ lib.maintainers.juliendehos ];
};
}
-12
View File
@@ -1,12 +0,0 @@
--- a/src/pfsglview/CMakeLists.txt 2022-04-04 23:21:11.164016369 +0300
+++ b/src/pfsglview/CMakeLists.txt 2022-04-04 23:21:32.757878750 +0300
@@ -11,8 +11,7 @@
add_executable(pfsglview pfsglview.cpp picture_io.cpp module.cpp m_histogram.cpp m_status.cpp m_on_screen_display.cpp)
-# TODO: Use ${GLUT_LIBRARY} instead.
-target_link_libraries(pfsglview ${OPENGL_LIBRARIES} ${GLUT_glut_LIBRARY} pfs)
+target_link_libraries(pfsglview ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} pfs)
install (TARGETS pfsglview DESTINATION bin)
install (FILES pfsglview.1 DESTINATION ${MAN_DIR})
@@ -1,12 +0,0 @@
--- a/src/camera/CMakeLists.txt 2017-11-13 18:38:27.000000000 +0100
+++ b/src/camera/CMakeLists.txt 2018-12-30 14:55:30.235571520 +0100
@@ -9,7 +9,7 @@ target_link_libraries(${TRG} pfs)
install (TARGETS ${TRG} DESTINATION bin)
install (FILES ${TRG}.1 DESTINATION ${MAN_DIR})
-if( OpenCV_FOUND AND EXIF_FOUND )
+if( OpenCV_FOUND AND MYPKG_FOUND )
set(TRG pfsalign)
add_executable(${TRG} ${TRG}.cpp "${GETOPT_OBJECT}")
@@ -1,21 +0,0 @@
--- a/CMakeLists.txt 2016-05-26 11:31:16.000000000 +0200
+++ b/CMakeLists.txt 2016-07-22 19:07:22.074669909 +0200
@@ -320,12 +320,12 @@
# ======== libexif ==========
-find_package(EXIF)
-if( NOT EXIF_FOUND )
- message( "EXIF library (libexif) not found. 'pfsalign' will not be compiled" )
-else( NOT EXIF_FOUND )
- message(STATUS "libexif library found.")
-endif( NOT EXIF_FOUND )
+find_package( PkgConfig REQUIRED )
+pkg_check_modules( MYPKG REQUIRED libexif IlmBase )
+if( MYPKG_FOUND )
+ message( STATUS "libexif and IlmBase found." )
+endif( MYPKG_FOUND )
+include_directories( ${MYPKG_INCLUDE_DIRS} )
# ======== Config and sub dirs ===========
@@ -1,20 +0,0 @@
--- a/src/fileformat/CMakeLists.txt 2016-05-26 11:31:23.000000000 +0200
+++ b/src/fileformat/CMakeLists.txt 2016-07-21 23:19:56.510958771 +0200
@@ -53,13 +53,15 @@
if( OPENEXR_FOUND )
include_directories("${OPENEXR_INCLUDE_DIR}")
+ find_package (Threads)
+
add_executable(pfsinexr pfsinexr.cpp "${GETOPT_OBJECT}")
- target_link_libraries(pfsinexr pfs ${OPENEXR_LIBRARIES})
+ target_link_libraries(pfsinexr pfs ${OPENEXR_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
install (TARGETS pfsinexr DESTINATION bin)
install (FILES pfsinexr.1 DESTINATION ${MAN_DIR})
add_executable(pfsoutexr pfsoutexr.cpp "${GETOPT_OBJECT}")
- target_link_libraries(pfsoutexr pfs ${OPENEXR_LIBRARIES})
+ target_link_libraries(pfsoutexr pfs ${OPENEXR_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
install (TARGETS pfsoutexr DESTINATION bin)
install (FILES pfsoutexr.1 DESTINATION ${MAN_DIR})
endif( OPENEXR_FOUND )
+2
View File
@@ -1534,6 +1534,7 @@ mapAliases {
percona-xtrabackup_lts = throw "'percona-xtrabackup_lts' has been renamed to/replaced by 'percona-xtrabackup'"; # Converted to throw 2025-10-27
peruse = throw "'peruse' has been removed as it depends on KDE Gear 5, which has reached EOL"; # Added 2025-08-20
petrifoo = throw "'petrifoo' was remove due to lack of maintenance and relying on gtk2"; # Added 2025-12-02
pfstools = throw "'pfstools' was removed because it was broken and depends on an old version of ImageMagick"; # added 2026-02-26
pg_cron = throw "'pg_cron' has been removed. Use 'postgresqlPackages.pg_cron' instead."; # Added 2025-07-19
pg_hll = throw "'pg_hll' has been removed. Use 'postgresqlPackages.pg_hll' instead."; # Added 2025-07-19
pg_repack = throw "'pg_repack' has been removed. Use 'postgresqlPackages.pg_repack' instead."; # Added 2025-07-19
@@ -1714,6 +1715,7 @@ mapAliases {
rpPPPoE = warnAlias "'rpPPPoE' has been renamed to 'rp-pppoe'" rp-pppoe; # Added 2026-02-12
rquickshare-legacy = throw "The legacy version depends on insecure package libsoup2, please use the main version"; # Added 2025-10-09
rr-unstable = throw "'rr-unstable' has been renamed to/replaced by 'rr'"; # Converted to throw 2025-10-27
rss-glx = throw "'rss-glx' has been removed because it was broken and depends on an outdated version of ImageMagick"; # added 2026-02-26
rtx = throw "'rtx' has been renamed to/replaced by 'mise'"; # Converted to throw 2025-10-27
ruby-zoom = throw "'ruby-zoom' has been removed due to lack of maintaince and had not been updated since 2020"; # Added 2025-08-24
ruby_3_1 = throw "ruby_3_1 has been removed, as it is has reached endoflife upstream"; # Added 2025-10-12
-2
View File
@@ -3229,8 +3229,6 @@ with pkgs;
ssh = openssh;
};
pfstools = libsForQt5.callPackage ../tools/graphics/pfstools { };
phosh = callPackage ../applications/window-managers/phosh { };
phosh-mobile-settings =
+4
View File
@@ -7184,6 +7184,8 @@ self: super: with self; {
huggingface-hub = callPackage ../development/python-modules/huggingface-hub { };
huggingface-hub_0 = callPackage ../development/python-modules/huggingface-hub/0.nix { };
human-readable = callPackage ../development/python-modules/human-readable { };
humanfriendly = callPackage ../development/python-modules/humanfriendly { };
@@ -19395,6 +19397,8 @@ self: super: with self; {
transformers = callPackage ../development/python-modules/transformers { };
transformers_4 = callPackage ../development/python-modules/transformers/4.nix { };
transforms3d = callPackage ../development/python-modules/transforms3d { };
transitions = callPackage ../development/python-modules/transitions { };