diff options
author | V3n3RiX <venerix@koprulu.sector> | 2021-12-05 02:47:11 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2021-12-05 02:47:11 +0000 |
commit | 2771f79232c273bc2a57d23bf335dd81ccf6af28 (patch) | |
tree | c8af0fd04194aed03cf067d44e53c7edd3e9ab84 /sci-mathematics/petsc | |
parent | e9d044d4b9b71200a96adfa280848858c0f468c9 (diff) |
gentoo resync : 05.12.2021
Diffstat (limited to 'sci-mathematics/petsc')
-rw-r--r-- | sci-mathematics/petsc/Manifest | 4 | ||||
-rw-r--r-- | sci-mathematics/petsc/files/petsc-3.16.0-fix_sandbox_violation.patch | 15 | ||||
-rw-r--r-- | sci-mathematics/petsc/petsc-3.16.0.ebuild | 192 |
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 +} |