summaryrefslogtreecommitdiff
path: root/sci-mathematics/petsc
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2021-12-05 02:47:11 +0000
committerV3n3RiX <venerix@koprulu.sector>2021-12-05 02:47:11 +0000
commit2771f79232c273bc2a57d23bf335dd81ccf6af28 (patch)
treec8af0fd04194aed03cf067d44e53c7edd3e9ab84 /sci-mathematics/petsc
parente9d044d4b9b71200a96adfa280848858c0f468c9 (diff)
gentoo resync : 05.12.2021
Diffstat (limited to 'sci-mathematics/petsc')
-rw-r--r--sci-mathematics/petsc/Manifest4
-rw-r--r--sci-mathematics/petsc/files/petsc-3.16.0-fix_sandbox_violation.patch15
-rw-r--r--sci-mathematics/petsc/petsc-3.16.0.ebuild192
3 files changed, 211 insertions, 0 deletions
diff --git a/sci-mathematics/petsc/Manifest b/sci-mathematics/petsc/Manifest
index 35c0a873b0cb..d38317e053f3 100644
--- a/sci-mathematics/petsc/Manifest
+++ b/sci-mathematics/petsc/Manifest
@@ -1,11 +1,15 @@
AUX petsc-3.13.0-do_not_run_mpiexec.patch 2822 BLAKE2B 6c8e8185c693fdc720c0d8ea803cecff2d4b29ae71e3251e06e3460e05b301b709f30032f9a473f065c3e2a9a7b488241cb0d63ddaebdcdf275513af50257ddc SHA512 c2ea68fd59feed34ea6b7afdcbfe24e27e44d844ed6f077c52b81a20676dabb4613c9add6b33edea7d46f0c1a55993bd020d342092aa15e0f46020cc6bc51609
AUX petsc-3.13.0-fix_sandbox_violation.patch 1022 BLAKE2B 4883be2a38becba88dd1ceafffae46b775f75a59ce990c2d92808a52fb27e5ab89a14e355599009466be0af58680076e15ae74d82cd243b3bfe867fa90f4f05a SHA512 afd6e4ade2a53941d0211baa78e179de9c8bfead15c4c245d25623cee99fb1c0821d154e58428b3c431654d770689afdec1c2bd631f2fa8eedd99d3c7186656c
AUX petsc-3.13.0-make_hypre_configure.patch 4055 BLAKE2B e3bc831665fbe2c9a724a13420d1ce7557b7a1a6fcd7537271a6e48622f29f71f72257d649bcbef4aa4f287a804407cdb80579797eb54cfa994ef85d5bcb617f SHA512 47e4971596342c160fc54e1bc6d9fa739ae4bf6a9e3f89659992a3548de0beacdc7ac34a900117c1ee43b6bfaa81e8a58f1c45acea072be612ece3b5d18d7f86
+AUX petsc-3.16.0-fix_sandbox_violation.patch 717 BLAKE2B 9bef08265c058433cf903cc33739e9a1a2dc19f6ee77d92f2884c8a3fbdabe6585e9afa663a2a9ecf622d2e5c688ee0e931249e2e053213e3f0991070a0dd352 SHA512 3c8b490f8f6f0a4ceff8dbafdcc835174549cfe397753a7855995543c51dc5629c576b3af76c0ef527a62b2475dd5e6f059036048619f4ca83146879682835b9
AUX petsc-3.7.0-disable-rpath.patch 909 BLAKE2B b9b6064886d6c10b382982778398cb7fa254242e5ed0dfb86dd4cd6c094dc51eecfd625f6de5c2779bfc5b3beda351ac44145c69ac246d814a728d7565da8086 SHA512 8241c593d903615feb175bfe8213792ace739a18ac5f4c1d1890155ccea7de30b5ef5d97e2fa3b043e9a1e520e022abedeb038d0b4db671f89045e04edc65a68
DIST petsc-3.13.1.tar.gz 35097687 BLAKE2B fccf64fd3694deffdd0dc561069ffa7e9342fe279b5c9123edeb011df931874083839d27b7b9a0c63faea6487b104b54fd4ce68a88a074c82de91e8baaf270b0 SHA512 41c3138a6ae6c1f2d9077b464c6aeda96287e5a76849582b8f432e2ee93d2594a78ba2181eac0054a77b6165692be5f1a057049313f2be9743d4246383dfdc77
DIST petsc-3.14.6.tar.gz 39719179 BLAKE2B d3047baf87c67eb64ef02c0c54d6313ea06f091b377b3cdf6dcf6d96c7d68cec5958a007ddd84b52a3ab39bfc0adf146307fa1785a10f39386393371186a3fba SHA512 9766e164446ac5a69b8bf761a0e8a235b1a2b85ed9c96a7fd59e668ae4cceb9d9559a38b175b4aa9747e78d7b44d0018a3c02748dcd3d783d28f861f8382d44c
DIST petsc-3.15.0.tar.gz 15976488 BLAKE2B babfbeb05321c9cb2f7d70ef8ffca974a016eae73ca1a3359d9a8d38aa5aa90ff34571169a5711627d738b93f89fdee3d0a0ff1bd0e51cb7300bbb9b0a8675cb SHA512 d1565823d8a5ce5e1c2c576bbe1b4ebf467cef20bbd8e0cf6c303c6c2af2bf902b66c79468f4e125496f9242be4bd6ac162535ee30252cfb902c0d906a6f27c0
+DIST petsc-3.16.0-fftw-without-mpi.patch.bz2 5824 BLAKE2B 59615b1bbaf8ca1da92d7d193a45a2dd434f762cd741d711d4f408183a201a276ac3c968a3e7d740d19212120271701bce52bb7b0f4e311268f40915c81f9dcb SHA512 8e07dfe56a9150ce9a3a5ab8012657875ef84e6e7daa60560bbdd9062078c876a826057f3f3eaf1697ce046a82756ee6eb6a8b819eb51245367c9d5c8a72ee8e
+DIST petsc-3.16.0.tar.gz 16748960 BLAKE2B 87f9fdb79a9c44e5f476fa4746ad0cbe72f3eda9f6039f2e4743105626701d7c8d6c010fdb9d89becf8619288d0b7a60c8bc4e2fc0793eac5b39030b02c04fd9 SHA512 5280032fb4ec4d058733788bb0ae674e7400565e204133bd10ed88a2965230ec7adeaca2d498267ce661377ca7e6f9d948992206b1d679587606cb422c004655
EBUILD petsc-3.13.1.ebuild 5477 BLAKE2B e9a396d53021669d05fab78e68b4ee29430b544eb3f3999f39d38c2e266bf487bc33375057cccd61cc693e5689cdac90ce656a0463df9426b84398dc69997203 SHA512 406f1d98dcfbed81df31f4f0bee38af47b35668f2982d7cbe97ebe4616754731c3a74bec5f823c3a89daa859f4d41d1cbef2da74ba8b5ffa260d16b2ce1139c4
EBUILD petsc-3.14.6.ebuild 5369 BLAKE2B a76974285807ac4b8375099e1ca771e5a7f9c1fb8d14d369572a4d650a16a04f1bf2d074d144667c2c5b65e9bbd49fa2543bdbf97bc09d734326d37d194a12bb SHA512 408deb64b90ebe17671c8f2b75eac0c5d4ed27964acb92c09028200647016083ac01e323faf4e163c269b611e5952e79e223022bc81d557eadf690d83933f949
EBUILD petsc-3.15.0.ebuild 5291 BLAKE2B 54b3b5e1dd217cde21729e55fc82b0879de9d79976c8b2c3d32aefd8c18303b91073abe50226aeffe65e8cedb78dcd21bc7a267e3959941706b144c37fcf2c16 SHA512 4639f9551500799f835c47fd8f1bc521ab624db664de50ce70436d85827c0cd11d2d01556e1238484a769af1e913c773996aa06c3824050947f1a5292e3fb8aa
+EBUILD petsc-3.16.0.ebuild 5425 BLAKE2B 1eac71bf09d22ef0b5b5d88d6215a08fb125e27e30823fe414e3cfa743d7b21b87b11ac9863df81db0fd9354c5ef4024f72b2f632a96f079423ef76951cc4f92 SHA512 4924b6cb7013d2ca25e86111a5c7263c682bd78ea25386f76f89a81127d45139317536beecfabbc52c1b71a93f2a9c19a4f3873eaeed188f9dd939870fe7dd31
MISC metadata.xml 1132 BLAKE2B 97f06bc09680f9133b4c693b4d564dcf0e45a839114be1d49bda6a2adc5521b7b4236af50fab81603212456a428406a7eb78f9266be1f28367f032ce6f526cb1 SHA512 1ea1407782022a64ee166b9cb1b9408ca1c30f13fc94c3da1f2484a8ea3ae79ebe109f4c3cacaef3152360fd8eb8a2e6d9383d307b35d0e36dd193f5ec10478d
diff --git a/sci-mathematics/petsc/files/petsc-3.16.0-fix_sandbox_violation.patch b/sci-mathematics/petsc/files/petsc-3.16.0-fix_sandbox_violation.patch
new file mode 100644
index 000000000000..d1ed880bddfd
--- /dev/null
+++ b/sci-mathematics/petsc/files/petsc-3.16.0-fix_sandbox_violation.patch
@@ -0,0 +1,15 @@
+--- a/config/PETSc/options/installDir.py
++++ b/config/PETSc/options/installDir.py
+@@ -40,13 +40,7 @@ class Configure(config.base.Configure):
+ self.dir = os.path.abspath(os.path.expanduser(self.framework.argDB['prefix']))
+ self.petscDir = self.dir
+ self.petscArch = ''
+- try:
+- os.makedirs(os.path.join(self.dir,'PETScTestDirectory'))
+- os.rmdir(os.path.join(self.dir,'PETScTestDirectory'))
+- except Exception as e:
+- self.logPrint('Error trying to to test write permissions on directory '+str(e))
+- self.installSudo = 'sudo '
+ else:
+ self.dir = os.path.abspath(os.path.join(self.petscdir.dir, self.arch.arch))
+ self.petscDir = self.petscdir.dir
diff --git a/sci-mathematics/petsc/petsc-3.16.0.ebuild b/sci-mathematics/petsc/petsc-3.16.0.ebuild
new file mode 100644
index 000000000000..f39f87d8c281
--- /dev/null
+++ b/sci-mathematics/petsc/petsc-3.16.0.ebuild
@@ -0,0 +1,192 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8..10} )
+
+inherit flag-o-matic fortran-2 python-any-r1 toolchain-funcs
+
+DESCRIPTION="Portable, Extensible Toolkit for Scientific Computation"
+HOMEPAGE="https://www.mcs.anl.gov/petsc/"
+SRC_URI="http://ftp.mcs.anl.gov/pub/petsc/release-snapshots/${P}.tar.gz"
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-fftw-without-mpi.patch.bz2"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="afterimage boost complex-scalars cxx debug fftw
+ fortran hdf5 hypre mpi metis mumps scotch sparse superlu threads X"
+
+# hypre and superlu curretly exclude each other due to missing linking to hypre
+# if both are enabled
+REQUIRED_USE="
+ afterimage? ( X )
+ complex-scalars? ( !hypre !superlu )
+ hdf5? ( mpi )
+ hypre? ( cxx mpi !superlu )
+ mumps? ( mpi scotch )
+ scotch? ( mpi )
+ superlu? ( !hypre )
+"
+
+RDEPEND="
+ virtual/blas
+ virtual/lapack
+ afterimage? ( media-libs/libafterimage )
+ boost? ( dev-libs/boost )
+ fftw? ( sci-libs/fftw:3.0[mpi?] )
+ hdf5? ( sci-libs/hdf5[mpi?] )
+ hypre? ( >=sci-libs/hypre-2.18.0[mpi?] )
+ metis? ( >=sci-libs/parmetis-4 )
+ mpi? ( virtual/mpi[cxx?,fortran?] )
+ mumps? ( sci-libs/mumps[mpi?] sci-libs/scalapack )
+ scotch? ( sci-libs/scotch[mpi?] )
+ sparse? ( sci-libs/suitesparse >=sci-libs/cholmod-1.7.0 )
+ superlu? ( >=sci-libs/superlu-5 )
+ X? ( x11-libs/libX11 )
+"
+
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ virtual/pkgconfig
+ dev-util/cmake
+ sys-apps/which
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.7.0-disable-rpath.patch
+ "${FILESDIR}"/${P}-fix_sandbox_violation.patch
+ "${WORKDIR}"/${P}-fftw-without-mpi.patch
+)
+
+# petsc uses --with-blah=1 and --with-blah=0 to en/disable options
+petsc_enable() {
+ use "$1" && echo "--with-${2:-$1}=1" || echo "--with-${2:-$1}=0"
+}
+# add external library:
+# petsc_with use_flag libname libdir
+# petsc_with use_flag libname include linking_libs
+petsc_with() {
+ local myuse p=${2:-${1}}
+ if use ${1}; then
+ myuse="--with-${p}=1"
+ if [[ $# -ge 4 ]]; then
+ myuse="${myuse} --with-${p}-include=${EPREFIX}${3}"
+ shift 3
+ myuse="${myuse} --with-${p}-lib=$@"
+ else
+ myuse="${myuse} --with-${p}-dir=${EPREFIX}${3:-/usr}"
+ fi
+ else
+ myuse="--with-${p}=0"
+ fi
+ echo ${myuse}
+}
+
+# select between configure options depending on use flag
+petsc_select() {
+ use "$1" && echo "--with-$2=$3" || echo "--with-$2=$4"
+}
+
+src_configure() {
+ # bug 548498
+ # PETSc runs mpi processes during configure that result in a sandbox
+ # violation by trying to open /proc/mtrr rw. This is not easy to
+ # mitigate because it happens in libpciaccess.so called by libhwloc.so,
+ # which is used by libmpi.so.
+ addpredict /proc/mtrr
+ # if mpi is built with knem support it needs /dev/knem too
+ addpredict /dev/knem
+
+ # configureMPITypes with openmpi-2* insists on accessing the scaling
+ # governor rw.
+ addpredict /sys/devices/system/cpu/
+
+ # bug 771711
+ # configureMPIEXEC and configureMPITypes access /dev/nvidiactl
+ addpredict /dev/nvidiactl
+
+ # bug 810841
+ addpredict /dev/kfd
+
+ local mylang
+ local myopt
+
+ use cxx && mylang="cxx" || mylang="c"
+ use debug && myopt="debug" || myopt="opt"
+
+ # environmental variables expected by petsc during build
+
+ export PETSC_DIR="${S}"
+ export PETSC_ARCH="linux-gnu-${mylang}-${myopt}"
+
+ if use debug; then
+ strip-flags
+ filter-flags -O*
+ fi
+
+ # C Support on CXX builds is enabled if possible i.e. when not using
+ # complex scalars (no complex type for both available at the same time)
+
+ econf \
+ scrollOutput=1 \
+ FFLAGS="${FFLAGS} -fPIC" \
+ CFLAGS="${CFLAGS} -fPIC" \
+ CXXFLAGS="${CXXFLAGS} -fPIC" \
+ LDFLAGS="${LDFLAGS}" \
+ --prefix="${EPREFIX}/usr/$(get_libdir)/petsc" \
+ --with-shared-libraries \
+ --with-single-library \
+ --with-clanguage=${mylang} \
+ $(use cxx && ! use complex-scalars && echo "with-c-support=1") \
+ --with-petsc-arch=${PETSC_ARCH} \
+ --with-precision=double \
+ --with-gnu-compilers \
+ --with-blas-lapack-lib="$($(tc-getPKG_CONFIG) --libs blas lapack)" \
+ $(petsc_enable debug debugging) \
+ $(petsc_enable mpi) \
+ $(petsc_select mpi cc mpicc $(tc-getCC)) \
+ $(petsc_select mpi cxx mpicxx $(tc-getCXX)) \
+ $(petsc_enable fortran) \
+ $(use fortran && echo "$(petsc_select mpi fc mpif77 $(tc-getF77))") \
+ $(petsc_enable mpi mpi-compilers) \
+ $(petsc_select complex-scalars scalar-type complex real) \
+ --with-windows-graphics=0 \
+ --with-matlab=0 \
+ --with-cmake:BOOL=1 \
+ $(petsc_enable threads pthread) \
+ $(petsc_with afterimage afterimage \
+ /usr/include/libAfterImage -lAfterImage) \
+ $(use_with hdf5) \
+ $(petsc_with hypre hypre \
+ /usr/include/hypre -lHYPRE) \
+ $(use_with sparse suitesparse) \
+ $(petsc_with superlu superlu \
+ /usr/include/superlu -lsuperlu) \
+ $(use_with X x) \
+ $(use_with X x11) \
+ $(petsc_with scotch ptscotch \
+ /usr/include/scotch \
+ [-lptesmumps,-lptscotch,-lptscotcherr,-lscotch,-lscotcherr]) \
+ $(petsc_with mumps scalapack \
+ /usr/include/scalapack -lscalapack) \
+ $(use_with mumps mumps \
+ /usr/include \
+ [-lcmumps,-ldmumps,-lsmumps,-lzmumps,-lmumps_common,-lpord]) \
+ --with-imagemagick=0 \
+ --with-python=0 \
+ $(use_with boost) \
+ $(use_with fftw)
+}
+
+src_install() {
+ emake DESTDIR="${ED}" install
+
+ # add PETSC_DIR to environmental variables
+ cat >> 99petsc <<- EOF
+ PETSC_DIR=${EPREFIX}/usr/$(get_libdir)/petsc
+ LDPATH=${EPREFIX}/usr/$(get_libdir)/petsc/lib
+ EOF
+ doenvd 99petsc
+}