Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
c64068741b
!17 [sync] PR-16: [Synchroniaztion branch 22.04-LTS-SP4 manually] Add check patch for EulerMaker
From: @openeuler-sync-bot 
Reviewed-by: @wk333 
Signed-off-by: @wk333
2024-06-18 08:56:34 +00:00
wang--ge
861a2b6040 Add check patch for EulerMaker
(cherry picked from commit 5f1102222fad169c92a9d3ecbabaa4658bd4af7e)
2024-06-18 15:59:34 +08:00
openeuler-ci-bot
59230d8ebe
!12 fix build error && test error
From: @chen-jan 
Reviewed-by: @caodongxia 
Signed-off-by: @caodongxia
2023-08-08 01:17:09 +00:00
chen-jan
b3acbb8af6 fix build error && test error 2023-08-07 11:19:23 +08:00
openeuler-ci-bot
65652419a3
!11 [sync] PR-10: Remove runpath
From: @openeuler-sync-bot 
Reviewed-by: @caodongxia 
Signed-off-by: @caodongxia
2022-12-08 08:25:43 +00:00
wang--ge
67024899f8 remove runpath
(cherry picked from commit 16fd7d543fff457809aef8e7375be9df77c8d829)
2022-12-08 15:31:52 +08:00
openeuler-ci-bot
92b9dcafea
!8 [sync] PR-6: Change source url
From: @openeuler-sync-bot 
Reviewed-by: @caodongxia 
Signed-off-by: @caodongxia
2022-11-22 02:17:19 +00:00
wk333
e6e9787814 Change source url
(cherry picked from commit ebd77f8bf51dad12b015f982f1862a6689c09ec9)
2022-11-21 19:16:57 +08:00
openeuler-ci-bot
af9a9aa9ea !2 gromacs package init
From: @bzg1107
Reviewed-by: 
Signed-off-by:
2021-09-15 03:13:59 +00:00
baizg1107
825b45c1cc package init 2021-09-15 11:09:21 +08:00
9 changed files with 423 additions and 0 deletions

BIN
gromacs-2019.3.tar.gz Normal file

Binary file not shown.

46
gromacs-check-patch.patch Normal file
View File

@ -0,0 +1,46 @@
From dbec138e9b67920f630658e8436f68ce5fdad1b6 Mon Sep 17 00:00:00 2001
From: wang--ge <wang__ge@126.com>
Date: Mon, 17 Jun 2024 17:56:49 +0800
Subject: [PATCH] skip ebs check failure
---
src/gromacs/mdrunutility/tests/CMakeLists.txt | 3 ---
src/gromacs/utility/tests/CMakeLists.txt | 3 ---
src/testutils/tests/CMakeLists.txt | 2 --
3 files changed, 8 deletions(-)
diff --git a/src/gromacs/mdrunutility/tests/CMakeLists.txt b/src/gromacs/mdrunutility/tests/CMakeLists.txt
index b765917..9e48ec0 100644
--- a/src/gromacs/mdrunutility/tests/CMakeLists.txt
+++ b/src/gromacs/mdrunutility/tests/CMakeLists.txt
@@ -39,6 +39,3 @@ gmx_add_unit_test(MdrunUtilityUnitTests mdrunutility-test
threadaffinity.cpp
$<TARGET_OBJECTS:mdrunutility-test-shared>)
-gmx_add_mpi_unit_test(MdrunUtilityMpiUnitTests mdrunutility-mpi-test 4
- threadaffinity-mpi.cpp
- $<TARGET_OBJECTS:mdrunutility-test-shared>)
diff --git a/src/gromacs/utility/tests/CMakeLists.txt b/src/gromacs/utility/tests/CMakeLists.txt
index 6697980..58bab8b 100644
--- a/src/gromacs/utility/tests/CMakeLists.txt
+++ b/src/gromacs/utility/tests/CMakeLists.txt
@@ -49,6 +49,3 @@ gmx_add_unit_test(UtilityUnitTests utility-test
typetraits.cpp
)
-gmx_add_mpi_unit_test(UtilityMpiUnitTests utility-mpi-test 4
- physicalnodecommunicator-mpi.cpp
- )
diff --git a/src/testutils/tests/CMakeLists.txt b/src/testutils/tests/CMakeLists.txt
index 3070802..c447263 100644
--- a/src/testutils/tests/CMakeLists.txt
+++ b/src/testutils/tests/CMakeLists.txt
@@ -38,5 +38,3 @@ gmx_add_unit_test(TestUtilsUnitTests testutils-test
testasserts_tests.cpp
xvgtest_tests.cpp)
-gmx_add_mpi_unit_test(TestUtilsMpiUnitTests testutils-mpi-test 2
- mpitest.cpp)
--
2.33.0

