commit:     e4bd2f6d1e878c5075eaebeab1a66b073cc1f43e
Author:     David Seifert <soap <AT> gentoo <DOT> org>
AuthorDate: Sat Jan 29 00:00:17 2022 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sat Jan 29 00:00:17 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e4bd2f6d

sci-chemistry/mpqc: fix build system and MPI

Closes: https://bugs.gentoo.org/710822
Closes: https://bugs.gentoo.org/801682
Signed-off-by: David Seifert <soap <AT> gentoo.org>

 sci-chemistry/mpqc/files/mpqc-2.3.1-MPI-3.0.patch | 37 +++++++++++++++++
 sci-chemistry/mpqc/mpqc-2.3.1-r4.ebuild           | 48 +++++++++++------------
 2 files changed, 61 insertions(+), 24 deletions(-)

diff --git a/sci-chemistry/mpqc/files/mpqc-2.3.1-MPI-3.0.patch 
b/sci-chemistry/mpqc/files/mpqc-2.3.1-MPI-3.0.patch
new file mode 100644
index 000000000000..d03d1f9b0566
--- /dev/null
+++ b/sci-chemistry/mpqc/files/mpqc-2.3.1-MPI-3.0.patch
@@ -0,0 +1,37 @@
+https://bugs.gentoo.org/801682
+rename MPI 1.0 to 3.0+ functions:
+- MPI_Errhandler_set -> MPI_Comm_set_errhandler
+
+--- a/src/lib/util/group/memmtmpi.cc
++++ b/src/lib/util/group/memmtmpi.cc
+@@ -241,8 +241,8 @@
+   MPI_Comm_dup(comm, &comp_comm_);
+   MPI_Comm_dup(comm, &comm_comm_);
+ 
+-  MPI_Errhandler_set(comp_comm_, MPI_ERRORS_ARE_FATAL);
+-  MPI_Errhandler_set(comm_comm_, MPI_ERRORS_ARE_FATAL);
++  MPI_Comm_set_errhandler(comp_comm_, MPI_ERRORS_ARE_FATAL);
++  MPI_Comm_set_errhandler(comm_comm_, MPI_ERRORS_ARE_FATAL);
+ 
+   serial_ = 0;
+   req_tag_ = 15001;
+--- a/src/lib/util/group/messmpi.cc
++++ b/src/lib/util/group/messmpi.cc
+@@ -129,7 +129,7 @@
+   if (keyval->booleanvalue("errors_return")) {
+       if (me()==0)
+           ExEnv::outn() << indent << "MPIMessageGrp: errors_return is true" 
<< endl;
+-      MPI_Errhandler_set(commgrp, MPI_ERRORS_RETURN);
++      MPI_Comm_set_errhandler(commgrp, MPI_ERRORS_RETURN);
+     }
+ 
+   if (debug_) {
+@@ -200,7 +200,7 @@
+   MPI_Comm_dup(comm, &commgrp);
+   global_commgrp = commgrp;
+ 
+-  MPI_Errhandler_set(commgrp, MPI_ERRORS_ARE_FATAL);
++  MPI_Comm_set_errhandler(commgrp, MPI_ERRORS_ARE_FATAL);
+ 
+    if (!nmpi_grps) {
+       threadgrp = ThreadGrp::get_default_threadgrp();

diff --git a/sci-chemistry/mpqc/mpqc-2.3.1-r4.ebuild 
b/sci-chemistry/mpqc/mpqc-2.3.1-r4.ebuild
index bdf7bcdcce0a..fc84f06b4f82 100644
--- a/sci-chemistry/mpqc/mpqc-2.3.1-r4.ebuild
+++ b/sci-chemistry/mpqc/mpqc-2.3.1-r4.ebuild
@@ -1,7 +1,7 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2022 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=6
+EAPI=8
 
 inherit autotools toolchain-funcs
 
@@ -12,30 +12,31 @@ SRC_URI="mirror://sourceforge/mpqc/${P}.tar.bz2"
 LICENSE="GPL-2"
 SLOT="0"
 KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
-IUSE="doc mpi threads static-libs tk"
+IUSE="doc mpi threads tk"
 
 RDEPEND="
        virtual/blas
        virtual/lapack
        mpi? ( virtual/mpi[cxx] )
        tk? ( dev-lang/tk:0 )"
-DEPEND="${RDEPEND}
+DEPEND="${RDEPEND}"
+BDEPEND="
        dev-lang/perl
        sys-devel/flex
-       sys-apps/sed
        virtual/pkgconfig
        doc? (
                app-doc/doxygen
-               media-gfx/graphviz )"
+               media-gfx/graphviz
+       )"
 
 PATCHES=(
-       "${FILESDIR}/${P}-as-needed.patch"
-       "${FILESDIR}/${P}-respect-ldflags.patch"
-       "${FILESDIR}/${P}-test-failure-hack.patch"
-       "${FILESDIR}/${P}-blas.patch"
-       "${FILESDIR}/${P}-wformat-security.patch"
+       "${FILESDIR}"/${P}-as-needed.patch
+       "${FILESDIR}"/${P}-respect-ldflags.patch
+       "${FILESDIR}"/${P}-test-failure-hack.patch
+       "${FILESDIR}"/${P}-blas.patch
+       "${FILESDIR}"/${P}-wformat-security.patch
+       "${FILESDIR}"/${P}-MPI-3.0.patch
 )
-DOCS=(CHANGES CITATION README)
 
 src_prepare() {
        # do not install tkmolrender if not requested
@@ -48,7 +49,7 @@ src_prepare() {
                        || die "failed to disable tkmolrender"
        fi
        default
-       mv configure.{in,ac} || die
+
        eautoreconf
 }
 
@@ -60,40 +61,40 @@ src_configure() {
        fi
 
        econf \
+               --enable-shared \
                $(use_enable threads) \
-               $(use_enable mpi parallel) \
-               $(use_enable static-libs static)
+               $(use_enable mpi parallel)
 
        sed \
-               -e "s:^CFLAGS =.*$:CFLAGS=${CFLAGS}:" \
-               -e "s:^FFLAGS =.*$:FFLAGS=${FFLAGS:- -O2}:" \
-               -e "s:^CXXFLAGS =.*$:CXXFLAGS=${CXXFLAGS}:" \
+               -e "s|^CFLAGS =.*$|CFLAGS=${CFLAGS}|" \
+               -e "s|^FFLAGS =.*$|FFLAGS=${FFLAGS:- -O2}|" \
+               -e "s|^CXXFLAGS =.*$|CXXFLAGS=${CXXFLAGS}|" \
                -i lib/LocalMakefile || die
 }
 
 src_test() {
-       cd src/bin/mpqc/validate || die
-
        # we'll only run the small test set, since the
        # medium and large ones take >10h and >24h on my
        # 1.8Ghz P4M
-       emake -j1 check1
+       emake -C src/bin/mpqc/validate -j1 check1
 }
 
 src_install() {
        emake installroot="${D}" install install_devel install_inc
+       dodoc CHANGES CITATION README
 
        # make extended docs
        if use doc; then
                cd doc || die
                emake all
                doman man/man1/* man/man3/*
-               dodoc -r html/
+               dodoc -r html
        fi
+
+       find "${ED}" -name '*.la' -delete || die
 }
 
 pkg_postinst() {
-       echo
        einfo "MPQC can be picky with regard to compilation flags."
        einfo "If during mpqc runs you have trouble converging or "
        einfo "experience oscillations during SCF interations, "
@@ -101,5 +102,4 @@ pkg_postinst() {
        einfo "Particularly, replacing -march=pentium4 by -march=pentium3"
        einfo "might help if you encounter problems with correlation "
        einfo "consistent basis sets."
-       echo
 }

Reply via email to