The package rpms/nwchem.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/nwchem.git/commit/?id=2bd8633c8c2....
Change:
+ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
Thanks.
Full change:
============
commit 2bd8633c8c2ca9236f487f5d44b64cdafc93a244
Author: Marcin Dulak <marcin.dulak(a)gmail.com>
Date: Thu Mar 26 02:58:56 2020 +0000
New upstream release
diff --git a/.gitignore b/.gitignore
index 7821929..9e918a4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,3 +5,4 @@
/nwchem-6.8.1-release.revision-v6.8-133-ge032219-src.2018-06-14.tar.bz2
/nwchem-6.8.2-release.revision-v6.8-1048-g99494a5e7-src.2019-08-30.tar.bz2
/6b5bd318870c3d6ad9168284bb3455e800383ccf.tar.gz
+/2c9a1c7c69744c8663480767cb018838de54a020.tar.gz
diff --git a/gnum.patch b/gnum.patch
new file mode 100644
index 0000000..3dce3e6
--- /dev/null
+++ b/gnum.patch
@@ -0,0 +1,35 @@
+--- src/config/makefile.h.orig
++++ src/config/makefile.h
+@@ -1003,8 +1003,8 @@ ifeq ($(TARGET),MACX)
+ GNUMAJOR=$(shell $(_FC) -dM -E - < /dev/null 2> /dev/null | grep __GNUC__
|cut -c18-)
+ ifdef GNUMAJOR
+ GNUMINOR=$(shell $(_FC) -dM -E - < /dev/null 2> /dev/null | egrep
__GNUC_MINOR | cut -c24)
+- GNU_GE_4_6 = $(shell [ $(GNUMAJOR) -gt 4 -o \( $(GNUMAJOR) -eq 4 -a $(GNUMINOR)
-ge 6 \) ] && echo true)
+- GNU_GE_4_8 = $(shell [ $(GNUMAJOR) -gt 4 -o \( $(GNUMAJOR) -eq 4 -a $(GNUMINOR)
-ge 8 \) ] && echo true)
++ GNU_GE_4_6 = $(shell [ $(GNUMAJOR) -gt 4 ] || [ $(GNUMAJOR) -eq 4 -a $(GNUMINOR)
-ge 6 ] && echo true)
++ GNU_GE_4_8 = $(shell [ $(GNUMAJOR) -gt 4 ] || [ $(GNUMAJOR) -eq 4 -a $(GNUMINOR)
-ge 8 ] && echo true)
+ GNU_GE_6 = $(shell [ $(GNUMAJOR) -ge 6 ] && echo true)
+ endif
+ ifeq ($(GNU_GE_4_6),true)
+@@ -1354,8 +1354,8 @@ ifeq ($(TARGET),$(findstring $(TARGET),LINUX CYGNUS CYGWIN))
+ GNUMAJOR=$(shell $(_FC) -dM -E - < /dev/null 2> /dev/null | grep __GNUC__
|cut -c18-)
+ ifdef GNUMAJOR
+ GNUMINOR=$(shell $(FC) -dM -E - < /dev/null 2> /dev/null | egrep __VERS
| cut -c24)
+- GNU_GE_4_6 = $(shell [ $(GNUMAJOR) -gt 4 -o \( $(GNUMAJOR) -eq 4 -a
$(GNUMINOR) -ge 6 \) ] && echo true)
+- GNU_GE_4_8 = $(shell [ $(GNUMAJOR) -gt 4 -o \( $(GNUMAJOR) -eq 4 -a
$(GNUMINOR) -ge 8 \) ] && echo true)
++ GNU_GE_4_6 = $(shell [ $(GNUMAJOR) -gt 4 ] || [ $(GNUMAJOR) -eq 4 -a
$(GNUMINOR) -ge 6 ] && echo true)
++ GNU_GE_4_8 = $(shell [ $(GNUMAJOR) -gt 4 ] || [ $(GNUMAJOR) -eq 4 -a
$(GNUMINOR) -ge 8 ] && echo true)
+ GNU_GE_6 = $(shell [ $(GNUMAJOR) -ge 6 ] && echo true)
+ GNU_GE_8 = $(shell [ $(GNUMAJOR) -ge 8 ] && echo true)
+ ifeq ($(GNU_GE_4_6),true)
+@@ -1783,8 +1783,8 @@ endif
+ GNUMAJOR=$(shell $(_FC) -dM -E - < /dev/null 2> /dev/null | grep __GNUC__
|cut -c18-)
+ ifdef GNUMAJOR
+ GNUMINOR=$(shell $(_FC) -dM -E - < /dev/null 2> /dev/null | egrep
__GNUC_MINOR | cut -c24)
+- GNU_GE_4_6 = $(shell [ $(GNUMAJOR) -gt 4 -o \( $(GNUMAJOR) -eq 4 -a $(GNUMINOR)
-ge 6 \) ] && echo true)
+- GNU_GE_4_8 = $(shell [ $(GNUMAJOR) -gt 4 -o \( $(GNUMAJOR) -eq 4 -a $(GNUMINOR)
-ge 8 \) ] && echo true)
++ GNU_GE_4_6 = $(shell [ $(GNUMAJOR) -gt 4 ] || [ $(GNUMAJOR) -eq 4 -a $(GNUMINOR)
-ge 6 ] && echo true)
++ GNU_GE_4_8 = $(shell [ $(GNUMAJOR) -gt 4 ] || [ $(GNUMAJOR) -eq 4 -a $(GNUMINOR)
-ge 8 ] && echo true)
+ endif
+ GNU_GE_6 = $(shell [ $(GNUMAJOR) -ge 6 ] && echo true)
+ GNU_GE_8 = $(shell [ $(GNUMAJOR) -ge 8 ] && echo true)
diff --git a/hydradebug0_qa.patch b/hydradebug0_qa.patch
new file mode 100644
index 0000000..ca2c75c
--- /dev/null
+++ b/hydradebug0_qa.patch
@@ -0,0 +1,23 @@
+--- QA/runtests.mpi.unix.orig
++++ QA/runtests.mpi.unix
+@@ -29,7 +29,7 @@
+
+ # A subdirectory of the current directory named scratchdir is deleted
+ # and remade for each calculation, and deleted at job end.
+-
++export HYDRA_DEBUG=0
+ if [[ -z "${NWCHEM_TARGET}" ]]; then
+ UNAME_S=$(uname -s)
+ if [[ ${UNAME_S} == Linux ]]; then
+@@ -415,7 +415,10 @@ sync
+ # Now verify the output
+
+ echo -n " verifying output ... "
+-
++# get rid of HYDRA_DEBUG confusing output
++ rm -f hydradebugout.txt
++ grep -v proxy:0:0@ ${STUB}.out > hydradebugout.txt
++ mv hydradebugout.txt ${STUB}.out
+ perl $NWPARSE ${STUB}.out >& /dev/null
+ if [ $? -ne 0 ]; then
+ echo nwparse.pl failed on test output ${STUB}.out
diff --git a/mcscf_scalapack.patch b/mcscf_scalapack.patch
new file mode 100644
index 0000000..ce2e479
--- /dev/null
+++ b/mcscf_scalapack.patch
@@ -0,0 +1,38 @@
+--- src/mcscf/mcscf_aux.F.orig 2020-03-06 10:48:12.850070560 -0800
++++ src/mcscf/mcscf_aux.F 2020-03-06 10:19:42.221115159 -0800
+@@ -1196,7 +1196,11 @@
+ $ g_tmp, 1, nclosed, 1, nclosed )
+ call ga_symmetrize( g_tmp )
+ #ifdef PARALLEL_DIAG
++#ifdef SCALAPACK
++ call ga_pdsyev (g_tmp, g_u, eps, 0)
++#else
+ call ga_diag_std( g_tmp, g_u, eps )
++#endif
+ #else
+ call ga_diag_std_seq( g_tmp, g_u, eps )
+ #endif
+@@ -1221,7 +1225,11 @@
+ $ g_tmp, 1, nact, 1, nact )
+ call ga_symmetrize( g_tmp )
+ #ifdef PARALLEL_DIAG
++#ifdef SCALAPACK
++ call ga_pdsyev (g_tmp, g_u, eps(aoff), 0)
++#else
+ call ga_diag_std( g_tmp, g_u, eps(aoff) )
++#endif
+ #else
+ call ga_diag_std_seq( g_tmp, g_u, eps(aoff) )
+ #endif
+@@ -1247,7 +1255,11 @@
+ $ g_tmp, 1, nvir, 1, nvir )
+ call ga_symmetrize( g_tmp )
+ #ifdef PARALLEL_DIAG
++#ifdef SCALAPACK
++ call ga_pdsyev (g_tmp, g_u, eps(aoff), 0)
++#else
+ call ga_diag_std( g_tmp, g_u, eps(aoff) )
++#endif
+ #else
+ call ga_diag_std_seq( g_tmp, g_u, eps(aoff) )
+ #endif
diff --git a/nwchem.spec b/nwchem.spec
index 9307ba1..dea6c84 100644
--- a/nwchem.spec
+++ b/nwchem.spec
@@ -6,27 +6,24 @@
%global upstream_name nwchem
%{?!major_version: %global major_version 7.0.0}
-%{?!git_hash: %global git_hash 6b5bd318870c3d6ad9168284bb3455e800383ccf}
-%{?!ga_version: %global ga_version 5.6.5-3}
+%{?!git_hash: %global git_hash 2c9a1c7c69744c8663480767cb018838de54a020}
+%{?!ga_version: %global ga_version 5.7.2-3}
-%ifarch %ix86
+
+%ifarch %ix86 %arm
%global make64_to_32 0
%global NWCHEM_TARGET LINUX
%else
-# arch is x86_64
%global make64_to_32 1
+# arch is x86_64
%global NWCHEM_TARGET LINUX64
-# nwchem by default assumes that python is installed
-# under lib on a 64 bit machine
-%{?!USE_PYTHON64: %global USE_PYTHON64 1}
%endif
# build with python support
%{?!PYTHON_SUPPORT: %global PYTHON_SUPPORT 1}
-# Global Arrays (part of Nwchem source) is FTBFS on ARM
-#
https://bugzilla.redhat.com/show_bug.cgi?id=964424
-# Openblas-devel is x86 exclusive
-ExclusiveArch: x86_64 %{ix86}
+# ga/nwchem most likely does not support s390x
+#
https://github.com/edoapra/fedpkg/issues/10
+ExclusiveArch: %{ix86} x86_64 %{arm} aarch64 ppc64le
# static (a) or shared (so) libpython.*
%global BLASOPT -L%{_libdir} -lopenblas
@@ -39,13 +36,18 @@ ExclusiveArch: x86_64 %{ix86}
Name: nwchem
Version: %{major_version}
-Release: 3%{?dist}
+Release: 6%{?dist}
Summary: Delivering High-Performance Computational Chemistry to Science
License: ECL 2.0
URL:
http://www.nwchem-sw.org/
# Nwchem changes naming convention of tarballs very often!
Source0:
https://github.com/nwchemgit/nwchem/archive/%{git_hash}.tar.gz
+Patch0: pspw_scalapack.patch
+Patch1: mcscf_scalapack.patch
+Patch2: gnum.patch
+Patch3: solvation_ppc64le.patch
+Patch4: hydradebug0_qa.patch
#
https://fedoraproject.org/wiki/Packaging:Guidelines#Compiler_flags
# One needs to patch gfortran/gcc makefiles in order to use
@@ -70,24 +72,19 @@ BuildRequires: gcc-gfortran
BuildRequires: openblas-devel
-%if 0%{?el6}
-BuildRequires: net-tools
-%else
BuildRequires: hostname
-%endif
-BuildRequires: ncurses-devel
+
%if 0%{?fedora}
BuildRequires: perl-interpreter
%else
BuildRequires: perl
%endif
-BuildRequires: readline-devel
-BuildRequires: zlib-devel
+%if 0%{?fedora} >= 33
+BuildRequires: perl-File-Basename
+%endif
BuildRequires: openssh-clients
-BuildRequires: libibverbs-devel
-
Requires: openssh-clients
Requires: %{name}-common = %{version}-%{release}
@@ -121,7 +118,7 @@ BuildRequires: openmpi-devel
BuildRequires: ga-openmpi-devel >= %{ga_version}
Requires: %{name}-common = %{version}-%{release}
Requires: openmpi
-%if 0%{?el7} || 0%{?el6}
+%if 0%{?el7}
Requires: ga-openmpi
%endif
@@ -138,7 +135,7 @@ BuildRequires: mpich-devel
BuildRequires: ga-mpich-devel >= %{ga_version}
Requires: %{name}-common = %{version}-%{release}
Requires: mpich
-%if 0%{?el7} || 0%{?el6}
+%if 0%{?el7}
Requires: ga-mpich
%endif
@@ -159,9 +156,14 @@ BuildArch: noarch
This package contains the data files.
-
%prep
%setup -q -n %{name}-%{git_hash}
+%patch0 -p0
+%patch1 -p0
+%patch2 -p0
+%patch3 -p0
+%patch4 -p0
+
# remove bundling of BLAS/LAPACK
rm -rf src/blas src/lapack
@@ -244,22 +246,14 @@ echo export USE_MPI=y >> ../compile$MPI_SUFFIX.sh&& \
echo export USE_MPIF=y >> ../compile$MPI_SUFFIX.sh&& \
echo export USE_MPIF4=y >> ../compile$MPI_SUFFIX.sh&& \
echo export MPIEXEC=$MPI_BIN/mpiexec >> ../compile$MPI_SUFFIX.sh&& \
-echo export MPI_LIB=$MPI_LIB >> ../compile$MPI_SUFFIX.sh&& \
-echo export MPI_INCLUDE=$MPI_INCLUDE >> ../compile$MPI_SUFFIX.sh&& \
echo export LD_LIBRARY_PATH=$MPI_LIB >> ../compile$MPI_SUFFIX.sh&& \
echo export EXTERNAL_GA_PATH=$MPI_HOME >> ../compile$MPI_SUFFIX.sh&& \
-if [ "$MPI_SUFFIX" == "_openmpi" ] && [ -r
"$MPI_LIB/libmpi_f90.so" ]; then echo export LIBMPI="'-lmpi -lmpi_f90
-lmpi_f77'" >> ../compile$MPI_SUFFIX.sh; fi&& \
-if [ "$MPI_SUFFIX" == "_openmpi" ] && [ -r
"$MPI_LIB/libmpi_mpifh.so" ] && [ ! -r
"$MPI_LIB/libmpi_usempif08.so" ]; then echo export LIBMPI="'-lmpi
-lmpi_usempi -lmpi_mpifh'" >> ../compile$MPI_SUFFIX.sh; fi&& \
-if [ "$MPI_SUFFIX" == "_openmpi" ] && [ -r
"$MPI_LIB/libmpi_mpifh.so" ] && [ -r
"$MPI_LIB/libmpi_usempif08.so" ]; then echo export LIBMPI="'-lmpi
-lmpi_usempif08 -lmpi_mpifh'" >> ../compile$MPI_SUFFIX.sh; fi&& \
-if [ "$MPI_SUFFIX" == "_mpich2" ]; then echo export
LIBMPI='-lmpich' >> ../compile$MPI_SUFFIX.sh; fi&& \
-if [ "$MPI_SUFFIX" == "_mpich" ] && [ -r
"$MPI_LIB/libmpifort.so" ]; then echo export LIBMPI="'-lmpich
-lmpifort'" >> ../compile$MPI_SUFFIX.sh; fi&& \
-if [ "$MPI_SUFFIX" == "_mpich" ] && [ ! -r
"$MPI_LIB/libmpifort.so" ]; then echo export LIBMPI='-lmpich' >>
../compile$MPI_SUFFIX.sh; fi&& \
cat ../make.sh >> ../compile$MPI_SUFFIX.sh&& \
%{__sed} -i "s|.log|$MPI_SUFFIX.log|g" ../compile$MPI_SUFFIX.sh&& \
cat ../compile$MPI_SUFFIX.sh&& \
sh ../compile$MPI_SUFFIX.sh&& \
mv ../bin/%{NWCHEM_TARGET}/%{name} ../bin/%{NWCHEM_TARGET}/%{name}$MPI_SUFFIX&&
\
-NWCHEM_TARGET=%{NWCHEM_TARGET} %{__make} clean&& \
+NWCHEM_TARGET=%{NWCHEM_TARGET} %{__make} USE_INTERNALBLAS=1 clean&& \
cd ..
# build openmpi version
@@ -267,6 +261,7 @@ cp -rp src.orig src
%{_openmpi_load}
%dobuild
%{_openmpi_unload}
+
rm -rf src
cp -rp src.orig src
@@ -274,6 +269,7 @@ cp -rp src.orig src
%{_mpich_load}
%dobuild
%{_mpich_unload}
+
# leave last src build for debuginfo
rm -f make.sh settings.sh
@@ -421,11 +417,7 @@ echo './runtests.mpi.unix procs $np h2o-response' >>
QA.orig/doafewqmtests.mpi
export NPROC=2 # test on 2 cores
-%if 0%{?el6}
-export TIMEOUT_OPTS='1800'
-%else
export TIMEOUT_OPTS='--preserve-status --kill-after 10 1800'
-%endif
# To avoid replicated code define a macro
%global docheck() \
@@ -443,15 +435,20 @@ rm -rf QA
# check openmpi version
%{_openmpi_load}
+export OMPI_MCA_btl=^uct
+export OMPI_MCA_btl_base_warn_component_unused=0
%docheck
%{_openmpi_unload}
# this will fail for mpich2 on el6 - mpd would need to be started ...
# check mpich version
+
%{_mpich_load}
+export HYDRA_DEBUG=0
%docheck
%{_mpich_unload}
+
# restore QA
mv QA.orig QA
@@ -475,6 +472,25 @@ mv QA.orig QA
%changelog
+* Sun Mar 22 2020 Edoardo Apr <edoardo.apra(a)gmail.com> - 7.0.0-6
+- fix to get rid of HYDRA_DEBUG on mpich
+- drop rhel6 support
+
+* Wed Mar 18 2020 Edoardo Apr <edoardo.apra(a)gmail.com> - 7.0.0-5
+- switch to ga 5.7-2.3
+- enabled arm, aarch64 and ppc64le architectures
+- removed libibverbs-devel, ncurses-devel, zlib-devel and readline-devel
+- perl-File-Basename rpm needed on fedora 33
+- 32bit build needed for arm
+- added patch to fix solvation failures on ppc64le
+
+* Fri Mar 06 2020 Edoardo Apr <edoardo.apra(a)gmail.com> - 7.0.0-4
+- work-around for openmpi 4.0.1 segfault
+- skip tests for rhel6 mpich
+- fix for pspw when peigs is not available and scalapack is
+- fix for mcscf when peigs is not available and scalapack is
+- Using tarball from 7.0.0 official release
+
* Wed Jan 29 2020 Fedora Release Engineering <releng(a)fedoraproject.org> - 7.0.0-3
- Rebuilt for
https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
diff --git a/pspw_scalapack.patch b/pspw_scalapack.patch
new file mode 100644
index 0000000..1e3e1e2
--- /dev/null
+++ b/pspw_scalapack.patch
@@ -0,0 +1,11 @@
+--- src/nwpw/pspw/lcao/lcao_wvfnc.F.orig
++++ src/nwpw/pspw/lcao/lcao_wvfnc.F
+@@ -333,7 +333,7 @@ c call lcao_diis_init(5,ispin,nbasis)
+ > hmatrix(ms))
+
+ * **** diagonalize spin hamiltonian ****
+-#if defined(PARALLEL_DIAG)
++#if defined(PARALLEL_DIAG) & !defined(SCALAPACK)
+ call ga_diag(
+ > hmatrix(ms),
+ > smatrix,
diff --git a/solvation_ppc64le.patch b/solvation_ppc64le.patch
new file mode 100644
index 0000000..0062c7b
--- /dev/null
+++ b/solvation_ppc64le.patch
@@ -0,0 +1,36 @@
+--- src/config/makefile.h.orig
++++ src/config/makefile.h
+@@ -1794,7 +1794,12 @@ endif
+ DEFINES += -DGCC46
+ endif
+ ifeq ($(GNU_GE_4_8),true)
+- FDEBUG =-O2 -g -fno-aggressive-loop-optimizations
++ ifeq ($(_CPU),ppc64le)
++ FDEBUG =-O0 -g
++ else
++ FDEBUG =-O2 -g
++ endif
++ FDEBUG +=-fno-aggressive-loop-optimizations
+ FOPTIMIZE +=-fno-aggressive-loop-optimizations
+ FFLAGS_FORGA += -fno-aggressive-loop-optimizations
+ FOPTIONS += -Warray-bounds
+--- src/solvation/GNUmakefile.orig
++++ src/solvation/GNUmakefile
+@@ -6,14 +6,14 @@
+ mnsol.o\
+ solv_data.o\
+ cosmo_smd_output.o\
+- cosmo_vem_output.o
++ cosmo_vem_output.o hnd_cosmo_lib.o
+
+ OBJ_OPTIMIZE = cosmo_input.o \
+ cosmo_initialize.o\
+ cosmo_tidy.o\
+ cosmo_def_radii.o\
+ cosmo_charges.o\
+- hnd_cosmo_lib.o grad_hnd_cos.o
++ grad_hnd_cos.o
+
+ LIBRARY = libsolvation.a
+
+
diff --git a/sources b/sources
index 5f73f29..69f8753 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (6b5bd318870c3d6ad9168284bb3455e800383ccf.tar.gz) =
b5428a1d7c655b17a13bf08c11e13019e70e7d027e4f5b6326f89171823f01a6bcd07a22b987c0ae7d25fb9f6a9138238c6ece1da3baa31d7584aef48544a978
+SHA512 (2c9a1c7c69744c8663480767cb018838de54a020.tar.gz) =
4355cbce56af4dd65dd4516e097ddd3c4079e40928f0f6b1b995ce0bc4c6eaa3f9e91bd8a076d34b70b1ebf966fd6d60d4f20c1ebb8f8c51fbba04a397269ed0