Install this version:
emerge -a =sci-libs/onnxruntime-bin-1.28.0
If this version is masked, you can unmask it using the autounmask tool or standard emerge options:
autounmask =sci-libs/onnxruntime-bin-1.28.0
Or alternatively:
emerge --autounmask-write -a =sci-libs/onnxruntime-bin-1.28.0
| Version | EAPI | Keywords | Slot |
|---|---|---|---|
| 1.28.0 | 8 | ~amd64 | 0 |
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
MY_PN="${PN%-bin}"
DESCRIPTION="Cross-platform, high performance ML inferencing and training accelerator"
HOMEPAGE="
https://onnxruntime.ai
https://github.com/microsoft/onnxruntime
"
# Upstream broke the aarch64 release asset in 1.28.0: the versioned tarball
# (${MY_PN}-linux-aarch64-${PV}.tgz) was not published, and the unversioned
# ${MY_PN}-linux-aarch64.zip that replaced it is a 358K archive carrying only
# _manifest/spdx_2.2/ SBOM files -- no lib/ and no include/. There is no
# usable arm64 binary for this version, so restore ~arm64 once upstream ships
# a complete aarch64 asset again.
SRC_URI="
amd64? (
https://github.com/microsoft/onnxruntime/releases/download/v${PV}/${MY_PN}-linux-x64-${PV}.tgz
)
"
S="${WORKDIR}/${P}"
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64"
# Verified with `readelf -d` on 1.27.1 (both x64 and aarch64): the DT_NEEDED
# set is libdl, librt, libpthread, libstdc++, libm, libgcc_s, libc, ld-linux.
# Everything but libstdc++/libgcc_s comes from libc, so only gcc is named here.
# Note these are glibc-linked binaries and cannot work against musl; ::gentoo
# handles that class of package with a musl profile mask rather than an
# RDEPEND on sys-libs/glibc, which would be unsolvable on musl profiles.
RDEPEND="
sys-devel/gcc:*
"
DOCS="
README.md
Privacy.md
ThirdPartyNotices.txt
LICENSE
"
# Upstream ships the shared objects already stripped; do not let portage
# rewrite prebuilt binaries we cannot rebuild.
QA_PREBUILT="
usr/lib*/lib*.so*
"
RESTRICT="strip"
src_unpack() {
unpack ${A}
mv "${WORKDIR}"/${MY_PN}-linux-* "${S}" || die
}
src_install() {
# Upstream's libonnxruntime.pc and its CMake config both declare
# includedir=${prefix}/include/onnxruntime, so the headers go there rather
# than flat into /usr/include. Installing them flat (as the source ebuild
# did) leaves every consumer that resolves through pkg-config or
# find_package() pointing at a directory that does not exist.
dodir /usr/include/onnxruntime
cp -R include/. "${ED}"/usr/include/onnxruntime/. || die
dodir /usr/$(get_libdir)
cp -R lib/. "${ED}"/usr/$(get_libdir)/. || die
# The shipped .pc is generated for a /usr/local install and hardcodes
# lib64. Left alone, `pkg-config --libs libonnxruntime` emits
# -L/usr/local/lib64 and the link fails. Retarget it at the real prefix
# and libdir.
sed -i \
-e "s:^prefix=/usr/local$:prefix=${EPREFIX}/usr:" \
-e "s:^libdir=\${prefix}/lib64$:libdir=\${prefix}/$(get_libdir):" \
"${ED}"/usr/$(get_libdir)/pkgconfig/libonnxruntime.pc || die
einstalldocs
}
| Type | File | Size | Source URLs |
|---|---|---|---|
| DIST | onnxruntime-linux-x64-1.28.0.tgz | 9125960 bytes | https://github.com/microsoft/onnxruntime/releases/download/v1.28.0/onnxruntime-linux-x64-1.28.0.tgz |