commit:     594764db36d92b1309aa9b0236f13a12cce19fa9
Author:     Matthias Maier <tamiko <AT> gentoo <DOT> org>
AuthorDate: Sat Mar  7 23:51:25 2026 +0000
Commit:     Matthias Maier <tamiko <AT> gentoo <DOT> org>
CommitDate: Sun Mar  8 00:33:26 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=594764db

sci-libs/trilinos: add 17.0.0

 - drop boost_system from TPL dependencies

Signed-off-by: Matthias Maier <tamiko <AT> gentoo.org>

 sci-libs/trilinos/Manifest                         |   1 +
 .../files/trilinos-17.0.0-drop_boost_system.patch  |  44 ++++
 sci-libs/trilinos/trilinos-17.0.0.ebuild           | 249 +++++++++++++++++++++
 3 files changed, 294 insertions(+)

diff --git a/sci-libs/trilinos/Manifest b/sci-libs/trilinos/Manifest
index 322e285f8a5e..9e9e25b4b8fa 100644
--- a/sci-libs/trilinos/Manifest
+++ b/sci-libs/trilinos/Manifest
@@ -1,3 +1,4 @@
 DIST trilinos-14.4.0.tar.gz 188325969 BLAKE2B 
909e3ebe229d035263d835e0d68977516d2a5df168785021fe300f7904e149586a82a6dba271cc1472455472397ee5467443244fb68fb27c00cf4e9b3d10a282
 SHA512 
497fc4fb4ab4338fffef7111635f3dc3b12cb7302bc3f56bafb5cc75b7c68e94cc22fcacd9dd625803a0f38e4fbce5105cab61df76e033a4581568c36a53fe8a
 DIST trilinos-15.1.1.tar.gz 183340366 BLAKE2B 
4d1184fac143ae2b2950d0bf35bae8f813436f894734e5a9aa96d7622ed265cc41a04001a846437a1d1921258c20ae165e9e55f1754241541bde7136c08a6e5c
 SHA512 
5a1a7d321dd3b47fafe0422884d1a7bf6731d5ee806a4fd1bf31f179ca5d6f4290cda4515d0d7786024ea15c17e88422a9518370c5cfb32b4b44761de232e0de
 DIST trilinos-16.1.0.tar.gz 197260161 BLAKE2B 
106a42fb170ee746d45e46941cff2857b99d9ae4b3809f44121ac7af125b4ca7a807ae5f11f89b661e81327d10a8b255a660daf35a7d253f16b18b52b4a63ec0
 SHA512 
8a8e565e6ecbfc6a16c3a2e071bd7a0c89b0b31a02fe0acc51734c90de1fbdce9758b129b0455ddaa131654f7ea643d87d96ae2fe22bf3f35b332415a3a62c14
+DIST trilinos-17.0.0.tar.gz 181339559 BLAKE2B 
8fae24679423532ccc274592b5bdd5ee218544b6d2f5cc0db76f6dfdc48bc69ac603d13d720b8e2480cba00f265172c37a93df5b5e2bf73090e076aeff6ab8eb
 SHA512 
7b34293422e13a42bc5fc2ad25413b8b800a5fdd56c0d7211361514e188832e6a146e8e94931d202fa62c82baa5099347b0b98f7182cb11ec85a5e2a29f32d11

