commit: a6fc307b4bc274cb9e7726780ff0f8c6802fa0f9 Author: Matthias Maier <tamiko <AT> gentoo <DOT> org> AuthorDate: Sat Jun 28 17:58:58 2025 +0000 Commit: Matthias Maier <tamiko <AT> gentoo <DOT> org> CommitDate: Sat Jun 28 21:51:31 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a6fc307b
sci-mathematics/slepc: add 3.23.1 Closes: https://bugs.gentoo.org/951047 Closes: https://bugs.gentoo.org/952691 Closes: https://bugs.gentoo.org/958033 Signed-off-by: Matthias Maier <tamiko <AT> gentoo.org> sci-mathematics/slepc/Manifest | 2 + sci-mathematics/slepc/slepc-3.23.1.ebuild | 125 ++++++++++++++++++++++++++++++ 2 files changed, 127 insertions(+) diff --git a/sci-mathematics/slepc/Manifest b/sci-mathematics/slepc/Manifest index c2edb69c721b..7d81f8b7050b 100644 --- a/sci-mathematics/slepc/Manifest +++ b/sci-mathematics/slepc/Manifest @@ -1,2 +1,4 @@ DIST slepc-3.22.1.tar.gz 1867493 BLAKE2B 812ce600ef88ff6cb3933f33d5c39f36402e0980f66988d21e2401d1eddd58ae0176ca09e457bbdcee6ba45d8bca33d829090c142255b27a0a06281bb682c14d SHA512 f82c6c867a720c3c4d02187f664f3889116ea0a926ecb19bf7153a64518721f3cc0497badf93df680155463d6b5484884d2b42556aa1140b6dfaa5ef8b9db6db +DIST slepc-3.23.1.tar.gz 1769307 BLAKE2B 99ca6841d5d089577cb1f2b2892d0d263a8187104a6eed14a20294d5e23021dc0f02bfa4bc9e08c3ea3b71feeb31788ca6aa2c895cbf3c149614fcb7edbb7e3b SHA512 b91d1b014cab0f53ada0b57c796d0cea2d1baf2d6ea093e351164e6ab34cf11d3d159120851ac40f3bd4ae8b7f15f185700e3f6dd2312bf4e6aeb5203770a0ad DIST slepc-with-docs-3.22.1.tar.gz 6492734 BLAKE2B d019dc15bb27e82579bd56c90f100787567ff18c9c78664fa26f290323af545a95b970d5bf679d0fac992b4860d4c2d2d7617d95af24cf05e875301469550585 SHA512 c46b47825a50a9f8433b7710ba8a1d43371bd7acecb41498a710fd9b1b1e4bf3f50613f22e39c2f02cd19779cadb3ffe22bc0b57b123871c0f2a19c0e9298723 +DIST slepc-with-docs-3.23.1.tar.gz 6417187 BLAKE2B 81c56d8c2b0eacdc1763822819f4db98eb91cbde0f80f22652d3e14ba48245248fbe53e9c5df9740f223d81b5ad1c45b8069dbeafb2015aea33f5c3f11653d35 SHA512 b6c082b4ce3a59bc530f37f73d6ec675c75a1fa1cc7a96f2e2705bbec809f74b95dafed60dd3f41f4acfaed4ce9794f816b48697562b2c8d2706361c7c63f147 diff --git a/sci-mathematics/slepc/slepc-3.23.1.ebuild b/sci-mathematics/slepc/slepc-3.23.1.ebuild new file mode 100644 index 000000000000..f6113a2f2281 --- /dev/null +++ b/sci-mathematics/slepc/slepc-3.23.1.ebuild @@ -0,0 +1,125 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) + +inherit python-any-r1 + +DESCRIPTION="Scalable Library for Eigenvalue Problem Computations" +HOMEPAGE="https://slepc.upv.es/" +SRC_URI=" + !doc? ( https://slepc.upv.es/download/distrib/${P}.tar.gz ) + doc? ( https://slepc.upv.es/download/distrib/${PN}-with-docs-${PV}.tar.gz )" + +LICENSE="LGPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="arpack complex-scalars doc +examples mpi" + +REQUIRED_USE="arpack? ( mpi )" + +RDEPEND=" + =sci-mathematics/petsc-$(ver_cut 1-2)*:=[examples,mpi=,complex-scalars=] + arpack? ( sci-libs/arpack[mpi=] ) + mpi? ( virtual/mpi ) +" + +DEPEND="${RDEPEND} + ${PYTHON_DEPS} + virtual/pkgconfig + dev-build/cmake +" + +MAKEOPTS="${MAKEOPTS} V=1" + +src_unpack() { + use doc || unpack ${P}.tar.gz + use doc && unpack ${PN}-with-docs-${PV}.tar.gz +} + +src_configure() { + # *sigh* + addpredict "${PETSC_DIR}"/.nagged + + # Make sure that the environment is set up correctly: + unset PETSC_DIR + unset PETSC_ARCH + source "${EPREFIX}"/etc/env.d/99petsc + export PETSC_DIR + export PETSC_ARCH + export SLEPC_DIR="${S}" + + # configure is a custom python script and doesn't want to have default + # configure arguments that we set with econf + if use arpack; then + ./configure \ + --prefix="${EPREFIX}/usr/$(get_libdir)/slepcdir" \ + --with-arpack=1 \ + --with-arpack-lib="$(usex mpi "-lparpack -larpack" "-larpack")" + else + ./configure \ + --prefix="${EPREFIX}/usr/$(get_libdir)/slepcdir" \ + --with-arpack=0 + fi +} + +src_install() { + emake DESTDIR="${ED}" install + + # + # Clean up the mess: + # + + # put all include directories under a proper subdirectory + mkdir "${ED}"/usr/include || die "mkdir failed (include)" + mv "${ED}"/usr/{$(get_libdir)/slepcdir/include,include/slepc} || die "mv failed (include)" + + # put libraries and pkconfig file into proper place + mv "${ED}"/usr/$(get_libdir)/slepcdir/lib/{libslepc*,pkgconfig} \ + "${ED}/usr/$(get_libdir)" || die "mv failed (lib)" + + # move share to proper location + mv "${ED}"/usr/{$(get_libdir)/slepcdir/share,share} || die "mv failed (share)" + + # fix pc files: + sed -i \ + -e 's#include$#include/slepc#' \ + -e "s#lib\$#$(get_libdir)#" \ + -e "s#^prefix=.*slepcdir\$#prefix=${EPREFIX}/usr#" \ + "${ED}"/usr/$(get_libdir)/pkgconfig/*.pc || die "sed failed (pkgconfig)" + + # recreate a "valid" slepcdir: + for i in "${ED}"/usr/$(get_libdir)/*; do + [ $(basename $i) = slepcdir ] && continue + ln -s "${EPREFIX}/usr/$(get_libdir)/$(basename $i)" \ + "${ED}/usr/$(get_libdir)/slepcdir/lib/$(basename $i)" || die "ln failed (slepcdir)" + done + ln -s "${EPREFIX}"/usr/include/slepc/ \ + "${ED}/usr/$(get_libdir)/slepcdir/include" || die "ln failed (slepcdir)" + mkdir "${ED}/usr/$(get_libdir)/slepcdir/share" || die "mkdir fialed (slepcdir)" + ln -s "${EPREFIX}"/usr/share/slepc/ \ + "${ED}/usr/$(get_libdir)/slepcdir/share/slepc" || die "ln failed (slepcdir)" + + if use examples; then + mkdir -p "${ED}"/usr/share/doc/${PF} || die "mkdir failed (examples)" + mv "${ED}"/usr/share/slepc/examples "${ED}"/usr/share/doc/${PF} || die "mv failed (examples)" + ln -s "${EPREFIX}"/usr/share/doc/${PF}/examples "${ED}"/usr/share/slepc/examples || die "ln failed (examples)" + docompress -x /usr/share/doc/${PF}/examples + else + rm -r "${ED}"/usr/share/slepc/examples || die "rm failed (examples)" + fi + + if use doc ; then + dodoc docs/slepc.pdf + docinto html + dodoc -r docs/*.html docs/manualpages + fi + + # add PETSC_DIR to environmental variables + cat >> 99slepc <<- EOF + SLEPC_DIR=${EPREFIX}/usr/$(get_libdir)/slepcdir + EOF + doenvd 99slepc +}
