From 3fb288f0a0865c93669730bb7ed3a31881d7f269 Mon Sep 17 00:00:00 2001 From: Jussi Lehtola Date: Sep 16 2011 23:22:10 +0000 Subject: Import from master. --- diff --git a/gromacs-4.5.1-gmxrc.patch b/gromacs-4.5.1-gmxrc.patch new file mode 100644 index 0000000..62a2400 --- /dev/null +++ b/gromacs-4.5.1-gmxrc.patch @@ -0,0 +1,160 @@ +diff -up gromacs-4.5.1/scripts/GMXRC.bash.cmakein.orig gromacs-4.5.1/scripts/GMXRC.bash.cmakein +--- gromacs-4.5.1/scripts/GMXRC.bash.cmakein.orig 2010-08-23 20:58:30.000000000 +0300 ++++ gromacs-4.5.1/scripts/GMXRC.bash.cmakein 2010-10-25 17:11:05.955213941 +0300 +@@ -8,8 +8,12 @@ + tmppath="" + for i in `echo $LD_LIBRARY_PATH | sed "s/:/ /g"`; do + if test "$i" != "$GMXLDLIB"; then ++ if test "${tmppath}" == ""; then ++ tmppath=$i ++ else + tmppath=${tmppath}:$i + fi ++ fi + done + LD_LIBRARY_PATH=$tmppath + +@@ -38,6 +42,9 @@ for i in `echo $MANPATH | sed "s/:/ /g"` + tmppath=${tmppath}:$i + fi + done ++if test "$tmppath" == ""; then ++ tmppath=":" ++fi + MANPATH=$tmppath + + ########################################################## +diff -up gromacs-4.5.1/scripts/GMXRC.bash.in.orig gromacs-4.5.1/scripts/GMXRC.bash.in +--- gromacs-4.5.1/scripts/GMXRC.bash.in.orig 2010-08-23 20:58:30.000000000 +0300 ++++ gromacs-4.5.1/scripts/GMXRC.bash.in 2010-10-25 17:11:05.955213941 +0300 +@@ -8,8 +8,12 @@ + tmppath="" + for i in `echo $LD_LIBRARY_PATH | sed "s/:/ /g"`; do + if test "$i" != "$GMXLDLIB"; then ++ if test "${tmppath}" == ""; then ++ tmppath=$i ++ else + tmppath=${tmppath}:$i + fi ++ fi + done + LD_LIBRARY_PATH=$tmppath + +@@ -38,6 +42,9 @@ for i in `echo $MANPATH | sed "s/:/ /g"` + tmppath=${tmppath}:$i + fi + done ++if test "$tmppath" == ""; then ++ tmppath=":" ++fi + MANPATH=$tmppath + + ########################################################## +diff -up gromacs-4.5.1/scripts/GMXRC.csh.cmakein.orig gromacs-4.5.1/scripts/GMXRC.csh.cmakein +--- gromacs-4.5.1/scripts/GMXRC.csh.cmakein.orig 2010-08-23 20:58:30.000000000 +0300 ++++ gromacs-4.5.1/scripts/GMXRC.csh.cmakein 2010-10-25 17:11:05.955213941 +0300 +@@ -16,7 +16,13 @@ if (! $?GMXMAN) setenv GMXMAN "" + # remove previous gromacs part from ld_library_path + set tmppath = "" + foreach i ( `echo $LD_LIBRARY_PATH | sed "s/:/ /g"` ) +- if ( "$i" != "$GMXLDLIB" ) set tmppath = "${tmppath}:$i" ++ if ( "$i" != "$GMXLDLIB" ) then ++ if ("${tmppath}" == "") then ++ set tmppath = "$i" ++ else ++ set tmppath = "${tmppath}:$i" ++ endif ++ endif + end + setenv LD_LIBRARY_PATH $tmppath + +@@ -39,6 +45,9 @@ set tmppath = "" + foreach i ( `echo $MANPATH | sed "s/:/ /g"` ) + if ( "$i" != "$GMXMAN" ) set tmppath = "${tmppath}:$i" + end ++if ("$tmppath" == "") then ++ set tmppath = ":" ++endif + setenv MANPATH $tmppath + + ########################################################## +diff -up gromacs-4.5.1/scripts/GMXRC.csh.in.orig gromacs-4.5.1/scripts/GMXRC.csh.in +--- gromacs-4.5.1/scripts/GMXRC.csh.in.orig 2010-08-23 20:58:30.000000000 +0300 ++++ gromacs-4.5.1/scripts/GMXRC.csh.in 2010-10-25 17:11:05.955213941 +0300 +@@ -16,7 +16,13 @@ if (! $?GMXMAN) setenv GMXMAN "" + # remove previous gromacs part from ld_library_path + set tmppath = "" + foreach i ( `echo $LD_LIBRARY_PATH | sed "s/:/ /g"` ) +- if ( "$i" != "$GMXLDLIB" ) set tmppath = "${tmppath}:$i" ++ if ( "$i" != "$GMXLDLIB" ) then ++ if ("${tmppath}" == "") then ++ set tmppath = "$i" ++ else ++ set tmppath = "${tmppath}:$i" ++ endif ++ endif + end + setenv LD_LIBRARY_PATH $tmppath + +@@ -39,6 +45,9 @@ set tmppath = "" + foreach i ( `echo $MANPATH | sed "s/:/ /g"` ) + if ( "$i" != "$GMXMAN" ) set tmppath = "${tmppath}:$i" + end ++if ("$tmppath" == "") then ++ set tmppath = ":" ++endif + setenv MANPATH $tmppath + + ########################################################## +diff -up gromacs-4.5.1/scripts/GMXRC.zsh.cmakein.orig gromacs-4.5.1/scripts/GMXRC.zsh.cmakein +--- gromacs-4.5.1/scripts/GMXRC.zsh.cmakein.orig 2010-08-23 20:58:30.000000000 +0300 ++++ gromacs-4.5.1/scripts/GMXRC.zsh.cmakein 2010-10-25 17:11:05.955213941 +0300 +@@ -8,8 +8,12 @@ + tmppath="" + for i in `echo $LD_LIBRARY_PATH | sed "s/:/ /g"`; do + if test "$i" != "$GMXLDLIB"; then ++ if test "${tmppath}" = ""; then ++ tmppath=$i ++ else + tmppath=${tmppath}:$i + fi ++ fi + done + LD_LIBRARY_PATH=$tmppath + +@@ -38,6 +42,9 @@ for i in `echo $MANPATH | sed "s/:/ /g"` + tmppath=${tmppath}:$i + fi + done ++if test "$tmppath" = ""; then ++ tmppath=":" ++fi + MANPATH=$tmppath + + ########################################################## +diff -up gromacs-4.5.1/scripts/GMXRC.zsh.in.orig gromacs-4.5.1/scripts/GMXRC.zsh.in +--- gromacs-4.5.1/scripts/GMXRC.zsh.in.orig 2010-08-23 20:58:30.000000000 +0300 ++++ gromacs-4.5.1/scripts/GMXRC.zsh.in 2010-10-25 17:11:05.955213941 +0300 +@@ -8,8 +8,12 @@ + tmppath="" + for i in `echo $LD_LIBRARY_PATH | sed "s/:/ /g"`; do + if test "$i" != "$GMXLDLIB"; then ++ if test "${tmppath}" = ""; then ++ tmppath=$i ++ else + tmppath=${tmppath}:$i + fi ++ fi + done + LD_LIBRARY_PATH=$tmppath + +@@ -38,6 +42,9 @@ for i in `echo $MANPATH | sed "s/:/ /g"` + tmppath=${tmppath}:$i + fi + done ++if test "$tmppath" = ""; then ++ tmppath=":" ++fi + MANPATH=$tmppath + + ########################################################## diff --git a/gromacs-GMXRC.patch b/gromacs-GMXRC.patch index a185174..97b3b05 100644 --- a/gromacs-GMXRC.patch +++ b/gromacs-GMXRC.patch @@ -1,26 +1,30 @@ ---- gromacs-4.0_rc2/scripts/GMXRC.csh.in.orig 2001-08-18 14:07:31.000000000 +0300 -+++ gromacs-4.0_rc2/scripts/GMXRC.csh.in 2008-09-28 15:33:26.000000000 +0300 +diff -up gromacs-4.5.4/scripts/GMXRC.bash.in.orig gromacs-4.5.4/scripts/GMXRC.bash.in +--- gromacs-4.5.4/scripts/GMXRC.bash.in.orig 2011-03-15 14:44:30.000000000 +0200 ++++ gromacs-4.5.4/scripts/GMXRC.bash.in 2011-03-23 15:23:47.460843630 +0200 +@@ -1,3 +1,4 @@ ++#!/bin/bash + # bash configuration file for Gromacs + # First we remove old gromacs stuff from the paths + # by selecting everything else. +diff -up gromacs-4.5.4/scripts/GMXRC.csh.in.orig gromacs-4.5.4/scripts/GMXRC.csh.in +--- gromacs-4.5.4/scripts/GMXRC.csh.in.orig 2011-03-15 14:44:30.000000000 +0200 ++++ gromacs-4.5.4/scripts/GMXRC.csh.in 2011-03-23 15:23:24.515816712 +0200 @@ -1,3 +1,4 @@ +#!/bin/csh # csh/tcsh configuration file for Gromacs. # First we remove previous Gromacs stuff from paths # by selecting everything else. ---- gromacs-4.0_rc2/scripts/GMXRC.bash.in.orig 2001-08-18 14:07:31.000000000 +0300 -+++ gromacs-4.0_rc2/scripts/GMXRC.bash.in 2008-09-28 15:33:08.000000000 +0300 -@@ -1,3 +1,4 @@ -+#!/bin/bash - # zsh configuration file for Gromacs - # First we remove old gromacs stuff from the paths - # by selecting everything else. ---- gromacs-4.0_rc2/scripts/GMXRC.in.orig 2001-08-18 14:07:31.000000000 +0300 -+++ gromacs-4.0_rc2/scripts/GMXRC.in 2008-09-28 15:33:44.000000000 +0300 +diff -up gromacs-4.5.4/scripts/GMXRC.in.orig gromacs-4.5.4/scripts/GMXRC.in +--- gromacs-4.5.4/scripts/GMXRC.in.orig 2011-03-15 14:44:30.000000000 +0200 ++++ gromacs-4.5.4/scripts/GMXRC.in 2011-03-23 15:23:58.499338216 +0200 @@ -1,3 +1,4 @@ +#!/bin/sh # This is a convenience script to determine which # type of shell you have, and then run GMXRC.[csh|bash|zsh] # from the Gromacs binary directory. ---- gromacs-4.0_rc2/scripts/GMXRC.zsh.in.orig 2001-08-18 14:07:31.000000000 +0300 -+++ gromacs-4.0_rc2/scripts/GMXRC.zsh.in 2008-09-28 15:33:34.000000000 +0300 +diff -up gromacs-4.5.4/scripts/GMXRC.zsh.in.orig gromacs-4.5.4/scripts/GMXRC.zsh.in +--- gromacs-4.5.4/scripts/GMXRC.zsh.in.orig 2011-03-15 14:44:30.000000000 +0200 ++++ gromacs-4.5.4/scripts/GMXRC.zsh.in 2011-03-23 15:24:06.396692029 +0200 @@ -1,3 +1,4 @@ +#!/bin/zsh # zsh configuration file for Gromacs diff --git a/gromacs-gmxdemo.patch b/gromacs-gmxdemo.patch index f146ab7..1e1c9cf 100644 --- a/gromacs-gmxdemo.patch +++ b/gromacs-gmxdemo.patch @@ -1,6 +1,6 @@ -diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tutor/gmxdemo/demo ---- gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo 2010-09-29 14:35:03.000000000 +0300 -+++ gromacs-4.5.2/share/tutor/gmxdemo/demo 2010-11-01 14:04:34.833273502 +0200 +diff -up gromacs-4.5.4/share/tutor/gmxdemo/demo.orig gromacs-4.5.4/share/tutor/gmxdemo/demo +--- gromacs-4.5.4/share/tutor/gmxdemo/demo.orig 2011-03-04 13:10:43.000000000 +0200 ++++ gromacs-4.5.4/share/tutor/gmxdemo/demo 2011-03-23 15:30:14.004163534 +0200 @@ -58,10 +58,10 @@ cat << _EOF_ ----------------------------------------------------------------- Before we can start any simulation we need a molecular toplogy @@ -13,7 +13,7 @@ diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tuto +Because most pdb files do not contain all hydrogen atoms, the g_pdb2gmx program will also add them to our peptide. The output file which contains the structure of the peptide when hydrogen atoms are added is a - gromos structure file ( .gro extension ) + GROMOS structure file ( .gro extension ) @@ -72,22 +72,22 @@ _EOF_ if ( $?DISPLAY ) then @@ -45,7 +45,7 @@ diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tuto @@ -99,14 +99,14 @@ cat << _EOF_ ----------------------------------------------------------------- ----------------------------------------------------------------- - Because a simulation of a peptide in vacua is a bit unrealistic, we + Because a simulation of a peptide in vacuo is a bit unrealistic, we -have to solvate our peptide in a box of water. genbox is the program +have to solvate our peptide in a box of water. g_genbox is the program we use to do this. @@ -54,15 +54,15 @@ diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tuto -containing the sizes of the desired water box. The output of genbox is +The g_genbox program reads the peptide structure file and an input file +containing the sizes of the desired water box. The output of g_genbox is - a gromos structure file of a peptide solvated in a box of water. The + a GROMOS structure file of a peptide solvated in a box of water. The -genbox program also changes the topology file ( .top extension ) to -include water. First we will use the program editconf to define the +g_genbox program also changes the topology file ( .top extension ) to +include water. First we will use the program g_editconf to define the - right boxsize for our system. + right box size for our system. ----------------------------------------------------------------- -@@ -114,22 +114,22 @@ right boxsize for our system. +@@ -114,22 +114,22 @@ right box size for our system. _EOF_ if ( $?DISPLAY ) then @@ -93,19 +93,19 @@ diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tuto @@ -142,7 +142,7 @@ cat << _EOF_ ----------------------------------------------------------------- - In principle we can start a Molecular Dynamics simulation now. However + In principle we can start a molecular dynamics simulation now. However it is not very wise to do so, because our system is full of close -contacts. These close contacts are mainly a result of the genbox +contacts. These close contacts are mainly a result of the g_genbox program. The added solvent might have some close contacts with the peptide resulting in very high repulsive energies. If we would start a - Molecular Dynamics (MD) simulation without energy minimisation the -@@ -153,7 +153,7 @@ Energy Minimisation (EM). Energy minimis + molecular dynamics (MD) simulation without energy minimisation the +@@ -153,7 +153,7 @@ energy minimisation (EM). Energy minimis coordinates of our system to remove high energies from our system. - Before we can start the Energy Minimisation we have to preprocess all + Before we can start the energy minimisation we have to preprocess all -the input files with the GROMACS preprocessor named grompp. grompp -+the input files with the GROMACS preprocessor named g_g_grompp. g_g_grompp ++the input files with the GROMACS preprocessor named g_grompp. g_grompp preprocesses the topology file (.top), the structure file (.gro) and a parameter file (.mdp) resulting in a binary topology file (.tpr extension). This binary topology file contains all information for a @@ -114,11 +114,11 @@ diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tuto if ( $?DISPLAY ) then - echo "The output of the grompp program should appear" -+ echo "The output of the g_g_grompp program should appear" ++ echo "The output of the g_grompp program should appear" echo "in a separate xterm window" endif -@@ -191,13 +191,13 @@ emtol = 1000.0 +@@ -190,13 +190,13 @@ emtol = 1000.0 emstep = 0.01 _EOF_ @@ -136,7 +136,7 @@ diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tuto echo -n "Press " set ans = $< -@@ -210,8 +210,8 @@ cat << _EOF_ +@@ -209,8 +209,8 @@ cat << _EOF_ ----------------------------------------------------------------- Now the binary topology file is generated, we can start the energy minimisation (EM). The program which performs the EM is called @@ -145,9 +145,9 @@ diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tuto +g_mdrun. In fact all simulations are performed by the same program: +g_mdrun. - As the Energy Minimisation is running, watch the output of the + As the energy minimisation is running, watch the output of the program. The first number ( from left to right ) is the number of the -@@ -224,21 +224,21 @@ rapidly drops down, and converges, to a +@@ -223,21 +223,21 @@ rapidly drops down, and converges, to a _EOF_ if ( $?DISPLAY ) then @@ -174,25 +174,25 @@ diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tuto echo -n "Press " set ans = $< -@@ -255,7 +255,7 @@ fixed. This is called position restraine +@@ -254,7 +254,7 @@ fixed. This is called position restraine - Position Restrained MD keeps the peptide fixed and lets all water + Position restrained MD keeps the peptide fixed and lets all water molecules equilibrate around the peptide in order to fill holes --etc. which were not filled by the genbox program. -+etc. which were not filled by the g_genbox program. +-etc. that were not filled by the genbox program. ++etc. that were not filled by the g_genbox program. We are first going to preprocess the input files to generate the binary topology. The input files are the topology file, the structure -@@ -274,7 +274,7 @@ performed ( like EM, PR-MD and MD etc. ) +@@ -273,7 +273,7 @@ performed ( like EM, PR-MD and MD etc. ) _EOF_ if ( $?DISPLAY ) then - echo "The output of the grompp program should appear" -+ echo "The output of the g_g_grompp program should appear" ++ echo "The output of the g_grompp program should appear" echo "in a separate xterm window" endif -@@ -318,12 +318,12 @@ gen_seed = 173529 +@@ -317,12 +317,12 @@ gen_seed = 173529 _EOF_ @@ -209,7 +209,7 @@ diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tuto echo -n "Press " set ans = $< -@@ -346,19 +346,19 @@ _EOF_ +@@ -345,19 +345,19 @@ _EOF_ if ( $?DISPLAY ) then echo "Because your DISPLAY variable is set, I will pop up a" @@ -234,25 +234,25 @@ diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tuto echo -n "Press " set ans = $< -@@ -371,7 +371,7 @@ cat << _EOF_ +@@ -370,7 +370,7 @@ cat << _EOF_ ----------------------------------------------------------------- - Now our complete system is finally ready for the actual Molecular - Dynamics simulation. We start again by preprocessing the input files + Now our complete system is finally ready for the actual molecular + dynamics simulation. We start again by preprocessing the input files -by the grompp program to generate the binary topology file (.tpb/.tpr -+by the g_g_grompp program to generate the binary topology file (.tpb/.tpr ++by the g_grompp program to generate the binary topology file (.tpb/.tpr extension). ----------------------------------------------------------------- -@@ -379,7 +379,7 @@ extension). +@@ -378,7 +378,7 @@ extension). _EOF_ if ( $?DISPLAY ) then - echo "The output of the grompp program should appear" -+ echo "The output of the g_g_grompp program should appear" ++ echo "The output of the g_grompp program should appear" echo "in a separate xterm window" endif -@@ -419,13 +419,13 @@ gen_temp = 300.0 +@@ -418,13 +418,13 @@ gen_temp = 300.0 gen_seed = 173529 _EOF_ @@ -270,7 +270,7 @@ diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tuto echo -n "Press " set ans = $< -@@ -444,20 +444,20 @@ increasing ( the total number of steps i +@@ -443,20 +443,20 @@ increasing ( the total number of steps i _EOF_ if ( $?DISPLAY ) then @@ -296,8 +296,8 @@ diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tuto echo -n "Press " set ans = $< -@@ -472,10 +472,10 @@ We are finished simulating, and we are g - trajectory. The trajectory file ( .trj extension ) contains all +@@ -471,10 +471,10 @@ We are finished simulating, and we are g + trajectory. The trajectory file ( .trr extension ) contains all coordinates, velocities and forces of all the atoms in our system. -The next program we are going run is ngmx. ngmx is a very simple @@ -309,7 +309,7 @@ diff -up gromacs-4.5.2/share/tutor/gmxdemo/demo.gmxdemo gromacs-4.5.2/share/tuto buttons to view your trajectory. 1. Once the program has been started a dialog box shows up. Click on -@@ -497,7 +497,7 @@ _EOF_ +@@ -496,7 +496,7 @@ _EOF_ if ( $?DISPLAY ) then echo Starting Trajectory viewer... diff --git a/gromacs.spec b/gromacs.spec index 436901e..af2f684 100644 --- a/gromacs.spec +++ b/gromacs.spec @@ -1,14 +1,21 @@ +%ifnarch s390 s390x +%global with_openmpi 1 +%else +%global with_openmpi 0 +%endif + Name: gromacs -Version: 4.5.3 -Release: 1%{?dist} +Version: 4.5.4 +Release: 2%{?dist} Summary: Fast, Free and Flexible Molecular Dynamics Group: Applications/Engineering License: GPLv2+ URL: http://www.gromacs.org BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Source0: ftp://ftp.gromacs.org/pub/gromacs/gromacs-%{version}.tar.gz -# File gotten from http://www.gromacs.org/@api/deki/files/126/=gromacs_manual-4.5.pdf -Source1: manual-4.5.pdf +# File gotten from +# http://www.gromacs.org/@api/deki/files/152/=manual-4.5.4.pdf +Source1: manual-4.5.4.pdf Source2: gromacs-template-makefile-single Source3: gromacs-template-makefile-double Source4: gromacs-template-makefile-mpi-single @@ -26,6 +33,8 @@ BuildRequires: fftw-devel BuildRequires: gsl-devel BuildRequires: libxml2-devel BuildRequires: libX11-devel +# To get rid of executable stacks +BuildRequires: prelink Requires: gromacs-common = %{version}-%{release} @@ -99,7 +108,7 @@ and solid state physics. This package contains libraries needed for operation of GROMACS. - +%if %{with_openmpi} %package openmpi Summary: GROMACS Open MPI binaries and libraries Group: Applications/Engineering @@ -107,6 +116,8 @@ Obsoletes: gromacs-mpi < %{version}-%{release} Requires: gromacs-common = %{version}-%{release} BuildRequires: openmpi-devel Requires: openmpi +# Libs were branched from gromacs, so there are 64-bit installs that have 32-bit packages installed +Obsoletes: gromacs-openmpi < 4.5.3-2 %description openmpi GROMACS is a versatile and extremely well optimized package to perform @@ -154,6 +165,61 @@ and solid state physics. This package contains development libraries for GROMACS Open MPI. You may need it if you want to write your own analysis programs. +%endif + + +%package mpich2 +Summary: GROMACS MPICH2 binaries and libraries +Group: Applications/Engineering +Requires: gromacs-common = %{version}-%{release} +Requires: mpich2 +# Libs were branched from gromacs, so there are 64-bit installs that have 32-bit packages installed +Obsoletes: gromacs-mpich2 < 4.5.3-2 + +%description mpich2 +GROMACS is a versatile and extremely well optimized package to perform +molecular dynamics computer simulations and subsequent trajectory analysis. +It is developed for biomolecules 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 MPICH2 (for running on multiple nodes). +This package single and double precision binaries and libraries. + +%package mpich2-libs +Summary: GROMACS MPICH2 shared libraries +Group: System Environment/Libraries +Requires: mpich2 + +%description mpich2-libs +GROMACS is a versatile and extremely well optimized package to perform +molecular dynamics computer simulations and subsequent trajectory analysis. +It is developed for biomolecules 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 MPICH2. + + +%package mpich2-devel +Summary: GROMACS MPICH2 development libraries +Group: Applications/Engineering +Requires: gromacs-devel = %{version}-%{release} +Requires: gromacs-mpich2 = %{version}-%{release} +BuildRequires: mpich2-devel +Requires: mpich2-devel + +%description mpich2-devel +GROMACS is a versatile and extremely well optimized package to perform +molecular dynamics computer simulations and subsequent trajectory analysis. +It is developed for biomolecules 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 development libraries for GROMACS MPICH2. +You may need it if you want to write your own analysis programs. + %package bash @@ -243,6 +309,7 @@ This package provides tutorials for the use of GROMACS. %build # First, override bug in MPICH2 packaging. +%{_mpich2_unload} # Assembly kernels haven't got .note.GNU-stack sections # because of incompatibilies with Microsoft Assembler. @@ -252,7 +319,7 @@ export CFLAGS="%optflags -Wa,--noexecstack -fPIC" export LIBS="-L%{_libdir}/atlas -lblas -llapack" # Default options, used for all compilations -export DEFOPTS="-D BUILD_SHARED_LIBS=ON -DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_SKIP_BUILD_RPATH:BOOL=ON" +export DEFOPTS="-D BUILD_SHARED_LIBS=ON -DCMAKE_SKIP_RPATH:BOOL=ON -DCMAKE_SKIP_BUILD_RPATH:BOOL=ON -DLIB=%{_lib}" export SINGLE="-D GMX_DOUBLE=OFF" # Single precision export DOUBLE="-D GMX_DOUBLE=ON" # Double precision export MPI="-D GMX_MPI=ON" @@ -283,6 +350,7 @@ export F90=mpif90 export FC=mpif90 ## Open MPI +%if %{with_openmpi} %{_openmpi_load} # Suffix to be used for single precision is SUFFIXCONF="-D GMX_DEFAULT_SUFFIX=OFF -D GMX_BINARY_SUFFIX=$SUFFIX -D GMX_LIBS_SUFFIX=${MPI_SUFFIX}" @@ -303,6 +371,30 @@ make VERBOSE=1 %{?_smp_mflags} mdrun cd .. # unload %{_openmpi_unload} +%endif + + +## MPICH2 +%{_mpich2_load} +# Suffix to be used for single precision is +SUFFIXCONF="-D GMX_DEFAULT_SUFFIX=OFF -D GMX_BINARY_SUFFIX=$SUFFIX -D GMX_LIBS_SUFFIX=${MPI_SUFFIX}" +# MPICH 2 is broken, so need to modify linker command +export CC="mpicc -lstdc++" +# single precision +mkdir mpich2-single +cd mpich2-single +%cmake $DEFOPTS $SINGLE $MPI $SUFFIXCONF .. +make VERBOSE=1 %{?_smp_mflags} mdrun +cd .. +# double precision +# Suffix to be used for double precision is +SUFFIXCONF="-D GMX_DEFAULT_SUFFIX=OFF -D GMX_BINARY_SUFFIX=$SUFFIX -D GMX_LIBS_SUFFIX=${MPI_SUFFIX}_d" +mkdir mpich2-double +cd mpich2-double +%cmake $DEFOPTS $DOUBLE $MPI $SUFFIXCONF .. +make VERBOSE=1 %{?_smp_mflags} mdrun +cd .. +%{_mpich2_unload} %install @@ -310,6 +402,7 @@ rm -rf %{buildroot} ## Open MPI +%if %{with_openmpi} %{_openmpi_load} # Make install-mdrun target is broken, do install manually mkdir -p %{buildroot}%{_libdir}/openmpi/{bin,lib} @@ -324,6 +417,23 @@ install -p -m 755 src/kernel/mdrun %{buildroot}%{_libdir}/openmpi/bin/g_mdrun_op cp -a src/*/*.so* %{buildroot}%{_libdir}/openmpi/lib/ cd .. %{_openmpi_unload} +%endif + +## MPICH 2 +%{_mpich2_load} +# Make install-mdrun target is broken, do install manually +mkdir -p %{buildroot}%{_libdir}/mpich2/{bin,lib} +# single precision +cd mpich2-single +install -p -m 755 src/kernel/mdrun %{buildroot}%{_libdir}/mpich2/bin/g_mdrun_mpich2 +cp -a src/*/*.so* %{buildroot}%{_libdir}/mpich2/lib/ +cd .. +# double precision +cd mpich2-double +install -p -m 755 src/kernel/mdrun %{buildroot}%{_libdir}/mpich2/bin/g_mdrun_mpich2_d +cp -a src/*/*.so* %{buildroot}%{_libdir}/mpich2/lib/ +cd .. +%{_mpich2_unload} ## Serial versions @@ -339,14 +449,6 @@ cd .. ## Now, the rest of the necessary stuff -# Fix location of libraries -%ifarch x86_64 sparc64 -mv %{buildroot}/usr/lib/*.so* %{buildroot}%{_libdir}/ -# and pkgconfig files -mkdir -p %{buildroot}%{_libdir}/pkgconfig/ -mv %{buildroot}/usr/lib/pkgconfig/* %{buildroot}%{_libdir}/pkgconfig/ -%endif - # Install manual & packager's note install -cpm 644 %{SOURCE1} . install -cpm 644 %{SOURCE6} README.fedora @@ -395,6 +497,9 @@ mv %{buildroot}%{_bindir}/completion.csh . # Remove .la files find %{buildroot} -name *.la -exec rm -rf {} \; +# Get rid of executable stacks +find %{buildroot} -name *.so.* -exec execstack -c {} \; + # Post install for libs. MPI packages don't need this. %post libs -p /sbin/ldconfig @@ -412,7 +517,7 @@ rm -rf %{buildroot} %files common %defattr(-,root,root,-) -%doc AUTHORS COPYING README manual-4.5.pdf README.fedora +%doc AUTHORS COPYING README manual-4.5.4.pdf README.fedora %{_bindir}/GMXRC %{_bindir}/GMXRC.bash %{_mandir}/man1/* @@ -447,6 +552,7 @@ rm -rf %{buildroot} %{_datadir}/%{name}/template/ %exclude %{_datadir}/%{name}/template/Makefile.mpi.* +%if %{with_openmpi} %files openmpi %defattr(-,root,root,-) %{_libdir}/openmpi/bin/g_mdrun* @@ -458,6 +564,19 @@ rm -rf %{buildroot} %files openmpi-devel %defattr(-,root,root,-) %{_libdir}/openmpi/lib/lib*.so +%endif + +%files mpich2 +%defattr(-,root,root,-) +%{_libdir}/mpich2/bin/g_mdrun* + +%files mpich2-libs +%defattr(-,root,root,-) +%{_libdir}/mpich2/lib/lib*.so.* + +%files mpich2-devel +%defattr(-,root,root,-) +%{_libdir}/mpich2/lib/lib*.so %files zsh %defattr(-,root,root,-) @@ -479,6 +598,22 @@ rm -rf %{buildroot} %changelog +* Wed Mar 30 2011 Deji Akingunola - 4.5.4-2 +- Rebuild for mpich2 soname bump + +* Wed Mar 23 2011 Jussi Lehtola - 4.5.4-1 +- Update to 4.5.4. + +* Sun Feb 13 2011 Jussi Lehtola - 4.5.3-4 +- Get rid of executable stacks. + +* Mon Feb 07 2011 Dan HorĂ¡k - 4.5.3-3 +- conditionalize OpenMPI support +- fix build on 64-bit platforms + +* Mon Dec 20 2010 Jussi Lehtola - 4.5.3-2 +- Fix rest of BZ #649338. + * Thu Nov 18 2010 Jussi Lehtola - 4.5.3-1 - Update to 4.5.3. diff --git a/sources b/sources index 991099e..ba69383 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -d5911585cd0e0b996dbbdcfb4c3bcf6b gromacs-4.5.3.tar.gz -0f6d3967f2d8fba5c5668f99dfc6aed7 manual-4.5.pdf +5013de941017e014b92d41f82c7e86d6 gromacs-4.5.4.tar.gz +1d4f96c5082e81740e1aa481c13f1537 manual-4.5.4.pdf