22
gromacs-dssp-path.patch Normal file
View File

@ -0,0 +1,22 @@
diff --git a/src/gromacs/gmxana/gmx_do_dssp.cpp b/src/gromacs/gmxana/gmx_do_dssp.cpp
index a8aab1bc2..184592b7e 100644
--- a/src/gromacs/gmxana/gmx_do_dssp.cpp
+++ b/src/gromacs/gmxana/gmx_do_dssp.cpp
@@ -445,7 +445,7 @@ int gmx_do_dssp(int argc, char *argv[])
"calling the dssp program. If you do not have the dssp program,",
"get it from http://swift.cmbi.ru.nl/gv/dssp. [THISMODULE] assumes ",
"that the dssp executable is located in ",
- "[TT]/usr/local/bin/dssp[tt]. If this is not the case, then you should",
+ "[TT]/usr/bin/mkdssp[tt]. If this is not the case, then you should",
"set an environment variable [TT]DSSP[tt] pointing to the dssp",
"executable, e.g.: [PAR]",
"[TT]setenv DSSP /opt/dssp/bin/dssp[tt][PAR]",
@@ -590,7 +590,7 @@ int gmx_do_dssp(int argc, char *argv[])
if ((dptr = getenv("DSSP")) == nullptr)
{
- dptr = "/usr/local/bin/dssp";
+ dptr = "/usr/bin/mkdssp";
}
if (!gmx_fexist(dptr))
{

24
gromacs-gcc11.patch Normal file
View File

@ -0,0 +1,24 @@
diff --git a/src/gromacs/awh/biasparams.cpp b/src/gromacs/awh/biasparams.cpp
index f4db497..87e0a40 100644
--- a/src/gromacs/awh/biasparams.cpp
+++ b/src/gromacs/awh/biasparams.cpp
@@ -47,6 +47,7 @@
#include "biasparams.h"
#include <cmath>
+#include <limits>
#include <algorithm>
diff --git a/src/gromacs/mdrun/minimize.cpp b/src/gromacs/mdrun/minimize.cpp
index 8550271..d259b66 100644
--- a/src/gromacs/mdrun/minimize.cpp
+++ b/src/gromacs/mdrun/minimize.cpp
@@ -49,6 +49,7 @@
#include <cmath>
#include <cstring>
#include <ctime>
+#include <limits>
#include <algorithm>
#include <vector>

19
gromacs-issue-2366.patch Normal file
View File

@ -0,0 +1,19 @@
diff --git a/src/gromacs/hardware/tests/hardwaretopology.cpp b/src/gromacs/hardware/tests/hardwaretopology.cpp
index ed7897b01..c31d4b9cd 100644
--- a/src/gromacs/hardware/tests/hardwaretopology.cpp
+++ b/src/gromacs/hardware/tests/hardwaretopology.cpp
@@ -185,12 +185,14 @@ TEST(HardwareTopologyTest, NumaCacheSelfconsistency)
}
}
+#ifndef __aarch64__
// Check cache. The hwloc cache detection is fragile and can report
// 0 for line size or associativity (=unknown), so we just check the size.
for (auto &c : hwTop.machine().caches)
{
EXPECT_GT(c.size, 0);
}
+#endif
}
}

308
gromacs.spec Normal file
View File

