[sci-chemistry/gromacs] Fix bug #326331. thanks to Christoph Junghans
authorAlexey Shvetsov <alexxy@gentoo.org>
Sun, 4 Jul 2010 16:48:12 +0000 (16:48 +0000)
committerAlexey Shvetsov <alexxy@gentoo.org>
Sun, 4 Jul 2010 16:48:12 +0000 (16:48 +0000)
Package-Manager: portage-2.2_rc67_p177/cvs/Linux x86_64

sci-chemistry/gromacs/ChangeLog
sci-chemistry/gromacs/Manifest
sci-chemistry/gromacs/gromacs-4.0.7-r4.ebuild [new file with mode: 0644]

index f24ceea631238dd6ef3a5eafb6b6ea1658043de3..a53093593f04c9201c50267b1633aafe31ee7369 100644 (file)
@@ -1,6 +1,11 @@
 # ChangeLog for sci-chemistry/gromacs
 # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/ChangeLog,v 1.51 2010/06/27 19:06:33 alexxy Exp $
+# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/ChangeLog,v 1.52 2010/07/04 16:48:12 alexxy Exp $
+
+*gromacs-4.0.7-r4 (04 Jul 2010)
+
+  04 Jul 2010; Alexey Shvetsov <alexxy@gentoo.org> +gromacs-4.0.7-r4.ebuild:
+  Fix bug #326331. thanks to Christoph Junghans
 
 *gromacs-4.0.7-r3 (27 Jun 2010)
 
index 55b42079266ff802487f583bb3f439463763c88d..e9bd2073a8baa2539cbe16f4ecc610fb4f32dc90 100644 (file)
@@ -20,12 +20,13 @@ EBUILD gromacs-3.3.3.ebuild 6363 RMD160 02cc3ab83e9897408f971355a453b731006edce3
 EBUILD gromacs-4.0.4.ebuild 6918 RMD160 d31ffadfe240147555b227c36456d81c35f5f5dc SHA1 52b59952c4fb4861ed6bbe2f48ba4c3443b07cd4 SHA256 078f3942a1b5bf671326be97dacb22f37783c082c154bf193e28e18c4e314d3e
 EBUILD gromacs-4.0.5.ebuild 6762 RMD160 c9945b966f14d1aa3fab96928a8c1269f2d0b4fb SHA1 535119ceb458903fd294f21959df4338eafd475d SHA256 dc76914d616ac4f750e9073601f1fc9cd30ab6f7b15a01152b95ef625a755c3b
 EBUILD gromacs-4.0.7-r3.ebuild 9489 RMD160 7f125dc953d744dab91e8b8c34b5d1406fea91b1 SHA1 b14ce5def015cda74fbf7dadd9642a9599f7caeb SHA256 38f44e6c07fdf539a4253d63ec2ccdd604f679016545f6b7ade5d7e7a80ee068
-MISC ChangeLog 10308 RMD160 c3a45df5addfd418cb67a8ad1e4af733a1addcf0 SHA1 f001fb5d7d315a62bfeb5d5fbbbf01e57c162f9b SHA256 d7d5ea4106c29cadfb0980034e3e03e5dc2578de98dad95dd90b3b8b9184e767
+EBUILD gromacs-4.0.7-r4.ebuild 9958 RMD160 669cce5d221ade95b881e573c5753b8b9e36bc7c SHA1 9356ac31bfc1e5317a68f0529dbd8b15fc0c9092 SHA256 6d947ea2171b648e3435d00768d7a6d503e08c03b09cb6fca38f0674c2897972
+MISC ChangeLog 10467 RMD160 34044c78c4da83657f6395d3c6b8268a2db8b7f9 SHA1 a79d24e14f3dc28c477842c47e8d7bdc7b2beebc SHA256 0a8fb5fb978b9a0745092e47a524a4b12c01b1148f659f88611a4f8074280e79
 MISC metadata.xml 643 RMD160 e9ffc42d792f15f3d4438a0de225277ec4814041 SHA1 c83fd4a32d896b7a2586667bc684d46f9daf8693 SHA256 177885ec674e8630a9c9451a0e0a35fc83615b39b387a67002e27f1b0d6b19b2
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.15 (GNU/Linux)
 
-iEYEARECAAYFAkwnoWAACgkQ5BmOA85PVLgeCgCePGMiZ24oHjj/S19MwuMZYHqS
-KEcAn37L+8sifFj2eKET4Cl/2R9GT2T4
-=CM19
+iEYEARECAAYFAkwwu4UACgkQ5BmOA85PVLiJKQCfXuk8BBRUIW5JYjiT0fI+yBke
+ykUAnj+FExDAVZpZ44RcyZ7qz5bakfPe
+=P/dt
 -----END PGP SIGNATURE-----
