The package rpms/cp2k.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/cp2k.git/commit/?id=0f865672d67ee....
Change:
-%ifnarch armv7hl s390x
Thanks.
Full change:
============
commit 0f865672d67ee9b2264bcab485088afef4033703
Author: Dominik 'Rathann' Mierzejewski <dominik(a)greysector.net>
Date: Mon Jan 15 00:27:12 2018 +0100
update to 5.1
conditionalize testing and disable by default as they take too long
test all flavors, not just OpenMPI ssmp
diff --git a/.gitignore b/.gitignore
index 05bf8bf..467fbf2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,3 +17,4 @@
/cp2k-2.7.0-20150911.tar.xz
/cp2k-3.0.tar.bz2
/cp2k-4.1.tar.bz2
+/cp2k-5.1.tar.bz2
diff --git a/cp2k-r17483.patch b/cp2k-r17483.patch
deleted file mode 100644
index a5ca3b1..0000000
--- a/cp2k-r17483.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-Index: src/pw_env_methods.F
-===================================================================
---- src/pw_env_methods.F (revision 17463)
-+++ src/pw_env_methods.F (revision 17483)
-@@ -172,9 +172,8 @@
- TYPE(cp_logger_type), POINTER :: logger
- TYPE(cp_para_env_type), POINTER :: para_env
- TYPE(dft_control_type), POINTER :: dft_control
-- TYPE(pw_grid_type), POINTER :: dct_pw_grid,
mt_super_ref_grid, &
-- old_pw_grid, pw_grid,
super_ref_grid, &
-- vdw_grid, xc_super_ref_grid
-+ TYPE(pw_grid_type), POINTER :: dct_pw_grid, mt_super_ref_grid, old_pw_grid,
pw_grid, &
-+ super_ref_grid, vdw_grid, vdw_ref_grid, xc_super_ref_grid
- TYPE(pw_poisson_parameter_type) :: poisson_params
- TYPE(pw_pool_p_type), DIMENSION(:), POINTER :: pw_pools
- TYPE(qs_dispersion_type), POINTER :: dispersion_env
-@@ -190,7 +189,7 @@
-
- ! a very small safety factor might be needed for roundoff issues
- ! e.g. radius being computed here as 12.998 (13) and 13.002 (14) during the collocation
--! te latter can happen due to the lower precision in the computation of the radius in
collocate
-+ ! the latter can happen due to the lower precision in the computation of the
radius in collocate
- ! parallel cost of rs_pw_transfer goes as safety_factor**3 so it is worthwhile keeping
it tight
- ! Edit: Safety Factor was unused
-
-@@ -202,7 +201,7 @@
- !
- !
- NULLIFY (cutoff, cell, pw_grid, old_pw_grid, dft_control, qs_kind_set, &
-- pw_pools, rho0_mpole, rs_descs, para_env, cell_ref, &
-+ pw_pools, rho0_mpole, rs_descs, para_env, cell_ref, vdw_ref_grid, &
- mt_super_ref_grid, input, poisson_section, xc_super_ref_grid, &
- dct_pw_grid, vdw_grid, super_ref_grid, my_cell, rs_grids,
dispersion_env)
-
-@@ -274,8 +273,7 @@
- END IF
- rel_cutoff = dft_control%qs_control%relative_cutoff
- cutoff => dft_control%qs_control%e_cutoff
-- CALL section_vals_val_get(input, "DFT%XC%XC_GRID%USE_FINER_GRID", &
-- l_val=uf_grid)
-+ CALL section_vals_val_get(input, "DFT%XC%XC_GRID%USE_FINER_GRID",
l_val=uf_grid)
- ngrid_level = SIZE(cutoff)
-
- ! init gridlevel_info XXXXXXXXX setup mapping to the effective cutoff ?
-@@ -314,12 +312,12 @@
- qs_env%input, ncommensurate, uf_grid=uf_grid, &
- print_section=print_section)
- old_pw_grid => super_ref_grid
-+ IF(.NOT.ASSOCIATED(mt_super_ref_grid)) vdw_ref_grid => super_ref_grid
- !
- ! Setup of the multi-grid pw_grid and pw_pools
- !
- logger => cp_get_default_logger()
-- iounit = cp_print_key_unit_nr(logger, print_section, '', &
-- extension='.Log')
-+ iounit = cp_print_key_unit_nr(logger, print_section, '',
extension='.Log')
-
- IF (dft_control%qs_control%pw_grid_opt%spherical) THEN
- grid_span = HALFSPACE
-@@ -469,6 +467,7 @@
- END IF
- IF (set_vdw_pool) THEN
- CPASSERT(ASSOCIATED(old_pw_grid))
-+ IF (.NOT. ASSOCIATED(vdw_ref_grid)) vdw_ref_grid => old_pw_grid
- CALL pw_grid_create(vdw_grid, para_env%group)
- CALL pw_grid_setup(my_cell%hmat, vdw_grid, grid_span=grid_span, &
- cutoff=dispersion_env%pw_cutoff, &
-@@ -476,7 +475,7 @@
- !deb ncommensurate=ncommensurate,
icommensurate=0, &
- ncommensurate=0, icommensurate=0, &
- blocked=do_pw_grid_blocked_false, &
-- ref_grid=old_pw_grid, &
-+ ref_grid=vdw_ref_grid, &
- rs_dims=distribution_layout, &
- iounit=iounit)
- CALL pw_pool_create(pw_env%vdw_pw_pool, pw_grid=vdw_grid)
-Index: tests/QS/regtest-dft-vdw-corr-3/TEST_FILES
-===================================================================
---- tests/QS/regtest-dft-vdw-corr-3/TEST_FILES (revision 17463)
-+++ tests/QS/regtest-dft-vdw-corr-3/TEST_FILES (revision 17483)
-@@ -7,6 +7,7 @@
- argon11.inp 1 3e-13
-84.678371368807177
- argon12.inp 1 1e-12
-84.678431119713949
- argon13.inp 1 1e-06
-84.820114391201898
-+argon14.inp 1 1e-12
-84.699433161863368
- # beef functional
- argon-beef.inp 1 4e-13 -42.46387625350550
- # BJ
-Index: tests/QS/regtest-dft-vdw-corr-3/argon14.inp
-===================================================================
---- tests/QS/regtest-dft-vdw-corr-3/argon14.inp (nonexistent)
-+++ tests/QS/regtest-dft-vdw-corr-3/argon14.inp (revision 17483)
-@@ -0,0 +1,61 @@
-+&GLOBAL
-+ PROJECT argon
-+ RUN_TYPE ENERGY
-+ PRINT_LEVEL LOW
-+&END GLOBAL
-+&FORCE_EVAL
-+ METHOD QS
-+ STRESS_TENSOR ANALYTICAL
-+ &DFT
-+ BASIS_SET_FILE_NAME BASIS_MOLOPT
-+ POTENTIAL_FILE_NAME POTENTIAL
-+ &MGRID
-+ CUTOFF 180
-+ &END MGRID
-+ &QS
-+ METHOD GPW
-+ &END QS
-+ &SCF
-+ SCF_GUESS ATOMIC
-+ MAX_SCF 2
-+ EPS_SCF 1.0e-4
-+ &END SCF
-+ &XC
-+ &XC_GRID
-+ USE_FINER_GRID
-+ &END XC_GRID
-+ &XC_FUNCTIONAL
-+ &LIBXC
-+ FUNCTIONAL XC_GGA_X_RPW86 XC_GGA_C_PBE
-+ &END LIBXC
-+ &END XC_FUNCTIONAL
-+ &vdW_POTENTIAL
-+ DISPERSION_FUNCTIONAL NON_LOCAL
-+ &NON_LOCAL
-+ TYPE RVV10
-+ PARAMETERS 6.3 0.0093
-+ VERBOSE_OUTPUT
-+ KERNEL_FILE_NAME rVV10_kernel_table.dat
-+ CUTOFF 80
-+ &END NON_LOCAL
-+ &END vdW_POTENTIAL
-+ &END XC
-+ &END DFT
-+ &SUBSYS
-+ &CELL
-+ ABC 5.31 5.31 5.31
-+ ALPHA_BETA_GAMMA 90 90 90
-+ &END CELL
-+ &COORD
-+ SCALED .TRUE.
-+ Ar 0.1 0.0 0.0
-+ Ar 0.5 0.5 0.0
-+ Ar 0.5 0.0 0.5
-+ Ar 0.0 0.5 0.5
-+ &END COORD
-+ &KIND Ar
-+ BASIS_SET DZVP-MOLOPT-SR-GTH-q8
-+ POTENTIAL GTH-PADE-q8
-+ &END
-+ &END SUBSYS
-+&END FORCE_EVAL
diff --git a/cp2k-r17748.patch b/cp2k-r17748.patch
deleted file mode 100644
index c6049a4..0000000
--- a/cp2k-r17748.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-Index: src/force_fields_input.F
-===================================================================
---- src/force_fields_input.F (revision 17501)
-+++ src/force_fields_input.F (revision 17748)
-@@ -1187,7 +1187,8 @@
- CALL uppercase(nonbonded%pot(start+isec)%pot%at2)
- ! Parse the genpot info
- CALL get_generic_info(section, "FUNCTION",
nonbonded%pot(start+isec)%pot%set(1)%gp%potential, &
-- nonbonded%pot(start+isec)%pot%set(1)%gp%parameters,
nonbonded%pot(start+isec)%pot%set(1)%gp%values, &
-+ nonbonded%pot(start+isec)%pot%set(1)%gp%parameters,
&
-+ nonbonded%pot(start+isec)%pot%set(1)%gp%values, &
- size_variables=1, i_rep_sec=isec)
- nonbonded%pot(start+isec)%pot%set(1)%gp%variables =
nonbonded%pot(start+isec)%pot%set(1)%gp%parameters(1)
- !
-@@ -1233,19 +1234,32 @@
- CALL uppercase(nonbonded%pot(start+isec)%pot%at1)
- CALL uppercase(nonbonded%pot(start+isec)%pot%at2)
-
-- CALL section_vals_val_get(tersoff_section, "A",
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%A)
-- CALL section_vals_val_get(tersoff_section, "B",
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%B)
-- CALL section_vals_val_get(tersoff_section, "lambda1",
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%lambda1)
-- CALL section_vals_val_get(tersoff_section, "lambda2",
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%lambda2)
-- CALL section_vals_val_get(tersoff_section, "alpha",
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%alpha)
-- CALL section_vals_val_get(tersoff_section, "beta",
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%beta)
-- CALL section_vals_val_get(tersoff_section, "n",
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%n)
-- CALL section_vals_val_get(tersoff_section, "c",
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%c)
-- CALL section_vals_val_get(tersoff_section, "d",
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%d)
-- CALL section_vals_val_get(tersoff_section, "h",
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%h)
-- CALL section_vals_val_get(tersoff_section, "lambda3",
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%lambda3)
-- CALL section_vals_val_get(tersoff_section, "bigR",
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%bigR)
-- CALL section_vals_val_get(tersoff_section, "bigD",
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%bigD)
-+ CALL section_vals_val_get(tersoff_section, "A", i_rep_section=isec,
&
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%A)
-+ CALL section_vals_val_get(tersoff_section, "B", i_rep_section=isec,
&
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%B)
-+ CALL section_vals_val_get(tersoff_section, "lambda1",
i_rep_section=isec, &
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%lambda1)
-+ CALL section_vals_val_get(tersoff_section, "lambda2",
i_rep_section=isec, &
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%lambda2)
-+ CALL section_vals_val_get(tersoff_section, "alpha",
i_rep_section=isec, &
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%alpha)
-+ CALL section_vals_val_get(tersoff_section, "beta",
i_rep_section=isec, &
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%beta)
-+ CALL section_vals_val_get(tersoff_section, "n", i_rep_section=isec,
&
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%n)
-+ CALL section_vals_val_get(tersoff_section, "c", i_rep_section=isec,
&
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%c)
-+ CALL section_vals_val_get(tersoff_section, "d", i_rep_section=isec,
&
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%d)
-+ CALL section_vals_val_get(tersoff_section, "h", i_rep_section=isec,
&
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%h)
-+ CALL section_vals_val_get(tersoff_section, "lambda3",
i_rep_section=isec, &
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%lambda3)
-+ CALL section_vals_val_get(tersoff_section, "bigR",
i_rep_section=isec, &
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%bigR)
-+ CALL section_vals_val_get(tersoff_section, "bigD",
i_rep_section=isec, &
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%tersoff%bigD)
-
- rcutsq = (nonbonded%pot(start+isec)%pot%set(1)%tersoff%bigR+ &
- nonbonded%pot(start+isec)%pot%set(1)%tersoff%bigD)**2
-@@ -1253,9 +1267,9 @@
- nonbonded%pot(start+isec)%pot%rcutsq = rcutsq
-
- ! In case it is defined override the standard specification of RCUT
-- CALL section_vals_val_get(tersoff_section, "RCUT", n_rep_val=n_rep)
-+ CALL section_vals_val_get(tersoff_section, "RCUT",
i_rep_section=isec, n_rep_val=n_rep)
- IF (n_rep == 1) THEN
-- CALL section_vals_val_get(tersoff_section, "RCUT", r_val=rcut)
-+ CALL section_vals_val_get(tersoff_section, "RCUT",
i_rep_section=isec, r_val=rcut)
- nonbonded%pot(start+isec)%pot%rcutsq = rcut**2
- END IF
- END DO
-@@ -1294,22 +1308,27 @@
- CALL uppercase(nonbonded%pot(start+isec)%pot%at1)
- CALL uppercase(nonbonded%pot(start+isec)%pot%at2)
-
-- CALL section_vals_val_get(siepmann_section, "B",
r_val=nonbonded%pot(start+isec)%pot%set(1)%siepmann%B)
-- CALL section_vals_val_get(siepmann_section, "D",
r_val=nonbonded%pot(start+isec)%pot%set(1)%siepmann%D)
-- CALL section_vals_val_get(siepmann_section, "E",
r_val=nonbonded%pot(start+isec)%pot%set(1)%siepmann%E)
-- CALL section_vals_val_get(siepmann_section, "F",
r_val=nonbonded%pot(start+isec)%pot%set(1)%siepmann%F)
-- CALL section_vals_val_get(siepmann_section, "beta",
r_val=nonbonded%pot(start+isec)%pot%set(1)%siepmann%beta)
-- CALL section_vals_val_get(siepmann_section, "ALLOW_OH_FORMATION",
&
-+ CALL section_vals_val_get(siepmann_section, "B", i_rep_section=isec,
&
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%siepmann%B)
-+ CALL section_vals_val_get(siepmann_section, "D", i_rep_section=isec,
&
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%siepmann%D)
-+ CALL section_vals_val_get(siepmann_section, "E", i_rep_section=isec,
&
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%siepmann%E)
-+ CALL section_vals_val_get(siepmann_section, "F", i_rep_section=isec,
&
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%siepmann%F)
-+ CALL section_vals_val_get(siepmann_section, "beta",
i_rep_section=isec, &
-+
r_val=nonbonded%pot(start+isec)%pot%set(1)%siepmann%beta)
-+ CALL section_vals_val_get(siepmann_section, "ALLOW_OH_FORMATION",
i_rep_section=isec, &
-
l_val=nonbonded%pot(start+isec)%pot%set(1)%siepmann%allow_oh_formation)
-- CALL section_vals_val_get(siepmann_section, "ALLOW_H3O_FORMATION",
&
-+ CALL section_vals_val_get(siepmann_section, "ALLOW_H3O_FORMATION",
i_rep_section=isec, &
-
l_val=nonbonded%pot(start+isec)%pot%set(1)%siepmann%allow_h3o_formation)
-- CALL section_vals_val_get(siepmann_section, "ALLOW_O_FORMATION",
&
-+ CALL section_vals_val_get(siepmann_section, "ALLOW_O_FORMATION",
i_rep_section=isec, &
-
l_val=nonbonded%pot(start+isec)%pot%set(1)%siepmann%allow_o_formation)
-
- ! ! In case it is defined override the standard specification of RCUT
-- CALL section_vals_val_get(siepmann_section, "RCUT", n_rep_val=n_rep)
-+ CALL section_vals_val_get(siepmann_section, "RCUT",
i_rep_section=isec, n_rep_val=n_rep)
- IF (n_rep == 1) THEN
-- CALL section_vals_val_get(siepmann_section, "RCUT", r_val=rcut)
-+ CALL section_vals_val_get(siepmann_section, "RCUT",
i_rep_section=isec, r_val=rcut)
- nonbonded%pot(start+isec)%pot%rcutsq = rcut**2
- nonbonded%pot(start+isec)%pot%set(1)%siepmann%rcutsq = rcut**2
- END IF
diff --git a/cp2k-rpm.patch b/cp2k-rpm.patch
index b4598a7..4e9ef0d 100644
--- a/cp2k-rpm.patch
+++ b/cp2k-rpm.patch
@@ -1,8 +1,8 @@
-diff -up cp2k-4.1/arch/Linux-x86-64-gfortran.popt.r
cp2k-4.1/arch/Linux-x86-64-gfortran.popt
---- cp2k-4.1/arch/Linux-x86-64-gfortran.popt.r 2016-07-07 10:30:49.492206000 +0200
-+++ cp2k-4.1/arch/Linux-x86-64-gfortran.popt 2017-06-18 22:49:07.280728741 +0200
+diff -up cp2k-5.1/arch/Linux-x86-64-gfortran.popt.r
cp2k-5.1/arch/Linux-x86-64-gfortran.popt
+--- cp2k-5.1/arch/Linux-x86-64-gfortran.popt.r 2017-09-27 15:13:11.000000000 +0200
++++ cp2k-5.1/arch/Linux-x86-64-gfortran.popt 2017-11-07 00:49:00.319242156 +0100
@@ -1,8 +1,9 @@
- # Tested with: GFortran 4.9.2, MPICH 3.1, LAPACK 3.5.0, ScaLAPACK 2.0.2
+ # Tested with: GFortran 6.4, MPICH 3.2, LAPACK 3.5.0, ScaLAPACK 2.0.2
CC = gcc
CPP =
-FC = mpif90
@@ -11,25 +11,26 @@ diff -up cp2k-4.1/arch/Linux-x86-64-gfortran.popt.r
cp2k-4.1/arch/Linux-x86-64-g
+LD = mpifort
+LD_SHARED = mpifort -shared
AR = ar -r
- ACML_INC = $(ACMLPATH)/include
- ACML_LIB = $(ACMLPATH)/lib
-@@ -13,18 +14,24 @@ LIBINT_LIB = $(GCC_DIR)/libint/1.1.4-LAR
- LIBXC_INC = $(GCC_DIR)/libxc/2.2.2-gnu/include
- LIBXC_LIB = $(GCC_DIR)/libxc/2.2.2-gnu/lib64
- DFLAGS = -D__FFTW3 -D__LIBINT -D__LIBXC2 -D__MPI_VERSION=3\
+ FFTW_INC = $(GCC_DIR)/fftw/3.3-gnu/include
+ FFTW_LIB = $(GCC_DIR)/fftw/3.3-gnu/lib64
+@@ -11,19 +12,25 @@ LIBINT_LIB = $(GCC_DIR)/libint/1.1.4-LAR
+ LIBXC_INC = $(GCC_DIR)/libxc/3.0.0-gnu/include
+ LIBXC_LIB = $(GCC_DIR)/libxc/3.0.0-gnu/lib64
+ DFLAGS = -D__FFTW3 -D__LIBINT -D__LIBXC -D__MPI_VERSION=3\
- -D__LIBINT_MAX_AM=7 -D__LIBDERIV_MAX_AM1=6 -D__MAX_CONTR=4\
-- -D__parallel -D__SCALAPACK
+ -D__LIBINT_MAX_AM=@LIBINT_MAX_AM@ -D__LIBDERIV_MAX_AM1=@LIBDERIV_MAX_AM@
-D__MAX_CONTR=4\
-+ -D__parallel -D__SCALAPACK -D__SCALAPACK2 -D__ELPA3 -D__MPI_VERSION=3
@LIBSMM_DEFS@
++ -D__SCALAPACK2 -D__ELPA=201705 @LIBSMM_DEFS@ -D__HAS_IEEE_EXCEPTIONS\
+ -D__parallel -D__SCALAPACK
CPPFLAGS =
-FCFLAGS = $(DFLAGS) -O2 -ffast-math -ffree-form -ffree-line-length-none\
+OPTFLAGS = -O2 -ffast-math\
-ftree-vectorize -funroll-loops\
-mtune=native\
- -I$(ACML_INC) -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC)
--LDFLAGS = $(FCFLAGS) -static-libgfortran
+ -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC)
+-LDFLAGS = $(FCFLAGS) -static
-LIBS = $(MPI_LIBRARY_PATH)/libscalapack-gnu.a\
-- $(ACML_LIB)/libacml.a\
+- $(LIBPATH)/liblapack-gnu.a\
+- $(LIBPATH)/libblas-gnu.a\
- $(FFTW_LIB)/libfftw3.a\
- $(LIBXC_LIB)/libxcf90.a\
- $(LIBXC_LIB)/libxc.a\
@@ -49,11 +50,11 @@ diff -up cp2k-4.1/arch/Linux-x86-64-gfortran.popt.r
cp2k-4.1/arch/Linux-x86-64-g
+ -lderiv\
+ -lint
+DATA_DIR = /usr/share/cp2k
-diff -up cp2k-4.1/arch/Linux-x86-64-gfortran.psmp.r
cp2k-4.1/arch/Linux-x86-64-gfortran.psmp
---- cp2k-4.1/arch/Linux-x86-64-gfortran.psmp.r 2016-07-07 10:30:49.492206000 +0200
-+++ cp2k-4.1/arch/Linux-x86-64-gfortran.psmp 2017-06-18 22:49:04.357730822 +0200
+diff -up cp2k-5.1/arch/Linux-x86-64-gfortran.psmp.r
cp2k-5.1/arch/Linux-x86-64-gfortran.psmp
+--- cp2k-5.1/arch/Linux-x86-64-gfortran.psmp.r 2017-09-27 15:13:11.000000000 +0200
++++ cp2k-5.1/arch/Linux-x86-64-gfortran.psmp 2017-11-07 00:49:05.379294401 +0100
@@ -1,8 +1,9 @@
- # Tested with: GFortran 4.9.2, MPICH 3.1, LAPACK 3.5.0, ScaLAPACK 2.0.2
+ # Tested with: GFortran 6.4, MPICH 3.2, LAPACK 3.5.0, ScaLAPACK 2.0.2
CC = gcc
CPP =
-FC = mpif90
@@ -62,25 +63,26 @@ diff -up cp2k-4.1/arch/Linux-x86-64-gfortran.psmp.r
cp2k-4.1/arch/Linux-x86-64-g
+LD = mpifort
+LD_SHARED = mpifort -shared
AR = ar -r
- ACML_INC = $(ACMLPATH)/include
- ACML_LIB = $(ACMLPATH)/lib
-@@ -13,19 +14,25 @@ LIBINT_LIB = $(GCC_DIR)/libint/1.1.4-LAR
- LIBXC_INC = $(GCC_DIR)/libxc/2.2.2-gnu/include
- LIBXC_LIB = $(GCC_DIR)/libxc/2.2.2-gnu/lib64
- DFLAGS = -D__FFTW3 -D__LIBINT -D__LIBXC2 -D__MPI_VERSION=3\
+ FFTW_INC = $(GCC_DIR)/fftw/3.3-gnu/include
+ FFTW_LIB = $(GCC_DIR)/fftw/3.3-gnu/lib64
+@@ -11,20 +12,26 @@ LIBINT_LIB = $(GCC_DIR)/libint/1.1.4-LAR
+ LIBXC_INC = $(GCC_DIR)/libxc/3.0.0-gnu/include
+ LIBXC_LIB = $(GCC_DIR)/libxc/3.0.0-gnu/lib64
+ DFLAGS = -D__FFTW3 -D__LIBINT -D__LIBXC -D__MPI_VERSION=3\
- -D__LIBINT_MAX_AM=7 -D__LIBDERIV_MAX_AM1=6 -D__MAX_CONTR=4\
-- -D__parallel -D__SCALAPACK
+ -D__LIBINT_MAX_AM=@LIBINT_MAX_AM@ -D__LIBDERIV_MAX_AM1=@LIBDERIV_MAX_AM@
-D__MAX_CONTR=4\
-+ -D__parallel -D__SCALAPACK -D__SCALAPACK2 -D__ELPA3 -D__MPI_VERSION=3
@LIBSMM_DEFS@
++ -D__SCALAPACK2 -D__ELPA=201705 @LIBSMM_DEFS@ -D__HAS_IEEE_EXCEPTIONS\
+ -D__parallel -D__SCALAPACK
CPPFLAGS =
-FCFLAGS = $(DFLAGS) -O2 -ffast-math -ffree-form -ffree-line-length-none\
+OPTFLAGS = -O2 -ffast-math -ftree-vectorize -funroll-loops\
-fopenmp -ftree-vectorize -funroll-loops\
-mtune=native\
- -I$(ACML_INC) -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC)
--LDFLAGS = $(FCFLAGS) -static-libgfortran
+ -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC)
+-LDFLAGS = $(FCFLAGS) -static
-LIBS = $(MPI_LIBRARY_PATH)/libscalapack-gnu.a\
-- $(ACML_LIB)/libacml.a\
+- $(LIBPATH)/liblapack-gnu.a\
+- $(LIBPATH)/libblas-gnu.a\
- $(FFTW_LIB)/libfftw3.a\
- $(FFTW_LIB)/libfftw3_threads.a\
- $(LIBXC_LIB)/libxcf90.a\
@@ -102,36 +104,39 @@ diff -up cp2k-4.1/arch/Linux-x86-64-gfortran.psmp.r
cp2k-4.1/arch/Linux-x86-64-g
+ -lderiv\
+ -lint
+DATA_DIR = /usr/share/cp2k
-diff -up cp2k-4.1/arch/Linux-x86-64-gfortran.sopt.r
cp2k-4.1/arch/Linux-x86-64-gfortran.sopt
---- cp2k-4.1/arch/Linux-x86-64-gfortran.sopt.r 2016-07-07 10:30:49.492206000 +0200
-+++ cp2k-4.1/arch/Linux-x86-64-gfortran.sopt 2017-06-18 22:49:17.297721605 +0200
+diff -up cp2k-5.1/arch/Linux-x86-64-gfortran.sopt.r
cp2k-5.1/arch/Linux-x86-64-gfortran.sopt
+--- cp2k-5.1/arch/Linux-x86-64-gfortran.sopt.r 2017-09-28 12:20:29.000000000 +0200
++++ cp2k-5.1/arch/Linux-x86-64-gfortran.sopt 2017-11-07 00:50:37.024240641 +0100
@@ -3,6 +3,7 @@ CC = gcc
CPP =
FC = gfortran
LD = gfortran
+LD_SHARED = gfortran -shared
AR = ar -r
- ACML_INC = $(ACMLPATH)/include
- ACML_LIB = $(ACMLPATH)/lib
-@@ -13,16 +14,21 @@ LIBINT_LIB = $(GCC_DIR)/libint/1.1.4-LAR
- LIBXC_INC = $(GCC_DIR)/libxc/2.2.2-gnu/include
- LIBXC_LIB = $(GCC_DIR)/libxc/2.2.2-gnu/lib64
- DFLAGS = -D__FFTW3 -D__LIBINT -D__LIBXC2\
+ FFTW_INC = $(GCC_DIR)/fftw/3.3-gnu/include
+ FFTW_LIB = $(GCC_DIR)/fftw/3.3-gnu/lib64
+@@ -11,18 +12,22 @@ LIBINT_LIB = $(GCC_DIR)/libint/1.1.4-LAR
+ LIBXC_INC = $(GCC_DIR)/libxc/3.0.0-gnu/include
+ LIBXC_LIB = $(GCC_DIR)/libxc/3.0.0-gnu/lib64
+ DFLAGS = -D__FFTW3 -D__LIBINT -D__LIBXC\
- -D__LIBINT_MAX_AM=7 -D__LIBDERIV_MAX_AM1=6 -D__MAX_CONTR=4
-+ -D__LIBINT_MAX_AM=@LIBINT_MAX_AM@ -D__LIBDERIV_MAX_AM1=@LIBDERIV_MAX_AM@
-D__MAX_CONTR=4 @LIBSMM_DEFS@
++ -D__HAS_IEEE_EXCEPTIONS @LIBSMM_DEFS@\
++ -D__LIBINT_MAX_AM=@LIBINT_MAX_AM@ -D__LIBDERIV_MAX_AM1=@LIBDERIV_MAX_AM@
-D__MAX_CONTR=4
CPPFLAGS =
-FCFLAGS = $(DFLAGS) -O2 -ffast-math -ffree-form -ffree-line-length-none\
+OPTFLAGS = -O2 -ffast-math\
-ftree-vectorize -funroll-loops\
-mtune=native\
- -I$(ACML_INC) -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC)
--LDFLAGS = $(FCFLAGS) -static-libgfortran
--LIBS = $(ACML_LIB)/libacml.a\
+ -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC)
+-LDFLAGS = $(FCFLAGS) -static
+-LIBS = $(LIBPATH)/liblapack-gnu.a\
+- $(LIBPATH)/libblas-gnu.a\
- $(FFTW_LIB)/libfftw3.a\
- $(LIBXC_LIB)/libxcf90.a\
- $(LIBXC_LIB)/libxc.a\
- $(LIBINT_LIB)/libderiv.a\
-- $(LIBINT_LIB)/libint.a
+- $(LIBINT_LIB)/libint.a\
+- -lpthread
+CFLAGS = $(DFLAGS) $(OPTFLAGS)
+CXXFLAGS = $(DFLAGS) $(OPTFLAGS)
+FCFLAGS = $(DFLAGS) $(OPTFLAGS) -ffree-form -ffree-line-length-none
@@ -144,31 +149,33 @@ diff -up cp2k-4.1/arch/Linux-x86-64-gfortran.sopt.r
cp2k-4.1/arch/Linux-x86-64-g
+ -lderiv\
+ -lint
+DATA_DIR = /usr/share/cp2k
-diff -up cp2k-4.1/arch/Linux-x86-64-gfortran.ssmp.r
cp2k-4.1/arch/Linux-x86-64-gfortran.ssmp
---- cp2k-4.1/arch/Linux-x86-64-gfortran.ssmp.r 2014-12-22 01:17:03.067670000 +0100
-+++ cp2k-4.1/arch/Linux-x86-64-gfortran.ssmp 2017-06-18 22:49:26.255715225 +0200
+diff -up cp2k-5.1/arch/Linux-x86-64-gfortran.ssmp.r
cp2k-5.1/arch/Linux-x86-64-gfortran.ssmp
+--- cp2k-5.1/arch/Linux-x86-64-gfortran.ssmp.r 2017-09-28 12:20:29.000000000 +0200
++++ cp2k-5.1/arch/Linux-x86-64-gfortran.ssmp 2017-11-07 00:50:54.047416406 +0100
@@ -3,6 +3,7 @@ CC = gcc
CPP =
FC = gfortran
LD = gfortran
+LD_SHARED = gfortran -shared
AR = ar -r
- ACML_INC = $(ACMLPATH)/include
- ACML_LIB = $(ACMLPATH)/lib
-@@ -13,17 +14,21 @@ LIBINT_LIB = $(GCC_DIR)/libint/1.1.4-LAR
- LIBXC_INC = $(GCC_DIR)/libxc/2.2.0-gnu/include
- LIBXC_LIB = $(GCC_DIR)/libxc/2.2.0-gnu/lib64
- DFLAGS = -D__FFTW3 -D__LIBINT -D__LIBXC2\
+ FFTW_INC = $(GCC_DIR)/fftw/3.3-gnu/include
+ FFTW_LIB = $(GCC_DIR)/fftw/3.3-gnu/lib64
+@@ -11,18 +12,23 @@ LIBINT_LIB = $(GCC_DIR)/libint/1.1.4-LAR
+ LIBXC_INC = $(GCC_DIR)/libxc/3.0.0-gnu/include
+ LIBXC_LIB = $(GCC_DIR)/libxc/3.0.0-gnu/lib64
+ DFLAGS = -D__FFTW3 -D__LIBINT -D__LIBXC\
- -D__LIBINT_MAX_AM=7 -D__LIBDERIV_MAX_AM1=6 -D__MAX_CONTR=4
-+ -D__LIBINT_MAX_AM=@LIBINT_MAX_AM@ -D__LIBDERIV_MAX_AM1=@LIBDERIV_MAX_AM@
-D__MAX_CONTR=4 @LIBSMM_DEFS@
++ -D__HAS_IEEE_EXCEPTIONS @LIBSMM_DEFS@\
++ -D__LIBINT_MAX_AM=@LIBINT_MAX_AM@ -D__LIBDERIV_MAX_AM1=@LIBDERIV_MAX_AM@
-D__MAX_CONTR=4
CPPFLAGS =
-FCFLAGS = $(DFLAGS) -O2 -ffast-math -ffree-form -ffree-line-length-none\
-- -fopenmp -ftree-vectorize -funroll-loops\
-+OPTFLAGS = -O2 -ffast-math -ftree-vectorize -funroll-loops\
++OPTFLAGS = -O2 -ffast-math -ftree-vectorize\
+ -fopenmp -ftree-vectorize -funroll-loops\
-mtune=native\
- -I$(ACML_INC) -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC)
--LDFLAGS = $(FCFLAGS) -static-libgfortran
--LIBS = $(ACML_LIB)/libacml.a\
+ -I$(FFTW_INC) -I$(LIBINT_INC) -I$(LIBXC_INC)
+-LDFLAGS = $(FCFLAGS) -static
+-LIBS = $(LIBPATH)/liblapack-gnu.a\
+- $(LIBPATH)/libblas-gnu.a\
- $(FFTW_LIB)/libfftw3.a\
- $(FFTW_LIB)/libfftw3_threads.a\
- $(LIBXC_LIB)/libxcf90.a\
@@ -188,9 +195,9 @@ diff -up cp2k-4.1/arch/Linux-x86-64-gfortran.ssmp.r
cp2k-4.1/arch/Linux-x86-64-g
+ -lderiv\
+ -lint
+DATA_DIR = /usr/share/cp2k
-diff -up cp2k-4.1/tools/regtesting/do_regtest.r cp2k-4.1/tools/regtesting/do_regtest
---- cp2k-4.1/tools/regtesting/do_regtest.r 2016-07-06 14:01:51.466471000 +0200
-+++ cp2k-4.1/tools/regtesting/do_regtest 2017-06-18 22:44:26.959928409 +0200
+diff -up cp2k-5.1/tools/regtesting/do_regtest.r cp2k-5.1/tools/regtesting/do_regtest
+--- cp2k-5.1/tools/regtesting/do_regtest.r 2017-01-20 11:58:56.000000000 +0100
++++ cp2k-5.1/tools/regtesting/do_regtest 2017-11-07 00:24:03.884859916 +0100
@@ -247,8 +247,8 @@ cp2k_postfix=${cp2k_postfix:-"${cp2k_run
#
###################################################################################
diff --git a/cp2k.spec b/cp2k.spec
index 0de1aa9..0087836 100644
--- a/cp2k.spec
+++ b/cp2k.spec
@@ -11,9 +11,11 @@
%bcond_without atlas
%endif
+%bcond_with check
+
Name: cp2k
-Version: 4.1
-Release: 5%{?dist}
+Version: 5.1
+Release: 1%{?dist}
Summary: Ab Initio Molecular Dynamics
License: GPLv2+
URL:
http://cp2k.org/
@@ -32,10 +34,6 @@ Source4: cp2k-snapshot.sh
Patch0: %{name}-rpm.patch
# Support libxc 4
Patch2: cp2k-4.1-libxc4.patch
-# Backport Bug fix for multiple Tersoff and Siepmann-Sprik potentials
-Patch10: cp2k-r17483.patch
-# Backport USE_FINER_GRID with nonlocal vdW functionals
-Patch11: cp2k-r17748.patch
%if %{with atlas}
BuildRequires: atlas-devel
%else
@@ -48,9 +46,10 @@ BuildRequires: gcc-gfortran
BuildRequires: libint-devel
BuildRequires: libxc-devel
%ifarch x86_64
-BuildRequires: libxsmm-devel
+# See
https://bugzilla.redhat.com/show_bug.cgi?id=1515404
+BuildRequires: libxsmm-devel >= 1.8.1-3
%endif
-BuildRequires: python
+BuildRequires: python2
BuildRequires: /usr/bin/hostname
# Libint can break the API between releases
@@ -77,7 +76,7 @@ This package contains the non-MPI single process and multi-threaded
versions.
Summary: Molecular simulations software - openmpi version
BuildRequires: openmpi-devel
BuildRequires: blacs-openmpi-devel
-BuildRequires: elpa-openmpi-devel >= 2015.02.001
+BuildRequires: elpa-openmpi-devel >= 2017.05.002
BuildRequires: scalapack-openmpi-devel
Requires: %{name}-common = %{version}-%{release}
# Libint may have API breakage
@@ -93,7 +92,7 @@ using OpenMPI.
Summary: Molecular simulations software - mpich version
BuildRequires: mpich-devel
BuildRequires: blacs-mpich-devel
-BuildRequires: elpa-mpich-devel >= 2015.02.001
+BuildRequires: elpa-mpich-devel >= 2017.05.002
BuildRequires: scalapack-mpich-devel
Requires: %{name}-common = %{version}-%{release}
# Libint may have API breakage
@@ -117,8 +116,6 @@ This package contains the documentation and the manual.
%setup -q
%patch0 -p1 -b .r
%patch2 -p1 -b .libxc4
-%patch10 -p0
-%patch11 -p0
sed -i 's|@libdir@|%{_libdir}|' makefiles/Makefile
# Generate necessary symlinks
@@ -193,31 +190,46 @@ install -pm755 lib/${TARGET}/s${v}/lib*.s${v}.so
%{buildroot}%{_libdir}/cp2k/
done
cp -pr data/* %{buildroot}%{_datadir}/cp2k/
-%if 1
+%if %{with check}
# regtests take 11+ hours on armv7hl and ~72h on s390x
-%ifnarch armv7hl s390x
%check
cat > fedora.config << __EOF__
export LC_ALL=C
dir_base=%{_builddir}
__EOF__
-%{_openmpi_load}
+. /etc/profile.d/modules.sh
export CP2K_DATA_DIR=%{buildroot}%{_datadir}/cp2k/
-export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:%{buildroot}${MPI_LIB}/cp2k
-tools/regtesting/do_regtest \
- -arch Linux-%{_target_cpu}-gfortran-openmpi \
- -config fedora.config \
- -cp2kdir cp2k-%{version} \
- -maxtasks 4 \
- -mpiranks 2 \
- -nobuild \
- -noemptycheck \
- -noreset \
- -nosvn \
- -version psmp \
-
-%{_openmpi_unload}
-%endif
+for thr in opt smp ; do
+ for mpi in '' mpich openmpi ; do
+ if [ -n "$mpi" ]; then
+ module load mpi/${mpi}-%{_arch}
+ libdir=${MPI_LIB}/cp2k
+ mpiopts="-maxtasks 4 -mpiranks 2"
+ par=p
+ suf="-${mpi}"
+ else
+ libdir=%{_libdir}/cp2k
+ mpiopts=""
+ par=s
+ suf=""
+ fi
+ export LD_LIBRARY_PATH=%{buildroot}${libdir}
+ tools/regtesting/do_regtest \
+ -arch Linux-%{_target_cpu}-gfortran${suf} \
+ -config fedora.config \
+ -cp2kdir cp2k-%{version} \
+ ${mpiopts} \
+ -nobuild \
+ -noemptycheck \
+ -noreset \
+ -nosvn \
+ -version ${par}${thr} \
+
+ if [ -n "$mpi" ]; then
+ module unload mpi/${mpi}-%{_arch}
+ fi
+ done
+done
%endif
%files common
@@ -253,6 +265,11 @@ tools/regtesting/do_regtest \
%{_libdir}/mpich/lib/cp2k/lib*.psmp.so
%changelog
+* Tue Nov 07 2017 Dominik Mierzejewski <rpm(a)greysector.net> - 5.1-1
+- update to 5.1
+- conditionalize testing and disable by default as they take too long
+- test all flavors, not just OpenMPI ssmp
+
* Mon Oct 23 2017 Susi Lehtola <susi.lehtola(a)iki.fi> - 4.1-5
- Rebuild against libxc 4.
diff --git a/sources b/sources
index 0b5b1d2..9349ecd 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (cp2k-4.1.tar.bz2) =
651c29902acf737365633e91d40f1dd4e66cd6d21cabac6de01fdb978a43d92e1c812ad1cfea2774423f8b58b3552d8e61a0e7c14aa69ae0a512bc988e8495e4
+SHA512 (cp2k-5.1.tar.bz2) =
2d185b67dfcbe6c55cd3628cadb93afcc74daff1913934c637aaa431bc96d2dcb1f5c547e6345c4696d5e32d0024452c599e369d05c690dfa0bd9a620cb880d7