Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package onnxruntime for openSUSE:Factory checked in at 2026-07-02 20:09:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/onnxruntime (Old) and /work/SRC/openSUSE:Factory/.onnxruntime.new.1982 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "onnxruntime" Thu Jul 2 20:09:40 2026 rev:2 rq:1362955 version:1.27.0 Changes: -------- --- /work/SRC/openSUSE:Factory/onnxruntime/onnxruntime.changes 2026-06-29 17:33:11.551855982 +0200 +++ /work/SRC/openSUSE:Factory/.onnxruntime.new.1982/onnxruntime.changes 2026-07-02 20:12:52.588502085 +0200 @@ -1,0 +2,281 @@ +Wed Jul 01 07:55:07 UTC 2026 - Paolo Stivanin <[email protected]> + +- Update to version 1.27.0: + * [CUDA] Optimize QMoE SoftmaxTopK router for small-batch decode (#29026) + * fix: NodeJS pkging stage needs to use CFS (#29007) + * Disable OrtEp::ort_version_supported sanity check to work around EPs that don't set it correctly. (#28960) + * 1.27.0 - cherry pick 2 (#28900) + * 1.27.0 - cherry pick 1 (#28817) + * Switch NPM publishing to consume from CUDA 13 pipeline (#28773) (#28792) + * Skip SetupDi device discovery if Win32k system calls are disabled (#28535) + * fix(quantization): validate bias scale in QDQ Conv → QLinearConv fusion (#28229) + * Use abseil for readable POSIX stack traces in debug builds (#28405) + * feat(quantization): add opset-21 block_size attribute to QDQ (#28522) + * fix: preserve Q/DQ around Resize when mode is linear or cubic (#28414) + * Fix PRelu returning NaN for infinite inputs on CPU EP (#28750) + * [MLAS][KleidiAI] Apply fp16 split independent fixes (#28720) + * Zero-copy I/O for plugin EPs with HOST_ACCESSIBLE memory (#28037) + * [CoreML EP] Add GatherND builder (#28598) + * Fix ARM CPUIDInfo bounds handling for unknown CPU vendors (#28344) + * Honor disable_synchronize_execution_providers for CUDA graph replay (#28686) + * [MLAS] Fix MatMulNBits CPU LUT GEMM path to apply optional bias (#28742) + * [WebGPU] Support models with opset 24 ops and KV-shared decoder layers (Gemma 4) (#28501) + * Add LpNormalization support for CUDA Execution Provider (#28724) + * Unify path validation in EPs, address security gaps (#28725) + * Add boundary checks for input validation (#28747) + * [CoreML EP] Support bool Cast in ML Program (#28595) + * [CUDA] Add QMoE tests for standard swiglu and update doc (#28741) + * Add Implicit inputs for conditional nodes branches part of node fusio… (#28690) + * Fix CUDA 13 nuget packaging pipeline failures and enable CUDA 13.3 builds (#28736) + * [CUDA] Chunked dequant+GEMM in MatMulNBits to reduce peak GPU memory for large N (#28712) + * Fix IsInfTest (T4 GPU does not support BF16) (#28727) + * [CUDA Plugin EP] Add provider options: user_compute_stream, do_copy_in_default_stream, use_ep_level_unified_stream, external allocator (#28603) + * [NvTensorRTRTX EP] Skip GPU JIT during compile-only sessions (#28503) + * Bump tmp from 0.2.5 to 0.2.7 in /js/web (#28694) + * Bump tmp from 0.2.4 to 0.2.6 in /onnxruntime/test/wasm (#28683) + * Bump qs and body-parser in /onnxruntime/test/wasm (#28644) + * Fix CPU QLinearConv: support per-channel weight zero points with distinct values (#28456) + * Build onnxruntime with training, training_apis, tests and gcc-15 (#27191) + * Update microsoft_gsl from v4.0.0 to v4.2.1 (fixes C4875 deprecation) (#28527) + * Introduce checks to prevent buffer overflow, add tests (#28713) + * CUDA Plugin EP: NHWC Cleanup & Hardening (#28612) + * Add explicit CUDA version suffix to GPU release artifacts (#28691) + * Update CUDA 12.8 to 13.0 in CI workflows (#28458) + * Add `tools/python/compile_contributors.py` `--paths` option (#28710) + * Flash Attention style tiled computation for CPU GQA quantized KV cache (#28695) + * Address external path references in loaded models (#28709) + * fix(partitioning_utils): include Loop/If/Scan implicit inputs in MetaDef (#28608) + * fix(quantization): emit axis on DequantizeLinear for per-channel dynamic quantization (#28228) + * Replace direct inclusion of <cub/cub.cuh> with "core/providers/cuda/cu_inc/cub.cuh" wrapper. (#28705) + * [WebGPU EP] Add environment variable to dump shader code to a file, move shader key validation to nightly build (#28674) + * Address CUDA ReduceL2 negative results and add test coverage (#28681) + * [WebGPU] QKV and MLP layer fusions for Qwen3-style models (#28280) + * Update protobuf version to 6.33.5 (#28684) + * [webgpu] Per-graph buffer manager for WebGPU multi-graph capture (#28260) + * Update GQA op schema (#28689) + * Use fp32 accumulation in SkipLayerNorm/EmbedLayerNorm CUDA kernels (#28682) + * [WebGPU plugin EP] Enforce minimum ORT version specified by `plugin-ep-webgpu/MIN_ONNXRUNTIME_VERSION` (#28687) + * Guard removed APIs in TRT 11 (#28611) + * [CoreML EP] Add Sin and Cos unary ops (#28596) + * Speed up CUDA CI build: split into per-arch OBJECT libraries, add --flash_nvcc_threads, and enable quick build mode (#28645) + * Propagate outer scope type info to subgraphs during verification (#27707) + * Fix CUTLASS FMHA BiasLoader alignment for unaligned kernel path (#28369) + * remove some webgpu ci tasks to speedup ci (#28642) + * Check weight shape dimensions in ConvTranspose shape inference msrc116345 (#28524) + * Add --test_parallel to reduce CTest concurrency for ASan builds (#28675) + * Fix plugin EP test failure when host ORT lacks newer data types (#28659) + * lstm support for webgpu (#27881) + * rev some npm packages (#28547) + * Update GatherBlockQuantized to support 2-bits (#28530) + * Raise protobuf minimum version in Python requirements (#28558) + * [Annotations] Address cuda orginal matching (#28623) + * Optimize MatMulNBits 2-bit + float zero_point CPU dequantization with multi-threaded kernel (#28589) + * Fix Erf NaN preservation on x86_64 FMA3 path (#28615) + * Additional diagnostics for DML failure path (#28495) + * Add example and documentation for kOrtEpDevice_EpMetadataKey_OSDriverVersion (#28282) + * [MLAS] RVV-Optimized LLM Operators for RISC-V (#28518) + * Fix: Accept 'CPU' as a valid provider name in SessionOptionsAppendExecutionProvider (#28625) + * Fix Reshape with allowzero=1 producing wrong shape for zero-size tensor in chained Reshape (#28455) + * [WebGPU] LinearAttention: increase tile_v when subgroups are available (#28519) + * fix(qdq): skip DQ forward propagation when DQ input is constant (#28521) + * Optimize MLAS quantized KV-cache GEMM kernels (follow-up to #28578) (#28606) + * Fix CUDA build with contrib ops disabled (#28554) + * QMoE CUDA: input validation, prepack cleanups, and packaging pipeline fix (#28607) + * [NVEP]: fix test for multi-gpu situation (#27837) + * Parallelize CPU ScatterElements kernel via ThreadPool (#28588) + * Validate seqlens_k against cos_cache bounds in GroupQueryAttention to… (#28277) + * Add component governance manifest for WebGPU EP (#28599) + * [CoreML EP] Support Gather with scalar 'indices' (#28278) + * Validate conv bias shape in WordConvEmbedding to prevent OOB read (#28279) + * Fix oob bias access for MatMulIntegerToFloat and DynamicQuantizeMatMul (#28499) + * [WebGPU plugin EP] Add Win ARM64 Python package (#28526) + * Address MaxUnpool shortcomings msrc116345 (#28550) + * Move `OrtEp` sanity checks to plugin EP creation and remove check for `OrtEp::ort_version_supported` upper bound (#28601) + * Fix Whisper genai_config context_length using wrong config attribute (#28600) + * QMoE CUDA: Rename build options, refactor PrePack, add GPU kernels (#28583) + * CPU GroupQueryAttention: Quantized KV Cache with SIMD-optimized MLAS kernels (#28578) + * Fail loudly when MatMulNBits receives unsupported block_size on CPU EP (#28590) + * feat(orttraining): add CPU fallback for FusedAdam optimizer (#28233) + * fix: propagate output_dtype attribute when inserting Q after DQ (#28144) + * fix: guard ORT_USE_CPUINFO on __linux__ to fix FreeBSD build (#28362) + * Fix EpGraphAssignmentInfo missing issue on nodes assigned to CPU-EP by InsertCastTransformer (#28268) + * [CoreML EP] Add Identity, Ceil, Tile builders + drop trivial-only partitions (#28293) + * Add linux-arm64 binaries to the foundry nuget package (#28579) + * Derive ORT_TEST_VERBOSE from System.Debug via runtime coalesce in plugin test pipelines (#28517) + * Add quantized KV cache support in CPU GroupQueryAttention (#28576) + * add more ORT_ENFORCE when building the tree structure of TreeEnsemble operators (#27677) + * QMoE CUDA EP — FP4/FP8/WFP4AFP8 Quantized Mixture-of-Experts + MoE GEMM Refactor (#28467) + * [MLAS] Correcting Compilation Errors: onnxruntime/onnxruntime/core/mlas/lib/riscv64/sconv_depthwise_kernel_rvv.cpp:138:18: error: unused variable 'pad_bottom' (#28506) + * Fix Cargo registry auth for network-isolated Linux Python wheel builds (#28556) + * Fix protoc error when cross compiling on a linux aarch64 host (#28567) + * Add EP and hardware device type to Windows ML telemetry (#28477) + * [MLAS] test: accept canonical NaN in activation NaN round-trip check (#28538) + * Validate sparse tensor external file paths (#28408) + * Fix XNNPACK Gemm SIGSEGV on missing and scalar 'C' bias (#28546) + * Fix int32 overflow in CUDA Cast and UnaryElementWise kernels for tensors with >2^31 elements (#28386) + * [Security] Validate CPU cache_indirection beam indices (#28486) + * Skip file path validation in CreateEpContextModel when the output is not a file (#28431) + * Add unit test for fix of plugin EP library handle leak in PR 28396 (#28430) + * Support kquant mixed for whisper export (#28515) + * contrib: add mask/input shape consistency checks in MaxpoolWithMask::Compute (#28223) + * Reject recursive local function definitions during model load (#28187) + * [WebGPU plugin EP] Package improvements (#28525) + * webgpu: Generalize FlashAttention prefill shared-memory path (#28520) + * fix: avoid vector copies in CheckIfSubtreesAreEqual (#27854) + * Fix Inverse kernel rank underflow before indexing trailing dims (#28400) + * [MLAS] Fix scratch buffer over-allocation in batched/grouped NCHW Conv (#28482) + * Fix mlasi_sve.h preprocessor guards to allow clang compilation (#28507) + * [QNN EP] ETW log level rule change (#27593) + * Fix input validation and null-pointer dereference in STFTDecomposition graph transformer (#28465) + * Fix WeaklyCanonicalPath ERROR_ACCESS_DENIED in Windows AppContainers (#28509) + * Build issues on AIX for POWER10 and POWER11 (#26704) + * Fill LSTM CUDA operator opset gap: extend coverage from opset 14 to opset 22 (#27737) + * Validate per-column weight_scale/weight_zero_point shape in CPU QAttention; harden integer arithmetic in QAttention and AttentionBase (#28480) + * enable dynamic max_k_step in FA for nvidia (#28511) + * [MLAS] Add an NHWC implementation of convolution to avoid transposes (#26834) + * Improve error reporting for pre-allocated outputs with a wrong shape (#28481) + * fix(security): add SafeInt overflow protection in Expand and constant folding output size limit (#28055) + * fix: support N-D weights with unit leading dims in MatMulNBitsQuantizer (#28178) + * Fix out-of-bounds read in CropBase: validate scale attribute length (#28399) + * CUDA Plugin Packaging Pipeline Fix TSAUpload and Timeout (#28497) + * fix: auto-upgrade model opset to 21 for int16/uint16 QDQ quantization (#28202) + * Bump next from 16.1.5 to 16.1.7 in /js/web/test/e2e/exports/testcases/nextjs-default (#27705) + * Address string attribute issue (#28494) + * Optimize FlashAttention for M4 Max (20x speedup) (#27780) + * Address latent bug in LabelEncoder (#28496) + * Fill opset gap for RandomNormal, RandomNormalLike, RandomUniform, RandomUniformLike CUDA ops with BFloat16 support (#27759) + * Fixes for unicode path handling (#28390) + * Add float zero point support for 2-bit LUT GEMM in MatMulNBits (#28354) + * Bound total output allocation size in Tile kernel (#28070) + * Fix OOB reads in SoftmaxCrossEntropyLoss via label bounds validation (#28004) + * Use weights_only=True for remaining torch.load() calls (#28421) + * Add LabelEncoder_4 fast path for session creation (#27526) + * Add RVV (RISC-V Vector Extension) optimized convolution and pooling kernels for the NCHWc blocked format in MLAS (#28411) + * Address Resize kernel shortcomings (#28402) + * [webgpu] Optimize LinearAttention Op with subgroup (#28412) + * Fill CUDA EP opset gap for Sin and Cos operators (7→22) (#27756) + * Use symbol file to export symbols in onnxruntime library on AIX platform as well (#28016) + * [WebGPU] Correct MatMul bias input indexing in `MatMul::ComputeInternal` (#28475) + * fix: skip DQ->MatMulNBits fusion when weight/scale initializer is shared (#28326) + * [WebGPU] Fix SkipSimplifiedLayerNormalization bias (#28427) + * Add CPU QMoE 2-bit support and LUT GEMM fast path (#28185) + * [ Cuda] ConvTranspose-22 (#27710) + * Fix sigmoid transformation in TreeEnsembleClassifier for all-positive weights with LOGISTIC post_transform (#27536) + * Enable QuickGeluFusion on WebGPU EP and fix fp16 shader (#28410) + * Fix runtime-unresolvable type annotations in Session and InferenceSession (#27802) + * Add DiT attention fusion for F5-TTS and diffusion transformer models (#27999) + * Add CPU Cast op support for Float8E8M0 (#28435) + * [CUDA] PagedAttention: use exact max_query_len on FA path (#28409) + * [GQA] Make present_key/present_value outputs optional and add Gemma4 support (#28242) + * Validate NodeArg creation (#28429) + * Fix CUDA plugin EP test pipeline (#28453) + * Address tokenizer shortcomings (#28428) + * Fix Clang + libc++ compilation and portability issues (#28049) + * Handle empty initializers gracefully in optimizer passes (#27976) + * [WebGPU Plugin EP] Packaging pipelines minor updates (#28460) + * Harden OneHot operator input validation and output size computation (#28014) + * Remove data hash from hashing code, to prevent unbounded growth issue (#28363) + * Don't pin SelectorActionTransformer replacement nodes to CPU (#28288) + * [WebGPU] Fix numerical stability issue in QMoE op (#28434) + * feat(quantization): add ActivationRestrictedAsymmetric option (#28237) + * Fix session use-after-free when UserLoggingFunction is used (#28314) + * Fix CrossEntropyLoss block to support multi-output models (#28232) + * Add PEP 561 `py.typed` marker to the `onnxruntime` package (#28438) + * Add FLOAT8E8M0 data type support in ONNX Runtime (#28381) + * [CoreML EP] Add FusedConv support (#28289) + * Fix loader-refcount leak in ProviderLibrary::Load on GetProvider miss (#28396) + * Fix CUDA plugin EP packaging test pipeline: host network and add cudnn to path (#28373) + * Fix dangling pointer of temporary return value (#28419) + * Remove Universal Package publishing from plugin EP packaging pipelines. (#28418) + * [Plugin EP] Session options getters (#28377) + * [C#] Add EP tests for Cuda Plugin (#28375) + * [CUDA Plugin EP] Add NuGet packaging pipeline (#28378) + * Fix CPU Attention softcap/attn_mask ordering (onnx#7867, #7913) + consolidate CUDA spec coverage tests from #28371 (#28379) + * Suppress test warnings in transformers tests and fix CUDA CI (#28391) + * Fix Subgraph_t issues with TRT RTX ver 1.5.x (#28361) + * [WebGPU plugin EP packaging] Remove explicit ORT package dependency (#28384) + * feat(quantization): add calibration cache to quantize_static (#28221) + * Refactor and modernize StringNormalizer. (#28320) + * [Plugin EP] Add OrtEp::OnSessionInitializationEnd() (#28319) + * [CoreML EP] Support pre-opset-13 Split via 'split' attribute (#28270) + * Add M-tile loop with dispatch capping for Intel Xe2/3-LPG (#28250) + * Prevent double-free in OrtModelEditorApi ownership transfer (#28123) + * webgpu: Support QKV bias in FlashAttention for MultiHeadAttention (#28380) + * Fill CUDA EP opset gaps for Round and Equal operators (#27754) + * Bump brace-expansion in /js/react_native/e2e (#27894) + * Fill Reshape CUDA operator opset gap from 23 to 25 (#27742) + * Fill RNN CUDA operator opset gap (14 → 22) (#27743) + * Fill CUDA opset gap for ReduceMax and ReduceMin (18 → 20) (#27755) + * Fill CUDA Cast operator opset gap: extend registration from opset 23 to 25 (#27744) + * [WebGPU plugin EP] NuGet packaging (#28313) + * Add CUDA plugin EP Python package pipeline (#28299) + * Fix round_prefer_ceil nearest mode for negative halfway values in Resize op (#28345) + * fix(ci): 'rc' qualifier ignored when packaging `onnxruntime-node` (#28350) + * Bump postcss from 8.5.3 to 8.5.13 in /js/web/test/e2e/exports/testcases/vite-default (#28304) + * Fix CApi tests on S390x (#28074) + * Fix CUDA Attention dispatch: skip MEA when head_size != v_head_size in GQA (#28358) + * chore: rename `ort_api_1_to_26` to `ort_api_1_to_27` (#28341) + * fix(ci): test pipeline didn't correctly specify `ReleaseVersionSuffix` (#28346) + * fix: make sympy an optional runtime dependency (#28141) + * Fix ReshapeFusion dropping allowzero on inferred 0-sized intermediate dims (#28349) + * Suppress -Wmaybe-uninitialized for onnxruntime_pybind11_state under pybind11 3.0 (#28251) + * adds foundry local packaging to webgpu plugin ep packaging pipeline (#28300) + * Fix BitShift UB when shift amount >= bit width (#28272) + * Eliminate Legacy MHA Unfused path from ONNX Attention; unify on 3-tier dispatch with causal alignment fix (#27992) + * Add plugin-ep-webgpu/RELEASE.md (#28321) + * refactor(ci): simplify build date/time metadata propagation (#28294) + * Bump plugin-ep-webgpu/VERSION_NUMBER to 0.2.0. (#28322) + * Bump version for 1.27.0 (#28324) + * Support ONNX overloaded functions (IR version 10+) (#28275) + * docs: add opset version notation legend to OperatorKernels.md (#28143) + * Add option to memory map .ORT model loads (#28164) + * add support for DFT with onesided=True and inverse=True (irfft) (#27028) + +------------------------------------------------------------------- +Wed Jul 1 07:30:20 UTC 2026 - Paolo Stivanin <[email protected]> + +- Move bundled() provides (date, onnx, SafeInt; eigen3 on Leap/SLE) + from the main preamble into the libonnxruntime1 and python3XX- + onnxruntime subpackages, so they ship on the built binaries (no + standalone onnxruntime package is produced) and are found by + bundled-library tracking. + +------------------------------------------------------------------- +Tue Jun 30 08:17:00 UTC 2026 - Paolo Stivanin <[email protected]> + +- Fix build on openSUSE Leap / SLE (suse_version < 1699): re-bundle eigen. + * The 1.26.0 refactor unbundled eigen3 assuming the system package is 5.0, + which holds on Tumbleweed / Factory but not on Leap/SLE 16.x, which ship + the eigen 3.4.0 release. ONNX Runtime's element_wise_ops.cc (Min/Max ops) + calls ArrayBase::min/max<Eigen::PropagateNaN>(...); those NaN-propagation + overloads were added on eigen's 3.4 maintenance branch *after* the 3.4.0 + tag, so the build failed to compile against the system 3.4.0. + * Bundle the eigen 3.4-branch snapshot ORT pins in cmake/deps.txt (the same + commit upstream consumes) for suse_version < 1699 only: drop the + system-eigen3 find via sed and point FETCHCONTENT_SOURCE_DIR_EIGEN3 at the + bundled source, exactly as date/onnx/SafeInt are handled. Factory keeps + using the system eigen 5.0 unchanged. Preserves NaN-propagation semantics. + * Make BuildRequires: eigen3-devel Factory-only (suse_version >= 1699), since + Leap/SLE now build the bundled eigen, and add Provides: bundled(eigen3) = + 3.4.90 there accordingly. + +------------------------------------------------------------------- +Tue Jun 30 07:34:03 UTC 2026 - Paolo Stivanin <[email protected]> + +- Fix build on openSUSE Leap / SLE (Leap 16.0, 16.1 and 15.7), guarded by + suse_version < 1699 so Tumbleweed / Factory keep the upstream behaviour: + * Protobuf: Leap/SLE pull protobuf21 from SUSE:SLFO:Main, which ships no + CMake config -- unlike Factory's protobuf21-devel, which provides + cmake(protobuf). ONNX Runtime declares Protobuf with "FIND_PACKAGE_ARGS + NAMES Protobuf protobuf", and the NAMES keyword forces config-only mode, + so detection failed and the disconnected FetchContent fallback aborted + configure. Rewrite that declare to "FIND_PACKAGE_ARGS MODULE" so CMake's + module-mode FindProtobuf locates the standard-path protobuf Leap does + ship (headers, libprotobuf.so, protoc) and creates the protobuf:: targets. + * Abseil: ONNX Runtime's hardcoded ABSEIL_LIBS list is generated for abseil + 20250814 and names targets (e.g. absl::tracing_internal) absent from the + older system abseil on Leap (20240722), which failed the CMake generate + step. Prune ABSEIL_LIBS to the targets that actually exist; a no-op on + Factory, whose abseil (20260107) provides all of them. + +------------------------------------------------------------------- Old: ---- onnxruntime-1.26.0.tar.zst New: ---- eigen-1d8b82b0740839c0de7f1242a3585e3390ff5f33.zip onnxruntime-1.27.0.tar.zst ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ onnxruntime.spec ++++++ --- /var/tmp/diff_new_pack.k88wcY/_old 2026-07-02 20:12:54.272560386 +0200 +++ /var/tmp/diff_new_pack.k88wcY/_new 2026-07-02 20:12:54.280560663 +0200 @@ -64,17 +64,14 @@ %define date_ver 3.0.1 %define onnx_ver 1.21.0 %define safeint_ver 3.0.28 - -# Statically linked bundled libraries, declared on every binary package that -# ships them (the shared library and the python extension module). -%define bundled_provides() \ -Provides: bundled(date) = %{date_ver} \ -Provides: bundled(onnx) = %{onnx_ver} \ -Provides: bundled(SafeInt) = %{safeint_ver} \ -%{nil} +# eigen 3.4-branch snapshot ORT pins in cmake/deps.txt; bundled only on +# Leap/SLE (suse_version < 1699), whose system eigen is the older 3.4.0 release. +# (3.4.90 = the post-3.4.0 development version this snapshot reports.) +%define eigen_commit 1d8b82b0740839c0de7f1242a3585e3390ff5f33 +%define eigen_ver 3.4.90 Name: onnxruntime -Version: 1.26.0 +Version: 1.27.0 Release: 0 Summary: Cross-platform machine-learning inference and training accelerator Group: Development/Libraries/Other @@ -98,6 +95,11 @@ Source17: https://github.com/onnx/onnx/archive/refs/tags/v%{onnx_ver}.zip#/onnx-%{onnx_ver}.zip # SafeInt (MIT) Source21: https://github.com/dcleblanc/SafeInt/archive/refs/tags/%{safeint_ver}.zip#/SafeInt-%{safeint_ver}.zip +# eigen (MPL-2.0) -- used only on Leap/SLE 16.x, whose system eigen is the 3.4.0 +# release; that predates the ArrayBase min/max<NaNPropagation> overloads ORT's +# element_wise_ops.cc needs (added on eigen's 3.4 branch after the 3.4.0 tag). +# Factory ships eigen 5.0 and keeps using the system package (see %%prep / %%build). +Source25: https://github.com/eigen-mirror/eigen/archive/%{eigen_commit}/eigen-%{eigen_commit}.zip Patch0: gcc-false-positives.patch Patch1: system-pybind11.patch @@ -136,8 +138,13 @@ # abseil + re2 must be a matched pair (re2 is built against this abseil) BuildRequires: abseil-cpp-devel BuildRequires: re2-devel -# System eigen3 (openSUSE ships 5.0; ONNX Runtime 1.26 builds against it) +# System eigen3: Factory ships 5.0, which has the min/max<NaNPropagation> +# ArrayBase overloads ORT needs. Leap/SLE 16.x ship only the eigen 3.4.0 +# release, which predates them, so there we bundle ORT's 3.4-branch snapshot +# instead (see Source25, %%prep and %%build) and do not require the system one. +%if 0%{?suse_version} >= 1699 BuildRequires: eigen3-devel +%endif # flatbuffers-devel provides the headers, CMake config and /usr/bin/flatc BuildRequires: flatbuffers-devel BuildRequires: cpuinfo-devel @@ -154,6 +161,16 @@ BuildRequires: python%{pysuff}-wheel %endif +# date/onnx/SafeInt are statically linked into the built libraries (the shared +# lib and the python extension); eigen too on Leap/SLE. Declared once here for +# bundled-library tracking. +Provides: bundled(date) = %{date_ver} +Provides: bundled(onnx) = %{onnx_ver} +Provides: bundled(SafeInt) = %{safeint_ver} +%if 0%{?suse_version} < 1699 +Provides: bundled(eigen3) = %{eigen_ver} +%endif + %description ONNX Runtime is a cross-platform inference and training machine-learning accelerator. It is compatible with many popular ML/DNN frameworks, @@ -162,7 +179,8 @@ %if %{without python} %package -n libonnxruntime%{sover} Summary: ONNX Runtime shared library -%{bundled_provides} +# date/onnx/SafeInt are statically linked into this library (see deps note above); +# eigen too on Leap/SLE. %description -n libonnxruntime%{sover} This package contains the ONNX Runtime shared library needed at runtime @@ -180,12 +198,13 @@ %if %{with python} %package -n python%{pysuff}-onnxruntime Summary: Python %{pyver} bindings for ONNX Runtime +# date/onnx/SafeInt are statically linked into the pybind extension (eigen too on +# Leap/SLE). Requires: python%{pysuff}-numpy Requires: python%{pysuff}-protobuf Requires: python%{pysuff}-flatbuffers Requires: python%{pysuff}-packaging Requires: python%{pysuff}-sympy -%{bundled_provides} %description -n python%{pysuff}-onnxruntime Python %{pyver} bindings for ONNX Runtime. Provides the 'onnxruntime' @@ -195,11 +214,51 @@ %prep %autosetup -p1 +# Leap/SLE (suse_version < 1699) carry older system libraries than Factory; two +# ONNX Runtime assumptions break there. Both branches are skipped on Factory/ +# Tumbleweed, which keep the upstream behaviour unchanged. +%if 0%{?suse_version} < 1699 +# (1) Protobuf: the SLFO protobuf21 packages ship no CMake config, unlike Factory's +# protobuf21-devel which provides cmake(protobuf). ONNX Runtime declares Protobuf +# with "FIND_PACKAGE_ARGS NAMES Protobuf protobuf", and the NAMES keyword forces +# find_package into config-only mode -- so on Leap detection fails and the +# (disconnected) FetchContent fallback aborts configure. Switch that one declare to +# CMake's module-mode FindProtobuf, which locates the standard-path protobuf Leap +# does ship (/usr/include/google/protobuf, %{_libdir}/libprotobuf.so, /usr/bin/protoc) +# and creates the expected protobuf::* targets. +sed -i 's|FIND_PACKAGE_ARGS NAMES Protobuf protobuf|FIND_PACKAGE_ARGS MODULE|' \ + cmake/external/onnxruntime_external_deps.cmake +# (2) Abseil: the hardcoded ABSEIL_LIBS list is generated for abseil 20250814 and +# names targets (e.g. absl::tracing_internal) that the older system abseil on Leap +# (20240722) does not provide, which fails the link/generate step. Prune any list +# entry whose target does not exist; the symbols those targets would carry are not +# referenced by the targets the older abseil does provide. +cat >> cmake/external/abseil-cpp.cmake <<'EOF' + +# openSUSE (injected by the spec): drop ABSEIL_LIBS entries absent from the system abseil. +foreach(_absl_lib IN LISTS ABSEIL_LIBS) + if(NOT TARGET ${_absl_lib}) + list(REMOVE_ITEM ABSEIL_LIBS ${_absl_lib}) + endif() +endforeach() +EOF +# (3) Eigen: Leap/SLE ship the eigen 3.4.0 release, which predates the ArrayBase +# min/max<NaNPropagation> overloads ORT's element_wise_ops.cc uses (added on +# eigen's 3.4 maintenance branch after the 3.4.0 tag, and present in the post-3.4 +# snapshot ORT pins in cmake/deps.txt). Drop system-eigen3.patch's find so +# FetchContent builds the bundled 3.4-branch snapshot instead (see %%build). +sed -i '/FIND_PACKAGE_ARGS NAMES Eigen3/d' cmake/external/eigen.cmake +%endif + mkdir _deps # bundled deps openSUSE does not package: date, onnx, SafeInt unzip -qo %{SOURCE11} -d _deps unzip -qo %{SOURCE17} -d _deps unzip -qo %{SOURCE21} -d _deps +%if 0%{?suse_version} < 1699 +# eigen, bundled on Leap/SLE only (see the %%prep workaround block above) +unzip -qo %{SOURCE25} -d _deps +%endif %build # System libraries are selected by ONNX Runtime's own @@ -208,6 +267,8 @@ # cpuinfo, boost/mp11, nlohmann_json, ms-gsl) is taken from the system, helped by # the system-*.patch files. Only date, onnx and SafeInt are not packaged by # openSUSE; those fall back to the bundled source in FETCHCONTENT_SOURCE_DIR_<n>. +# (On Leap/SLE 16.x, eigen joins that bundled set -- its system 3.4.0 is too old; +# see Source25 and the %%prep eigen note.) # FETCHCONTENT_FULLY_DISCONNECTED=ON blocks network access, so a missing system # dependency fails the build instead of being downloaded. @@ -236,6 +297,9 @@ -DFETCHCONTENT_SOURCE_DIR_DATE=%{_builddir}/%{name}-%{version}/_deps/date-%{date_ver} \ -DFETCHCONTENT_SOURCE_DIR_ONNX=%{_builddir}/%{name}-%{version}/_deps/onnx-%{onnx_ver} \ -DFETCHCONTENT_SOURCE_DIR_SAFEINT=%{_builddir}/%{name}-%{version}/_deps/SafeInt-%{safeint_ver} \ +%if 0%{?suse_version} < 1699 + -DFETCHCONTENT_SOURCE_DIR_EIGEN3=%{_builddir}/%{name}-%{version}/_deps/eigen-%{eigen_commit} \ +%endif %if %{with python} -Donnxruntime_ENABLE_DLPACK=OFF \ -Donnxruntime_ENABLE_PYTHON=ON \ ++++++ _service ++++++ --- /var/tmp/diff_new_pack.k88wcY/_old 2026-07-02 20:12:54.420565510 +0200 +++ /var/tmp/diff_new_pack.k88wcY/_new 2026-07-02 20:12:54.424565649 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/microsoft/onnxruntime</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v1.26.0</param> + <param name="revision">v1.27.0</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.k88wcY/_old 2026-07-02 20:12:54.504568418 +0200 +++ /var/tmp/diff_new_pack.k88wcY/_new 2026-07-02 20:12:54.516568833 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/microsoft/onnxruntime</param> - <param name="changesrevision">8c546c37b43caaca1fa25db430dab94b901cf277</param></service></servicedata> + <param name="changesrevision">8f0278c77bf44b0cc83c098c6c722b92a36ac4b5</param></service></servicedata> (No newline at EOF) ++++++ onnxruntime-1.26.0.tar.zst -> onnxruntime-1.27.0.tar.zst ++++++ /work/SRC/openSUSE:Factory/onnxruntime/onnxruntime-1.26.0.tar.zst /work/SRC/openSUSE:Factory/.onnxruntime.new.1982/onnxruntime-1.27.0.tar.zst differ: char 7, line 1