diff --git a/sci-chemistry/gromacs/gromacs-4.0.7-r4.ebuild b/sci-chemistry/gromacs/gromacs-4.0.7-r4.ebuild
new file mode 100644 (file)
index 0000000..f7fd10f
--- /dev/null
@@ -0,0 +1,307 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sci-chemistry/gromacs/gromacs-4.0.7-r4.ebuild,v 1.1 2010/07/04 16:48:12 alexxy Exp $
+
+EAPI="3"
+
+LIBTOOLIZE="true"
+TEST_PV="4.0.4"
+
+inherit autotools bash-completion eutils fortran multilib toolchain-funcs
+
+DESCRIPTION="The ultimate molecular dynamics simulation package"
+HOMEPAGE="http://www.gromacs.org/"
+SRC_URI="ftp://ftp.gromacs.org/pub/${PN}/${P}.tar.gz
+               test? ( ftp://ftp.gromacs.org/pub/tests/gmxtest-${TEST_PV}.tgz )
+               doc? ( ftp://ftp.gromacs.org/pub/manual/manual-4.0.pdf )
+               ffamber? ( http://ffamber.cnsm.csulb.edu/ffamber_v4.0-doc.tar.gz )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="X blas dmalloc doc -double-precision ffamber +fftw fkernels +gsl lapack
+mpi +single-precision static static-libs test +xml zsh-completion"
+
+DEPEND="app-shells/tcsh
+       X? ( x11-libs/libX11
+               x11-libs/libSM
+               x11-libs/libICE )
+       dmalloc? ( dev-libs/dmalloc )
+       blas? ( virtual/blas )
+       fftw? ( sci-libs/fftw:3.0 )
+       gsl? ( sci-libs/gsl )
+       lapack? ( virtual/lapack )
+       mpi? ( virtual/mpi )
+       xml? ( dev-libs/libxml2 )"
+
+RDEPEND="${DEPEND}"
+
+RESTRICT="test"
+
+QA_EXECSTACK="usr/lib/libgmx.so.*
+       usr/lib/libgmx_d.so.*"
+
+use static && QA_EXECSTACK="$QA_EXECSTACK usr/bin/*"
+
+src_prepare() {
+
+       ( use single-precision || use double-precision ) || \
+               die "Nothing to compile, enable single-precision and/or double-precision"
+
+       if use static; then
+               use X && die "You cannot compile a static version with X support, disable X or static"
+               use xml && die "You cannot compile a static version with xml support
+               (see bug #306479), disable xml or static"
+       fi
+
+       epatch "${FILESDIR}/${P}_upstream2010-06-08.patch.gz"
+       sed -e '/AC_INIT/s/4\.0\.7/&-2010-06-08/' -i configure.ac \
+               || die "Failed to change version in configure.ac"
+       epatch "${FILESDIR}/${PN}-4.0.9999-docdir.patch"
+       # Fix typos in a couple of files.
+       sed -e "s:+0f:-f:" -i share/tutor/gmxdemo/demo \
+               || die "Failed to fixup demo script."
+
+       # Fix a sandbox violation that occurs when re-emerging with mpi.
+       sed "/libdir=\"\$(libdir)\"/ a\ temp_libdir=\"${ED}usr/$( get_libdir )\" ; \\\\" \
+       -i src/tools/Makefile.am \
+       || die "sed tools/Makefile.am failed"
+
+       sed -e "s:\$\$libdir:\$temp_libdir:" \
+       -i src/tools/Makefile.am \
+       || die "sed tools/Makefile.am failed"
+
+       sed "/libdir=\"\$(libdir)\"/ a\ temp_libdir=\"${ED}usr/$( get_libdir )\" ; \\\\" \
+       -i src/tools/Makefile.am \
+       || die "sed tools/Makefile.am failed"
+
+       sed -e "s:\$\$libdir:\$\$temp_libdir:" \
+       -i src/tools/Makefile.am \
+       || die "sed tools/Makefile.am failed"
+
+       eautoreconf
+       GMX_DIRS=""
+       use single-precision && GMX_DIRS+=" single"
+       use double-precision && GMX_DIRS+=" double"
+       for x in ${GMX_DIRS}; do
+               mkdir "${S}-${x}" || die
+               use test && cp -r "${WORKDIR}"/gmxtest "${S}-${x}"
+               use mpi || continue
+               mkdir "${S}-${x}_mpi" || die
+       done
+}
+
+src_configure() {
+       local myconf
+       local myconfsingle
+       local myconfdouble
+       local suffixdouble
+
+       #leave all assembly options enabled mdrun is smart enough to deside itself
+       #there so no gentoo on bluegene!
+       myconf="${myconf} --disable-bluegene"
+
+       #from gromacs configure
+       if ! use fftw; then
+               ewarn "WARNING: The built-in FFTPACK routines are slow."
+               ewarn "Are you sure you don\'t want to use FFTW?"
+               ewarn "It is free and much faster..."
+       fi
+
+       if [[ $(gcc-version) == "4.1" ]]; then
+               eerror "gcc 4.1 is not supported by gromacs"
+               eerror "please run test suite"
+               die
+       fi
+
+       #note for gentoo-PREFIX on apple: use --enable-apple-64bit
+
+       #fortran will gone in gromacs 4.1 anyway
+       #note for gentoo-PREFIX on aix, fortran (xlf) is still much faster
+       if use fkernels; then
+               ewarn "Fortran kernels are usually not faster than C kernels and assembly"
+               ewarn "I hope, you know what are you doing..."
+               FORTRAN="g77 gfortran ifc"
+               myconf="${myconf} --enable-fortran" && fortran_pkg_setup
+       else
+               myconf="${myconf} --disable-fortran"
+       fi
+
+       # if we need external blas
+       if use blas; then
+               export LIBS="${LIBS} -lblas"
+               myconf="${myconf} $(use_with blas external-blas)"
+       fi
+
+       # if we need external lapack
+       if use lapack; then
+               export LIBS="${LIBS} -llapack"
+               myconf="${myconf} $(use_with lapack external-lapack)"
+       fi
+
+       # by default its better to have dynamicaly linked binaries
+       if use static; then
+               #gmx build static libs by default
+               myconf="${myconf} --disable-shared $(use_enable static all-static)"
+       else
+               myconf="${myconf} --disable-all-static --enable-shared $(use_enable static-libs static)"
+       fi
+
+       myconf="--datadir="${EPREFIX}"/usr/share \
+                       --bindir="${EPREFIX}"/usr/bin \
+                       --libdir="${EPREFIX}"/usr/$(get_libdir) \
+                       --docdir="${EPREFIX}"/usr/share/doc/"${PF}" \
+                       $(use_with dmalloc) \
+                       $(use_with fftw fft fftw3) \
+                       $(use_with gsl) \
+                       $(use_with X x) \
+                       $(use_with xml) \
+                       ${myconf}"
+
+       #if we build single and double - double is suffixed
+       if ( use double-precision && use single-precision ); then
+               suffixdouble="_d"
+       else
+               suffixdouble=""
+       fi
+
+       if use double-precision ; then
+               #from gromacs manual
+               elog
+               elog "For most simulations single precision is accurate enough. In some"
+               elog "cases double precision is required to get reasonable results:"
+               elog
+               elog "-normal mode analysis, for the conjugate gradient or l-bfgs minimization"
+               elog " and the calculation and diagonalization of the Hessian "
+               elog "-calculation of the constraint force between two large groups of  atoms"
+               elog "-energy conservation: this can only be done without temperature coupling and"
+               elog " without cutoffs"
+               elog
+       fi
+
+       if use mpi ; then
+               elog "You have enabled mpi, only mdrun will make use of mpi, that is why"
+               elog "we configure/compile gromacs twice (with and without mpi) and only"
+               elog "install mdrun with mpi support. In addtion you will get libgmx and"
+               elog "libmd with and without mpi support."
+       fi
+
+       myconfdouble="${myconf} --enable-double --program-suffix='${suffixdouble}'"
+       myconfsingle="${myconf} --enable-float --program-suffix=''"
+       for x in ${GMX_DIRS}; do
+               einfo "Configuring for ${x} precision"
+               cd "${S}-${x}"
+               local p=myconf${x}
+               ECONF_SOURCE="${S}" econf ${!p} --disable-mpi CC="$(tc-getCC)" F77="${FORTRANC}"
+               use mpi || continue
+               cd "${S}-${x}_mpi"
+               ECONF_SOURCE="${S}" econf ${!p} --enable-mpi CC="$(tc-getCC)" F77="${FORTRANC}"
+       done
+}
+
+src_compile() {
+       for x in ${GMX_DIRS}; do
+               cd "${S}-${x}"
+               einfo "Compiling for ${x} precision"
+               emake || die "emake for ${x} precision failed"
+               use mpi || continue
+               cd "${S}-${x}_mpi"
+               emake mdrun || die "emake mdrun for ${x} precision failed"
+       done
+}
+
+src_test() {
+       for x in ${GMX_DIRS}; do
+               local oldpath="${PATH}"
+               export PATH="${S}-${x}/src/kernel:${S}-{x}/src/tools:${PATH}"
+               cd "${S}-${x}"
+               emake -j1 tests || die "${x} Precision test failed"
+               export PATH="${oldpath}"
+       done
+}
+
+src_install() {
+       for x in ${GMX_DIRS}; do
+               cd "${S}-${x}"
+               emake DESTDIR="${ED}" install || die "emake install for ${x} failed"
+               use mpi || continue
+               cd "${S}-${x}_mpi"
+               emake DESTDIR="${ED}" install-mdrun || die "emake install-mdrun for ${x} failed"
+       done
+
+       sed -n -e '/^GMXBIN/,/^GMXDATA/p' "${ED}"/usr/bin/GMXRC.bash > "${T}/80gromacs"
+       doenvd "${T}/80gromacs"
+       rm -f "${ED}"/usr/bin/GMXRC*
+
+       dobashcompletion "${ED}"/usr/bin/completion.bash ${PN}
+       if use zsh-completion ; then
+               insinto /usr/share/zsh/site-functions
+               newins "${ED}"/usr/bin/completion.zsh _${PN}
+       fi
+       rm -f "${ED}"/usr/bin/completion.*
+
+       cd "${S}"
+       dodoc AUTHORS INSTALL README
+       use doc && dodoc "${DISTDIR}/manual-4.0.pdf"
+       if use ffamber; then
+               use doc && dodoc "${WORKDIR}/ffamber_v4.0/README/pdfs/*.pdf"
+               # prepare vdwradii.dat
+               cat >>"${ED}"/usr/share/gromacs/top/vdwradii.dat <<-EOF
+                       SOL  MW    0
+                       SOL  LP    0
+               EOF
+               # regenerate aminoacids.dat
+               cat "${WORKDIR}"/ffamber_v4.0/aminoacids*.dat \
+               "${ED}"/usr/share/gromacs/top/aminoacids.dat \
+               | awk '{print $1}' | sort -u | tail -n+4 | wc -l \
+               >> "${ED}"/usr/share/gromacs/top/aminoacids.dat.new
+               cat "${WORKDIR}"/ffamber_v4.0/aminoacids*.dat \
+               "${ED}"/usr/share/gromacs/top/aminoacids.dat \
+               | awk '{print $1}' | sort -u | tail -n+4 \
+               >> "${ED}"/usr/share/gromacs/top/aminoacids.dat.new
+               mv -f "${ED}"/usr/share/gromacs/top/aminoacids.dat.new \
+               "${ED}"/usr/share/gromacs/top/aminoacids.dat
+               # copy ff files
+               for x in ffamber94 ffamber96 ffamber99 ffamber99p ffamber99sb \
+                               ffamberGS ffamberGSs ffamber03 ; do
+                       einfo "Adding ${x} to gromacs"
+                       cp "${WORKDIR}"/ffamber_v4.0/${x}/* "${ED}"/usr/share/gromacs/top
+               done
+               # copy suplementary files
+               cp "${WORKDIR}"/ffamber_v4.0/*.gro "${ED}"/usr/share/gromacs/top
+               cp "${WORKDIR}"/ffamber_v4.0/*.itp "${ED}"/usr/share/gromacs/top
+               # actualy add records to FF.dat
+               cat >>"${ED}"/usr/share/gromacs/top/FF.dat.new <<-EOF
+                       ffamber94   AMBER94 Cornell protein/nucleic forcefield
+                       ffamber96   AMBER96 Kollman protein/nucleic forcefield
+                       ffamberGS   AMBER-GS Garcia &  Sanbonmatsu forcefield
+                       ffamberGSs  AMBER-GSs Nymeyer &  Garcia forcefield
+                       ffamber99   AMBER99 Wang protein/nucleic acid forcefield
+                       ffamber99p  AMBER99p protein/nucleic forcefield
+                       ffamber99sb AMBER99sb Hornak protein/nucleic forcefield
+                       ffamber03   AMBER03 Duan protein/nucleic forcefield
+               EOF
+               cat "${ED}"/usr/share/gromacs/top/FF.dat \
+                       "${ED}"/usr/share/gromacs/top/FF.dat.new \
+                       | tail -n+2 > "${ED}"/usr/share/gromacs/top/FF.dat.new2
+               cat "${ED}"/usr/share/gromacs/top/FF.dat.new2 | wc -l > \
+                       "${ED}"/usr/share/gromacs/top/FF.dat
+               cat "${ED}"/usr/share/gromacs/top/FF.dat.new2 >> \
+                       "${ED}"/usr/share/gromacs/top/FF.dat
+               rm -f "${ED}"/usr/share/gromacs/top/FF.dat.new*
+       fi
+}
+
+pkg_postinst() {
+       env-update && source /etc/profile
+       elog
+       elog "Please read and cite:"
+       elog "Gromacs 4, J. Chem. Theory Comput. 4, 435 (2008). "
+       elog "http://dx.doi.org/10.1021/ct700301q"
+       elog
+       bash-completion_pkg_postinst
+       elog
+       elog $(luck)
+       elog "For more Gromacs cool quotes (gcq) add luck to your .bashrc"
+       elog
+}