rpms/gromacs/F-8 gromacs-configure.patch, NONE, 1.1 gromacs-README.fedora, 1.1, 1.2 gromacs.spec, 1.4, 1.5 sources, 1.4, 1.5

Jussi Lehtola jussilehtola at fedoraproject.org
Fri May 22 09:33:45 UTC 2009


Author: jussilehtola

Update of /cvs/pkgs/rpms/gromacs/F-8
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10796/F-8

Modified Files:
	gromacs-README.fedora gromacs.spec sources 
Added Files:
	gromacs-configure.patch 
Log Message:
Update to upstream version 4.0.5. Added debug packages.


gromacs-configure.patch:

--- NEW FILE gromacs-configure.patch ---
diff -up gromacs-4.0.5/configure.orig gromacs-4.0.5/configure
--- gromacs-4.0.5/configure.orig	2009-05-22 11:59:34.000000000 +0300
+++ gromacs-4.0.5/configure	2009-05-22 12:00:14.000000000 +0300
@@ -31508,12 +31508,7 @@ AS="$CC"
 # However, the non-suffixed names are linked to the _mpi and/or _d suffixed
 # ones upon installation if that is the only version available.
 
-if test "$enable_mpi" = "yes"; then
-  LIBSUFFIX="_mpi"
-fi
-if test "$enable_float" = "no"; then
-  LIBSUFFIX="${LIBSUFFIX}_d"
-fi
+LIBSUFFIX="@LIBSUFFIX@"
 
 
 # Unless the user has explicitly requested a prefix/suffix/transform, we


Index: gromacs-README.fedora
===================================================================
RCS file: /cvs/pkgs/rpms/gromacs/F-8/gromacs-README.fedora,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- gromacs-README.fedora	15 Oct 2008 11:35:30 -0000	1.1
+++ gromacs-README.fedora	22 May 2009 09:33:14 -0000	1.2
@@ -1,4 +1,4 @@
-Oct 12 2008
+Fri May 22 2009
 Jussi Lehtola
 
 
@@ -17,3 +17,8 @@ precision.
 both single and double precision versions. Single precision
 versions have _mpi suffix, double precisin versions _mpi_d suffix.
 For instance g_mdrun_mpi and g_mdrun_mpi_d.
+
+- Debug versions are available of all libraries and binaries with the
+_debug suffix. For instance the debug version of g_mdrun_mpi_d is
+g_mdrun_mpi_d_debug. The debug versions have been compiled without assembly
+loops, so they are much slower than the normal versions.


Index: gromacs.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gromacs/F-8/gromacs.spec,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -p -r1.4 -r1.5
--- gromacs.spec	10 Nov 2008 08:33:58 -0000	1.4
+++ gromacs.spec	22 May 2009 09:33:14 -0000	1.5
@@ -1,13 +1,13 @@
 Name:		gromacs