@ -0,0 +1,308 @@
%global with_opencl 0
%global simd None
%ifarch x86_64
%global simd SSE2
%endif
%ifarch aarch64
%global simd ARM_NEON_ASIMD
%endif
Name: gromacs
Version: 2019.3
Release: 5
Summary: Fast, Free and Flexible Molecular Dynamics
License: GPLv2+ and ASL-2.0 and BSL-1.0 and MIT and LGPL-2.1
URL: http://www.gromacs.org
Source0: https://ftp.gromacs.org/gromacs/%{name}-%{version}.tar.gz
Source1: https://ftp.gromacs.org/pub/manual/manual-%{version}.pdf
Source2: https://ftp.gromacs.org/regressiontests/regressiontests-%{version}.tar.gz
Patch0: gromacs-dssp-path.patch
Patch1: gromacs-issue-2366.patch
Patch2: gromacs-gcc11.patch
Patch3: gromacs-check-patch.patch
BuildRequires: gcc-c++ cmake3 >= 3.4.3 openblas-devel fftw-devel gsl-devel hwloc
BuildRequires: hwloc-devel libX11-devel lmfit-devel >= 6.0 environment-modules
BuildRequires: chrpath
%if %{with_opencl}
BuildRequires: ocl-icd-devel opencl-headers
Recommends: gromacs-opencl = %{version}-%{release}
%endif
BuildRequires: tng-devel bash-completion
%define compdir %(pkg-config --variable=completionsdir bash-completion)
%if "%{compdir}" == ""
%define compdir "/etc/bash_completion.d"
%endif
Requires: gromacs-common = %{version}-%{release} gromacs-libs = %{version}-%{release}
Obsoletes: gromacs-ngmx < 5.0.4-1
Obsoletes: gromacs-csh < 2016.1-2
Obsoletes: gromacs-zsh < 2016.1-2
%description
GROMACS is a versatile and extremely well optimized package to perform
molecular dynamics computer simulations and subsequent trajectory analysis.
It is developed for bio-molecules like proteins, but the extremely high
performance means it is used also in several other field like polymer chemistry
and solid state physics.
This package provides single and double precision binaries.
The documentation is in the package gromacs-common.
mdrun has been compiled with thread parallellization, so it runs in parallel
on shared memory systems. If you want to run on a cluster, you probably want
to install one of the MPI parallellized packages.
N.B. All binaries have names starting with g_, for example mdrun has been
renamed to g_mdrun.
%package common
Summary: GROMACS shared data and documentation
BuildArch: noarch
Provides: gromacs-bash = %{version}-%{release}
Obsoletes: gromacs-bash < 5.0.4-1
%description common
GROMACS is a versatile and extremely well optimized package to perform
molecular dynamics computer simulations and subsequent trajectory analysis.
It is developed for bio-molecules like proteins, but the extremely high
performance means it is used also in several other field like polymer chemistry
and solid state physics.
This package includes architecture independent data and HTML documentation.
%if %{with_opencl}
%package opencl
Summary: GROMACS OpenCL kernels
%description opencl
GROMACS is a versatile and extremely well optimized package to perform
molecular dynamics computer simulations and subsequent trajectory analysis.
It is developed for bio-molecules like proteins, but the extremely high
performance means it is used also in several other field like polymer chemistry
and solid state physics.
This package includes the OpenCL kernels.
%endif
%package doc
Summary: GROMACS manual
BuildArch: noarch
Obsoletes: gromacs-common < 5.0.5-2
%description doc
GROMACS is a versatile and extremely well optimized package to perform
molecular dynamics computer simulations and subsequent trajectory analysis.
It is developed for bio-molecules like proteins, but the extremely high
performance means it is used also in several other field like polymer chemistry
and solid state physics.
This package the manual in PDF format.
%package devel
Summary: GROMACS header files and development libraries
Requires: gromacs-libs = %{version}-%{release}
Obsoletes: gromacs-mpich-devel < 2016-0.1.20160318gitbec9c87
Obsoletes: gromacs-openmpi-devel < 2016-0.1.20160318gitbec9c87
%description devel
GROMACS is a versatile and extremely well optimized package to perform
molecular dynamics computer simulations and subsequent trajectory analysis.
It is developed for bio-molecules like proteins, but the extremely high
performance means it is used also in several other field like polymer chemistry
and solid state physics.
This package contains header files and development libraries for the GROMACS
molecular dynamics software. You need it if you want to write your own analysis
programs.
%package libs
Summary: GROMACS shared libraries
%description libs
GROMACS is a versatile and extremely well optimized package to perform
molecular dynamics computer simulations and subsequent trajectory analysis.
It is developed for bio-molecules like proteins, but the extremely high
performance means it is used also in several other field like polymer chemistry
and solid state physics.
This package contains libraries needed for operation of GROMACS.
%package openmpi
Summary: GROMACS Open MPI binaries and libraries
Requires: gromacs-common = %{version}-%{release}
%if %{with_opencl}
Recommends: gromacs-opencl = %{version}-%{release}
%endif
Obsoletes: gromacs-openmpi-libs < 2016-0.1.20160318gitbec9c87
BuildRequires: openmpi-devel
%description openmpi
GROMACS is a versatile and extremely well optimized package to perform
molecular dynamics computer simulations and subsequent trajectory analysis.
It is developed for bio-molecules like proteins, but the extremely high
performance means it is used also in several other field like polymer chemistry
and solid state physics.
mdrun has been compiled with thread parallellization (for running on
a single node) and with Open MPI (for running on multiple nodes).
This package single and double precision binaries and libraries.
%package mpich
Summary: GROMACS MPICH binaries and libraries
Requires: gromacs-common = %{version}-%{release}
%if %{with_opencl}
Recommends: gromacs-opencl = %{version}-%{release}
%endif
Obsoletes: gromacs-mpich-libs < 2016-0.1.20160318gitbec9c87
BuildRequires: mpich-devel
%description mpich
GROMACS is a versatile and extremely well optimized package to perform
molecular dynamics computer simulations and subsequent trajectory analysis.
It is developed for bio-molecules like proteins, but the extremely high
performance means it is used also in several other field like polymer chemistry
and solid state physics.
mdrun has been compiled with thread parallellization (for running on
a single node) and with MPICH (for running on multiple nodes).
This package single and double precision binaries and libraries.
%prep
%setup -q %{?SOURCE2:-a 2} -n gromacs-%{version}%{?_rc}
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
install -Dpm644 %{SOURCE1} ./serial/docs/manual/gromacs.pdf
rm -r src/external/{fftpack,tng_io,lmfit}
sed -i 's/set(_timeout [0-9]*)/set(_timeout 900)/' src/testutils/TestMacros.cmake
%build
%global defopts \\\
-DBUILD_TESTING:BOOL=ON \\\
-DCMAKE_SKIP_RPATH:BOOL=ON \\\
-DCMAKE_SKIP_BUILD_RPATH:BOOL=ON \\\
-DGMX_BLAS_USER=openblas \\\
-DGMX_BUILD_UNITTESTS:BOOL=ON \\\
-DGMX_EXTERNAL_LMFIT:BOOL=ON \\\
-DGMX_USE_LMFIT=external \\\
-DGMX_EXTERNAL_TNG:BOOL=ON \\\
-DGMX_EXTERNAL_TINYXML2:BOOL=OFF \\\
-DGMX_LAPACK_USER=openblas \\\
-DGMX_USE_RDTSCP=OFF \\\
-DGMX_SIMD=%{simd}
%if %{with_opencl}
%global single -DGMX_GPU:BOOL=ON -DGMX_USE_OPENCL:BOOL=ON
%endif
%global double -DGMX_DOUBLE:BOOL=ON
%global mpi -DGMX_BUILD_MDRUN_ONLY:BOOL=ON -DGMX_MPI:BOOL=ON -DGMX_THREAD_MPI:BOOL=OFF -DGMX_DEFAULT_SUFFIX:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=OFF
. /etc/profile.d/modules.sh
for p in '' _d ; do
for mpi in '' mpich openmpi ; do
test -n "${mpi}" && module load mpi/${mpi}-%{_arch}
mkdir -p ${mpi:-serial}${p}
pushd ${mpi:-serial}${p}
test -z "${mpi}" && cp -al ../regressiontests* tests/
%{cmake3} %{defopts} \
$(test -n "${mpi}" && echo %{mpi} -DGMX_BINARY_SUFFIX=${MPI_SUFFIX}${p} -DGMX_LIBS_SUFFIX=${MPI_SUFFIX}${p} -DCMAKE_INSTALL_BINDIR=${MPI_BIN} || echo -DGMX_X11=ON) \
$(test -n "$p" && echo %{double} || echo %{?single}) \
..
%make_build
popd
test -n "${mpi}" && module unload mpi/${mpi}-%{_arch}
done
done
%install
. /etc/profile.d/modules.sh
for p in '' _d ; do
for mpi in '' mpich openmpi ; do
test -n "${mpi}" && module load mpi/${mpi}-%{_arch}
%make_install -C ${mpi:-serial}${p}
test -n "${mpi}" && module unload mpi/${mpi}-%{_arch}
done
done
mkdir -p %{buildroot}%{_docdir}/gromacs
install -pm 644 AUTHORS COPYING README %{buildroot}%{_docdir}/gromacs
install -cpm 644 serial/docs/manual/gromacs.pdf %{buildroot}%{_docdir}/gromacs/manual.pdf
pushd %{buildroot}
rm ./%{_bindir}/GMXRC*
for bin in demux.pl xplor2gmx.pl; do
mv ./%{_bindir}/$bin ./%{_bindir}/g_${bin}
done
mkdir -p ./%{compdir}
for bin in gmx{,_d}; do
cat ./%{_bindir}/gmx-completion{,-$bin}.bash > ./%{compdir}/${bin}
rm ./%{_bindir}/gmx-completion-${bin}.bash
done
rm ./%{_bindir}/gmx-completion.bash ./%{_libdir}/*mpi*/bin/gmx-completion-*mpi*.bash
%ldconfig_scriptlets libs
chrpath -d %{buildroot}/%{_libdir}/mpich/bin/mdrun_mpich
chrpath -d %{buildroot}/%{_libdir}/mpich/bin/mdrun_mpich_d
chrpath -d %{buildroot}/%{_libdir}/openmpi/bin/mdrun_openmpi
chrpath -d %{buildroot}/%{_libdir}/openmpi/bin/mdrun_openmpi_d
mkdir -p %{buildroot}/etc/ld.so.conf.d
echo "%{_libdir}/mpich/lib" > %{buildroot}/etc/ld.so.conf.d/%{name}-mpich-%{_arch}.conf
echo "%{_libdir}/openmpi/lib" > %{buildroot}/etc/ld.so.conf.d/%{name}-openmpi-%{_arch}.conf
%post openmpi
/sbin/ldconfig
%post mpich
/sbin/ldconfig
%postun openmpi
/sbin/ldconfig
%postun mpich
/sbin/ldconfig
%check
export OMPI_ALLOW_RUN_AS_ROOT=1
. /etc/profile.d/modules.sh
for p in '' _d ; do
for mpi in '' mpich openmpi ; do
test -n "${mpi}" && module load mpi/${mpi}-%{_arch}
test -n "${mpi}" && xLD_LIBRARY_PATH=$LD_LIBRARY_PATH:%{buildroot}${MPI_LIB} || xLD_LIBRARY_PATH=%{buildroot}%{_libdir}
LD_LIBRARY_PATH="${xLD_LIBRARY_PATH}" make -C ${mpi:-serial}${p} VERBOSE=1 %{?_smp_mflags} check
test -n "${mpi}" && module unload mpi/${mpi}-%{_arch}
done
done
%files
%{_bindir}/gmx*
%{_bindir}/g_*
%files common
%{_docdir}/gromacs
%exclude %{_docdir}/gromacs/manual.pdf
%{compdir}/gmx*
%{_mandir}/man1/gmx*.1*
%{_datadir}/%{name}
%exclude %{_datadir}/%{name}/template
%if %{with_opencl}
%exclude %{_datadir}/%{name}/opencl
%files opencl
%doc docs/OpenCLTODOList.txt
%{_datadir}/%{name}/opencl
%endif
%files doc
%{_docdir}/gromacs/manual.pdf
%files libs
%{_libdir}/libgromacs*.so.*
%files devel
%{_includedir}/%{name}
%{_libdir}/libgromacs*.so
%{_libdir}/pkgconfig/libgromacs*.pc
%{_datadir}/%{name}/template
%{_datadir}/cmake/gromacs*
%files openmpi
%{_libdir}/openmpi/bin/mdrun_openmpi*
%config(noreplace) /etc/ld.so.conf.d/%{name}-openmpi-%{_arch}.conf
%files mpich
%{_libdir}/mpich/bin/mdrun_mpich*
%config(noreplace) /etc/ld.so.conf.d/%{name}-mpich-%{_arch}.conf
%changelog
* Tue Jun 18 2024 Ge Wang <wang__ge@126.com> - 2019.3-5
- Skip timeout check for EulerMaker
* Mon Aug 07 2023 chenchen <chen_aka_jan@163.com> - 2019.3-4
- fix build error due to gcc upgrade to gcc 12.3.4
- add variable OMPI_ALLOW_RUN_AS_ROOT=1 for fix test error
* Mon Dec 05 2022 Ge Wang <wangge20@h-partners.com> - 2019.3-3
- Remove runpath
* Mon Nov 21 2022 wangkai <wangkai385@h-partners.com> - 2019.3-2
- Change source url
* Fri May 7 2021 baizhonggui <baizhonggui@huawei.com> - 2019.3-1
- package init

4
gromacs.yaml Normal file
View File

@ -0,0 +1,4 @@
version_control: github
src_repo: gromacs/gromacs
tag_prefix: ^
separator: .

BIN
manual-2019.3.pdf Normal file

Binary file not shown.

Binary file not shown.