Merge master into staging-nixos

This commit is contained in:
nixpkgs-ci[bot]
2026-01-16 06:07:52 +00:00
committed by GitHub
39 changed files with 557 additions and 257 deletions
+3
View File
@@ -64,6 +64,9 @@ insert_final_newline = unset
end_of_line = unset
trim_trailing_whitespace = unset
[*.json]
insert_final_newline = unset
[*.lock]
indent_size = unset
+6
View File
@@ -10795,6 +10795,12 @@
githubId = 51334444;
name = "Akshat Agarwal";
};
humemm = {
email = "nixpkgs.scabbed988@passinbox.com";
github = "humemm";
githubId = 75555696;
name = "humemm";
};
hummeltech = {
email = "hummeltech@sherpaguru.com";
github = "hummeltech";
+2 -2
View File
@@ -30,7 +30,7 @@
enable = true;
type = "fcitx5";
fcitx5.addons = [
pkgs.fcitx5-chinese-addons
pkgs.qt6Packages.fcitx5-chinese-addons
pkgs.fcitx5-hangul
pkgs.fcitx5-m17n
pkgs.fcitx5-mozc
@@ -81,7 +81,7 @@
user = nodes.machine.users.users.alice;
xauth = "${user.home}/.Xauthority";
in
''
/* python */ ''
start_all()
machine.wait_for_x()
@@ -20,12 +20,12 @@ let
sha256Hash = "sha256-xs9ABQ9f8/gtxcoiZkf/xEtmTOj6rb4Ty+w70/+C4Ss=";
};
betaVersion = {
version = "2025.2.3.7"; # "Android Studio Otter 3 Feature Drop | 2025.2.3 RC 2"
sha256Hash = "sha256-d5BcAUkYV7O25wyoifiZxfUsANPxLa/QkuT9u1qqfP8=";
version = "2025.2.3.8"; # "Android Studio Otter 3 Feature Drop | 2025.2.3 RC 3"
sha256Hash = "sha256-KHvWVIxNzwdgl9kdqXD5Cpvz58r8pWs2VRyPV3VrJH0=";
};
latestVersion = {
version = "2025.3.1.2"; # "Android Studio Panda 1 | 2025.3.1 Canary 2"
sha256Hash = "sha256-kgYPwMF/CypkCq4w/y+HnraNdPNHf53198x35S0i7OA=";
version = "2025.3.1.4"; # "Android Studio Panda 1 | 2025.3.1 Canary 4"
sha256Hash = "sha256-5ymB/HKSmi32AWV39+HYmfY11frkNxf2dq8Ld4f9qfA=";
};
in
{
+1 -1
View File
@@ -45,7 +45,7 @@ let
homepage =
{
"mainline" = "https://www.gnu.org/software/emacs/";
"macport" = "https://bitbucket.org/mituharu/emacs-mac/";
"macport" = "https://github.com/jdtsmith/emacs-mac";
}
.${variant};
description =
@@ -1076,11 +1076,11 @@
"vendorHash": "sha256-F1AuO/dkldEDRvkwrbq2EjByxjg3K2rohZAM4DzKPUw="
},
"pagerduty_pagerduty": {
"hash": "sha256-K3Gr3ivLPMFqR10HSino/ZlsYWNpDzyJalx6orTVa4k=",
"hash": "sha256-dQaXwuT7BsgaC5PeFMqqQ1607E2/BYTA18RL8YycvNw=",
"homepage": "https://registry.terraform.io/providers/PagerDuty/pagerduty",
"owner": "PagerDuty",
"repo": "terraform-provider-pagerduty",
"rev": "v3.30.8",
"rev": "v3.30.9",
"spdx": "MPL-2.0",
"vendorHash": null
},
+3 -3
View File
@@ -8,13 +8,13 @@
}:
stdenv.mkDerivation {
pname = "airwindows";
version = "0-unstable-2025-12-07";
version = "0-unstable-2026-01-11";
src = fetchFromGitHub {
owner = "airwindows";
repo = "airwindows";
rev = "bfff4df7e63a3f6fde744e890849b21895c94e78";
hash = "sha256-Ss91Ld2bNYD4HiO7Mgth5fwg3OVBYvZBaDQstBvvVKU=";
rev = "53a648baed26d12df3351b3301ea9cc741a35648";
hash = "sha256-GN6AuqrHfFItFe8s1xU3LpltnTKEhasrvyI+3H9z7rU=";
};
# we patch helpers because honestly im spooked out by where those variables
+4 -4
View File
@@ -11,7 +11,7 @@
stdenv.mkDerivation rec {
pname = "bloop";
version = "2.0.17";
version = "2.0.18";
platform =
if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64 then
@@ -42,11 +42,11 @@ stdenv.mkDerivation rec {
url = "https://github.com/scalacenter/bloop/releases/download/v${version}/bloop-${platform}";
sha256 =
if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86_64 then
"sha256-pvqIotxcKVtrCQlMdbMGNkPvrMcNyw8CmtnUkQjAF8Y="
"sha256-18cI2w2HXq1BechxLi1GzljWRYAp2IDO5SAaZHnJy6c="
else if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64 then
"sha256-W54MoUGEQ48ju+h1PVUxlJZ0RxV2NLjYhlq6QacBEto="
"sha256-pVGxaEAatqRTIwTHpTEt7XwzLqgFf67ztgjTtIEnBa8="
else if stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isAarch64 then
"sha256-7FtS1dlDK5v/zlwFA5rPSkyLaEVbKhAaKdOhZkZcFPg="
"sha256-AjI1YKarVSGJHuRJ/86BaeD4XkGcbI7XzjAg5swgNM0="
else
throw "unsupported platform";
};
-5
View File
@@ -309,11 +309,6 @@
"version": "5.0.0",
"hash": "sha256-THQ8Z7DAoMDEqAS7feAmAt82NvU7H90Y+jYwC7NwL+0="
},
{
"pname": "Microsoft.AspNetCore.App.Internal.Assets",
"version": "10.0.2",
"hash": "sha256-nh+JRXHTI01RUDFeEw4yep4iMxci5R7zKyRX2Tkd/mc="
},
{
"pname": "Microsoft.AspNetCore.Authentication.JwtBearer",
"version": "10.0.1",
+2 -2
View File
@@ -10,13 +10,13 @@
stdenv.mkDerivation rec {
pname = "focus-stack";
version = "1.4";
version = "1.5";
src = fetchFromGitHub {
owner = "PetteriAimonen";
repo = "focus-stack";
rev = version;
hash = "sha256-SoECgBMjWI+n7H6p3hf8J5E9UCLHGiiz5WAsEEioJsU=";
hash = "sha256-hIaK8hjeuu6w/8nh9DHOffqZufQdqB1/VQRezCPQIPk=";
};
nativeBuildInputs = [
@@ -0,0 +1,64 @@
diff --git a/frigate/data_processing/real_time/bird.py b/frigate/data_processing/real_time/bird.py
index d547f2dd..402876b7 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
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__)
diff --git a/frigate/detectors/plugins/cpu_tfl.py b/frigate/detectors/plugins/cpu_tfl.py
index 8a54363e..68ae558b 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
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__)
diff --git a/frigate/detectors/plugins/edgetpu_tfl.py b/frigate/detectors/plugins/edgetpu_tfl.py
index 246d2dd4..e855bf87 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
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
--- a/frigate/embeddings/onnx/face_embedding.py
+++ b/frigate/embeddings/onnx/face_embedding.py
@@ -14,7 +14,7 @@ from .runner import ONNXModelRunner
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__)
diff --git a/frigate/events/audio.py b/frigate/events/audio.py
index f2a217fd..82206b5a 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
try:
from tflite_runtime.interpreter import Interpreter
except ModuleNotFoundError:
- from tensorflow.lite.python.interpreter import Interpreter
+ from ai_edge_litert.interpreter import Interpreter
+2 -6
View File
@@ -38,11 +38,6 @@ let
hash = "sha256-95xtUzzIxxvDtpHX/5uCHnTQTB8Fc08DZGUOR/SdKLs=";
};
});
onnxruntime = super.onnxruntime.override (old: {
onnxruntime = old.onnxruntime.override (old: {
withFullProtobuf = true;
});
});
};
};
python3Packages = python.pkgs;
@@ -89,6 +84,7 @@ python3Packages.buildPythonApplication rec {
hash = "sha256-1+n0n0yCtjfAHkXzsZdIF0iCVdPGmsG7l8/VTqBVEjU=";
})
./ffmpeg.patch
./ai-edge-litert.patch
];
postPatch = ''
@@ -132,6 +128,7 @@ python3Packages.buildPythonApplication rec {
# docker/main/requirements.txt
scikit-build
# docker/main/requirements-wheel.txt
ai-edge-litert
aiofiles
aiohttp
appdirs
@@ -180,7 +177,6 @@ python3Packages.buildPythonApplication rec {
slowapi
starlette
starlette-context
tensorflow-bin
titlecase
transformers
tzlocal
+3 -3
View File
@@ -11,13 +11,13 @@
buildGoModule (finalAttrs: {
pname = "grype";
version = "0.104.4";
version = "0.105.0";
src = fetchFromGitHub {
owner = "anchore";
repo = "grype";
tag = "v${finalAttrs.version}";
hash = "sha256-XuB3eUBtyi23Wd3l8iuaN4rVw9/0/XNDBee8/m6swZo=";
hash = "sha256-+8fCQ/9S4qwPfq/XM5G7LdNl8VQvBxIl67RMqlB6rUI=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
@@ -32,7 +32,7 @@ buildGoModule (finalAttrs: {
proxyVendor = true;
vendorHash = "sha256-toxkblzuAO/IYgKuvpmp5yc70KtFx6wiW2mkkO5owMY=";
vendorHash = "sha256-dYtTYkSVIO5k9kkodhIUWrlNXfQNCUjTUwz4+n6IMtY=";
nativeBuildInputs = [ installShellFiles ];
@@ -1,42 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
cmake,
catch2_3,
}:
stdenv.mkDerivation rec {
pname = "jarowinkler-cpp";
version = "1.0.2";
src = fetchFromGitHub {
owner = "maxbachmann";
repo = "jarowinkler-cpp";
rev = "v${version}";
hash = "sha256-GuwDSCYTfSwqTnzZSft3ufVSKL7255lVvbJhBxKxjJw=";
};
nativeBuildInputs = [
cmake
];
cmakeFlags = lib.optionals doCheck [
"-DJARO_WINKLER_BUILD_TESTING=ON"
];
nativeCheckInputs = [
catch2_3
];
doCheck = true;
meta = {
description = "Fast Jaro and Jaro-Winkler distance";
homepage = "https://github.com/maxbachmann/jarowinkler-cpp";
changelog = "https://github.com/maxbachmann/jarowinkler-cpp/blob/${src.rev}/CHANGELOG.md";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ dotlambda ];
platforms = lib.platforms.unix;
};
}
-61
View File
@@ -1,61 +0,0 @@
{
lib,
stdenv,
fetchFromGitHub,
autoreconfHook,
libtool,
openssl,
expat,
pkg-config,
check,
}:
stdenv.mkDerivation rec {
pname = "libmesode";
version = "0.10.1";
src = fetchFromGitHub {
owner = "profanity-im";
repo = "libmesode";
rev = version;
sha256 = "1bxnkhrypgv41qyy1n545kcggmlw1hvxnhwihijhhcf2pxd2s654";
};
nativeBuildInputs = [
autoreconfHook
pkg-config
];
buildInputs = [
openssl
expat
libtool
check
];
dontDisableStatic = true;
doCheck = true;
meta = {
description = "Fork of libstrophe (https://github.com/strophe/libstrophe) for use with Profanity XMPP Client";
longDescription = ''
Reasons for forking:
- Remove Windows support
- Support only one XML Parser implementation (expat)
- Support only one SSL implementation (OpenSSL)
This simplifies maintenance of the library when used in Profanity.
Whilst Profanity will run against libstrophe, libmesode provides extra
TLS functionality such as manual SSL certificate verification.
'';
homepage = "https://github.com/profanity-im/libmesode/";
license = with lib.licenses; [
gpl3Only
mit
];
platforms = lib.platforms.unix;
broken = stdenv.hostPlatform.isDarwin;
maintainers = with lib.maintainers; [ devhell ];
};
}
+2 -2
View File
@@ -20,8 +20,8 @@
#
# Ensure you also check ../mattermostLatest/package.nix.
regex = "^v(10\\.11\\.[0-9]+)$";
version = "10.11.9";
srcHash = "sha256-e7itz3VcjSwXGTA+Dn0g5CmQzpnquQ6GmWNdvwrhaQo=";
version = "10.11.10";
srcHash = "sha256-do7g5B/rs9JPT2JS718xi3CmaFEXAmmcM/yJi+R/q2Y=";
vendorHash = "sha256-Lsw/cvl98JdVmzWr85lAv/JMcTmZZZ4ALLunFLNcrro=";
npmDepsHash = "sha256-p9dq31qw0EZDQIl2ysKE38JgDyLA6XvSv+VtHuRh+8A=";
lockfileOverlay = ''
+4 -4
View File
@@ -40,7 +40,7 @@
let
pname = "mongodb-compass";
version = "1.48.2";
version = "1.49.0";
selectSystem =
attrs:
@@ -55,9 +55,9 @@ let
}
}";
hash = selectSystem {
x86_64-linux = "sha256-6plLkjeFyXnYVTRY9hnnlKRRk0/pqIE7uQ/ftht6MB4=";
x86_64-darwin = "sha256-kVIYeo4YmEGUA+9jUMQ+tm3C504yCdFSTprUMZmXCxI=";
aarch64-darwin = "sha256-dJD7efN/sfLwxJz1myYneAKdnVdEcNzSth5CzcVoGsM=";
x86_64-linux = "sha256-XbVgFYkamZWCVcik3Hh0MiuwCHCi2NDKusT/CRO+q0E=";
x86_64-darwin = "sha256-mqnVYJ1wsC1qekEM9CYkZ05DTKHTDUHnoVytm/5QMw4=";
aarch64-darwin = "sha256-fVnW4mygJOgpqIHlO2qjMt9zdQaVBqFLKX4CL31KvXg=";
};
};
+3 -3
View File
@@ -7,16 +7,16 @@
buildNpmPackage.override { nodejs = nodejs_22; } (finalAttrs: {
pname = "mongosh";
version = "2.5.10";
version = "2.6.0";
src = fetchFromGitHub {
owner = "mongodb-js";
repo = "mongosh";
tag = "v${finalAttrs.version}";
hash = "sha256-N1uAIgEX44RSFJTivOpASKiab+Jr0N0Mo+olt000uK4=";
hash = "sha256-JoHTHqBx7CKcpEzn82qK4Mp8zGzw4o/iYMhZAw6gpV0=";
};
npmDepsHash = "sha256-/8qw9dVPHAuyQZWdDq+jhP7NMBwTbvMqv/PtwXJEQuo=";
npmDepsHash = "sha256-PgH5r2E94fKj5dhEDP6h68UoRq3KPvJuYdM1oAGuWXo=";
patches = [
./disable-telemetry.patch
-36
View File
@@ -1,36 +0,0 @@
{
lib,
rustPlatform,
fetchFromGitHub,
dbus,
pkg-config,
}:
rustPlatform.buildRustPackage rec {
pname = "nofi";
version = "0.2.4";
src = fetchFromGitHub {
owner = "ellsclytn";
repo = "nofi";
rev = "v${version}";
hash = "sha256-hQYIcyNCxb8qVpseNsmjyPxlwbMxDpXeZ+H1vpv62rQ=";
};
cargoHash = "sha256-dWqMwS0TgspZqlpi8hhwtA7sbqGunw0FIqjJXOTiFKA=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [ dbus ];
meta = {
description = "Interruption-free notification system for Linux";
homepage = "https://github.com/ellsclytn/nofi/";
changelog = "https://github.com/ellsclytn/nofi/raw/v${version}/CHANGELOG.md";
license = [
lib.licenses.asl20 # or
lib.licenses.mit
];
mainProgram = "nofi";
maintainers = [ lib.maintainers.magnetophon ];
};
}
+3 -3
View File
@@ -10,16 +10,16 @@
rustPlatform.buildRustPackage (finalAttrs: {
pname = "rgrc";
version = "0.6.5";
version = "0.6.6";
src = fetchFromGitHub {
owner = "lazywalker";
repo = "rgrc";
tag = "v${finalAttrs.version}";
hash = "sha256-OuNVX1whhJOMj2rX2yANyHie8dn9i5JAI29btOgNH38=";
hash = "sha256-01wZYHxE01GpvFo45Fx7VootmNf/PQsS5jRMBKM7SHY=";
};
cargoHash = "sha256-wQht/DJgTvnOIQ3u2Nz5jyUNhotDgA2/iXhb9ZElGI4=";
cargoHash = "sha256-EoFTZGHviwlvB1eVQS4F0/e0g7Lp9ZipsgEYbZfNwHA=";
nativeBuildInputs = [ installShellFiles ];
+2 -4
View File
@@ -6,7 +6,7 @@
pkg-config,
openssl,
buildNpmPackage,
nodejs_20,
nodejs,
nix-update-script,
}:
let
@@ -24,9 +24,7 @@ let
rqbit-webui = buildNpmPackage {
pname = "rqbit-webui";
nodejs = nodejs_20;
inherit version src;
inherit version src nodejs;
sourceRoot = "${src.name}/crates/librqbit/webui";
+2 -2
View File
@@ -30,13 +30,13 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "socalabs-papu";
version = "1.2.0";
version = "1.2.2";
src = fetchFromGitHub {
owner = "FigBug";
repo = "PAPU";
tag = "v${finalAttrs.version}";
hash = "sha256-psSwQJwfCvsSgF72/K0WZQRqt0CoasVITLH69V4XcUg=";
hash = "sha256-8GM28Qt+wCc+r/6wWCh/msbIQJJqFii8ijkhuOLWfdc=";
fetchSubmodules = true;
};
+3 -3
View File
@@ -8,13 +8,13 @@
buildGoModule rec {
pname = "syft";
version = "1.40.0";
version = "1.40.1";
src = fetchFromGitHub {
owner = "anchore";
repo = "syft";
tag = "v${version}";
hash = "sha256-aU7i+bjOB6lM5/i/lDuncbCiCQdwkQxglgr4lawof1Q=";
hash = "sha256-zvLUvBaGI6HXzpsPJSZaF4ni6tbEdZizY7KNSpzYXUo=";
# populate values that require us to use git. By doing this in postFetch we
# can delete .git afterwards and maintain better reproducibility of the src.
leaveDotGit = true;
@@ -29,7 +29,7 @@ buildGoModule rec {
# hash mismatch with darwin
proxyVendor = true;
vendorHash = "sha256-W2Ea+2Pq2zPhVSWI/7NlG1/LeNfOE1kUnAB8Kp7AqgM=";
vendorHash = "sha256-xIy3cVGx8wJektv7b+3YtR2jIBDF920762y7Gsc22nI=";
nativeBuildInputs = [ installShellFiles ];
@@ -0,0 +1,85 @@
{
lib,
stdenvNoCC,
nodejs-slim_24,
pnpm_10,
pnpmConfigHook,
jq,
fetchFromGitHub,
fetchPnpmDeps,
makeWrapper,
nix-update-script,
}:
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "turborepo-remote-cache";
version = "2.7.0";
src = fetchFromGitHub {
owner = "ducktors";
repo = "turborepo-remote-cache";
tag = "v${finalAttrs.version}";
hash = "sha256-ySMZZ9rhVNkoJzz9g1ZxfnL67xGjN2WbirINJMKQqN4=";
};
pnpmDeps = fetchPnpmDeps {
inherit (finalAttrs) pname version src;
pnpm = pnpm_10;
fetcherVersion = 3;
hash = "sha256-i8kXC9bRit9S1TPV9uixCkkn3KahRu/hhBeDyHm6MBc=";
};
nativeBuildInputs = [
nodejs-slim_24
pnpmConfigHook
pnpm_10
jq
makeWrapper
];
postPatch = ''
# Replace build script to skip linting
jq '.scripts.build = "tsc -p ./tsconfig.json"' package.json > package.json.tmp
mv package.json.tmp package.json
# Remove prepare script since we don't need git hooks
jq 'del(.scripts.prepare)' package.json > package.json.tmp
mv package.json.tmp package.json
'';
buildPhase = ''
runHook preBuild
pnpm build
pnpm prune --prod
# Clean up broken symlinks left behind by `pnpm prune`
# https://github.com/pnpm/pnpm/issues/3645
find node_modules -xtype l -delete
# Remove non-deterministic files
rm node_modules/.modules.yaml
runHook postBuild
'';
installPhase = ''
runHook preInstall
appdir="$out/lib/turborepo-remote-cache"
mkdir -p "$appdir" "$out/bin"
cp -r dist node_modules "$appdir"/
makeWrapper ${nodejs-slim_24}/bin/node "$out/bin/turborepo-remote-cache" \
--add-flags "$appdir/dist/index.js" \
--set NODE_PATH "$appdir/node_modules"
runHook postInstall
'';
passthru.updateScript = nix-update-script { };
meta = {
homepage = "https://github.com/ducktors/turborepo-remote-cache";
description = "This project is an open-source implementation of the Turborepo custom remote cache server.";
license = lib.licenses.mit;
mainProgram = "turborepo-remote-cache";
maintainers = with lib.maintainers; [ humemm ];
};
})
+2 -2
View File
@@ -6,12 +6,12 @@
python3.pkgs.buildPythonPackage rec {
pname = "wlc";
version = "1.16.1";
version = "1.17.1";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-gTVt5cxz8tk63mnTZAtzcYdy4m0NVR0y6xjmVICw7pg=";
hash = "sha256-FtxJ1clfvJCggg4h9Lzwq4S4KyejJxppjrB3i7Jiy/Y=";
};
build-system = with python3.pkgs; [ setuptools ];
+62 -55
View File
@@ -100,71 +100,77 @@ let
# combine an SDK with the runtime/packages from a base SDK
combineSdk =
base: overlay:
if (overlay.runtime.version != base.runtime.version) then
throw "combineSdk: unable to combine ${overlay.name} with ${base.name} because runtime versions don't match (${overlay.runtime.version} != ${base.runtime.version})"
base: fallback:
if (fallback.runtime.version != base.runtime.version) then
throw "combineSdk: unable to combine ${fallback.name} with ${base.name} because runtime versions don't match (${fallback.runtime.version} != ${base.runtime.version})"
else if base.meta.broken then
fallback
else
pkgs.callPackage ./wrapper.nix { } "sdk" (
(pkgs.combinePackages [
base.runtime
base.aspnetcore
(overlay.overrideAttrs (old: {
passthru = old.passthru // {
inherit (base)
packages
targetPackages
;
};
}))
]).unwrapped.overrideAttrs
(old: {
name = overlay.unwrapped.name;
# resolve symlinks so DOTNET_ROOT is self-contained
postBuild = ''
mv "$out"/share/dotnet{,~}
cp -Lr "$out"/share/dotnet{~,}
rm -r "$out"/share/dotnet~
''
+ old.postBuild;
passthru =
old.passthru
// (
let
# if only overlay has a working ILCompiler, use it
hostRid = pkgs.systemToDotnetRid base.stdenv.hostPlatform.system;
hasILCompiler = base.hasILCompiler || overlay.hasILCompiler;
packageName = "runtime.${hostRid}.Microsoft.DotNet.ILCompiler";
packages =
if !base.hasILCompiler && overlay.hasILCompiler then
lib.filter (x: x.pname != packageName) base.packages
++ lib.filter (x: x.pname == packageName) overlay.packages
else
base.packages;
in
{
inherit hasILCompiler packages;
let
withBaseRuntimes =
if fallback.version == base.version then
base.unwrapped
else
(pkgs.combinePackages [
base.runtime
base.aspnetcore
fallback
]).unwrapped.overrideAttrs
(old: {
name = fallback.unwrapped.name;
# resolve symlinks so DOTNET_ROOT is self-contained
postBuild = ''
mv "$out"/share/dotnet{,~}
cp -Lr "$out"/share/dotnet{~,}
rm -r "$out"/share/dotnet~
''
+ old.postBuild;
passthru = old.passthru // {
inherit (base)
targetPackages
runtime
aspnetcore
;
inherit (overlay.unwrapped)
inherit (fallback.unwrapped)
pname
version
;
}
);
})
);
};
});
withFallbackPackages = withBaseRuntimes.overrideAttrs (old: {
passthru =
old.passthru
// (
let
hostRid = pkgs.systemToDotnetRid base.stdenv.hostPlatform.system;
hasILCompiler = base.hasILCompiler || fallback.hasILCompiler;
packageName = "runtime.${hostRid}.Microsoft.DotNet.ILCompiler";
mergePackages =
a: b:
let
names = lib.genAttrs' a (p: lib.nameValuePair p.pname null);
in
a ++ lib.filter (p: !lib.hasAttr p.pname names) b;
packages = mergePackages base.packages fallback.packages;
targetPackages = lib.mapAttrs (
name: value: mergePackages value fallback.targetPackages.${name}
) base.targetPackages;
in
{
inherit hasILCompiler packages targetPackages;
}
);
});
in
pkgs.callPackage ./wrapper.nix { } "sdk" withFallbackPackages;
in
pkgs
// rec {
# use binary SDK here to avoid downgrading feature band
sdk_8_0_1xx = if !pkgs.dotnet_8.vmr.meta.broken then pkgs.dotnet_8.sdk else pkgs.sdk_8_0_1xx-bin;
sdk_9_0_1xx = if !pkgs.dotnet_9.vmr.meta.broken then pkgs.dotnet_9.sdk else pkgs.sdk_9_0_1xx-bin;
sdk_10_0_1xx =
if !pkgs.dotnet_10.vmr.meta.broken then pkgs.dotnet_10.sdk else pkgs.sdk_10_0_1xx-bin;
sdk_8_0_1xx = combineSdk pkgs.dotnet_8.sdk pkgs.sdk_8_0_1xx-bin;
sdk_9_0_1xx = combineSdk pkgs.dotnet_9.sdk pkgs.sdk_9_0_1xx-bin;
sdk_10_0_1xx = combineSdk pkgs.dotnet_10.sdk pkgs.sdk_10_0_1xx-bin;
# source-built SDK only exists for _1xx feature band
# https://github.com/dotnet/source-build/issues/3667
sdk_8_0_4xx = combineSdk sdk_8_0_1xx pkgs.sdk_8_0_4xx-bin;
@@ -172,9 +178,10 @@ pkgs
sdk_8_0 = sdk_8_0_4xx;
sdk_9_0 = sdk_9_0_3xx;
sdk_10_0 = sdk_10_0_1xx;
sdk_8_0-source = sdk_8_0_1xx;
sdk_9_0-source = sdk_9_0_1xx;
sdk_10_0-source = sdk_10_0_1xx;
sdk_8_0-source = if !pkgs.dotnet_8.vmr.meta.broken then pkgs.dotnet_8.sdk else pkgs.sdk_8_0_1xx-bin;
sdk_9_0-source = if !pkgs.dotnet_9.vmr.meta.broken then pkgs.dotnet_9.sdk else pkgs.sdk_9_0_1xx-bin;
sdk_10_0-source =
if !pkgs.dotnet_10.vmr.meta.broken then pkgs.dotnet_10.sdk else pkgs.sdk_10_0_1xx-bin;
runtime_8_0 = sdk_8_0.runtime;
runtime_9_0 = sdk_9_0.runtime;
runtime_10_0 = sdk_10_0.runtime;
@@ -94,8 +94,10 @@ let
(mkPackage "Microsoft.DotNet.ILCompiler" runtime.version)
(mkPackage "Microsoft.NET.ILLink.Tasks" runtime.version)
(mkPackage "Microsoft.NETCore.App.Crossgen2.${hostRid}" runtime.version)
(mkPackage "runtime.${hostRid}.Microsoft.DotNet.ILCompiler" runtime.version)
]
++ lib.optional vmr.hasILCompiler (
mkPackage "runtime.${hostRid}.Microsoft.DotNet.ILCompiler" runtime.version
)
++ lib.optionals (lib.versionOlder runtime.version "9") [
(mkPackage "Microsoft.NETCore.DotNetHost" runtime.version)
(mkPackage "Microsoft.NETCore.DotNetHostPolicy" runtime.version)
@@ -114,6 +116,9 @@ let
(mkPackage "runtime.${targetRid}.Microsoft.NETCore.DotNetHost" runtime.version)
(mkPackage "runtime.${targetRid}.Microsoft.NETCore.DotNetHostPolicy" runtime.version)
(mkPackage "runtime.${targetRid}.Microsoft.NETCore.DotNetHostResolver" runtime.version)
]
++ lib.optionals (lib.versionAtLeast runtime.version "10") [
(mkPackage "Microsoft.NETCore.App.Runtime.NativeAOT.${targetRid}" runtime.version)
];
};
@@ -128,6 +128,12 @@ aspnetcore_packages () {
Microsoft.AspNetCore.App.Ref
)
if versionAtLeast "$version" 10; then
pkgs+=(
Microsoft.AspNetCore.App.Internal.Assets
)
fi
generate_package_list "$version" ' ' "${pkgs[@]}"
}
@@ -14,6 +14,11 @@ let
version = "10.0.2";
hash = "sha512-MeDkxsB9ir694B2z0nIG7ZZ6DISLmbU7aOwCusO6AadYjitxjv+e9TuY1Y0ijwuYNjxukBIj45nF/fCEg6CGHw==";
})
(fetchNupkg {
pname = "Microsoft.AspNetCore.App.Internal.Assets";
version = "10.0.2";
hash = "sha512-v9Au9ZSo3ZOe77StttCPCtOZkY7xSFXSyyWMR9Y0Kx3ZKegVp4zg7TJwz4osTgQp7EKyXlbDpvjUbgly51XbmA==";
})
(fetchNupkg {
pname = "Microsoft.NETCore.DotNetAppHost";
version = "10.0.2";
@@ -33,6 +33,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
license
maintainers
platforms
broken
;
};
@@ -0,0 +1,87 @@
{
autoPatchelfHook,
buildPythonPackage,
fetchurl,
lib,
python,
pythonAtLeast,
stdenv,
# dependencies
backports-strenum,
flatbuffers,
numpy,
protobuf,
tqdm,
typing-extensions,
# optional-dependencies
lark,
ml-dtypes,
}:
let
release = builtins.fromJSON (builtins.readFile ./release.json);
platforms = release.src;
platform =
platforms.${stdenv.hostPlatform.system}
or (throw "ai-edge-litert: unsupported platform (${stdenv.hostPlatform.system})");
pythonMajorMinor = lib.versions.majorMinor python.version;
source =
platform.${pythonMajorMinor}
or (throw "ai-edge-litert: unsupported python version (${pythonMajorMinor})");
in
buildPythonPackage {
pname = "ai-edge-litert";
version = release.version;
format = "wheel";
src = fetchurl {
inherit (source)
url
hash
;
};
nativeBuildInputs = [ autoPatchelfHook ];
dependencies = [
backports-strenum
flatbuffers
numpy
protobuf
tqdm
typing-extensions
];
optional-dependencies = {
model-utils = [
lark
ml-dtypes
# TODO :xdsl
];
# TODO: npu-sdk
};
pythonRemoveDeps = lib.optionals (pythonAtLeast "3.12") [
# https://github.com/google-ai-edge/LiteRT/pull/5298
"backports.strenum"
];
pythonImportsCheck = [
"ai_edge_litert"
"ai_edge_litert.interpreter"
];
passthru.updateScript = ./update.py;
meta = {
description = "LiteRT is for mobile and embedded devices";
downloadPage = "https://github.com/google-ai-edge/LiteRT";
homepage = "https://www.tensorflow.org/lite/";
license = lib.licenses.asl20;
platforms = lib.attrNames platforms;
maintainers = with lib.maintainers; [ hexa ];
};
}
@@ -0,0 +1,49 @@
{
"version": "2.1.0",
"src": {
"aarch64-linux": {
"3.10": {
"url": "https://files.pythonhosted.org/packages/a5/7a/6ea77fe405d76dcd1a95fceccd1018293603f551bf3645a382ef1fd470eb/ai_edge_litert-2.1.0-cp310-cp310-manylinux_2_27_aarch64.whl",
"hash": "sha256-eAZzWROFxGRqqCs42qLu2IvCY0bhqvvp0Nt/BJPWq1Q="
},
"3.11": {
"url": "https://files.pythonhosted.org/packages/82/e7/73fff29c7a95a4f35953a027bdb174dd9ac08adbe8c2c322dee26d8f1d3f/ai_edge_litert-2.1.0-cp311-cp311-manylinux_2_27_aarch64.whl",
"hash": "sha256-krJNJQf8z1aAwm5xLBViZtz2Sokt85Id1C9KfSZSdGI="
},
"3.12": {
"url": "https://files.pythonhosted.org/packages/61/f6/1aeccf3034f95ec680a2e25f33582d4adf02c30b3462357511d529a2cad2/ai_edge_litert-2.1.0-cp312-cp312-manylinux_2_27_aarch64.whl",
"hash": "sha256-4Gt9sF08WCT9S1biMY9oWN73GHgM2QMYYmtKqY23WDw="
},
"3.13": {
"url": "https://files.pythonhosted.org/packages/9e/b2/dde0f8043eb26f237c5958e44334d62fa90496fa51438f9c5179dec72d4c/ai_edge_litert-2.1.0-cp313-cp313-manylinux_2_27_aarch64.whl",
"hash": "sha256-eoB6MjbIz1ZeIxtuwzG+zjo/WhfDwl+I8+N8/oZo+NA="
},
"3.9": {
"url": "https://files.pythonhosted.org/packages/30/8b/531b230a5377b2253eff8235f10e72489bc207f7e5ed6e531670495e4fd4/ai_edge_litert-2.1.0-cp39-cp39-manylinux_2_27_aarch64.whl",
"hash": "sha256-qe3jwpMVGnSt+hK6yLjOh+wB3Fhuw86hIqxxRlDIQb8="
}
},
"x86_64-linux": {
"3.10": {
"url": "https://files.pythonhosted.org/packages/20/4a/5f7848c8d21df432f44ebd36097406f66d98762295a4f11239f1d913f347/ai_edge_litert-2.1.0-cp310-cp310-manylinux_2_27_x86_64.whl",
"hash": "sha256-0FSis6ZeLCtFcahO0zul2ojp0Xhy/YdTwXc/+3g1HLE="
},
"3.11": {
"url": "https://files.pythonhosted.org/packages/0d/d1/032cd1300a9b40da97e9f93781b3c2c5f104c22157695a3bb5bd5531821f/ai_edge_litert-2.1.0-cp311-cp311-manylinux_2_27_x86_64.whl",
"hash": "sha256-3PfXk3SrRnzsGfLtrdO+skOtF4M/jFrVm/dnEr8USbE="
},
"3.12": {
"url": "https://files.pythonhosted.org/packages/bb/16/0aface4ec3554304487d6436938684023c054828b4334f114f7db303b27a/ai_edge_litert-2.1.0-cp312-cp312-manylinux_2_27_x86_64.whl",
"hash": "sha256-SNfm6BuqNYHmtIkgpzq4lzAcxIqluJq9012fBt9jLUo="
},
"3.13": {
"url": "https://files.pythonhosted.org/packages/96/c7/53b1f2627dbb0b307c1637e5f2cdbdc5a5f4ffecbebe75c8977d46590b6a/ai_edge_litert-2.1.0-cp313-cp313-manylinux_2_27_x86_64.whl",
"hash": "sha256-QeJJDL8dJmZj1FEllzEXC4Gqpwt9/vbXGIaX5lxxLJU="
},
"3.9": {
"url": "https://files.pythonhosted.org/packages/85/b7/efd39c318ae7f73bd3de247a93501f1d748e60979ecd97c794e7a4a1d671/ai_edge_litert-2.1.0-cp39-cp39-manylinux_2_27_x86_64.whl",
"hash": "sha256-QicA/OOs8HK8DVjXhj7BZjHwix2t3vyHwAjebkzaMWc="
}
}
}
}
+99
View File
@@ -0,0 +1,99 @@
#!/usr/bin/env nix-shell
#!nix-shell -i python -p "python3.withPackages (ps: [ ps.httpx ] )"
import json
import httpx
import re
import subprocess
from pathlib import Path
from typing import Dict
from collections import defaultdict
def get_metadata(package) -> Dict:
response = httpx.get(
f"https://pypi.org/pypi/{package}/json",
headers={"user-agent": "nixpkgs/pypi-updater/unstable"},
)
return response.json()
def get_hash(url) -> str:
result = subprocess.run(["nix-prefetch-url", url], stdout=subprocess.PIPE)
base32_hash = result.stdout.decode().strip()
result = subprocess.run(
["nix", "hash", "to-sri", "--type", "sha256", base32_hash],
stdout=subprocess.PIPE,
)
sri_hash = result.stdout.decode().strip()
return sri_hash
def get_platform(platform: str) -> str:
result = re.match(r"^(?P<target>macosx|manylinux)[\d+_]+(?P<arch>x86_64|aarch64)", platform)
if not result:
raise RuntimeError(f"Unable to parse platform string: {platform}")
target = {
"macosx": "darwin",
"manylinux": "linux",
}[result.group("target")]
arch = result.group("arch")
return f"{arch}-{target}"
def get_python_version(python: str) -> str:
result = re.match(r"^cp(?P<major>\d)(?P<minor>\d+)$", python)
if not result:
raise RuntimeError(f"Unable to disect python compat tag: {python}")
return f"{result.group('major')}.{result.group('minor')}"
def main(package: str):
metadata = get_metadata(package)
info = metadata.get("info")
if info is None:
raise RuntimeError("Package metadata has no info attribute")
version = info.get("version")
assert not info.get("yanked"), (
f"Latest release was yanked: {info.get('yanked_reason')}"
)
releases = metadata["releases"][version]
out = {
"version": version,
"src": defaultdict(dict),
}
for release in releases:
if release.get("packagetype") != "bdist_wheel":
# the package expects the binary wheels
continue
print(json.dumps(release, indent=2))
filename = release.get("filename")
result = re.match(
rf"(?P<pname>\w+)-{re.escape(version)}-(?P<python>\w+)-(?P<dist>\w+)-(?P<platform>\w+)\.whl$",
filename,
)
if not result:
raise RuntimeError(f"Unable to disect wheel filename: {filename}")
platform = get_platform(result.group("platform"))
python_version = get_python_version(release["python_version"])
out["src"][platform][python_version] = {
"url": release.get("url"),
"hash": get_hash(release.get("url")),
}
with open(Path(__file__).with_name("release.json"), "w") as fd:
json.dump(out, fd, indent=2)
if __name__ == "__main__":
main("ai-edge-litert")
@@ -51,14 +51,14 @@
buildPythonPackage rec {
pname = "openai";
version = "2.11.0";
version = "2.15.0";
pyproject = true;
src = fetchFromGitHub {
owner = "openai";
repo = "openai-python";
tag = "v${version}";
hash = "sha256-f4d6gz4W04NPu43u0ovORzvF8ZW7oIYO8DJIqUGIEdE=";
hash = "sha256-FmOmWtkp+Pe3pICi0uvzsb1nsP4M4yc/34U3Bd2q/KE=";
};
postPatch = ''substituteInPlace pyproject.toml --replace-fail "hatchling==1.26.3" "hatchling"'';
@@ -8,14 +8,14 @@
buildPythonPackage rec {
pname = "wassima";
version = "2.0.3";
version = "2.0.4";
pyproject = true;
src = fetchFromGitHub {
owner = "jawah";
repo = "wassima";
tag = version;
hash = "sha256-tkA6U0SqzivR4tHPu7BKawlqoYfkBFgt5ZcV9kOMKzI=";
hash = "sha256-6tNmJwnOtl+luN1qgu93LXEfBZ0oieEpLa9Q9N6Gsag=";
};
build-system = [ hatchling ];
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchurl,
fetchpatch,
fetchFromGitHub,
cmake,
extra-cmake-modules,
@@ -50,6 +51,15 @@ stdenv.mkDerivation rec {
fcitx5-lua
];
patches = [
# Without this patch, setting ENABLE_CLOUDPINYIN to off would fail to build
(fetchpatch {
name = "cloudpinyin-disable-build";
url = "https://github.com/fcitx/fcitx5-chinese-addons/commit/024fff9c8587ca2fb01905e9a25df838e7d99da2.patch";
hash = "sha256-Mo5l8tsn1JQxTFHxOZfQRmbCeWZHLyxfn2Qwv/gQXGA=";
})
];
prePatch = ''
ln -s ${pyStroke} modules/pinyinhelper/$(stripHash ${pyStroke})
ln -s ${pyTable} modules/pinyinhelper/$(stripHash ${pyTable})
+15 -1
View File
@@ -197,6 +197,20 @@ lib.makeExtensible (
nix_2_32 = addTests "nix_2_32" self.nixComponents_2_32.nix-everything;
nixComponents_2_33 = nixDependencies.callPackage ./modular/packages.nix rec {
version = "2.33.1";
inherit (self.nix_2_32.meta) teams;
otherSplices = generateSplicesForNixComponents "nixComponents_2_33";
src = fetchFromGitHub {
owner = "NixOS";
repo = "nix";
tag = version;
hash = "sha256-TVKn52SoKq8mMyW/x3NPPskGVurFdnGGV0DGvnL0gak=";
};
};
nix_2_33 = addTests "nix_2_33" self.nixComponents_2_33.nix-everything;
nixComponents_git = nixDependencies.callPackage ./modular/packages.nix rec {
version = "2.34pre20251217_${lib.substring 0 8 src.rev}";
inherit teams;
@@ -211,7 +225,7 @@ lib.makeExtensible (
git = addTests "git" self.nixComponents_git.nix-everything;
latest = self.nix_2_32;
latest = self.nix_2_33;
# Read ./README.md before bumping a major release
stable = addFallbackPathsCheck self.nix_2_31;
+3
View File
@@ -808,6 +808,7 @@ mapAliases {
jami-client = throw "'jami-client' has been renamed to/replaced by 'jami'"; # Converted to throw 2025-10-27
jami-client-qt = throw "'jami-client-qt' has been renamed to/replaced by 'jami-client'"; # Converted to throw 2025-10-27
jami-daemon = throw "'jami-daemon' has been renamed to/replaced by 'jami.daemon'"; # Converted to throw 2025-10-27
jarowinkler-cpp = throw "'jarowinkler-cpp' has been removed because it was deprecated and archived upstream. Consider using 'rapidfuzz-cpp' instead"; # Added 2026-01-15
jdk23 = throw "OpenJDK 23 was removed as it has reached its end of life"; # Added 2025-11-04
jdk23_headless = throw "OpenJDK 23 was removed as it has reached its end of life"; # Added 2025-11-04
jdk24 = throw "OpenJDK 24 was removed as it has reached its end of life"; # Added 2025-10-04
@@ -895,6 +896,7 @@ mapAliases {
libkkc = throw "'libkkc' has been removed due to lack of maintenance. Consider using anthy instead"; # Added 2025-08-28
libkkc-data = throw "'libkkc-data' has been removed as it depended on libkkc which was removed"; # Added 2025-08-28
liblinphone = throw "'liblinphone' has been moved to 'linphonePackages.liblinphone'"; # Added 2025-09-20
libmesode = throw "'libmesode' has been removed because it was deprecated and archived upstream. Consider using 'libstrophe' instead"; # Added 2026-01-15
libmp3splt = throw "'libmp3splt' has been removed due to lack of maintenance upstream."; # Added 2025-05-17
libmusicbrainz3 = throw "libmusicbrainz3 has been removed as it was obsolete and unused"; # Added 2025-09-16
libmusicbrainz5 = libmusicbrainz; # Added 2025-09-16
@@ -1238,6 +1240,7 @@ mapAliases {
nixosTest = throw "'nixosTest' has been renamed to/replaced by 'testers.nixosTest'"; # Converted to throw 2025-10-27
nixStable = throw "'nixStable' has been renamed to/replaced by 'nixVersions.stable'"; # Converted to throw 2025-10-27
nm-tray = throw "'nm-tray' has been removed, as it only works with Plasma 5"; # Added 2025-08-30
nofi = throw "'nofi' has been removed due to being archived upstream."; # Added 2026-01-16
nomacs-qt6 = nomacs; # Added 2025-08-30
norouter = throw "norouter has been removed because it has been marked as broken since at least November 2024."; # Added 2025-09-29
notary = throw "'notary' has been removed due to being archived upstream. Consider using 'notation' instead."; # Added 2025-11-13
+8 -2
View File
@@ -156,6 +156,8 @@ self: super: with self; {
ahocorasick-rs = callPackage ../development/python-modules/ahocorasick-rs { };
ai-edge-litert = callPackage ../development/python-modules/ai-edge-litert { };
aigpy = callPackage ../development/python-modules/aigpy { };
ailment = callPackage ../development/python-modules/ailment { };
@@ -1715,7 +1717,7 @@ self: super: with self; {
backoff = callPackage ../development/python-modules/backoff { };
backports-asyncio-runner =
if pythonAtLeast "3.11" then
if pythonAtLeast "3.12" then
null
else
callPackage ../development/python-modules/backports-asyncio-runner { };
@@ -1730,7 +1732,11 @@ self: super: with self; {
backports-shutil-which = callPackage ../development/python-modules/backports-shutil-which { };
backports-strenum = callPackage ../development/python-modules/backports-strenum { };
backports-strenum =
if pythonAtLeast "3.11" then
null
else
callPackage ../development/python-modules/backports-strenum { };
backports-tarfile = callPackage ../development/python-modules/backports-tarfile { };