Merge master into staging-next

This commit is contained in:
nixpkgs-ci[bot]
2025-10-25 06:05:23 +00:00
committed by GitHub
26 changed files with 227 additions and 59 deletions
@@ -45,8 +45,6 @@ let
partOf = [ "ceph-${daemonType}.target" ];
wantedBy = [ "ceph-${daemonType}.target" ];
path = [ pkgs.getopt ];
# Don't start services that are not yet initialized
unitConfig.ConditionPathExists = "/var/lib/${stateDirectory}/keyring";
startLimitBurst =
@@ -323,7 +323,11 @@ in
"vchord"
];
sqlFile = pkgs.writeText "immich-pgvectors-setup.sql" (
# save previous version of vectorchord to trigger reindex on update
lib.optionalString cfg.database.enableVectorChord ''
SELECT COALESCE(installed_version, ''') AS vchord_version_before FROM pg_available_extensions WHERE name = 'vchord' \gset
''
+ ''
${lib.concatMapStringsSep "\n" (ext: "CREATE EXTENSION IF NOT EXISTS \"${ext}\";") extensions}
${lib.concatMapStringsSep "\n" (ext: "ALTER EXTENSION \"${ext}\" UPDATE;") extensions}
ALTER SCHEMA public OWNER TO ${cfg.database.user};
@@ -332,6 +336,17 @@ in
ALTER SCHEMA vectors OWNER TO ${cfg.database.user};
GRANT SELECT ON TABLE pg_vector_index_stat TO ${cfg.database.user};
''
# trigger reindex if vectorchord updates
# https://docs.immich.app/administration/postgres-standalone/#updating-vectorchord
+ lib.optionalString cfg.database.enableVectorChord ''
SELECT COALESCE(installed_version, ''') AS vchord_version_after FROM pg_available_extensions WHERE name = 'vchord' \gset
SELECT (:'vchord_version_before' != ''' AND :'vchord_version_before' != :'vchord_version_after') AS has_vchord_updated \gset
\if :has_vchord_updated
REINDEX INDEX face_index;
REINDEX INDEX clip_index;
\endif
''
);
in
[
+1
View File
@@ -733,6 +733,7 @@ in
immich = runTest ./web-apps/immich.nix;
immich-public-proxy = runTest ./web-apps/immich-public-proxy.nix;
immich-vectorchord-migration = runTest ./web-apps/immich-vectorchord-migration.nix;
immich-vectorchord-reindex = runTest ./web-apps/immich-vectorchord-reindex.nix;
incron = runTest ./incron.nix;
incus = pkgs.recurseIntoAttrs (
handleTest ./incus {
@@ -0,0 +1,74 @@
{ ... }:
{
name = "immich-vectorchord-reindex";
nodes.machine =
{ lib, pkgs, ... }:
{
# These tests need a little more juice
virtualisation = {
cores = 2;
memorySize = 2048;
diskSize = 4096;
};
services.immich = {
enable = true;
environment.IMMICH_LOG_LEVEL = "verbose";
};
services.postgresql.extensions = lib.mkForce (ps: [
ps.pgvector
# pin vectorchord to an older version simulate version bump
(ps.vectorchord.overrideAttrs (prevAttrs': rec {
version = "0.5.2";
src = pkgs.fetchFromGitHub {
owner = "tensorchord";
repo = "vectorchord";
tag = version;
hash = "sha256-KGwiY5t1ivFiYex3D20y3sdiu3CT9LCDd2fPnRE56jM=";
};
cargoDeps = pkgs.rustPlatform.fetchCargoVendor {
inherit src;
hash = "sha256-Vn3c/xuUpQzERJ74I0qbvufTZtW3goefPa5B/nOUO48=";
};
}))
]);
specialisation."immich-vectorchord-upgraded".configuration = {
# needs to be lower than mkForce, otherwise it does not get rid of the previous version
services.postgresql.extensions = lib.mkOverride 40 (ps: [
ps.pgvector
ps.vectorchord
]);
};
};
testScript =
{ nodes, ... }:
let
specBase = "${nodes.machine.system.build.toplevel}/specialisation";
vectorchordUpgraded = "${specBase}/immich-vectorchord-upgraded";
in
''
def immich_works():
machine.wait_for_unit("immich-server.service")
machine.wait_for_open_port(2283) # Server
machine.wait_for_open_port(3003) # Machine learning
machine.succeed("curl --fail http://localhost:2283/")
immich_works()
machine.succeed("${vectorchordUpgraded}/bin/switch-to-configuration test")
# just tests that reindexing is triggered
machine.wait_until_succeeds(
"journalctl -o cat -u postgresql-setup.service | grep 'REINDEX'"
)
immich_works()
'';
}
@@ -6,8 +6,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
mktplcRef = {
name = "material-icon-theme";
publisher = "PKief";
version = "5.27.0";
hash = "sha256-vP5jMijMIKHUmvSaTX+eEO6Z3dzUCR6S/ZdPxjJHIT8=";
version = "5.28.0";
hash = "sha256-VZFeEaWe5JZQegOJ674vHxQAFuWFG5lttnWwSQ5AY5g=";
};
meta = {
description = "Material Design Icons for Visual Studio Code";
@@ -116,7 +116,7 @@ let
++ lib.optional smartcardSupport opensc
++ pkcs11Modules
++ lib.optionals (!isDarwin) gtk_modules;
gtk_modules = [ libcanberra-gtk3 ];
gtk_modules = lib.optionals (!isDarwin) [ libcanberra-gtk3 ];
# Darwin does not rename bundled binaries
launcherName = "${applicationName}${lib.optionalString (!isDarwin) nameSuffix}";
+9
View File
@@ -52,6 +52,7 @@
cunit,
e2fsprogs,
doxygen,
getopt,
gperf,
graphviz,
gnugrep,
@@ -518,6 +519,10 @@ stdenv.mkDerivation {
substituteInPlace src/client/fuse_ll.cc \
--replace-fail "mount -i -o remount" "${util-linux}/bin/mount -i -o remount"
substituteInPlace src/{ceph-osd-prestart.sh,ceph-post-file.in,init-ceph.in} \
--replace-fail "GETOPT=/usr/local/bin/getopt" "GETOPT=${getopt}/bin/getopt" \
--replace-fail "GETOPT=getopt" "GETOPT=${getopt}/bin/getopt"
# The install target needs to be in PYTHONPATH for "*.pth support" check to succeed
export PYTHONPATH=$PYTHONPATH:$lib/${sitePackages}:$out/${sitePackages}
patchShebangs src/
@@ -584,6 +589,10 @@ stdenv.mkDerivation {
# silently drop it with misconfigurations.
test -f $out/bin/ceph-volume
# Assert that getopt patch from preConfigure covered all instances
! grep -F -r 'GETOPT=getopt' $out
! grep -F -r 'GETOPT=/usr/local/bin/getopt' $out
mkdir -p $client/{bin,etc,${sitePackages},share/bash-completion/completions}
cp -r $out/bin/{ceph,.ceph-wrapped,rados,rbd,rbdmap} $client/bin
cp -r $out/bin/ceph-{authtool,conf,dencoder,rbdnamer,syn} $client/bin
+3 -3
View File
@@ -35,7 +35,7 @@ let
davinci = (
stdenv.mkDerivation rec {
pname = "davinci-resolve${lib.optionalString studioVariant "-studio"}";
version = "20.2.1";
version = "20.2.2";
nativeBuildInputs = [
(appimage-run.override { buildFHSEnv = buildFHSEnvChroot; })
@@ -57,9 +57,9 @@ let
outputHashAlgo = "sha256";
outputHash =
if studioVariant then
"sha256-emAVfA9mclwJSiT9oVvLVhCy2GXGQVsvg4pj3vodxk8="
"sha256-4TpB0kFQpWLkfLFo5txe4km/TjxJ+ajYnJ28UdQvncA="
else
"sha256-/OQhi4y07TOyeIdD18URBr4qAfuPhd2mr0giqgTEfk0=";
"sha256-A70WknvKE35AI+U0drSTFpM5T7gJVf2EYtWdxaxbbA0=";
impureEnvVars = lib.fetchers.proxyImpureEnvVars;
@@ -2,6 +2,7 @@
lib,
stdenv,
fetchFromGitHub,
fetchpatch,
cmake,
qt6,
pkg-config,
@@ -23,6 +24,15 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-KDxT9B+1SATWiZdUBAQvZu17vk3xmyXcw2Zy56bdWbY=";
};
patches = [
# Fix Qt6::WaylandClientPrivate not found
# https://github.com/hyprwm/hyprsysteminfo/pull/21
(fetchpatch {
url = "https://github.com/hyprwm/hyprsysteminfo/commit/fe81610278676d26ff47f62770ac238220285d3a.patch";
hash = "sha256-rfKyV0gkfXEhTcPHlAB+yxZ+92umBV22YOK9aLMMBhM=";
})
];
nativeBuildInputs = [
cmake
pkg-config
+1 -1
View File
@@ -251,7 +251,7 @@ stdenv.mkDerivation {
passthru = {
tests = {
inherit (nixosTests) immich immich-vectorchord-migration;
inherit (nixosTests) immich immich-vectorchord-migration immich-vectorchord-reindex;
};
machine-learning = immich-machine-learning;
+4 -10
View File
@@ -7,27 +7,21 @@
python3Packages.buildPythonApplication rec {
pname = "isponsorblocktv";
version = "2.5.3";
version = "2.6.1";
pyproject = true;
src = fetchFromGitHub {
owner = "dmunozv04";
repo = "iSponsorBlockTV";
tag = "v${version}";
hash = "sha256-vxTEec5SMq5zcX70PiRD61aDPJUySuBG0TBQH5Qw8ow=";
hash = "sha256-AGjLehhGYz8FyojSFmSYKLCkHAExtpQiukQnTNt1YoY=";
};
patches = [
# Port iSponsorBlockTV to pyytlounge v3
(fetchpatch {
url = "https://github.com/lukegb/iSponsorBlockTV/commit/3b50819fffbea23ef02f24726982a1b3313fa952.patch";
hash = "sha256-2adgGE3rBnp+/z+2iblWCxO+6qV9RHx0dqTxv/kjDJU=";
})
# Update setup_wizard for Textual v3
(fetchpatch {
url = "https://github.com/lukegb/iSponsorBlockTV/commit/4a3874b781f796ad32e40fc871fee7c080716171.patch";
hash = "sha256-kdfAaIuvQovst55sOmKv+zH/7JxN1JHI9aTF0c9fYAY=";
url = "https://github.com/ameertaweel/iSponsorBlockTV/commit/1809ca5a0d561bc9326a51e82118f290423ed3e6.patch";
hash = "sha256-v5YXfKUPTzpZPIkVSQF2VUe9EvclAH+kJyiiyUEe/HM=";
})
];
@@ -0,0 +1,73 @@
{
stdenv,
fetchFromGitHub,
cmake,
gtest,
zlib,
copyPkgconfigItems,
makePkgconfigItem,
lib,
testers,
ctestCheckHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "kaitai-struct-cpp-stl-runtime";
version = "0.11";
src = fetchFromGitHub {
owner = "kaitai-io";
repo = "kaitai_struct_cpp_stl_runtime";
tag = finalAttrs.version;
sha256 = "sha256-2glGPf08bkzvnkLpQIaG2qiy/yO+bZ14hjIaCKou2vU=";
};
doCheck = true;
outputs = [
"out"
"dev"
];
nativeBuildInputs = [
cmake
copyPkgconfigItems
ctestCheckHook
];
buildInputs = [
zlib
gtest
];
strictDeps = true;
# https://github.com/kaitai-io/kaitai_struct_cpp_stl_runtime/issues/82
pkgconfigItems = [
(makePkgconfigItem rec {
name = "kaitai-struct-cpp-stl-runtime";
inherit (finalAttrs) version;
cflags = [ "-I${variables.includedir}" ];
libs = [
"-L${variables.libdir}"
"-lkaitai_struct_cpp_stl_runtime"
];
variables = {
includedir = "${placeholder "dev"}/include";
libdir = "${placeholder "out"}/lib";
};
inherit (finalAttrs.meta) description;
})
];
passthru = {
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
};
meta = {
pkgConfigModules = [ "kaitai-struct-cpp-stl-runtime" ];
description = "Kaitai Struct C++ STL Runtime Library";
homepage = "https://github.com/kaitai-io/kaitai_struct_cpp_stl_runtime";
license = lib.licenses.mit;
maintainers = with lib.maintainers; [ fzakaria ];
};
})
+3 -3
View File
@@ -7,14 +7,14 @@
python3.pkgs.buildPythonApplication {
pname = "renode-dts2repl";
version = "0-unstable-2025-09-30";
version = "0-unstable-2025-10-24";
pyproject = true;
src = fetchFromGitHub {
owner = "antmicro";
repo = "dts2repl";
rev = "5035830ab3cdf39445f130f1c2630a444b598c1a";
hash = "sha256-J3SVS91TM+EdXCTLIS8Obd4f0qgZXe8EouCJ7Xt01po=";
rev = "84e0ab4e3eaebfde0debffd15c925c9c4d06d9f6";
hash = "sha256-1pOAeXaFna5rBCn2R+nVBUdZdpwAl4/1G+kE9tuXqII=";
};
nativeBuildInputs = [
+3 -3
View File
@@ -25,16 +25,16 @@
}:
rustPlatform.buildRustPackage (finalAttrs: {
pname = "restate";
version = "1.5.2";
version = "1.5.3";
src = fetchFromGitHub {
owner = "restatedev";
repo = "restate";
tag = "v${finalAttrs.version}";
hash = "sha256-lLZuzjx/DKr00GWPTkSncGT2j9M/xUU84Alxqia8IvQ=";
hash = "sha256-5sGVVJ8Y90yJoikQnPeGbZhNlSR/d3EkMct9isSWies=";
};
cargoHash = "sha256-2z0RcttfwbhehS8k4vu5d1Np0pRWSCIeQk8paH7hJuY=";
cargoHash = "sha256-+Yc7u6q4U4MwT5eHnxHC2DCG66SmEyRfNMeMqSO+GeQ=";
env = {
PROTOC = lib.getExe protobuf;
@@ -9,13 +9,13 @@
}:
rustPlatform.buildRustPackage rec {
pname = "thin-provisioning-tools";
version = "1.2.2";
version = "1.3.0";
src = fetchFromGitHub {
owner = "jthornber";
repo = "thin-provisioning-tools";
rev = "v${version}";
hash = "sha256-JnibI3txqPXwEemLtgtfe6NAZrOX09p0w4sp9/HEXBQ=";
hash = "sha256-KjX+qAiHkbv3DicAfJxEFv/4CKdE0ZeB9Ktia93oiaU=";
};
strictDeps = true;
@@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec {
udev
];
cargoHash = "sha256-1spipVIT49G0l6yLyv3/7jsR2xyJQPjtB5vouyAjpgA=";
cargoHash = "sha256-IgP5JehP/mlsjYSTn5hepWVgZmPGoyZix83rgO08WfA=";
passthru.tests = {
inherit (nixosTests.lvm2) lvm-thinpool-linux-latest;
+2 -2
View File
@@ -23,13 +23,13 @@ assert lib.elem lineEditingLibrary [
];
stdenv.mkDerivation (finalAttrs: {
pname = "trealla";
version = "2.83.18";
version = "2.84.1";
src = fetchFromGitHub {
owner = "trealla-prolog";
repo = "trealla";
rev = "v${finalAttrs.version}";
hash = "sha256-8JaX/4W8olwLb1pU2qzqmqXFI1BgFPl+hsbEBqk5SF4=";
hash = "sha256-zbU0fdCqWafwUzF857jVHxHWPUChfNl4kAHuOKbkfaA=";
};
postPatch = ''
@@ -9,11 +9,11 @@
stdenv.mkDerivation (finalAttrs: {
pname = "kotlin";
version = "2.2.20";
version = "2.2.21";
src = fetchurl {
url = "https://github.com/JetBrains/kotlin/releases/download/v${finalAttrs.version}/kotlin-compiler-${finalAttrs.version}.zip";
sha256 = "sha256-gfAmTJBztcu9s/+EGM8sXawHaHn8FW+hpkYvWlrMRCA=";
sha256 = "sha256-piOHHxzZyTiUaUi3DvkXCHnwdYBDiFu9MMMvAk5RFxQ=";
};
propagatedBuildInputs = [ jre ];
@@ -3,22 +3,19 @@
aiohttp,
buildPythonPackage,
fetchFromGitHub,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "aioairzone";
version = "1.0.1";
version = "1.0.2";
pyproject = true;
disabled = pythonOlder "3.11";
src = fetchFromGitHub {
owner = "Noltari";
repo = "aioairzone";
tag = version;
hash = "sha256-pFbX92UxhNcbHjU1Leoyr225Q6lCHT3hfv/mLSm7y2c=";
hash = "sha256-eNSsBlLn6Go+2gQ8IHEzFOQPRuJM8nLqwIaDvXLgthY=";
};
build-system = [ setuptools ];
@@ -22,7 +22,7 @@
buildPythonPackage rec {
pname = "aioautomower";
version = "2.2.2";
version = "2.3.1";
pyproject = true;
disabled = pythonOlder "3.11";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
owner = "Thomas55555";
repo = "aioautomower";
tag = "v${version}";
hash = "sha256-ds/wNPaZYQ8Tk/GyqYrWYL99oU73JWc/3KBsMULBass=";
hash = "sha256-M0BAErX5S3BjP+YSv+j2m453T4+U4uHV6N0kWmc42ls=";
};
postPatch = ''
@@ -8,22 +8,19 @@
polib,
pytestCheckHook,
python-dateutil,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "holidays";
version = "0.82";
version = "0.83";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "vacanza";
repo = "python-holidays";
tag = "v${version}";
hash = "sha256-H+qG9GqSPFODn0kWSIY/XJ1wAPI/iArCWR3yG+pFZXE=";
hash = "sha256-GlOydhDSg03uZUxLXDoaT/Jq3DMk+HsSxBtPQE9DQ3U=";
};
build-system = [
@@ -57,12 +54,12 @@ buildPythonPackage rec {
pythonImportsCheck = [ "holidays" ];
meta = with lib; {
meta = {
description = "Generate and work with holidays in Python";
homepage = "https://github.com/vacanza/python-holidays";
changelog = "https://github.com/vacanza/python-holidays/releases/tag/${src.tag}";
license = licenses.mit;
maintainers = with maintainers; [
license = lib.licenses.mit;
maintainers = with lib.maintainers; [
fab
jluttine
];
@@ -10,14 +10,14 @@
buildPythonPackage rec {
pname = "metaflow";
version = "2.18.12";
version = "2.19.0";
pyproject = true;
src = fetchFromGitHub {
owner = "Netflix";
repo = "metaflow";
tag = version;
hash = "sha256-GHalg2jH8MGJySS2kMyLW04my8d+DTJmiFmexeqJUnY=";
hash = "sha256-MMPkQ1cjl/Sid4RyvP04xIDb6Xtr5S+LdJTOYgo0LFQ=";
};
build-system = [
@@ -25,7 +25,7 @@
let
pname = "pynitrokey";
version = "0.10.0";
version = "0.11.1";
mainProgram = "nitropy";
in
@@ -35,7 +35,7 @@ buildPythonPackage {
src = fetchPypi {
inherit pname version;
hash = "sha256-Kr6VtBADLvXUva7csbsHujGzBfRG1atJLF7qbIWmToM=";
hash = "sha256-TUc8ZDQ0MHyEtrsudqGxTXmwNIio4UcNcjwsOtaK0Ww=";
};
nativeBuildInputs = [ installShellFiles ];
@@ -9,14 +9,14 @@
buildPythonPackage rec {
pname = "pyprobeplus";
version = "1.1.1";
version = "1.1.2";
pyproject = true;
src = fetchFromGitHub {
owner = "pantherale0";
repo = "pyprobeplus";
tag = version;
hash = "sha256-pD8o+Wb9X1yTMPh1eY1PwOc5KR2W5KoxDDQ/otHz6zI=";
hash = "sha256-CJbQs0xZHdXNPX71G1KrrHHV58gXaQsUHGcX9P8E+iY=";
};
build-system = [ setuptools ];
@@ -2,7 +2,7 @@
# Do not edit!
{
version = "2025.10.3";
version = "2025.10.4";
components = {
"3_day_blinds" =
ps: with ps; [
+3 -3
View File
@@ -330,7 +330,7 @@ let
extraBuildInputs = extraPackages python.pkgs;
# Don't forget to run update-component-packages.py after updating
hassVersion = "2025.10.3";
hassVersion = "2025.10.4";
in
python.pkgs.buildPythonApplication rec {
@@ -351,13 +351,13 @@ python.pkgs.buildPythonApplication rec {
owner = "home-assistant";
repo = "core";
tag = version;
hash = "sha256-b4yNS1uNoZSnTpYr3bVvSru/2KUe2d/xfe1tiAWibCg=";
hash = "sha256-CaS/37Pastpoeb6fXLiChVcQXNqVJMaXV04HGnNFlL0=";
};
# Secondary source is pypi sdist for translations
sdist = fetchPypi {
inherit pname version;
hash = "sha256-BjPva2mxlArG9yDnk9PpjpdLiL2MA4Eeb8AP1nkoqKk=";
hash = "sha256-Ue1Aat8aSEXHUSIl2ji1cQaZEnVRgY7+PBHB9mQBJ6I=";
};
build-system = with python.pkgs; [
+2 -2
View File
@@ -10,7 +10,7 @@
buildPythonPackage rec {
pname = "homeassistant-stubs";
version = "2025.10.3";
version = "2025.10.4";
pyproject = true;
disabled = python.version != home-assistant.python.version;
@@ -19,7 +19,7 @@ buildPythonPackage rec {
owner = "KapJI";
repo = "homeassistant-stubs";
tag = version;
hash = "sha256-A4nzqyjuYGgFJQR7pTg1fNzSzwcdXumiECLpYBOM+TM=";
hash = "sha256-1ZV9lgueBKALUuvnHVGSb2C24auljdI07KkbLsaEe54=";
};
build-system = [