commit: 4ed5ef64fa7cb878d1f8c907d9a04e931209459c Author: Michał Górny <mgorny <AT> gentoo <DOT> org> AuthorDate: Sat Jan 24 07:19:25 2026 +0000 Commit: Michał Górny <mgorny <AT> gentoo <DOT> org> CommitDate: Sat Jan 24 08:02:30 2026 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4ed5ef64
sci-libs/mkl: Bump to 2025.3.1.8 Signed-off-by: Michał Górny <mgorny <AT> gentoo.org> sci-libs/mkl/Manifest | 3 + sci-libs/mkl/mkl-2025.3.1.8.ebuild | 170 +++++++++++++++++++++++++++++++++++++ 2 files changed, 173 insertions(+) diff --git a/sci-libs/mkl/Manifest b/sci-libs/mkl/Manifest index 5c64d2d9f739..377604cba04c 100644 --- a/sci-libs/mkl/Manifest +++ b/sci-libs/mkl/Manifest @@ -1,3 +1,6 @@ DIST intel-oneapi-mkl-classic-include-2025.3-2025.3.0-461_amd64.deb 662600 BLAKE2B a3ef4f096561f829c7a8e877c61020ed19772867ea02d4752f5731327ca35c9c43c5d4f7b525f3f7b8eb23c78c51141c6dc87413a3ad3bb005ce3aca323fa112 SHA512 b246b5829e2804a5c61853a198935e625afd1fbbcf7a4135e867c225f0102df28ea99291d35c9dc75a93b5e17d1e1a8c2c8bc7b4e059742341ff9746347be09c +DIST intel-oneapi-mkl-classic-include-2025.3-2025.3.1-8_amd64.deb 662304 BLAKE2B fb73e665fe312ff1844fe1c5da0dbbf0cd0aa1c77e5641774ebafb9a5400d189924a6a1d81821c324e0b3d22f9405666996c5d3c0728e83c5646af5646396ed0 SHA512 3c4f14c9ce7913d861e03b133c7211e9da898b43fa2c443c679fe7e9fceb24d0c6cdf11b16abebc1dcad80d521eb344139238e0bd9408fac12d44918c5e340af DIST intel-oneapi-mkl-core-2025.3-2025.3.0-461_amd64.deb 110250458 BLAKE2B fd80ca6c6432087fab96ee50a0a2dd3eeb5fa4441a56a172e5efdcca7ad3a480ff4f5fe6b0c627b5134de273a6504eaaf61054892fce4c78dbdd119470cf5fd8 SHA512 a343b9e8055f7fe3c09c6cab1df9300242e56e56396f519a5b3bfb7bc95e31be0243b2cf0a7e165c603569e7fe841955d1282607609043690ea4570baed41786 +DIST intel-oneapi-mkl-core-2025.3-2025.3.1-8_amd64.deb 110248038 BLAKE2B 91b4a6a5229cc8d6f50813a33870551668822bea81f7534ef5728be95b0671d80dbfbe80e888c47075e2375c27c243dd6feeb144f13544d5cd8faf0a9efee945 SHA512 532641762cd66e9ed3d4c800914923eb87e862513ddd4c858bd01015af99396f892ef6a671f5f0c22b08273bc1e157067b65dead57ea66c5b705be1d4324bf33 DIST intel-oneapi-mkl-core-devel-2025.3-2025.3.0-461_amd64.deb 106333914 BLAKE2B c10c0c5e9bf7a39ef745ec0bc952e291d295878b7a590a99ed7816a3802b48e05a8f126e9049350929ef56074be43c1648942f4ea92f8730138f95f2267de713 SHA512 bd56d7f03d5dc1d9b2aa0dc94b6d9c093bb60f99bf2351d48d18db8d311162a22fa9178d48b73394809cd629f57bcb14f718ed5fd4e19a7f7d021f4866a04964 +DIST intel-oneapi-mkl-core-devel-2025.3-2025.3.1-8_amd64.deb 106340390 BLAKE2B 33ee1d621660633721caa309430af6de929cc8e90e8ab2e48cface1f57dc7b0d3a0a265977db2922100d03299cb6ba0e278ec9c44fbaee18cd16ae421fad0d2c SHA512 cb775cc2f9a70aca4c54f761086aa64d55622745c4da8d652cb870bfed832e613ff40b83f23be797725c78b7640392f5820bf1b56a51df21ffcc568cb68a8e2f diff --git a/sci-libs/mkl/mkl-2025.3.1.8.ebuild b/sci-libs/mkl/mkl-2025.3.1.8.ebuild new file mode 100644 index 000000000000..465f2c9391c7 --- /dev/null +++ b/sci-libs/mkl/mkl-2025.3.1.8.ebuild @@ -0,0 +1,170 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit unpacker + +PN_VER=$(ver_cut 1-2) +MY_PV=$(ver_cut 1-3)-$(ver_cut 4) +DESCRIPTION="Intel Math Kernel Library" +HOMEPAGE="https://www.intel.com/content/www/us/en/developer/tools/oneapi/onemkl.html" +# Upstream packages are a mess -- and most of them are literally empty. +SRC_URI=" + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-core-${PN_VER}-${MY_PV}_amd64.deb + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-core-devel-${PN_VER}-${MY_PV}_amd64.deb + https://apt.repos.intel.com/oneapi/pool/main/intel-oneapi-mkl-classic-include-${PN_VER}-${MY_PV}_amd64.deb +" +S="${WORKDIR}" + +LICENSE="ISSL" +SLOT="0" +KEYWORDS="~amd64" +IUSE="eselect-ldso examples gnu-openmp llvm-openmp static-libs tbb" +RESTRICT="strip" + +RDEPEND=" + eselect-ldso? ( + app-eselect/eselect-blas + app-eselect/eselect-lapack + ) + gnu-openmp? ( sys-devel/gcc:*[openmp] ) + llvm-openmp? ( llvm-runtimes/openmp ) + tbb? ( dev-cpp/tbb ) +" +# bug #801460 +BDEPEND=" + app-arch/xz-utils[extra-filters(+)] + eselect-ldso? ( + app-eselect/eselect-blas + app-eselect/eselect-lapack + ) +" + +QA_PREBUILT="*" +QA_TEXTRELS="*" +QA_SONAME="*" + +src_install() { + local libdir=$(get_libdir) + local libroot=opt/intel/oneapi/mkl/${PN_VER}/lib + + if ! use static-libs; then + rm -v "${libroot}"/{*.a,pkgconfig/*-static-*.pc} || die + fi + if ! use examples; then + rm -rv "opt/intel/oneapi/mkl/${PN_VER}"/share/{mkl/benchmarks,doc/mkl/examples} || die + fi + if ! use gnu-openmp; then + rm -v "${libroot}"/{*_gnu_thread.*,pkgconfig/*-gomp.pc} || die + fi + if use llvm-openmp; then + # Replace Intel OpenMP with LLVM OpenMP. We could just install + # "openmp.pc" for that, but we don't want random packages + # to start depending on it. + sed -e '/Requires: openmp/d' \ + -e '/Libs:/s:$: -lomp:' \ + -i "${libroot}"/pkgconfig/*iomp.pc || die + # Install a "libiomp5.so" symlink to make the magical lookup + # in mkl_rt.so happy too. + ln -s "../../../../../../usr/$(get_libdir)/libomp.so" \ + "${libroot}"/libiomp5.so || die + else + rm -v "${libroot}"/{*_intel_thread.*,pkgconfig/*-iomp.pc} || die + fi + if ! use tbb; then + rm -v "${libroot}"/{*_tbb_thread.*,pkgconfig/*-tbb.pc} || die + fi + + # Symlink pkgconfig and cmake files + pushd "${libroot}/pkgconfig" >/dev/null || die + for file in *.pc; do + dosym "../../../${libroot}/pkgconfig/${file}" \ + "/usr/${libdir}/pkgconfig/${file}" + done + popd >/dev/null || die + pushd "${libroot}/cmake/mkl" >/dev/null || die + for file in *.cmake; do + dosym "../../../../${libroot}/cmake/mkl/${file}" \ + "/usr/${libdir}/cmake/mkl/${file}" + done + popd >/dev/null || die + + # Move everything over to the image directory + mv "${S}/"* "${ED}" || die + + # Create convenience symlink that does not include the version number + dosym "${PN_VER}" /opt/intel/oneapi/mkl/latest + + if use eselect-ldso; then + local lib=../../../../${libroot}/libmkl_rt.so + dodir "/usr/${libdir}"/{blas,lapack}/mkl + dosym "${lib}" "/usr/${libdir}/blas/mkl/libblas.so" + dosym "${lib}" "/usr/${libdir}/blas/mkl/libblas.so.3" + dosym "${lib}" "/usr/${libdir}/blas/mkl/libcblas.so" + dosym "${lib}" "/usr/${libdir}/blas/mkl/libcblas.so.3" + dosym "${lib}" "/usr/${libdir}/lapack/mkl/liblapack.so" + dosym "${lib}" "/usr/${libdir}/lapack/mkl/liblapack.so.3" + dosym "${lib}" "/usr/${libdir}/lapack/mkl/liblapacke.so" + dosym "${lib}" "/usr/${libdir}/lapack/mkl/liblapacke.so.3" + fi + + # https://www.intel.com/content/www/us/en/docs/onemkl/developer-guide-linux/2025-1/dynamic-select-the-interface-and-threading-layer.html + local default_threading_layer + if use llvm-openmp; then + default_threading_layer=INTEL + elif use gnu-openmp; then + default_threading_layer=GNU + elif use tbb; then + default_threading_layer=TBB + else + default_threading_layer=SEQUENTIAL + fi + + newenvd - "70intel-mkl" <<-_EOF_ + MKLROOT="${EPREFIX}/opt/intel/oneapi/mkl/${PN_VER}" + PATH="${EPREFIX}/opt/intel/oneapi/mkl/${PN_VER}/bin" + # we need to duplicate it in ROOTPATH for Portage to respect... + ROOTPATH="${EPREFIX}/opt/intel/oneapi/mkl/${PN_VER}/bin" + LDPATH="${EPREFIX}/opt/intel/oneapi/mkl/${PN_VER}/lib" + # respect USE flags for defaults + MKL_THREADING_LAYER=${default_threading_layer} + _EOF_ +} + +pkg_postinst() { + use eselect-ldso || return + + local libdir=$(get_libdir) me="mkl" + + # check blas + eselect blas add ${libdir} "${EROOT}"/usr/${libdir}/blas/${me} ${me} + local current_blas=$(eselect blas show ${libdir} | cut -d' ' -f2) + if [[ ${current_blas} == "${me}" || -z ${current_blas} ]]; then + eselect blas set ${libdir} ${me} + elog "Current eselect: BLAS/CBLAS ($libdir) -> [${current_blas}]." + else + elog "Current eselect: BLAS/CBLAS ($libdir) -> [${current_blas}]." + elog "To use blas [${me}] implementation, you have to issue (as root):" + elog "\t eselect blas set ${libdir} ${me}" + fi + + # check lapack + eselect lapack add ${libdir} "${EROOT}"/usr/${libdir}/lapack/${me} ${me} + local current_lapack=$(eselect lapack show ${libdir} | cut -d' ' -f2) + if [[ ${current_lapack} == "${me}" || -z ${current_lapack} ]]; then + eselect lapack set ${libdir} ${me} + elog "Current eselect: LAPACK ($libdir) -> [${current_blas}]." + else + elog "Current eselect: LAPACK ($libdir) -> [${current_blas}]." + elog "To use lapack [${me}] implementation, you have to issue (as root):" + elog "\t eselect lapack set ${libdir} ${me}" + fi +} + +pkg_postrm() { + use eselect-ldso || return + + eselect blas validate + eselect lapack validate +}
