sci-libs/onnxruntime: add 1.28.0

Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
This commit is contained in:
Pavel Sobolev committed 2026-07-26 23:18:38 +03:00
1 parent 8f4debb802
commit 23b89209ee
3 files changed
+420

No files matched your search

+1
View File
@@ -1,3 +1,4 @@
DIST eigen-3.4.0_p20250216.tar.bz2 2272941 BLAKE2B c86764a5c31b978d09f9f8f458a982fb16c2cdfd053e0c7a371fbe5b9c64bead42c25fb7d4cb795eb5ee7ff1800bb51fac6783ad0881dd69dee5d463ccd213e3 SHA512 3c9fab41bde1ee4b8f5ba21c991a75cc73e104cdb48f3377b5fc51afae8cbb5e891c39e4fd998c5263178a8962b09d9d907b9d125dfddc50bc2ec5171917d6b8
DIST onnxruntime-1.27.0.tar.gz 285714570 BLAKE2B 2c25873f92ee144a567b5fdf745327c8f5c7c42010565db1d26856115dc2345c6b3304e235a17990e30278e30c4986b5d078688f64006f64f74c25927ceb75f6 SHA512 578ccf5321233bc65252b0bbfceaee183abc06175039fd6e0d044af0a4ae43b424c6f71c97b8e5bc6adb9992982d79e397eb4884f0370b4083b3b37d539a404d
DIST onnxruntime-1.27.1.tar.gz 285765941 BLAKE2B 5e8afa1f389e89a24611241ad6fae3b855b52c8ec6996903ded0e3a4029defc23779b6d182d94beb7f467fb760b8bfc1f9c9e687fa97857b5316117ec935a130 SHA512 2b21f00fdfe2cc971801b85c7ff4a939a58250d849ef276dff77eecf973e3cde505ceb68b00f0f8a30ab3c53070b5e648ff61c1d04669ac61f62e1db83b6aaca
DIST onnxruntime-1.28.0.tar.gz 278663126 BLAKE2B 833d30d0a47fa7a5c08012e1417c4e093882b4795a4e471711d4fec12f575b82b548d0afc877e4e981c7c37cc9144418047890f5214c84a618693620c8ec7ddd SHA512 31ee13a8b89f2bfd0c58086258c15b11218a675e577d287d94acc20723b0ca0110458bfaf268d3e9140fe86e9a0fe3f89abbc2d6d347f8ea65624fc0716f14c1
@@ -0,0 +1,233 @@
From: Pavel Sobolev <contact@paveloom.dev>
Subject: [PATCH] Use system libraries
Everything, except for Eigen3.
Signed-off-by: Pavel Sobolev <contact@paveloom.dev>
--- a/cmake/external/abseil-cpp.cmake
+++ b/cmake/external/abseil-cpp.cmake
@@ -39,7 +39,7 @@ onnxruntime_fetchcontent_declare(
URL_HASH SHA1=${DEP_SHA1_abseil_cpp}
EXCLUDE_FROM_ALL
PATCH_COMMAND ${ABSL_PATCH_COMMAND}
- FIND_PACKAGE_ARGS 20250814 NAMES absl
+ FIND_PACKAGE_ARGS NAMES absl REQUIRED
)
onnxruntime_fetchcontent_makeavailable(abseil_cpp)
--- a/cmake/external/onnxruntime_external_deps.cmake
+++ b/cmake/external/onnxruntime_external_deps.cmake
@@ -43,7 +43,7 @@ onnxruntime_fetchcontent_declare(
URL ${DEP_URL_re2}
URL_HASH SHA1=${DEP_SHA1_re2}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS NAMES re2
+ FIND_PACKAGE_ARGS NAMES re2 REQUIRED
)
onnxruntime_fetchcontent_makeavailable(re2)
@@ -71,7 +71,7 @@ if (onnxruntime_BUILD_UNIT_TESTS)
URL ${DEP_URL_googletest}
URL_HASH SHA1=${DEP_SHA1_googletest}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS 1.14.0...<2.0.0 NAMES GTest
+ FIND_PACKAGE_ARGS 1.14.0...<2.0.0 NAMES GTest REQUIRED
)
FetchContent_MakeAvailable(googletest)
endif()
@@ -87,7 +87,7 @@ if (onnxruntime_BUILD_BENCHMARKS)
URL ${DEP_URL_google_benchmark}
URL_HASH SHA1=${DEP_SHA1_google_benchmark}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS NAMES benchmark
+ FIND_PACKAGE_ARGS NAMES benchmark REQUIRED
)
onnxruntime_fetchcontent_makeavailable(google_benchmark)
endif()
@@ -105,7 +105,7 @@ if(onnxruntime_USE_MIMALLOC)
URL ${DEP_URL_mimalloc}
URL_HASH SHA1=${DEP_SHA1_mimalloc}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS NAMES mimalloc
+ FIND_PACKAGE_ARGS NAMES mimalloc REQUIRED
)
FetchContent_MakeAvailable(mimalloc)
endif()
@@ -199,7 +199,7 @@ onnxruntime_fetchcontent_declare(
URL_HASH SHA1=${DEP_SHA1_protobuf}
PATCH_COMMAND ${ONNXRUNTIME_PROTOBUF_PATCH_COMMAND}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS NAMES Protobuf protobuf
+ FIND_PACKAGE_ARGS NAMES Protobuf protobuf REQUIRED
)
set(protobuf_BUILD_TESTS OFF CACHE BOOL "Build protobuf tests" FORCE)
@@ -276,7 +276,7 @@ onnxruntime_fetchcontent_declare(
EXCLUDE_FROM_ALL
PATCH_COMMAND
${Patch_EXECUTABLE} --binary --ignore-whitespace -p1 < ${PROJECT_SOURCE_DIR}/patches/date/date.patch
- FIND_PACKAGE_ARGS 3...<4 NAMES date
+ FIND_PACKAGE_ARGS 3...<4 NAMES date REQUIRED
)
onnxruntime_fetchcontent_makeavailable(date)
@@ -290,12 +290,11 @@ if(NOT TARGET Boost::mp11)
mp11
URL ${DEP_URL_mp11}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS NAMES Boost
+ FIND_PACKAGE_ARGS NAMES Boost REQUIRED
)
- FetchContent_Populate(mp11)
+ onnxruntime_fetchcontent_makeavailable(mp11)
if(NOT TARGET Boost::mp11)
- add_library(Boost::mp11 IMPORTED INTERFACE)
- target_include_directories(Boost::mp11 INTERFACE $<BUILD_INTERFACE:${mp11_SOURCE_DIR}/include>)
+ add_library(Boost::mp11 ALIAS Boost::headers)
endif()
endif()
endif()
@@ -308,7 +307,7 @@ onnxruntime_fetchcontent_declare(
URL ${DEP_URL_json}
URL_HASH SHA1=${DEP_SHA1_json}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS 3.10 NAMES nlohmann_json
+ FIND_PACKAGE_ARGS 3.10 NAMES nlohmann_json REQUIRED
)
onnxruntime_fetchcontent_makeavailable(nlohmann_json)
@@ -372,7 +371,7 @@ if (CPUINFO_SUPPORTED)
${Patch_EXECUTABLE} -p1 < ${PROJECT_SOURCE_DIR}/patches/cpuinfo/patch_cpuinfo_h_for_arm64ec.patch &&
# https://github.com/pytorch/cpuinfo/pull/324
${Patch_EXECUTABLE} -p1 < ${PROJECT_SOURCE_DIR}/patches/cpuinfo/patch_vcpkg_arm64ec_support.patch
- FIND_PACKAGE_ARGS NAMES cpuinfo
+ FIND_PACKAGE_ARGS NAMES cpuinfo REQUIRED
)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux")
message(STATUS "Applying sysfs fallback patch for cpuinfo on Linux")
@@ -384,7 +383,7 @@ if (CPUINFO_SUPPORTED)
PATCH_COMMAND
# https://github.com/microsoft/onnxruntime/issues/10038
${Patch_EXECUTABLE} -p1 < ${PROJECT_SOURCE_DIR}/patches/cpuinfo/fix_missing_sysfs_fallback.patch
- FIND_PACKAGE_ARGS NAMES cpuinfo
+ FIND_PACKAGE_ARGS NAMES cpuinfo REQUIRED
)
else()
onnxruntime_fetchcontent_declare(
@@ -392,7 +391,7 @@ if (CPUINFO_SUPPORTED)
URL ${DEP_URL_pytorch_cpuinfo}
URL_HASH SHA1=${DEP_SHA1_pytorch_cpuinfo}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS NAMES cpuinfo
+ FIND_PACKAGE_ARGS NAMES cpuinfo REQUIRED
)
endif()
set(ONNXRUNTIME_CPUINFO_PROJ pytorch_cpuinfo)
@@ -411,7 +410,7 @@ onnxruntime_fetchcontent_declare(
# containing microsoft/GSL#1213 (commit 543d0dd).
PATCH_COMMAND ${Patch_EXECUTABLE} --binary --ignore-whitespace -p1 < ${PROJECT_SOURCE_DIR}/patches/gsl/1213.patch
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS 4.0 NAMES Microsoft.GSL
+ FIND_PACKAGE_ARGS 4.0 NAMES Microsoft.GSL REQUIRED
)
set(GSL_TARGET "Microsoft.GSL::GSL")
set(GSL_INCLUDE_DIR "$<TARGET_PROPERTY:${GSL_TARGET},INTERFACE_INCLUDE_DIRECTORIES>")
@@ -424,7 +423,7 @@ if (NOT GSL_FOUND AND NOT onnxruntime_BUILD_SHARED_LIB)
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
endif()
-find_path(safeint_SOURCE_DIR NAMES "SafeInt.hpp")
+find_path(safeint_SOURCE_DIR NAMES "SafeInt.hpp" REQUIRED)
if(NOT safeint_SOURCE_DIR)
unset(safeint_SOURCE_DIR)
onnxruntime_fetchcontent_declare(
@@ -466,10 +465,14 @@ onnxruntime_fetchcontent_declare(
URL_HASH SHA1=${DEP_SHA1_flatbuffers}
PATCH_COMMAND ${ONNXRUNTIME_FLATBUFFERS_PATCH_COMMAND}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS 23.5.9 NAMES Flatbuffers flatbuffers
+ FIND_PACKAGE_ARGS 23.5.9 NAMES Flatbuffers flatbuffers REQUIRED
)
onnxruntime_fetchcontent_makeavailable(flatbuffers)
+if(TARGET flatbuffers::flatbuffers_shared AND NOT TARGET flatbuffers::flatbuffers)
+ message(STATUS "Aliasing flatbuffers::flatbuffers to flatbuffers::flatbuffers_shared")
+ add_library(flatbuffers::flatbuffers ALIAS flatbuffers::flatbuffers_shared)
+endif()
if(NOT flatbuffers_FOUND)
if(NOT TARGET flatbuffers::flatbuffers)
add_library(flatbuffers::flatbuffers ALIAS flatbuffers)
@@ -531,7 +534,7 @@ onnxruntime_fetchcontent_declare(
URL_HASH SHA1=${DEP_SHA1_onnx}
PATCH_COMMAND ${ONNXRUNTIME_ONNX_PATCH_COMMAND}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS NAMES ONNX onnx
+ FIND_PACKAGE_ARGS NAMES ONNX onnx REQUIRED
)
onnxruntime_fetchcontent_makeavailable(onnx)
@@ -606,7 +609,7 @@ if(onnxruntime_ENABLE_DLPACK)
URL ${DEP_URL_dlpack}
URL_HASH SHA1=${DEP_SHA1_dlpack}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS NAMES dlpack
+ FIND_PACKAGE_ARGS NAMES dlpack REQUIRED
)
onnxruntime_fetchcontent_makeavailable(dlpack)
endif()
@@ -626,7 +629,7 @@ if(onnxruntime_ENABLE_TRAINING OR (onnxruntime_ENABLE_TRAINING_APIS AND onnxrunt
URL_HASH SHA1=${DEP_SHA1_cxxopts}
PATCH_COMMAND ${ONNXRUNTIME_CXXOPTS_PATCH_COMMAND}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS NAMES cxxopts
+ FIND_PACKAGE_ARGS NAMES cxxopts REQUIRED
)
set(CXXOPTS_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(CXXOPTS_BUILD_TESTS OFF CACHE BOOL "" FORCE)
--- a/cmake/external/pybind11.cmake
+++ b/cmake/external/pybind11.cmake
@@ -6,6 +6,6 @@ onnxruntime_fetchcontent_declare(
URL ${DEP_URL_pybind11}
URL_HASH SHA1=${DEP_SHA1_pybind11}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS 3.0 NAMES pybind11
+ FIND_PACKAGE_ARGS 3.0 NAMES pybind11 REQUIRED
)
onnxruntime_fetchcontent_makeavailable(pybind11_project)
--- a/cmake/external/wil.cmake
+++ b/cmake/external/wil.cmake
@@ -8,7 +8,7 @@ onnxruntime_fetchcontent_declare(
URL ${DEP_URL_microsoft_wil}
URL_HASH SHA1=${DEP_SHA1_microsoft_wil}
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS NAMES wil
+ FIND_PACKAGE_ARGS NAMES wil REQUIRED
)
if(WIN32)
--- a/cmake/external/xnnpack.cmake
+++ b/cmake/external/xnnpack.cmake
@@ -17,11 +17,11 @@ if(CMAKE_ANDROID_ARCH_ABI STREQUAL armeabi-v7a)
endif()
# pthreadpool depends on fxdiv
-onnxruntime_fetchcontent_declare(fxdiv URL ${DEP_URL_fxdiv} URL_HASH SHA1=${DEP_SHA1_fxdiv} EXCLUDE_FROM_ALL FIND_PACKAGE_ARGS NAMES fxdiv)
+onnxruntime_fetchcontent_declare(fxdiv URL ${DEP_URL_fxdiv} URL_HASH SHA1=${DEP_SHA1_fxdiv} EXCLUDE_FROM_ALL FIND_PACKAGE_ARGS NAMES fxdiv REQUIRED)
onnxruntime_fetchcontent_makeavailable(fxdiv)
set(FXDIV_SOURCE_DIR ${fxdiv_SOURCE_DIR})
-onnxruntime_fetchcontent_declare(pthreadpool URL ${DEP_URL_pthreadpool} URL_HASH SHA1=${DEP_SHA1_pthreadpool} EXCLUDE_FROM_ALL FIND_PACKAGE_ARGS NAMES unofficial-pthreadpool)
+onnxruntime_fetchcontent_declare(pthreadpool URL ${DEP_URL_pthreadpool} URL_HASH SHA1=${DEP_SHA1_pthreadpool} EXCLUDE_FROM_ALL FIND_PACKAGE_ARGS NAMES unofficial-pthreadpool REQUIRED)
onnxruntime_fetchcontent_makeavailable(pthreadpool)
# --- Determine target processor
@@ -86,7 +86,7 @@ endif()
onnxruntime_fetchcontent_declare(googlexnnpack URL ${DEP_URL_googlexnnpack} URL_HASH SHA1=${DEP_SHA1_googlexnnpack}
PATCH_COMMAND ${Patch_EXECUTABLE} --binary --ignore-whitespace -p1 < ${PROJECT_SOURCE_DIR}/patches/xnnpack/AddEmscriptenAndIosSupport.patch
EXCLUDE_FROM_ALL
- FIND_PACKAGE_ARGS NAMES xnnpack
+ FIND_PACKAGE_ARGS NAMES xnnpack REQUIRED
)
onnxruntime_fetchcontent_makeavailable(googlexnnpack)
set(XNNPACK_DIR ${googlexnnpack_SOURCE_DIR})
@@ -0,0 +1,186 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{12..14} )
inherit cmake edo flag-o-matic python-r1
EIGEN_COMMIT="1d8b82b0740839c0de7f1242a3585e3390ff5f33"
DESCRIPTION="Cross-platform, high performance ML inferencing and training accelerator"
HOMEPAGE="
https://onnxruntime.ai
https://github.com/microsoft/onnxruntime
"
SRC_URI="
https://github.com/microsoft/onnxruntime/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
https://gitlab.com/libeigen/eigen/-/archive/${EIGEN_COMMIT}/eigen-${EIGEN_COMMIT}.tar.bz2 ->
eigen-3.4.0_p20250216.tar.bz2
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
IUSE="python test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RESTRICT="!test? ( test )"
RDEPEND="
dev-cpp/abseil-cpp:=
dev-libs/cpuinfo
dev-libs/protobuf:=
dev-libs/re2:=
sci-ml/onnx[disableStaticReg]
python? (
${PYTHON_DEPS}
dev-python/coloredlogs[${PYTHON_USEDEP}]
dev-python/flatbuffers[${PYTHON_USEDEP}]
>=dev-python/numpy-2[${PYTHON_USEDEP}]
dev-python/packaging[${PYTHON_USEDEP}]
dev-python/protobuf[${PYTHON_USEDEP}]
dev-python/sympy[${PYTHON_USEDEP}]
sci-ml/onnx[${PYTHON_USEDEP}]
)
"
DEPEND="
${RDEPEND}
dev-cpp/ms-gsl
dev-cpp/nlohmann_json
dev-cpp/safeint
dev-libs/boost
dev-libs/date
dev-libs/flatbuffers
python? (
dev-python/pybind11[${PYTHON_USEDEP}]
sci-libs/dlpack
)
"
BDEPEND="
${PYTHON_DEPS}
test? (
dev-cpp/gtest
$(python_gen_any_dep 'sci-ml/onnx[${PYTHON_USEDEP}]')
python? ( dev-python/pytest[${PYTHON_USEDEP}] )
)
"
PATCHES=(
"${FILESDIR}/${PN}-1.22.2-relax-the-dependency-on-flatbuffers.patch"
"${FILESDIR}/${PN}-1.24.4-no-werror.patch"
"${FILESDIR}/${PN}-1.26.0-r1-prevent-generation-of-PIE.patch"
"${FILESDIR}/${PN}-1.28.0-use-system-libraries.patch"
)
CMAKE_USE_DIR="${S}/cmake"
# The `$(python_get_sitedir)/onnx/onnx-ml.proto` file is used during tests
python_check_deps() {
! use test && return 0
python_has_version "sci-ml/onnx[${PYTHON_USEDEP}]"
}
src_configure() {
# Python is used at build time unconditionally
python_setup
local mycmakeargs=(
-Donnxruntime_BUILD_SHARED_LIB=on
-Donnxruntime_BUILD_UNIT_TESTS=$(usex test)
-Donnxruntime_ENABLE_PYTHON=$(usex python)
# This is required until a newer version of Eigen3 comes out
-DFETCHCONTENT_SOURCE_DIR_EIGEN3="${WORKDIR}/eigen-${EIGEN_COMMIT}"
# This makes it possible for `find_path` to find the `onnx-ml.proto` file
-DCMAKE_INCLUDE_PATH="$(python_get_sitedir)"
-Wno-dev
)
append-ldflags -Wl,-z,noexecstack
if use python; then
python_foreach_impl cmake_src_configure
else
cmake_src_configure
fi
}
src_compile() {
if use python; then
python_foreach_impl cmake_src_compile
else
cmake_src_compile
fi
}
# Adapted from `run_onnxruntime_tests` in `tools/ci_build/build.py`
python_test() {
cd "${BUILD_DIR}" || die
epytest --pyargs \
onnxruntime_test_python.py \
onnxruntime_test_python_backend.py \
onnxruntime_test_python_mlops.py \
onnxruntime_test_python_sparse_matmul.py
}
src_test() {
# https://bugs.gentoo.org/975584
local GTEST_SKIP_TESTS=(
"ActivationOpNoInfTest.Softsign"
"ConvTransposeTest.ConvTranspose_InvalidKernelShape"
"GraphTransformationTests.GatherToSliceFusion"
"LabelEncoder.RejectsInMemoryExternalDataInKeysTensorOpset4"
"MLOpTest.TreeEnsembleRegressorRejectsInMemoryExternalDataInTensorAttribute"
"MLOpTest.TreeEnsembleRejectsInMemoryExternalDataInTensorAttribute"
"NhwcTransformerTests.ConvFloat_UsesNhwcOnlyWithKleidi"
"Random.MultinomialDefaultDType"
"Random.MultinomialGoodCase"
"SamplingTest.Gpt2Sampling_CPU"
"SignalOpsTest.DFT17_2D_complex_onesided_inverse"
"SignalOpsTest.DFT17_IRFFT_naive"
"SignalOpsTest.DFT17_IRFFT_radix2"
"SignalOpsTest.DFT17_RFFT_IRFFT_roundtrip"
"SignalOpsTest.DFT20_2D_complex_onesided_inverse"
"SignalOpsTest.DFT20_IRFFT_naive"
"SignalOpsTest.DFT20_IRFFT_radix2"
"SignalOpsTest.DFT20_RFFT_IRFFT_roundtrip"
)
local -x GTEST_FILTER="*:-$(IFS=':'; echo "${GTEST_SKIP_TESTS[*]}")"
if use python; then
python_foreach_impl cmake_src_test
python_foreach_impl python_test
else
cmake_src_test
fi
}
# There is some custom logic in `setup.py`
python_install() {
cd "${BUILD_DIR}" || die
edo "${EPYTHON}" ../setup.py install \
--prefix="${EPREFIX}/usr" \
--root="${D}"
rm -rf "${D}/$(python_get_sitedir)"/*.egg-info || die
python_optimize
}
src_install() {
if use python; then
python_foreach_impl cmake_src_install
python_foreach_impl python_install
else
cmake_src_install
fi
einstalldocs
}