diff --git a/sci-libs/trilinos/files/trilinos-17.0.0-drop_boost_system.patch 
b/sci-libs/trilinos/files/trilinos-17.0.0-drop_boost_system.patch
new file mode 100644
index 000000000000..9be4a5422676
--- /dev/null
+++ b/sci-libs/trilinos/files/trilinos-17.0.0-drop_boost_system.patch
@@ -0,0 +1,44 @@
+From 0a20709150ff4762497e8e54dac34c718620142c Mon Sep 17 00:00:00 2001
+From: Matthias Maier <[email protected]>
+Date: Sat, 7 Mar 2026 17:56:42 -0600
+Subject: [PATCH] Drop boost_system
+
+---
+ cmake/TPLs/FindTPLBoostAlbLib.cmake | 2 +-
+ cmake/TPLs/FindTPLBoostLib.cmake    | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/cmake/TPLs/FindTPLBoostAlbLib.cmake 
b/cmake/TPLs/FindTPLBoostAlbLib.cmake
+index e4d5cead..46f3f939 100644
+--- a/cmake/TPLs/FindTPLBoostAlbLib.cmake
++++ b/cmake/TPLs/FindTPLBoostAlbLib.cmake
+@@ -1,6 +1,6 @@
+ 
+ TRIBITS_TPL_FIND_INCLUDE_DIRS_AND_LIBRARIES( BoostAlbLib
+   REQUIRED_HEADERS boost/version.hpp boost/mpl/at.hpp
+-  REQUIRED_LIBS_NAMES boost_regex boost_filesystem boost_thread 
boost_wserialization boost_serialization boost_mpi boost_program_options 
boost_system
++  REQUIRED_LIBS_NAMES boost_regex boost_filesystem boost_thread 
boost_wserialization boost_serialization boost_mpi boost_program_options
+   )
+ 
+diff --git a/cmake/TPLs/FindTPLBoostLib.cmake 
b/cmake/TPLs/FindTPLBoostLib.cmake
+index 4d753e6f..920d60fe 100644
+--- a/cmake/TPLs/FindTPLBoostLib.cmake
++++ b/cmake/TPLs/FindTPLBoostLib.cmake
+@@ -1,12 +1,12 @@
+ set(REQUIRED_HEADERS boost/version.hpp boost/mpl/at.hpp )
+-set(REQUIRED_LIBS_NAMES boost_program_options boost_system )
++set(REQUIRED_LIBS_NAMES boost_program_options )
+ set(IMPORTED_TARGETS_FOR_ALL_LIBS Boost )
+ 
+ tribits_tpl_allow_pre_find_package(Boost  Boost_ALLOW_PREFIND)
+ 
+ if (Boost_ALLOW_PREFIND)
+   message("-- Using find_package(BOOST ...) ...")
+-  find_package(BOOST COMPONENTS program_options system)
++  find_package(BOOST COMPONENTS program_options )
+   if (BOOST_FOUND)
+     message("-- Found Boost_DIR='${BOOST_DIR}'")
+     message("-- Generating Boost::all_libs and BoostConfig.cmake")
+-- 
+2.52.0
+

diff --git a/sci-libs/trilinos/trilinos-17.0.0.ebuild 
b/sci-libs/trilinos/trilinos-17.0.0.ebuild
new file mode 100644
index 000000000000..9b91b33b4c07
--- /dev/null
+++ b/sci-libs/trilinos/trilinos-17.0.0.ebuild
@@ -0,0 +1,249 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CMAKE_MAKEFILE_GENERATOR=emake
+inherit cmake flag-o-matic toolchain-funcs
+
+DESCRIPTION="Scientific library collection for large scale problems"
+HOMEPAGE="http://trilinos.sandia.gov/";
+MY_PV="${PV//\./-}"
+PATCHSET="r0"
+SRC_URI="https://github.com/${PN}/Trilinos/archive/${PN}-release-${MY_PV}.tar.gz
 -> ${P}.tar.gz"
