www/immich-ml: Update to 3.3.5
The machine learning models were re-exported in a faster and more memory
efficient format, and the PP-OCRv6 model family was added, which is more
accurate than PP-OCRv5 and multilingual throughout. Both are opt-in via
MACHINE_LEARNING_MODEL_REVISION, which immich-ml.env.sample now mentions;
upstream intends to make it the default in a later release. Model outputs
are numerically equivalent, so no job needs to be re-run.
Follow upstream's dependency set: aiocache is gone since 3.3.0, immich-model
is new, and onnx is declared directly. Drop ftfy, insightface and
ml-dtypes, none of which upstream declares or imports, and which no longer
need to stand in for a gap in misc/py-onnx.
Changelog: https://github.com/immich-app/immich/releases/tag/v3.3.5
Sponsored by: Netzkommune GmbH
misc/py-insightface: Deprecate
Immich's machine learning service never imported insightface; the only
occurrences in its source tree are an enum value and a comment crediting the
ported geometry code. No other port in the tree uses it.
Sponsored by: Netzkommune GmbH
devel/py-aiocache: Deprecate
Immich's machine learning service dropped aiocache with 3.3.0 and it was the
only consumer in the tree.
Sponsored by: Netzkommune GmbH
www/immich: Update to 3.3.5
3.3.0 brings shared people: a person can be shared with another user in the
same cluster group, shows up in both users' people lists and asset viewers,
and name and birth date can be edited by either side. Sharing is
directional, so both users have to share a person back for edits to flow
both ways. Memories gained birthdays, and mobile edits are auto-stacked.
Thumbnails and previews are now generated at higher quality. Existing
thumbnails are not touched; re-run thumbnail generation over all assets to
apply it.
3.3.1 through 3.3.5 are bug fixes around the new sharing, plus faster person
queries. The security note on the 3.3.5 release refers to the container
image, not to this port: the certifi pin lives in upstream's uv.lock, which
the port does not use, and node comes from www/node22.
The powerpc64le support from 2a0d2e8115e5 does not survive this update: it
pins pnpm store paths to lockfile versions, and upstream moved rolldown from
[8 lines not shown]
www/immich-cli: Update to 3.3.5
The command line interface is versioned with the monorepo; the release notes
for 3.3.0 through 3.3.5 list no changes specific to it.
The powerpc64le support from f276565ed7be does not survive this update: it
pins pnpm store paths to lockfile versions, and upstream moved rolldown from
1.2.5 to 1.2.9, so the pinned path no longer exists. Changes of this scope
to the build of this port belong in a review before they are committed, not
after. I have no powerpc64le host to build or test on, so I cannot carry
them.
Changelog: https://github.com/immich-app/immich/releases/tag/v3.3.5
Sponsored by: Netzkommune GmbH
misc/py-onnxscript: Add New Port
ONNX Script lets developers write ONNX functions and models directly in a
subset of Python. Decorated functions are traced into ONNX graphs, so
operators and control flow can be expressed as ordinary Python code.
Sponsored by: Netzkommune GmbH
misc/py-onnx-ir: Add New Port
ONNX IR is an in-memory representation for ONNX models. It loads a model
into a mutable object graph, lets programs inspect and rewrite graphs,
initializers and metadata, and serializes the result back to ONNX.
Sponsored by: Netzkommune GmbH
misc/py-immich-model: Add New Port
The model runtime that Immich's machine learning service loads at inference
time: the ONNX graph lowerings for the CLIP and face recognition models, the
per execution provider variants of them, and the catalogue that maps a model
name to its files.
The exporter and benchmarking tools from the same source tree are not
installed; they pull in PyTorch and are only needed to regenerate the models.
Sponsored by: Netzkommune GmbH
lang/v8: update to 15.6.75.19 (Chrome 156 stable)
- Update the dependency pins from DEPS and the Temporal crates to the
versions in Chromium's third_party/rust.
- Read time zone data from devel/icu through the new upstream
v8_enable_temporal_systemicu option instead of a local patch.
- Port PartitionAlloc's zero segment, which keeps the low 4 GB of the
address space inaccessible, to FreeBSD. V8 no longer reserves this
range itself, and d8 refuses to start without it. Hinted mappings
are not honored with ASLR, so reserve the range with a guard mapping.
devel/libuv: backport uv_cpu_info() fix for powerpc64*
hw.clockrate doesn't exist on powerpc, so uv_cpu_info() fails and node's
os.cpus() is empty. rollup's terser plugin then starts zero workers and
hangs, which broke www/py-yt-dlp-ejs. The fix is in libuv 1.53.0.