index : packages | |
Archlinux32 package modifications | gitolite user |
summaryrefslogtreecommitdiff |
-rw-r--r-- | extra/openmpi4/PKGBUILD | 115 |
diff --git a/extra/openmpi4/PKGBUILD b/extra/openmpi4/PKGBUILD new file mode 100644 index 00000000..295cc9a6 --- /dev/null +++ b/extra/openmpi4/PKGBUILD @@ -0,0 +1,115 @@ +# Maintainer: Levente Polyak <anthraxx[at]archlinux[dot]org> +# Maintainer: David Runge <dvzrv@archlinux.org> +# Contributor: Anatol Pomozov <anatol dot pomozov at gmail> +# Contributor: Stéphane Gaudreault <stephane@archlinux.org> + +pkgname=openmpi4 +_pkgname=${pkgname%4} +pkgver=4.1.6 +pkgrel=3 +pkgdesc='High performance message passing library (MPI)' +arch=(x86_64 pentium4 i686 i486) +url='https://www.open-mpi.org' +license=('custom:OpenMPI') +depends=( + gcc-libs + glibc + hwloc + libevent + libnl + openpmix + openssh + zlib +) +makedepends=( + cuda + gcc-fortran + valgrind +) +optdepends=( + 'cuda: cuda support' + 'gcc-fortran: fortran support' + 'perl: for aggregate_profile.pl and profile2mat.pl' +) +provides=( + openmpi + libmca_common_cuda.so + libmca_common_monitoring.so + libmca_common_ompio.so + libmca_common_sm.so + libmpi.so + libmpi_cxx.so + libmpi_mpifh.so + libmpi_usempi_ignore_tkr.so + libmpi_usempif08.so + libompitrace.so + libopen-pal.so + libopen-rte.so +) +conflicts=(openmpi) +replaces=(openmpi) +source=( + https://download.open-mpi.org/release/open-mpi/v${pkgver%.*}/${pkgname%4}-$pkgver.tar.bz2) +sha256sums=('f740994485516deb63b5311af122c265179f5328a0d857a567b85db00b11e415') +b2sums=('4f119e1ed9b8787f0f860295ab1721fe2fd5300b8e182230a9eba3a864680b02bbd30618cc6d798a693a121626fc0ad5f447144d9ba91becb734f1a530d7a23a') + +build() { + local configure_options=( + --prefix=/usr + --enable-builtin-atomics + --enable-memchecker + --enable-mpi-cxx + --enable-mpi-fortran=all + --enable-pretty-print-stacktrace + --libdir=/usr/lib + --sysconfdir=/etc/$_pkgname + --with-cuda=/opt/cuda + --with-hwloc=external + --with-libevent=external + --with-pmix=external + --with-valgrind + ) + cd $_pkgname-$pkgver + + # set environment variables for reproducible build + # see https://github.com/open-mpi/ompi/blob/main/docs/release-notes/general.rst + export HOSTNAME=buildhost + export USER=builduser + + # TODO: depend on prrte with openmpi >= 5 + # TODO: remove ac_cv_func_sem_open=no when there is a glibc release fixing https://sourceware.org/bugzilla/show_bug.cgi?id=30789 + ac_cv_func_sem_open=no ./configure "${configure_options[@]}" + # prevent excessive overlinking due to libtool + sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool + make V=1 +} + +check() { + make check -C $_pkgname-$pkgver +} + +package() { + depends+=(libpmix.so) + + make DESTDIR="$pkgdir" install -C $_pkgname-$pkgver + install -Dm 644 $_pkgname-$pkgver/LICENSE -t "$pkgdir/usr/share/licenses/$_pkgname/" +} + +# vim: ts=2 sw=2 et: + +# -- Arch32 specific -- + +# no CUDA +makedepends=(${makedepends[@]//cuda/}) +eval "$( + declare -f build | \ + sed ' + /local configure_options.*/ a \ + configure_options=(${configure_options[@]//--with-cuda=\\/opt\\/cuda}) + ' +)" + +# new tests break happilly on 32-bit and with newer gccs +unset check +unset checkdepends + |