-Version:	4.0.2
-Release:	6%{?dist}
-Summary:	GROMACS binaries
+Version:	4.0.5
+Release:	1%{?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
-#Source1:	ftp://ftp.gromacs.org/pub/manual/manual-%{version}.pdf
-Source1:	ftp://ftp.gromacs.org/pub/beta/gromacs-4.0.pdf
+Source1:	ftp://ftp.gromacs.org/pub/manual/manual-4.0.pdf
 Source2:	gromacs-template-makefile-single
 Source3:	gromacs-template-makefile-double
 Source4:	gromacs-template-makefile-mpi-single
@@ -16,20 +16,18 @@ Source6:	gromacs-README.fedora
 
 # Add shebangs to scripts
 Patch0:		gromacs-GMXRC.patch
+# Patch gmxdemo for new filenames
+Patch1:		gromacs-gmxdemo.patch
+# Patch configure for the library suffix
+Patch2:		gromacs-configure.patch
 
-BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
-Requires:	gromacs-common  = %{version}-%{release}
+Requires:	gromacs-common = %{version}-%{release}
 
 BuildRequires:	fftw-devel
 BuildRequires:	gsl-devel
 BuildRequires:	libxml2-devel
 BuildRequires:	openmpi-devel
 
-
-# Need to have this so that yum doesn't pull atlas instead
-Requires:	blas
-Requires:	lapack
-
 %if 0%{?rhel} == 4
 BuildRequires:	blas
 BuildRequires:	lapack
@@ -42,19 +40,19 @@ BuildRequires:	libX11-devel
 
 # Check for mpi-selector or environment-modules
 
-%define selector 0
-%define modules 0
+%global selector 0
+%global modules 0
 
 %if 0%{?fedora} > 9
-%define modules 1
+%global modules 1
 %endif
 
 %if 0%{?rhel} == 4
-%define selector 1
+%global selector 1
 %endif
 
 %if 0%{?rhel} == 5
-%define selector 1
+%global selector 1
 %endif
 
 %if %modules == 1
@@ -67,73 +65,117 @@ BuildRequires:	mpi-selector
 
 
 %description
-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.
+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 provides single and double precision binaries.
 The documentation is in the package gromacs-common.
 
-N.B. All binaries have names starting with g_, for example
-mdrun has been renamed to g_mdrun.
+N.B. All binaries have names starting with g_, for example mdrun has been
+renamed to g_mdrun.
+
+
+%package debug
+Summary:	GROMACS debugging binaries without assembly loops
+Group:		Applications/Engineering
+Requires:	gromacs-common = %{version}-%{release}
+
+%description debug
+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 provides debugging versions of single and
+double precision binaries, compiled without assembly loops.
+The documentation is in the package gromacs-common.
+You do not want this package for production purposes.
+
+N.B. All binaries have names starting with g_, for example mdrun has been
+renamed to g_mdrun.
+
 
 %package libs
 Summary:	GROMACS libraries
 Group:		Applications/Engineering
 Requires:	gromacs-common = %{version}-%{release}
-# Need to have this so that yum doesn't pull atlas instead
-Requires:	blas
-Requires:	lapack
 
 %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
-biomolecules like proteins, but the extremely high
-performance means it is used also in several other field
-like polymer chemistry and solid state physics.
+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 provides runtime libraries needed for the single and double
+precision binaries.
+
+
+%package debug-libs
+Summary:	GROMACS libraries without assembly loops for debugging
+Group:		Applications/Engineering
+Requires:	gromacs-common = %{version}-%{release}
+
+%description debug-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 provides runtime libraries needed for the debugging versions of
+the single and double precision binaries.
 
-This package provides runtime libraries needed for the
-single and double precision binaries.
 
 
 %package mpi
 Summary:	GROMACS MPI binaries
 Group:		Applications/Engineering
 Requires:	gromacs-common = %{version}-%{release}
-# Need to have this so that yum doesn't pull atlas instead
-Requires:	blas
-Requires:	lapack
 
 %description mpi
-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.
+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 provides MPI single precision and double precision binaries.
+
+
+%package debug-mpi
+Summary:	GROMACS debugging MPI binaries without assembly loops
+Group:		Applications/Engineering
+Requires:	gromacs-common = %{version}-%{release}
 
-This package provides MPI single precision and double
+%description debug-mpi
+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 provides debugging versions of MPI single precision and double
 precision binaries.
 
 
+
 %package common
 Summary:	GROMACS shared data and documentation
 Group:		Applications/Engineering
 
 %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
-biomolecules like proteins, but the extremely high
-performance means it is used also in several other field
-like polymer chemistry and solid state physics.
+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 includes architecture independent data and
-documentation.
+This package includes architecture independent data and documentation.
 
 
 %package devel
@@ -143,59 +185,109 @@ Requires:	gromacs-common = %{version}-%{
 Requires:	gromacs-libs = %{version}-%{release}
 
 %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
-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 header files, development libraries,
-and a program example for the GROMACS molecular
-dynamics software. You need it if you want to write your
-own analysis programs.
+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 header files and development libraries for the GROMACS
+molecular dynamics software. You need it if you want to write your own analysis
+programs.
+
+
+
+%package debug-devel
+Summary:	GROMACS debugging header files and development libraries
+Group:		Applications/Engineering
+Requires:	gromacs-common = %{version}-%{release}
+Requires:	gromacs-devel = %{version}-%{release}
+Requires:	gromacs-debug-libs = %{version}-%{release}
+
+%description debug-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 header files and development libraries for the debugging
+version of the GROMACS molecular dynamics software.
+
 
 
 %package mpi-devel
 Summary:	GROMACS MPI development libraries
 Group:		Applications/Engineering
 Requires:	gromacs-mpi-libs = %{version}-%{release}
-Requires:	gromacs-devel =  %{version}-%{release}
+Requires:	gromacs-devel = %{version}-%{release}
 # Need to have this so that yum doesn't install LAM instead
 Requires:	openmpi
 
 %description mpi-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.
+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 MPI.
 You need it if you want to write your own analysis programs.
 
 
+%package debug-mpi-devel
+Summary:	GROMACS debugging MPI development libraries
+Group:		Applications/Engineering
+Requires:	gromacs-debug-mpi-libs = %{version}-%{release}
+Requires:	gromacs-debug-devel = %{version}-%{release}
+# Need to have this so that yum doesn't install LAM instead
+Requires:	openmpi
+
+%description debug-mpi-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 debugging versions of development libraries for the MPI
+version of GROMACS.
+
+
 %package mpi-libs
-Summary:	GROMACS libraries
+Summary:	GROMACS MPI libraries
 Group:		Applications/Engineering
 Requires:	gromacs-common = %{version}-%{release}
 # Need to have this so that yum doesn't install LAM instead
 Requires:	openmpi
-# Need to have this so that yum doesn't pull atlas instead
-Requires:	blas
-Requires:	lapack
 
 %description mpi-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.
+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 provides runtime libraries needed for the MPI single and double
+precision binaries.
+
+
+%package debug-mpi-libs
+Summary:	GROMACS debugging MPI libraries
+Group:		Applications/Engineering
+Requires:	gromacs-common = %{version}-%{release}
+# Need to have this so that yum doesn't install LAM instead
+Requires:	openmpi
 
-This package provides runtime libraries needed for the
-MPI single and double precision binaries.
+%description debug-mpi-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 provides debugging versions of runtime libraries needed for the
+debug versions of the MPI single and double precision binaries.
 
 
 %package bash
@@ -204,15 +296,13 @@ Group:		Applications/Engineering
 Requires:	bash-completion
 
 %description bash
-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.
+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 provides the needed 
-bash completion for GROMACS
+This package provides bash completion for GROMACS.
 
 
 %package zsh
@@ -221,15 +311,14 @@ Group:		Applications/Engineering
 Requires:	zsh
 
 %description zsh
-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.
+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 provides scripts needed to run GROMACS with
-zsh, also it provides zsh completion.
+This package provides scripts needed to run GROMACS with zsh and zsh
+completion.
 
 
 %package csh
@@ -238,15 +327,14 @@ Group:		Applications/Engineering
 Requires:	csh
 
 %description csh
-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.
+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 provides scripts needed to run GROMACS with
-csh and a completion script.
+This package provides scripts needed to run GROMACS with csh and a completion
+script.
 
 %package tutor
 Summary:	GROMACS tutorial files
@@ -254,21 +342,22 @@ Group:		Applications/Engineering
 Requires:	gromacs-common = %{version}-%{release}
 
 %description tutor
-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.
+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 provides tutorials for the use of GROMACS.
 
 %prep
 %setup -q
-%patch0 -p1
+%patch0 -p1 -b .gmxrc
+%patch1 -p1 -b .gmxdemo
+%patch2 -p1 -b .libsuffix
 
 # Fix incorrect permission
-chmod a-x src/tools/gmx_xpm2ps.c
+#chmod a-x src/tools/gmx_xpm2ps.c
 
 
 
@@ -280,40 +369,71 @@ chmod a-x src/tools/gmx_xpm2ps.c
 export CFLAGS="%optflags -Wa,--noexecstack -fPIC"
 export LIBS="-lblas -llapack"
 
+# Default options, used for all compilations
+export DEFOPTS="--enable-shared --disable-static --with-external-blas \
+	--with-external-lapack --with-gsl --with-x"
+export SINGLE="--enable-float" # Single precision
+export DOUBLE="--disable-float" # Double precision
+export MPI="--enable-mpi"
+export NOASM="--disable-ia32-3dnow --disable-ia32-sse --disable-x86-64-sse \
+	--disable-ppc-altivec --disable-ia64-asm"
+
+
 # Single precision
 mkdir single
 cd single
-ln -s ../configure .
-%configure --enable-shared \
-	--disable-static --enable-float \
-	--with-external-blas --with-external-lapack \
-	--with-gsl --with-x
+sed "s|@LIBSUFFIX@||g" < ../configure > configure; chmod 777 configure
+%configure $DEFOPTS $SINGLE
+sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+
+make %{?_smp_mflags}
+cd ..
+
+# Single precision, debug version with no assembly loops
+mkdir single-debug
+cd single-debug
+sed "s|@LIBSUFFIX@|_debug|g" < ../configure > configure; chmod 777 configure
+%configure $DEFOPTS $SINGLE $NOASM --program-suffix="_debug"
 sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
 sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
 
 make %{?_smp_mflags}
 cd ..
 
+
+
 # Double precision
 mkdir double
 cd double
-ln -s ../configure .
-%configure --disable-rpath --enable-shared \
-	--disable-static --disable-float \
-	--with-external-blas --with-external-lapack \
-	--with-gsl --with-x \
-	--program-suffix=_d
+sed "s|@LIBSUFFIX@|_d|g" < ../configure > configure; chmod 777 configure
+%configure $DEFOPTS $DOUBLE --program-suffix="_d"
+sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+
+make %{?_smp_mflags}
+cd ..
+
+# Double precision, debug version with no assembly loops
+mkdir double-debug
+cd double-debug
+sed "s|@LIBSUFFIX@|_d_debug|g" < ../configure > configure; chmod 777 configure
+%configure $DEFOPTS $DOUBLE $NOASM --program-suffix="_d_debug"
 sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
 sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
 
 make %{?_smp_mflags}
 cd ..
 
+
+
 # Load MPI enviroment
 
 %if %modules == 1
 . /etc/profile.d/modules.sh
 module load %{_libdir}/openmpi/*/openmpi.module
+# The module overrides CFLAGS, need to set them again..
+export CFLAGS="%optflags -Wa,--noexecstack -fPIC"
 %endif
 
 %if %selector == 1
@@ -327,12 +447,19 @@ source /etc/profile.d/mpi-selector.sh
 
 mkdir mpi-single
 cd mpi-single
-ln -s ../configure .
-%configure --enable-shared \
-	--disable-static --enable-float \
-	--with-external-blas --with-external-lapack \
-	--with-gsl --with-x --enable-mpi \
-	--program-suffix=_mpi
+sed "s|@LIBSUFFIX@|_mpi|g" < ../configure > configure; chmod 777 configure
+%configure $DEFOPTS $SINGLE $MPI --program-suffix="_mpi"
+sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+
+make %{?_smp_mflags} mdrun
+#make %{?_smp_mflags}
+cd ..
+
+mkdir mpi-single-debug
+cd mpi-single-debug
+sed "s|@LIBSUFFIX@|_mpi_debug|g" < ../configure > configure; chmod 777 configure
+%configure $DEFOPTS $SINGLE $MPI $NOASM --program-suffix="_mpi_debug"
 sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
 sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
 
@@ -340,15 +467,24 @@ make %{?_smp_mflags} mdrun
 #make %{?_smp_mflags}
 cd ..
 
+
+
 # MPI, double precision
 mkdir mpi-double
 cd mpi-double
-ln -s ../configure .
-%configure --enable-shared \
-	--disable-static --disable-float \
-	--with-external-blas --with-external-lapack \
-	--with-gsl --with-x --enable-mpi \
-	--program-suffix=_mpi_d
+sed "s|@LIBSUFFIX@|_mpi_d|g" < ../configure > configure; chmod 777 configure
+%configure $DEFOPTS $DOUBLE $MPI --program-suffix="_mpi_d"
+sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
+sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
+
+make %{?_smp_mflags} mdrun
+#make %{?_smp_mflags}
+cd ..
+
+mkdir mpi-double-debug
+cd mpi-double-debug
+sed "s|@LIBSUFFIX@|_mpi_d_debug|g" < ../configure > configure; chmod 777 configure
+%configure $DEFOPTS $DOUBLE $MPI $NOASM --program-suffix="_mpi_d_debug"
 sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
 sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool
 
@@ -360,16 +496,39 @@ cd ..
 %install
 rm -rf %{buildroot}
 
+# 4.0.3 needs this to build in EPEL-4
+# Load MPI enviroment
+%if %modules == 1
+. /etc/profile.d/modules.sh
+module load %{_libdir}/openmpi/*/openmpi.module
+export CFLAGS="%optflags -Wa,--noexecstack -fPIC"
+%endif
+
+%if %selector == 1
+# Set MPI environment
+mpi-selector --set `mpi-selector --list | grep openmpi`
+source /etc/profile.d/mpi-selector.sh
+%endif
+
+
 # Single precision
 cd single
 make DESTDIR=%{buildroot} INSTALL="install -p" install
 cd ..
 
+cd single-debug
+make DESTDIR=%{buildroot} INSTALL="install -p" install
+cd ..
+
 # Double precision
 cd double
 make DESTDIR=%{buildroot} INSTALL="install -p" install
 cd ..
 
+cd double-debug
+make DESTDIR=%{buildroot} INSTALL="install -p" install
+cd ..
+
 
 
 # MPI, single precision
@@ -377,11 +536,21 @@ cd mpi-single
 make DESTDIR=%{buildroot} INSTALL="install -p" install-mdrun
 cd ..
 
+cd mpi-single-debug
+make DESTDIR=%{buildroot} INSTALL="install -p" install-mdrun
+cd ..
+
+
 # MPI, double precision
 cd mpi-double
 make DESTDIR=%{buildroot} INSTALL="install -p" install-mdrun
 cd ..
 
+cd mpi-double-debug
+make DESTDIR=%{buildroot} INSTALL="install -p" install-mdrun
+cd ..
+
+
 # Install manual & packager's note
 install -cpm 644 %{SOURCE1} .
 install -cpm 644 %{SOURCE6} README.fedora
@@ -402,7 +571,9 @@ chmod a+x %{buildroot}%{_bindir}/GMXRC %
 # (This is done here so that we don't need to mess with machine generated makefiles.
 for bin in anadock do_dssp editconf eneconv genbox genconf genion genrestr gmxcheck gmxdump grompp highway luck make_edi make_ndx mdrun mk_angndx ngmx pdb2gmx protonate sigeps tpbconv trjcat trjconv trjorder wheel x2top xpm2ps xrama ; do 
 mv %{buildroot}%{_bindir}/${bin} %{buildroot}%{_bindir}/g_${bin}
+mv %{buildroot}%{_bindir}/${bin}_debug %{buildroot}%{_bindir}/g_${bin}_debug
 mv %{buildroot}%{_bindir}/${bin}_d %{buildroot}%{_bindir}/g_${bin}_d
+mv %{buildroot}%{_bindir}/${bin}_d_debug %{buildroot}%{_bindir}/g_${bin}_d_debug
 done
 
 for bin in demux.pl xplor2gmx.pl; do
@@ -413,7 +584,9 @@ done
 # the possibility to compile all mpi-enabled files
 for mpibin in mdrun; do
 mv %{buildroot}%{_bindir}/${mpibin}_mpi %{buildroot}%{_bindir}/g_${mpibin}_mpi
+mv %{buildroot}%{_bindir}/${mpibin}_mpi_debug %{buildroot}%{_bindir}/g_${mpibin}_mpi_debug
 mv %{buildroot}%{_bindir}/${mpibin}_mpi_d %{buildroot}%{_bindir}/g_${mpibin}_mpi_d
+mv %{buildroot}%{_bindir}/${mpibin}_mpi_d_debug %{buildroot}%{_bindir}/g_${mpibin}_mpi_d_debug
 done
 
 # Man pages
@@ -442,10 +615,19 @@ rm -rf %{buildroot}/%{_libdir}/*.la
 
 %postun libs -p /sbin/ldconfig
 
+%post debug-libs -p /sbin/ldconfig
+
+%postun debug-libs -p /sbin/ldconfig
+
 %post mpi-libs -p /sbin/ldconfig
 
 %postun mpi-libs -p /sbin/ldconfig
 
+%post debug-mpi-libs -p /sbin/ldconfig
+
+%postun debug-mpi-libs -p /sbin/ldconfig
+
+
 
 %clean
 rm -rf %{buildroot}
@@ -458,10 +640,16 @@ rm -rf %{buildroot}
 %files
 %defattr(-,root,root,-)
 %{_bindir}/*
-%exclude %{_bindir}/g_mdrun_mpi
-%exclude %{_bindir}/g_mdrun_mpi_d
+%exclude %{_bindir}/*_debug
+%exclude %{_bindir}/g_mdrun_mpi*
 %exclude %{_bindir}/GMXRC*
 
+%files debug
+%defattr(-,root,root,-)
+%{_bindir}/*_debug
+%exclude %{_bindir}/g_mdrun_mpi_debug
+%exclude %{_bindir}/g_mdrun_mpi_d_debug
+
 %files libs
 %defattr(-,root,root,-)
 %{_libdir}/libgmx.so.*
@@ -471,11 +659,25 @@ rm -rf %{buildroot}
 %{_libdir}/libmd.so.*
 %{_libdir}/libmd_d.so.*
 
+%files debug-libs
+%defattr(-,root,root,-)
+%{_libdir}/libgmx_debug.so.*
+%{_libdir}/libgmx_d_debug.so.*
+%{_libdir}/libgmxana_debug.so.*
+%{_libdir}/libgmxana_d_debug.so.*
+%{_libdir}/libmd_debug.so.*
+%{_libdir}/libmd_d_debug.so.*
+
+
 %files mpi
 %defattr(-,root,root,-)
 %{_bindir}/g_mdrun_mpi
 %{_bindir}/g_mdrun_mpi_d
 
+%files debug-mpi
+%defattr(-,root,root,-)
+%{_bindir}/g_mdrun_mpi_debug
+%{_bindir}/g_mdrun_mpi_d_debug
 
 %files mpi-libs
 %defattr(-,root,root,-)
@@ -484,11 +686,17 @@ rm -rf %{buildroot}
 %{_libdir}/libmd_mpi.so.*
 %{_libdir}/libmd_mpi_d.so.*
 
+%files debug-mpi-libs
+%defattr(-,root,root,-)
+%{_libdir}/libgmx_mpi_debug.so.*
+%{_libdir}/libgmx_mpi_d_debug.so.*
+%{_libdir}/libmd_mpi_debug.so.*
+%{_libdir}/libmd_mpi_d_debug.so.*
 
 
 %files common
 %defattr(-,root,root,-)
-%doc AUTHORS COPYING README gromacs-4.0.pdf README.fedora
+%doc AUTHORS COPYING README manual-4.0.pdf README.fedora
 %{_bindir}/GMXRC
 %{_bindir}/GMXRC.bash
 %{_mandir}/man1/*
@@ -508,6 +716,15 @@ rm -rf %{buildroot}
 %{_datadir}/%{name}/template
 %exclude %{_datadir}/%{name}/template/Makefile.mpi.*
 
+%files debug-devel
+%defattr(-,root,root,-)
+%{_libdir}/libgmx_debug.so
+%{_libdir}/libgmx_d_debug.so
+%{_libdir}/libgmxana_debug.so
+%{_libdir}/libgmxana_d_debug.so
+%{_libdir}/libmd_debug.so
+%{_libdir}/libmd_d_debug.so
+
 %files mpi-devel
 %defattr(-,root,root,-)
 %{_libdir}/libgmx_mpi.so
@@ -516,6 +733,13 @@ rm -rf %{buildroot}
 %{_libdir}/libmd_mpi_d.so
 %{_datadir}/%{name}/template/Makefile.mpi.*
 
+%files debug-mpi-devel
+%defattr(-,root,root,-)
+%{_libdir}/libgmx_mpi_debug.so
+%{_libdir}/libgmx_mpi_d_debug.so
+%{_libdir}/libmd_mpi_debug.so
+%{_libdir}/libmd_mpi_d_debug.so
+
 
 %files zsh
 %defattr(-,root,root,-)
@@ -538,56 +762,80 @@ rm -rf %{buildroot}
 
 
 %changelog
-* Mon Nov 10 2008 Jussi Lehtola - 4.0.2-6
+* Fri May 22 2009 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0.5-1
+- Update to 4.0.5.
+- Change spec %%defines to %%globals.
+- Add debug subpackages to make debugging of GROMACS possible.
+
+* Tue Feb 17 2009 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0.4-1
+- Update to 4.0.4.
+
+* Mon Jan 19 2009 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0.3-4
+- Retry fixing gmxdemo.
+
+* Mon Jan 19 2009 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0.3-3
+- Fixed gmxdemo.
+
+* Mon Jan 19 2009 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0.3-2
+- Fix EPEL 4 build.
+
+* Mon Jan 19 2009 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0.3-1
+- Update to 4.0.3.
+
+* Wed Jan 14 2009 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0.2-7
+- Update manual to latest version.
+- Removed Requires: blas and lapack.
+
+* Mon Nov 10 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0.2-6
 - Update to 4.0.2.
 
-* Sun Nov 09 2008 Jussi Lehtola - 4.0.1-5
+* Sun Nov 09 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0.1-5
 - Add Requires: blas too.
 
-* Sun Nov 09 2008 Jussi Lehtola - 4.0.1-4
+* Sun Nov 09 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0.1-4
 - Update to 4.0.1.
 - Add Requires: lapack and openmpi to prevent yum from pulling atlas and lam
 instead.
 
-* Wed Oct 15 2008 Jussi Lehtola - 4.0-3
+* Wed Oct 15 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-3
 - Rename also man pages.
 
-* Mon Oct 13 2008 Jussi Lehtola - 4.0-2
+* Mon Oct 13 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-2
 - Added noreplace to bash completion file.
 - Changed double precision mpi binary suffix to _mpi_d.
 
-* Sun Oct 12 2008 Jussi Lehtola - 4.0-1
+* Sun Oct 12 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-1
 - Update to Gromacs 4.0.
 - Remove module system and patch file names to begin with g_.
 
-* Wed Oct 08 2008 Jussi Lehtola - 4.0-0.15.rc3
+* Wed Oct 08 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.15.rc3
 - Changed location of binaries.
 - Removed conflict of module file, as the program is binary compatible with older versions.
 
-* Wed Oct 08 2008 Jussi Lehtola - 4.0-0.14.rc3
+* Wed Oct 08 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.14.rc3
 - The gromacs module is loaded automatically and it conflicts with gromacs3.
 
-* Tue Oct 07 2008 Jussi Lehtola - 4.0-0.13.rc3
+* Tue Oct 07 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.13.rc3
 - Renamed module files from %%{name}-%%{version} to %%{name}.
 
-* Mon Oct 06 2008 Jussi Lehtola - 4.0-0.12.rc3
+* Mon Oct 06 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.12.rc3
 - Fix BR to get GROMACS to build in mock for epel-4.
 
-* Sat Oct 04 2008 Jussi Lehtola - 4.0-0.11.rc3
+* Sat Oct 04 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.11.rc3
 - Fix to get GROMACS to build in mock for epel-5.
 
-* Sat Oct 04 2008 Jussi Lehtola - 4.0-0.10.rc3
+* Sat Oct 04 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.10.rc3
 - Implement module system & remove binary renaming.
 - No need for autoreconf anymore.
 - Update to rc3.
 
-* Sat Oct 04 2008 Jussi Lehtola - 4.0-0.9.rc2
+* Sat Oct 04 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.9.rc2
 - Fall back to autoreconf due to binary renaming.
 
-* Fri Oct 03 2008 Jussi Lehtola - 4.0-0.8.rc2
+* Fri Oct 03 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.8.rc2
 - Modified install commands to preserve timestamps.
 
-* Fri Oct 03 2008 Jussi Lehtola - 4.0-0.7.rc2
+* Fri Oct 03 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.7.rc2
 - Even more review fixes.
 - Binaries renamed:
 	highway	->	g_highway
@@ -595,31 +843,31 @@ instead.
 	sigeps	->	g_sigeps
 	wheel	->	g_wheel
 
-* Thu Oct 02 2008 Jussi Lehtola - 4.0-0.6.rc2
+* Thu Oct 02 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.6.rc2
 - Final review fixes.
 
-* Wed Oct 01 2008 Jussi Lehtola - 4.0-0.5.rc2
+* Wed Oct 01 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.5.rc2
 - Strip down requires by branching tutor to its own package.
 
-* Tue Sep 30 2008 Jussi Lehtola - 4.0-0.4.rc2
+* Tue Sep 30 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.4.rc2
 - Extensive package review fixes.
 - Unclear licenses on some files, filed upstream bug 217.
   http://bugzilla.gromacs.org/show_bug.cgi?id=217
 
-* Mon Sep 29 2008 Jussi Lehtola - 4.0-0.3.rc2
+* Mon Sep 29 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.3.rc2
 - Move .so files to -devel package.
 - Remove .la files.
 
-* Mon Sep 29 2008 Jussi Lehtola - 4.0-0.2.rc2
+* Mon Sep 29 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.2.rc2
 - Implement out-of-tree-builds.
 - Add --noexecstack to CFLAGS.
 - Remove execstack procedure and prelink from buildreqs.
 - Filed upstream bug 215 to add .note.GNU-stack .
 - Fix incorrect file permission on src/tools/gmx_xpm2ps.c .
 
-* Mon Sep 29 2008 Jussi Lehtola - 4.0-0.1.rc2
+* Mon Sep 29 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.1.rc2
 - Alphabetized buildrequires.
 - Changed gromacs-share to gromacs-common.
 
-* Fri Sep 26 2008 Jussi Lehtola - 4.0-0.0.rc2
+* Fri Sep 26 2008 Jussi Lehtola <jussi.lehtola at iki.fi> - 4.0-0.0.rc2
 - Initial build.


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/gromacs/F-8/sources,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -p -r1.4 -r1.5
--- sources	10 Nov 2008 08:33:59 -0000	1.4
+++ sources	22 May 2009 09:33:14 -0000	1.5
@@ -1,2 +1,2 @@
-7a7680983a3a6fcc06b2817c6ab614fc  gromacs-4.0.pdf
-7a9eedf9ef365d32cd01355b8950ddc5  gromacs-4.0.2.tar.gz
+2b6565bef76109a579c39ec1dcb0ecf2  manual-4.0.pdf
+2db2261852a4d3a97547979f379dee94  gromacs-4.0.5.tar.gz




More information about the scm-commits mailing list