diff --git a/birdnet-go-dev/CHANGELOG.md b/birdnet-go-dev/CHANGELOG.md index a051f6a459..d49b65acb2 100644 --- a/birdnet-go-dev/CHANGELOG.md +++ b/birdnet-go-dev/CHANGELOG.md @@ -1,5 +1,6 @@ ## 20261102.2 (02-11-2026) +- The bundled ONNX Runtime version is now read at build time from upstream's own Dockerfile in the merged source, instead of a separate pin here, so it always matches the ONNX Runtime binding upstream compiles against. It resolves to 1.31.1 today, the version already shipped - Bundled ONNX Runtime bumped from 1.25.1 to 1.31.1, the version upstream pins. Since build 20261102.1 the upstream code (tphakala/birdnet-go#4631) uses an ONNX Runtime binding that requests C API version 29, which 1.25.1 (API 25) does not provide, so every model that initializes ONNX Runtime failed to load: BirdNET 3.0 was missing from the active models, the geomodel range filter fell back to the older metadata filter, and the ONNX bat models and privacy VAD could not load when enabled. BirdNET V2.4 (TFLite) and Perch V2 (OpenVINO) were unaffected ## 20261102.1 (02-11-2026) diff --git a/birdnet-go-dev/Dockerfile b/birdnet-go-dev/Dockerfile index c80e822a2b..3e8fa2ad48 100644 --- a/birdnet-go-dev/Dockerfile +++ b/birdnet-go-dev/Dockerfile @@ -25,8 +25,8 @@ # applied on top and are byte-for-byte identical to the upstream variant. # # Build stages 0-1 mirror tphakala/birdnet-go's Docker/Dockerfile; if -# upstream changes its build (Go/Node/onnxruntime versions, task names) -# sync them here. +# upstream changes its build (Go/Node versions, task names) sync them +# here. The ONNX Runtime version is read from upstream's Dockerfile. ########################################################## # 0 Prepare merged BirdNET-Go source tree (fork + PRs) # @@ -140,10 +140,16 @@ RUN task frontend-build FROM --platform=$BUILDPLATFORM buildenv AS build ARG BUILD_VERSION ENV BUILD_VERSION=${BUILD_VERSION:-unknown} -ARG ONNXRUNTIME_VERSION=1.31.1 -# Download ONNX Runtime for amd64 (x64) -RUN echo "Downloading ONNX Runtime ${ONNXRUNTIME_VERSION} for x64" && \ +# Download ONNX Runtime for amd64 (x64). The version is read from upstream's own +# Dockerfile in the merged source tree, so it always matches the onnxruntime_go +# binding this source is compiled against (upstream moves both together). +RUN ONNXRUNTIME_VERSION="$(sed -n 's/^ARG ONNXRUNTIME_VERSION=//p' Dockerfile)" && \ + if [ -z "${ONNXRUNTIME_VERSION}" ]; then \ + echo "ERROR: ARG ONNXRUNTIME_VERSION not found in upstream Dockerfile" >&2; \ + exit 1; \ + fi && \ + echo "Downloading ONNX Runtime ${ONNXRUNTIME_VERSION} for x64" && \ curl -fsSL "https://github.com/microsoft/onnxruntime/releases/download/v${ONNXRUNTIME_VERSION}/onnxruntime-linux-x64-${ONNXRUNTIME_VERSION}.tgz" \ -o /tmp/onnxruntime.tgz && \ mkdir -p /tmp/onnxruntime && \