+
+S="${WORKDIR}/Trilinos-${PN}-release-${MY_PV}"
+
+LICENSE="BSD LGPL-2.1"
+SLOT="0/${PV}"
+KEYWORDS="~amd64 ~x86"
+
+IUSE="
+       adolc all-packages arprec clp cuda eigen glpk gtest hdf5 hwloc hypre
+       matio metis mkl mumps netcdf openmp petsc qd scalapack scotch sparse
+       superlu taucs tbb test threads tvmet yaml zlib X
+"
+
+# TODO: fix export cmake function for tests
+RESTRICT="test"
+
+RDEPEND="
+       >=dev-cpp/kokkos-4.5.1:=[cuda(-)=,openmp=]
+       dev-libs/boost:=
+       sys-libs/binutils-libs:=
+       virtual/blas
+       virtual/lapack
+       virtual/mpi
+       adolc? ( sci-libs/adolc )
+       arprec? ( sci-libs/arprec )
+       clp? ( sci-libs/coinor-clp )
+       cuda? ( >=dev-util/nvidia-cuda-toolkit-3.2 )
+       eigen? ( dev-cpp/eigen:3 )
+       glpk? ( sci-mathematics/glpk )
+       gtest? ( dev-cpp/gtest )
+       hdf5? ( sci-libs/hdf5:=[mpi] )
+       hypre? ( sci-libs/hypre:= )
+       hwloc? ( sys-apps/hwloc:= )
+       matio? ( sci-libs/matio )
+       mkl? ( sci-libs/mkl )
+       metis? ( sci-libs/metis )
+       mumps? ( sci-libs/mumps )
+       netcdf? ( sci-libs/netcdf:= )
+       petsc? ( sci-mathematics/petsc )
+       qd? ( sci-libs/qd )
+       scalapack? ( sci-libs/scalapack )
+       scotch? ( sci-libs/scotch:= )
+       sparse? ( sci-libs/cxsparse sci-libs/umfpack )
+       superlu? ( <sci-libs/superlu-5.0.0:= )
+       taucs? ( sci-libs/taucs )
+       tbb? ( dev-cpp/tbb:= )
+       tvmet? ( dev-libs/tvmet )
+       yaml? ( dev-cpp/yaml-cpp:= )
+       zlib? ( virtual/zlib:= )
+       X? ( x11-libs/libX11 )"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig"
+
+PATCHES=(
+       "${FILESDIR}/${P}-drop_boost_system.patch"
+       )
+
+pkg_pretend() {
+       [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+pkg_setup() {
+       [[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
+}
+
+trilinos_conf() {
+       local dirs libs d
+       for d in $($(tc-getPKG_CONFIG) --libs-only-L $1); do
+               dirs="${dirs};${d:2}"
+       done
+       [[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_DIRS=${dirs:1}" )
+       for d in $($(tc-getPKG_CONFIG) --libs-only-l $1); do
+               libs="${libs};${d:2}"
+       done
+       [[ -n ${libs} ]] && mycmakeargs+=( "-D${2}_LIBRARY_NAMES=${libs:1}" )
+       dirs=""
+       for d in $($(tc-getPKG_CONFIG) --cflags-only-I $1); do
+               dirs="${dirs};${d:2}"
+       done
+       [[ -n ${dirs} ]] && mycmakeargs+=( "-D${2}_INCLUDE_DIRS=${dirs:1}" )
+}
+
+src_configure() {
+       # Trilinos is a massive C++ project. Fixing all of the lto warnings and
+       # making safe for lto compilation/linking will be a massive
+       # undertaking. Thus, simply filter lto flags. bug #862987
+       filter-lto
+
+       local mycmakeargs=(
+               -DBUILD_SHARED_LIBS=ON
+               -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
+               -DCMAKE_SKIP_RPATH=ON
+               -DCMAKE_SKIP_INSTALL_RPATH=ON
+               -DTrilinos_INSTALL_INCLUDE_DIR="${EPREFIX}/usr/include/trilinos"
+               
-DTrilinos_INSTALL_LIB_DIR="${EPREFIX}/usr/$(get_libdir)/trilinos"
+               -DTrilinos_ENABLE_ALL_PACKAGES="$(usex all-packages)"
+               -DTrilinos_ENABLE_PyTrilinos=OFF
+               -DTrilinos_ENABLE_Amesos=ON
+               -DTrilinos_ENABLE_AztecOO=ON
+               -DTrilinos_ENABLE_EpetraExt=ON
+               -DTrilinos_ENABLE_Epetra=ON
+               -DTrilinos_ENABLE_Ifpack=ON
+               -DTrilinos_ENABLE_ML=ON
+               -DTrilinos_ENABLE_MueLu=ON
+               -DTrilinos_ENABLE_OpenMP="$(usex openmp)"
+               -DTrilinos_ENABLE_ROL=ON
+               -DTrilinos_ENABLE_Sacado=ON
+               -DTrilinos_ENABLE_Teuchos=ON
+               -DTrilinos_ENABLE_Tpetra=ON
+               -DTrilinos_ENABLE_Zoltan=ON
+               -DTrilinos_ENABLE_TESTS="$(usex test)"
+               -DTPL_ENABLE_ADOLC="$(usex adolc)"
+               -DTPL_ENABLE_AMD="$(usex sparse)"
+               -DTPL_ENABLE_ARPREC="$(usex arprec)"
+               -DTPL_ENABLE_BinUtils=ON
+               -DTPL_ENABLE_BLACS="$(usex scalapack)"
+               -DTPL_ENABLE_BLAS=ON
+               -DTPL_ENABLE_BoostLib=ON
+               -DTPL_ENABLE_Boost=ON
+               -DTPL_ENABLE_Clp="$(usex clp)"
+               -DTPL_ENABLE_CSparse="$(usex sparse)"
+               -DTPL_ENABLE_CUDA="$(usex cuda)"
+               -DTPL_ENABLE_CUSPARSE="$(usex cuda)"
+               -DTPL_ENABLE_Eigen="$(usex eigen)"
+               -DTPL_ENABLE_GLPK="$(usex glpk)"
+               -DTPL_ENABLE_gtest="$(usex gtest)"
+               -DTPL_ENABLE_HDF5="$(usex hdf5)"
+               -DTPL_ENABLE_HWLOC="$(usex hwloc)"
+               -DTPL_ENABLE_HYPRE="$(usex hypre)"
+               -DTPL_ENABLE_Kokkos=ON
+               # Tpetra declares a dependency on kokkos-4.5.1, which we have in
+               # our version constraints. But the logic in the build system 
also
+               # unconditionally enforces that no newer version is installed.
+               # Thus, disable this check:
+               -DTpetra_IGNORE_KOKKOS_COMPATIBILITY=ON
+               -DTPL_ENABLE_LAPACK=ON
+               -DTPL_ENABLE_Matio="$(usex matio)"
+               -DTPL_ENABLE_METIS="$(usex metis)"
+               -DTPL_ENABLE_MKL="$(usex mkl)"
+               -DTPL_ENABLE_MPI=ON
+               -DTPL_ENABLE_MUMPS="$(usex mumps)"
+               -DTPL_ENABLE_Netcdf="$(usex netcdf)"
+               -DTPL_ENABLE_PARDISO_MKL="$(usex mkl)"
+               -DTPL_ENABLE_PETSC="$(usex petsc)"
+               -DTPL_ENABLE_Pthread="$(usex threads)"
+               -DTPL_ENABLE_QD="$(usex qd)"
+               -DTPL_ENABLE_SCALAPACK="$(usex scalapack)"
+               -DTPL_ENABLE_Scotch="$(usex scotch)"
+               -DTPL_ENABLE_SuperLU="$(usex superlu)"
+               -DTPL_ENABLE_TAUCS="$(usex taucs)"
+               -DTPL_ENABLE_TBB="$(usex tbb)"
+               -DTPL_ENABLE_TVMET="$(usex tvmet)"
+               -DTPL_ENABLE_UMFPACK="$(usex sparse)"
+               -DTPL_ENABLE_X11="$(usex X)"
+               -DTPL_ENABLE_yamlcpp="$(usex yaml)"
+               -DTPL_ENABLE_Zlib="$(usex zlib)"
+       )
+
+       #
+       # Make sure some critical configuration options are always set
+       # correctly independently of what Trilinos dependency resolver thinks
+       # it should be doing.
+       #
+       local mycmakeargs+=(
+               -DAmesos2_ENABLE_LAPACK=ON
+               -DAmesos2_ENABLE_MUMPS=OFF
+               -DTpetra_INST_SERIAL=ON
+       )
+
+       use eigen && \
+               mycmakeargs+=(
+               -DEigen_INCLUDE_DIRS="${EPREFIX}/usr/include/eigen3"
+       )
+       use hypre && \
+               mycmakeargs+=(
+               -DHYPRE_INCLUDE_DIRS="${EPREFIX}/usr/include/hypre"
+       )
+       use scotch && \
+               mycmakeargs+=(
+               -DScotch_INCLUDE_DIRS="${EPREFIX}/usr/include/scotch"
+       )
+
+       # cxsparse is a rewrite of csparse + extras
+       use sparse && \
+               mycmakeargs+=(
+               -DCSparse_LIBRARY_NAMES="cxsparse"
+       )
+
+       # mandatory blas and lapack
+       trilinos_conf blas BLAS
+       trilinos_conf lapack LAPACK
+       use superlu && trilinos_conf superlu SuperLU
+       use metis && trilinos_conf metis METIS
+
+       # blacs library is included in scalapack these days
+       if use scalapack; then
+               trilinos_conf scalapack SCALAPACK
+               mycmakeargs+=(
+                       -DBLACS_LIBRARY_NAMES="scalapack"
+                       -DBLACS_INCLUDE_DIRS="${EPREFIX}/usr/include/blacs"
+               )
+       fi
+
+       #
+       # Make sure we use the compiler wrappers in order to build trilinos.
+       #
+       [ ! -z "${CC}"] && export OMPI_CC="${CC}" MPICH_CC="${CC}" && tc-export 
OMPI_CC MPICH_CC
+       [ ! -z "${CXX}"] && export OMPI_CXX="${CXX}" MPICH_CXX="${CXX}" && 
tc-export OMPI_CXX MPICH_CXX
+       export CC=mpicc CXX=mpicxx && tc-export CC CXX
+
+       # Trilinos needs a custom build type:
+       local CMAKE_BUILD_TYPE=Release
+
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+
+       # Move the cmake directory to the right location:
+       mkdir -p "${ED}/usr/$(get_libdir)"/cmake
+       mv "${ED}/usr/$(get_libdir)"/trilinos/cmake/* 
"${ED}/usr/$(get_libdir)"/cmake || die "mv failed"
+       # Fix up include paths:
+       sed -i -e 's#external_packages#trilinos/external_packages#g' \
+               "${ED}/usr/$(get_libdir)"/cmake/**/*.cmake || die "sed failed"
+       rmdir "${ED}/usr/$(get_libdir)/trilinos/cmake" || die "rmdir failed"
+
+       # Register $(get_libdir)/trilinos in LDPATH so that the dynamic linker
+       # has a chance to pick up the libraries, also add Trilinos' binaries ot
+       # the PATH environment variable.
+       cat >> "${T}"/99trilinos <<- EOF
+       LDPATH="${EPREFIX}/usr/$(get_libdir)/trilinos"
+       PATH="${EPREFIX}/usr/$(get_libdir)/trilinos/bin"
+       EOF
+       doenvd "${T}"/99trilinos
+}

Reply via email to