From 7d7b9bb8a4d62722a2860afd44ee059ee42fbff8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert=20Sch=C3=BCtz?= Date: Thu, 10 Sep 2026 09:25:55 -0700 Subject: [PATCH] immich: 3.1.0 -> 3.2.0 Diff: https://github.com/immich-app/immich/compare/v3.1.0...v3.2.0 Changelog: https://github.com/immich-app/immich/releases/tag/v3.2.0 --- .../im/immich-machine-learning/package.nix | 33 +++++++------------ pkgs/by-name/im/immich/package.nix | 27 +++++++-------- 2 files changed, 24 insertions(+), 36 deletions(-) diff --git a/pkgs/by-name/im/immich-machine-learning/package.nix b/pkgs/by-name/im/immich-machine-learning/package.nix index 9c968802d3fd..4241d2c79460 100644 --- a/pkgs/by-name/im/immich-machine-learning/package.nix +++ b/pkgs/by-name/im/immich-machine-learning/package.nix @@ -17,40 +17,31 @@ python.pkgs.buildPythonApplication rec { pyproject = true; pythonRelaxDeps = [ - "huggingface-hub" - "insightface" - "numpy" - "pillow" - "pydantic-settings" - ]; - - pythonRemoveDeps = [ - "setuptools" + "onnx" ]; build-system = with python.pkgs; [ hatchling - cython ]; dependencies = with python.pkgs; [ - insightface - opencv-python-headless - pillow - fastapi - uvicorn - pydantic - pydantic-settings aiocache - rich - ftfy - python-multipart - orjson + fastapi gunicorn huggingface-hub + numpy + onnx + opencv-python-headless + orjson + pillow + pydantic + pydantic-settings + python-multipart + rich tokenizers + uvicorn rapidocr ] ++ uvicorn.optional-dependencies.standard; diff --git a/pkgs/by-name/im/immich/package.nix b/pkgs/by-name/im/immich/package.nix index 796c4e3a5e02..32de526f3d1f 100644 --- a/pkgs/by-name/im/immich/package.nix +++ b/pkgs/by-name/im/immich/package.nix @@ -33,7 +33,7 @@ pango, perl, pixman, - vips_8_17, # thumbnail generation fails with vips 8.18 + vips, buildPackages, }: let @@ -45,12 +45,12 @@ let buildPackages.buildGoModule ( args // rec { - version = "0.28.1"; + version = "0.28.2"; src = fetchFromGitHub { owner = "evanw"; repo = "esbuild"; tag = "v${version}"; - hash = "sha256-V+HKaWGAIs24ynFFIS9fQ0EAJJdNmlAMeL1sgDEAqWM="; + hash = "sha256-I1u+9U5Oj/KzxSjCxwyitwSuDKimatkbC3R2OtaUsfM="; }; vendorHash = "sha256-+BfxCyg0KkDQpHt/wycy/8CTG6YBA/VJvJFhhzUnSiQ="; } @@ -77,14 +77,14 @@ let # The geodata website is not versioned, so we use the internet archive geodata = let - timestamp = "20260710111330"; + timestamp = "20260911002105"; date = "${lib.substring 0 4 timestamp}-${lib.substring 4 2 timestamp}-${lib.substring 6 2 timestamp}T" + "${lib.substring 8 2 timestamp}:${lib.substring 10 2 timestamp}:${lib.substring 12 2 timestamp}Z"; in runCommand "immich-geodata" { - outputHash = "sha256-Pf5u+bqzF2x1PECxKwZ6dfGiEj1YMlRejTcTI1amMvU="; + outputHash = "sha256-zxMbIEFF5MA2qkAbXs4sD4EQFWfCYt8t3AaC0m0LtEY="; outputHashMode = "recursive"; nativeBuildInputs = [ cacert @@ -106,29 +106,23 @@ let unzip ./cities500.zip -d $out/ echo "${date}" > $out/geodata-date.txt ''; - - # Without this thumbnail generation for raw photos fails with - # Error: Input file has corrupt header: tiff2vips: samples_per_pixel not a whole number of bytes - vips' = vips_8_17.overrideAttrs (prev: { - mesonFlags = prev.mesonFlags ++ [ "-Dtiff=disabled" ]; - }); in stdenv.mkDerivation (finalAttrs: { pname = "immich"; - version = "3.1.0"; + version = "3.2.0"; src = fetchFromGitHub { owner = "immich-app"; repo = "immich"; tag = "v${finalAttrs.version}"; - hash = "sha256-C1JG9waQEmIEHWAoghGA0Sr6sa2tW5/1CcXeHRdIbKU="; + hash = "sha256-1gaQ6f9Ja5FSis3wKyDUQprbcgs6sFtxNTwgihuxKL0="; }; pnpmDeps = fetchPnpmDeps { inherit (finalAttrs) pname version src; inherit pnpm; fetcherVersion = 4; - hash = "sha256-sGzB2E3G1B5XOgQIv8bg51IGwJEE8JSIipfmnCUH/yw="; + hash = "sha256-N6eaRcJxik1wzGE1H/LnKR1JUcSc8iswPFkIGymOKVA="; }; postPatch = '' @@ -162,7 +156,7 @@ stdenv.mkDerivation (finalAttrs: { pango pixman # Required for sharp - vips' + vips ]; env.SHARP_FORCE_GLOBAL_LIBVIPS = 1; @@ -190,6 +184,9 @@ stdenv.mkDerivation (finalAttrs: { # upstream uses pnpm deploy to build their docker images pnpm --filter immich deploy --prod --no-optional "$packageOut" + # build sharp from source + pnpm --dir "$packageOut/node_modules/sharp" exec npm run build + # remove build artifacts that bloat the closure find "$packageOut/node_modules" \( \ -name config.gypi \