Commit bc2e146a authored by Nicholas Breen's avatar Nicholas Breen

* Transition to only the two supported MPI implementations:

  - gromacs-mpich now builds against MPICH2, not MPICH1.
  - gromacs-lam replaced with a dummy package installing gromacs-
    openmpi on all supported architectures, -mpich on the holdouts.
  - Update documentation accordingly.
* patches/30_git_release-4.0-patches.dpatch: Pull from upstream git
  repository, release-4.0-patches branch.  Current to git commit
  37a4dd35fec7579ca7faca25c62c71cf1d8e1621, 29 Nov. 2009.
* patches/21_makefile_dups.dpatch: Delete, incorporated above
  (commit c93db8511af09c144fe4b2b8f57b14a5ad1e6cc7).
* compat: Update to debhelper v7 mode.
  - rules: Replace dh_clean -k with dh_prep.
  - control: Adjust Build-Depends to debhelper (>= 7.0.0).
* copyright: Increment year.
* rules: Use chrpath to eliminate RPATH from MPICH2-compiled binaries.
  This is a workaround for a libmpich2-dev bug, #558960.
  - control: Add chrpath to Build-Depends.
* rules: Add -Wl,--as-needed to LDFLAGS.
parent 37ecd01f
gromacs (4.0.5-5) unstable; urgency=low
* Transition to only the two supported MPI implementations:
- gromacs-mpich now builds against MPICH2, not MPICH1.
- gromacs-lam replaced with a dummy package installing gromacs-
openmpi on all supported architectures, -mpich on the holdouts.
- Update documentation accordingly.
* patches/30_git_release-4.0-patches.dpatch: Pull from upstream git
repository, release-4.0-patches branch. Current to git commit
dc81be6b57397a69b9e9fb63269622259ac924c2, 6 Nov. 2009.
37a4dd35fec7579ca7faca25c62c71cf1d8e1621, 29 Nov. 2009.
* patches/21_makefile_dups.dpatch: Delete, incorporated above
(commit c93db8511af09c144fe4b2b8f57b14a5ad1e6cc7).
-- Nicholas Breen <nbreen@ofb.net> Mon, 09 Nov 2009 15:51:29 -0800
* compat: Update to debhelper v7 mode.
- rules: Replace dh_clean -k with dh_prep.
- control: Adjust Build-Depends to debhelper (>= 7.0.0).
* copyright: Increment year.
* rules: Use chrpath to eliminate RPATH from MPICH2-compiled binaries.
This is a workaround for a libmpich2-dev bug, #558960.
- control: Add chrpath to Build-Depends.
* rules: Add -Wl,--as-needed to LDFLAGS.
-- Nicholas Breen <nbreen@ofb.net> Mon, 30 Nov 2009 16:18:34 -0800
gromacs (4.0.5-4) unstable; urgency=low
......
......@@ -3,7 +3,7 @@ Section: science
Priority: extra
Maintainer: Debichem Team <debichem-devel@lists.alioth.debian.org>
Uploaders: Nicholas Breen <nbreen@ofb.net>
Build-Depends: debhelper (>= 5.0.0), dpatch, libfftw3-dev, libmpich1.0-dev (>= 1.2.7-6), lam4-dev, libopenmpi-dev (>= 1.2.4-5) [alpha amd64 i386 ia64 powerpc kfreebsd-i386 kfreebsd-amd64 hurd-i386], lesstif2-dev, libxt-dev, libsm-dev, libice-dev, libxext-dev, libxp-dev, libx11-dev, zlib1g-dev, libgsl0-dev, gfortran [alpha], autotools-dev (>= 20070725.1), autoconf, automake (>= 1:1.10), libtool
Build-Depends: debhelper (>= 7.0.0), dpatch, libfftw3-dev, libmpich2-dev, libopenmpi-dev (>= 1.2.4-5) [alpha amd64 i386 ia64 powerpc kfreebsd-i386 kfreebsd-amd64 hurd-i386], lesstif2-dev, libxt-dev, libsm-dev, libice-dev, libxext-dev, libxp-dev, libx11-dev, zlib1g-dev, libgsl0-dev, gfortran [alpha], autotools-dev (>= 20070725.1), autoconf, automake (>= 1:1.10), libtool, chrpath
Build-Conflicts: autoconf2.13
Standards-Version: 3.8.3
Homepage: http://www.gromacs.org/
......@@ -57,7 +57,7 @@ Architecture: any
Section: devel
Depends: ${shlibs:Depends}, gromacs (= ${binary:Version}), fftw3-dev
Recommends: gromacs-data
Suggests: gromacs-lam (= ${binary:Version}) | gromacs-mpich (= ${binary:Version}) | gromacs-openmpi (= ${binary:Version}) [alpha amd64 i386 ia64 powerpc kfreebsd-i386 kfreebsd-amd64 hurd-i386], libmpich1.0-dev, lam4-dev, lesstif2-dev, libxt-dev, libsm-dev, libice-dev, libxext-dev, libxp-dev, libx11-dev, zlib1g-dev
Suggests: gromacs-mpich (= ${binary:Version}) | gromacs-openmpi (= ${binary:Version}) [alpha amd64 i386 ia64 powerpc kfreebsd-i386 kfreebsd-amd64 hurd-i386], libmpich2-dev, lesstif2-dev, libxt-dev, libsm-dev, libice-dev, libxext-dev, libxp-dev, libx11-dev, zlib1g-dev
Description: GROMACS molecular dynamics sim, development kit
GROMACS is a versatile package to perform molecular dynamics, i.e. simulate
the Newtonian equations of motion for systems with hundreds to millions of
......@@ -76,7 +76,7 @@ Description: GROMACS molecular dynamics sim, development kit
Package: gromacs-mpich
Architecture: any
Section: science
Depends: ${shlibs:Depends}, mpich-bin
Depends: ${shlibs:Depends}, mpich2
Recommends: gromacs
Suggests: gromacs-data
Description: Molecular dynamics sim, binaries for MPICH parallelization
......@@ -91,29 +91,19 @@ Description: Molecular dynamics sim, binaries for MPICH parallelization
biological systems, e.g. polymers.
.
This package contains only the core simulation engine with parallel
support using the MPICH interface. It is suitable for nodes of a
support using the MPICH (v2) interface. It is suitable for nodes of a
processing cluster, or for multiprocessor machines.
Package: gromacs-lam
Architecture: any
Section: science
Depends: ${shlibs:Depends}, lam-runtime (>= 7.0)
Recommends: gromacs
Suggests: gromacs-data
Description: Molecular dynamics sim, binaries for LAM-MPI parallelization
GROMACS is a versatile package to perform molecular dynamics, i.e. simulate
the Newtonian equations of motion for systems with hundreds to millions of
particles.
Depends: gromacs-openmpi [alpha amd64 i386 ia64 powerpc kfreebsd-i386 kfreebsd-amd64 hurd-i386], gromacs-mpich [!alpha !amd64 !i386 !ia64 !powerpc !kfreebsd-i386 !kfreebsd-amd64 !hurd-i386]
Description: Transition package to gromacs-openmpi
This package is provided to automate the transition from the LAM-MPI
implementation to its successor, OpenMPI. (On architectures where OpenMPI
is unavailable, it will install MPICH2 instead.)
.
It is primarily designed for biochemical molecules like proteins and lipids
that have a lot of complicated bonded interactions, but since GROMACS is
extremely fast at calculating the nonbonded interactions (that usually
dominate simulations) many groups are also using it for research on non-
biological systems, e.g. polymers.
.
This package contains only the core simulation engine with parallel
support using the LAM-MPI interface. It is suitable for nodes of a
processing cluster, or for multiprocessor machines.
It may safely be removed from your system.
Package: gromacs-openmpi
Architecture: alpha amd64 i386 ia64 powerpc kfreebsd-i386 kfreebsd-amd64 hurd-i386
......
......@@ -24,7 +24,7 @@ Former contributors include:
Copyright:
Copyright (c) 1991-2001, University of Groningen, The Netherlands.
Copyright (c) 2001-2007, The GROMACS development team.
Copyright (c) 2001-2009, The GROMACS development team.
License:
......
This is a transitional package to gromacs-openmpi. The LAM-MPI implementation
is no longer under development, and activity has moved to OpenMPI instead.
OpenMPI is based on a merger of LAM-MPI, FT-MPI, and LA-MPI, and (in part)
PACX-MPI, and incorporates nearly all of the features of each.
After installing gromacs-openmpi, this package may be removed from your
system.
usr/bin
usr/share/man/man1
usr/share/lintian/overrides
......@@ -25,11 +25,7 @@ set -e
case "$1" in
configure)
update-alternatives \
--install /usr/bin/mdrun_mpi mdrun_mpi /usr/bin/mdrun_mpi.lam 5 \
--slave /usr/bin/mdrun_mpi_d mdrun_mpi_d /usr/bin/mdrun_mpi_d.lam \
--slave /usr/share/man/man1/mdrun_mpi.1.gz mdrun_mpi.1.gz /usr/share/man/man1/mdrun_mpi.lam.1.gz \
--slave /usr/share/man/man1/mdrun_mpi_d.1.gz mdrun_mpi_d.1.gz /usr/share/man/man1/mdrun_mpi_d.lam.1.gz
update-alternatives --remove mdrun_mpi /usr/bin/mdrun_mpi.lam
;;
abort-upgrade|abort-remove|abort-deconfigure)
......
#! /bin/sh
# prerm script for gromacs-lam
set -e
case "$1" in
upgrade)
;;
remove|deconfigure|failed-upgrade)
update-alternatives --remove mdrun_mpi /usr/bin/mdrun_mpi.lam
;;
*)
echo "prerm called with unknown argument \`$1'" >&2
exit 1
;;
esac
#DEBHELPER#
exit 0
......@@ -4,23 +4,22 @@ GROMACS for Debian
The basic 'gromacs' package contains only single-threaded binaries. For
multiple threads or machines, you will need the MPI-enabled version of mdrun.
Depending on your MPI implementation of choice, install either the
'gromacs-lam', 'gromacs-mpich' or 'gromacs-openmpi' packages.
'gromacs-openmpi' or 'gromacs-mpich'.
If you are setting up an MPI installation for the first time and have no
existing preference, then 'gromacs-openmpi' is your best choice. OpenMPI is
currently the most active MPI development project, and has incorporated several
other MPI implementations under its umbrella. Also consider installing the
'openmpi-doc' package for additional documentation.
'openmpi-doc' package for additional documentation. OpenMPI has superseded the
LAM-MPI project.
Previously, the recommended implementation was LAM-MPI. Although its
development has largely halted in favor of OpenMPI, LAM does still support a
wider variety of platforms. It remains a good option. MPICH is largely
unsupported, and is a poor choice for new installations.
'gromacs-mpich' supports the MPICH2 implementation. Although less commonly
used in the GROMACS community than OpenMPI (and its predecessor LAM), it does
support more architectures and also has an active developer base.
All of the MPI packages install their version of 'mdrun' as 'mdrun_mpi',
so you can keep both regular and MPI binaries on the same machine.
See the README files in /usr/share/doc/gromacs-openmpi,
/usr/share/doc/gromacs-lam, or /usr/share/doc/gromacs-mpich (when
Both of the MPI packages install their version of 'mdrun' as 'mdrun_mpi', so
you can keep both regular and MPI binaries on the same machine. See the README
files in /usr/share/doc/gromacs-openmpi or /usr/share/doc/gromacs-mpich (when
installed) for additional information.
Finally, the MPI packages can be installed independently of the main
......@@ -54,4 +53,4 @@ calculations can often solve such problems, with a tradeoff in speed
"_d" suffix, and in all other ways operate identically to their single-
precision counterparts.
-- Nicholas Breen <nbreen@ofb.net>, Mon, 10 Nov 2008 13:36:06 -0800
-- Nicholas Breen <nbreen@ofb.net>, Mon, 16 Nov 2009 10:31:16 -0800
gromacs-lam: package-name-doesnt-match-sonames
shlib-with-executable-stack
This diff is collapsed.
......@@ -27,6 +27,8 @@ ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
CFLAGS += -O0
endif
LDFLAGS += -Wl,--as-needed
COMMON_CONFIG_PARAMS = \
--host=$(DEB_HOST_GNU_TYPE) \
--build=$(DEB_BUILD_GNU_TYPE) \
......@@ -41,20 +43,12 @@ ifdef CFLAGS
COMMON_CONFIG_PARAMS += CFLAGS="$(CFLAGS)"
endif
LAM_CONFIG_PARAMS = \
--enable-mpi \
--without-x \
--without-gsl \
MPICC=/usr/bin/mpicc.lam \
CC=/usr/bin/mpicc.lam \
LDFLAGS="-L/usr/lib/lam/lib $(LDFLAGS)"
MPICH_CONFIG_PARAMS = \
--enable-mpi \
--without-x \
--without-gsl \
MPICC=/usr/bin/mpicc.mpich \
CC=/usr/bin/mpicc.mpich
MPICC=/usr/bin/mpicc.mpich2 \
CC=/usr/bin/mpicc.mpich2
OPENMPI_CONFIG_PARAMS = \
--enable-mpi \
......@@ -89,8 +83,6 @@ configure-stamp: patch-stamp
# -dp is the place for double-precision builds
(mkdir -p build/basic; cd build/basic; ../../configure $(COMMON_CONFIG_PARAMS) --with-gsl )
(mkdir -p build/basic-dp; cd build/basic-dp; ../../configure $(COMMON_CONFIG_PARAMS) --with-gsl --program-suffix=_d --enable-double)
(mkdir -p build/lam; cd build/lam; ../../configure $(COMMON_CONFIG_PARAMS) $(LAM_CONFIG_PARAMS) LIBSUFFIX=_mpi_lam --program-suffix=_mpi.lam)
(mkdir -p build/lam-dp; cd build/lam-dp; ../../configure $(COMMON_CONFIG_PARAMS) $(LAM_CONFIG_PARAMS) LIBSUFFIX=_mpi_d_lam --program-suffix=_mpi_d.lam --enable-double)
(mkdir -p build/mpich; cd build/mpich; ../../configure $(COMMON_CONFIG_PARAMS) $(MPICH_CONFIG_PARAMS) LIBSUFFIX=_mpi_mpich --program-suffix=_mpi.mpich)
(mkdir -p build/mpich-dp; cd build/mpich-dp; ../../configure $(COMMON_CONFIG_PARAMS) $(MPICH_CONFIG_PARAMS) LIBSUFFIX=_mpi_d_mpich --program-suffix=_mpi_d.mpich --enable-double)
ifneq (,$(findstring $(DEB_HOST_ARCH),$(OPENMPI_ARCH)))
......@@ -100,7 +92,7 @@ endif
touch $@
build: patch-stamp configure-stamp build-basic build-lam build-mpich build-openmpi
build: patch-stamp configure-stamp build-basic build-mpich build-openmpi
build-basic: configure-stamp
dh_testdir
......@@ -108,27 +100,11 @@ build-basic: configure-stamp
$(MAKE) -C build/basic-dp
touch $@
build-lam: configure-stamp
dh_testdir
$(MAKE) -C build/lam mdrun
$(MAKE) -C build/lam-dp mdrun
sed -e 's/#MPIABBR#/lam/g' -e 's/#MPIPROG#/LAM-MPI/g' \
< debian/gromacs-parallel.README.Debian.in \
> debian/gromacs-lam.README.Debian
touch $@
build-mpich: configure-stamp
dh_testdir
# NOTE: As a result of the patch in Debian bug#164359, MPICH's mpicc
# will compile .s files, and therefore configure will work correctly
# without bizarre workarounds. If, for whatever reason, you aren't
# using the Debian MPICH packages, you may need to append the
# following to the ./configure line:
# MPICC=gcc LIBS=-lmpich CPPFLAGS=-I/usr/lib/mpich/include LDFLAGS=-L/usr/lib/mpich/lib/shared
# (Thanks to Junichi Uekawa for help resolving the bug.)
$(MAKE) -C build/mpich mdrun
$(MAKE) -C build/mpich-dp mdrun
sed -e 's/#MPIABBR#/mpich/g' -e 's/#MPIPROG#/MPICH/g' \
sed -e 's/#MPIABBR#/mpich/g' -e 's/#MPIPROG#/MPICH2/g' \
< debian/gromacs-parallel.README.Debian.in \
> debian/gromacs-mpich.README.Debian
touch $@
......@@ -150,14 +126,14 @@ clean-patched:
dh_testdir
dh_testroot
rm -rf build
dh_clean patch-stamp build-basic build-lam build-mpich build-openmpi configure-stamp \
debian/gromacs-lam.README.Debian debian/gromacs-mpich.README.Debian debian/gromacs-openmpi.README.Debian
dh_clean patch-stamp build-basic build-mpich build-openmpi configure-stamp \
debian/gromacs-mpich.README.Debian debian/gromacs-openmpi.README.Debian
install: build install-basic install-lam install-mpich install-openmpi
dh_testdir
dh_testroot
dh_clean -pgromacs-data -pgromacs-dev -k
dh_prep -pgromacs-data -pgromacs-dev
# remove a duplicated file
rm -f $(CURDIR)/debian/gromacs/usr/share/gromacs/tutor/gmxdemo/demo_d
......@@ -191,7 +167,6 @@ install: build install-basic install-lam install-mpich install-openmpi
mv $(CURDIR)/debian/gromacs/usr/include $(CURDIR)/debian/gromacs-dev/usr/include
# catch normal libraries plus all applicable MPI variants
mv $(CURDIR)/debian/gromacs/usr/lib/*.so $(CURDIR)/debian/gromacs/usr/lib/*.a $(CURDIR)/debian/gromacs/usr/lib/*.la $(CURDIR)/debian/gromacs-dev/usr/lib
mv $(CURDIR)/debian/gromacs-lam/usr/lib/*.so $(CURDIR)/debian/gromacs-lam/usr/lib/*.a $(CURDIR)/debian/gromacs-lam/usr/lib/*.la $(CURDIR)/debian/gromacs-dev/usr/lib
mv $(CURDIR)/debian/gromacs-mpich/usr/lib/*.so $(CURDIR)/debian/gromacs-mpich/usr/lib/*.a $(CURDIR)/debian/gromacs-mpich/usr/lib/*.la $(CURDIR)/debian/gromacs-dev/usr/lib
ifneq (,$(findstring $(DEB_HOST_ARCH),$(OPENMPI_ARCH)))
mv $(CURDIR)/debian/gromacs-openmpi/usr/lib/*.so $(CURDIR)/debian/gromacs-openmpi/usr/lib/*.a $(CURDIR)/debian/gromacs-openmpi/usr/lib/*.la $(CURDIR)/debian/gromacs-dev/usr/lib
......@@ -203,7 +178,7 @@ endif
install-basic: build
dh_testdir
dh_testroot
dh_clean -pgromacs -k
dh_prep -pgromacs
dh_installdirs -pgromacs
$(MAKE) -C build/basic install DESTDIR=$(CURDIR)/debian/gromacs
$(MAKE) -C build/basic-dp install DESTDIR=$(CURDIR)/debian/gromacs
......@@ -219,7 +194,7 @@ install-basic: build
# - package-name-doesnt-match-sonames: the libraries are private to
# GROMACS, and it's unlikely that any new package will start using
# them; therefore, separate lib packages would just be bloat.
# This is also overridden for the -lam, -mpich, -openmpi packages.
# This is also overridden for the -mpich and -openmpi packages.
# - shlib-with-executable-stack: it's a side effect of the ASM inner
# loops (i386/amd64 only)
# - binary-without-manpage: shipped in gromacs-data instead.
......@@ -228,21 +203,18 @@ install-basic: build
install-lam: build
dh_testdir
dh_testroot
dh_clean -pgromacs-lam -k
dh_installdirs -pgromacs-lam
$(MAKE) -C build/lam install-mdrun DESTDIR=$(CURDIR)/debian/gromacs-lam
$(MAKE) -C build/lam-dp install-mdrun DESTDIR=$(CURDIR)/debian/gromacs-lam
dh_installman -pgromacs-lam debian/man/mdrun_mpi.lam.1
dh_link -pgromacs-lam usr/share/man/man1/mdrun_mpi.lam.1.gz usr/share/man/man1/mdrun_mpi_d.lam.1.gz
cp $(CURDIR)/debian/lintian-overrides.gromacs-lam $(CURDIR)/debian/gromacs-lam/usr/share/lintian/overrides/gromacs-lam
dh_prep -pgromacs-lam
install-mpich: build
dh_testdir
dh_testroot
dh_clean -pgromacs-mpich -k
dh_prep -pgromacs-mpich
dh_installdirs -pgromacs-mpich
$(MAKE) -C build/mpich install-mdrun DESTDIR=$(CURDIR)/debian/gromacs-mpich
$(MAKE) -C build/mpich-dp install-mdrun DESTDIR=$(CURDIR)/debian/gromacs-mpich
# RPATH workaround: see #558960
find $(CURDIR)/debian/gromacs-mpich/usr/bin $(CURDIR)/debian/gromacs-mpich/usr/lib -type f \
-exec chrpath -d {} \;
dh_installman -pgromacs-mpich debian/man/mdrun_mpi.mpich.1
dh_link -pgromacs-mpich usr/share/man/man1/mdrun_mpi.mpich.1.gz usr/share/man/man1/mdrun_mpi_d.mpich.1.gz
cp $(CURDIR)/debian/lintian-overrides.gromacs-mpich $(CURDIR)/debian/gromacs-mpich/usr/share/lintian/overrides/gromacs-mpich
......@@ -250,7 +222,7 @@ install-mpich: build
install-openmpi: build
dh_testdir
dh_testroot
dh_clean -pgromacs-openmpi -k
dh_prep -pgromacs-openmpi
ifneq (,$(findstring $(DEB_HOST_ARCH),$(OPENMPI_ARCH)))
dh_installdirs -pgromacs-openmpi
$(MAKE) -C build/openmpi install-mdrun DESTDIR=$(CURDIR)/debian/gromacs-openmpi
......@@ -283,7 +255,6 @@ binary-arch: build install
dh_fixperms -s
dh_makeshlibs -s
dh_shlibdeps -pgromacs -L gromacs -l debian/gromacs/usr/lib
dh_shlibdeps -pgromacs-lam -L gromacs-lam -l debian/gromacs-lam/usr/lib
dh_shlibdeps -pgromacs-mpich -L gromacs-mpich -l debian/gromacs-mpich/usr/lib
ifneq (,$(findstring $(DEB_HOST_ARCH),$(OPENMPI_ARCH)))
dh_shlibdeps -pgromacs-openmpi -L gromacs-openmpi -l debian/gromacs-openmpi/usr/lib
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment