From 9071c9a6ce36343eff0ba65706743dc96733f716 Mon Sep 17 00:00:00 2001 From: "Justin Lecher (jlec)" Date: Sat, 30 Jan 2010 20:49:33 +0100 Subject: sci-chemistry/ccp4-apps -- Fix for 301762, thanks Johan Hattne for the patch (Portage version: 2.2_rc62/git/Linux x86_64) (Signed Manifest commit) --- sci-chemistry/ccp4-apps/ChangeLog | 7 + sci-chemistry/ccp4-apps/Manifest | 11 +- sci-chemistry/ccp4-apps/ccp4-apps-6.1.3-r1.ebuild | 428 -------------------- sci-chemistry/ccp4-apps/ccp4-apps-6.1.3-r2.ebuild | 431 +++++++++++++++++++++ .../ccp4-apps/files/6.1.3-clipper-template.patch | 70 ++++ 5 files changed, 514 insertions(+), 433 deletions(-) delete mode 100644 sci-chemistry/ccp4-apps/ccp4-apps-6.1.3-r1.ebuild create mode 100644 sci-chemistry/ccp4-apps/ccp4-apps-6.1.3-r2.ebuild create mode 100644 sci-chemistry/ccp4-apps/files/6.1.3-clipper-template.patch (limited to 'sci-chemistry/ccp4-apps') diff --git a/sci-chemistry/ccp4-apps/ChangeLog b/sci-chemistry/ccp4-apps/ChangeLog index c7e1f2900..3946ea389 100644 --- a/sci-chemistry/ccp4-apps/ChangeLog +++ b/sci-chemistry/ccp4-apps/ChangeLog @@ -2,6 +2,13 @@ # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 # $Header: $ +*ccp4-apps-6.1.3-r2 (30 Jan 2010) + + 30 Jan 2010; Justin Lecher (jlec) + +files/6.1.3-clipper-template.patch, -ccp4-apps-6.1.3-r1.ebuild, + +ccp4-apps-6.1.3-r2.ebuild: + Fix for 301762, thanks Johan Hattne for the patch + *ccp4-apps-6.1.3-r1 (30 Jan 2010) 30 Jan 2010; Justin Lecher (jlec) diff --git a/sci-chemistry/ccp4-apps/Manifest b/sci-chemistry/ccp4-apps/Manifest index 7b16b62d7..16b63aaf2 100644 --- a/sci-chemistry/ccp4-apps/Manifest +++ b/sci-chemistry/ccp4-apps/Manifest @@ -18,6 +18,7 @@ AUX 6.1.2-rename-rapper.patch 2856 RMD160 37504bed3cb4e1858d88331305deef6564616b AUX 6.1.2-rename-truncate.patch 1515 RMD160 eff332faa67a1732e0f99cc6cdcb846932eadc87 SHA1 b504542cf710e1b54a684b0fa0e8d73d967c96ac SHA256 50a59a1856867daa3de1f8f53e92bcfe74dea3a6d3c4ba238a9ea83dbcdfbf07 AUX 6.1.2-setup.patch 12338 RMD160 2107d599dfe477863710d6b8098b3ca43b8cd22d SHA1 38b3d6ef1e40bf505f4227646d9afce1fe828395 SHA256 c9843cf27af9809ecf96a700521972aa434970a7fdaaf571c36b05fd4be516eb AUX 6.1.3-clipper-mmdbold-ggc-4.3.patch 656 RMD160 6b302779b48217a14f5ac9110bc307db3a3b51eb SHA1 f5813d6769fa9dc11605425cdbda85691d3016bc SHA256 982eff0336a6dfaf4e280d51a59cf722fc063ca89d15ca0af46ce83727fb9a8a +AUX 6.1.3-clipper-template.patch 2619 RMD160 a3a4998365c4e516325cf95472e8493729ee4b46 SHA1 f3d92469ac5ec4483818abbf50c32ac9b05a622c SHA256 a185a93f76c23ce06256866cfaf0e9854a5702b95a1e49e4d3a5f732e0d1e2a3 AUX 6.1.3-dont-build-double-and-make-bindir.patch 688 RMD160 f5f93cbec122ce81a1ddb1cf57a852d51fa5e5d6 SHA1 4c924554c5c1991ed691fe3474eeffbd108493a9 SHA256 037a3d9042c784c895083fe5348ed3bde74620c1b6b3b2cd4eea53bdbfe77d53 AUX 6.1.3-dont-build-imosflm.patch 365 RMD160 3f8d5354a2469cc38ef16e98d726eeea7be08ef9 SHA1 47d52b554c594b00ea8e6f84768548879b02a36e SHA256 d57b800c78a1624c665771add717b8b94169d5a5432c5201efa7d9a2cfa62277 AUX 6.1.3-dont-build-libs.patch 1266 RMD160 95d2960fbd2f3d8661187ea9ed7ffc5f2f30e61f SHA1 7b5fa26432f57a11c8bedff79209f687b6bd95cb SHA256 329d29c58e18403105ed06fdd6b012a481b7c2b43af53b86395204b2acea51ed @@ -40,13 +41,13 @@ EBUILD ccp4-apps-6.1.2-r5.ebuild 11481 RMD160 3415982bdc5dd1d1c9cda7244a54304aea EBUILD ccp4-apps-6.1.2-r6.ebuild 11562 RMD160 28b884fc0ea91f80aef7380f711c32870a03e44c SHA1 b15e25be05064c4f6d6fa9207c431526321b6485 SHA256 ebe12c47a2fb3378b74d62f10ff55a78120e1407865eaa4b8e0f3c41ad795403 EBUILD ccp4-apps-6.1.2-r7.ebuild 11696 RMD160 c13e71584504c65d3b72697b3affd01020793b10 SHA1 515b4657655e0c0319c87f937bee74409de7c362 SHA256 93d4b4096c5320cb28f033f8ebcbd154b1188fbe8b62b5916c11955d78177fbd EBUILD ccp4-apps-6.1.2-r9.ebuild 11882 RMD160 b1b1e7b3cef0b748193800d535bb1d00163bb646 SHA1 eb025e81b10991cd9d50c887b44146c69f4ae5df SHA256 9334070574d24366fd95c0d8a51875d2844eede94453f1d090f938841a11a012 -EBUILD ccp4-apps-6.1.3-r1.ebuild 11736 RMD160 1611434fdf055a351a553a97b8ba2e38e2680f1b SHA1 73ea4b31eab72aae0d75d0a7c1fbf435d10f41be SHA256 3bba7ea84ec4b2bdd776303f17c80741f19b7b502de0fa0b6b5db03fdc6df937 -MISC ChangeLog 8779 RMD160 5975fa3037e74d3ac92b4cff57ebdf5b689b7607 SHA1 5c067690c05f72ae1422235393f0606eedfa47c9 SHA256 7d9e489c37f7719ef9f71e139d89b8755d4831f10a4cfebf3b144bf2ca8cd51d +EBUILD ccp4-apps-6.1.3-r2.ebuild 11821 RMD160 00c5406263773398444530aa49422e6483816738 SHA1 2a59730876db61e940eaf1abe12f89a37d6945db SHA256 ee28b241a56f52856fb3a756c89c83b38ecd970a8145e28e9e093b7b14326597 +MISC ChangeLog 9021 RMD160 9dacafc60da862f53548ae19c75b6f8d27d1d6c6 SHA1 7b4066677f51cd962d6038eec88f4c212a1e7f00 SHA256 d83529584d70b162c8ca345dfb3b62e3f1d9584148556034b4bc60192052467c MISC metadata.xml 166 RMD160 4452298fd03e7c9395d1182bfe69d60a14144af6 SHA1 cb0b513473c0348f4f6f6cd9a132e4884155fddb SHA256 84c92b49702daf95eace8d2765215cbd8650da4ef776f9f700b5ce3785dec852 -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.11 (GNU/Linux) -iEYEARECAAYFAktkPRwACgkQgAnW8HDreRbOfwCfVpB3IdU8VDfde1TlOhtTYAJn -hxYAoJaAuu9VD7f0EA9fgXOU6XnCe7th -=bunZ +iEYEARECAAYFAktkjU0ACgkQgAnW8HDreRaJeQCgxD8ybyY+k7YOlhs1bed4x3oy +cfYAoLZ706v9SBbMW1o1X/4WwqCjnLeQ +=qOj6 -----END PGP SIGNATURE----- diff --git a/sci-chemistry/ccp4-apps/ccp4-apps-6.1.3-r1.ebuild b/sci-chemistry/ccp4-apps/ccp4-apps-6.1.3-r1.ebuild deleted file mode 100644 index 3dc6e0a9b..000000000 --- a/sci-chemistry/ccp4-apps/ccp4-apps-6.1.3-r1.ebuild +++ /dev/null @@ -1,428 +0,0 @@ -# Copyright 1999-2010 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: $ - -EAPI="2" - -inherit fortran eutils flag-o-matic gnuconfig toolchain-funcs autotools - -FORTRAN="g77 gfortran ifc" - -MY_P="${PN/-apps}-${PV}" - -SRC="ftp://ftp.ccp4.ac.uk/ccp4" - -#UPDATE="04_03_09" -#PATCHDATE="090511" - -PATCH_TOT="0" -# Here's a little scriptlet to generate this list from the provided -# index.patches file -# -# i=1; while read -a line; do [[ ${line//#} != ${line} ]] && continue; -# echo "PATCH${i}=( ${line[1]}"; echo "${line[0]} )"; (( i++ )); done < -# index.patches -#PATCH1=( src/topp_ -#topp.f-r1.16.2.5-r1.16.2.6.diff ) -#PATCH2=( . -#configure-r1.372.2.18-r1.372.2.19.diff ) - -DESCRIPTION="Protein X-ray crystallography toolkit" -HOMEPAGE="http://www.ccp4.ac.uk/" -RESTRICT="mirror" -SRC_URI=" - ${SRC}/${PV}/${MY_P}-core-src.tar.gz - http://dev.gentooexperimental.org/~jlec/distfiles/${PV}-oasis4.0.patch.bz2" -# patch tarball from upstream - [[ -n ${UPDATE} ]] && SRC_URI="${SRC_URI} ${SRC}/${PV}/updates/${P}-src-patch-${UPDATE}.tar.gz" -# patches created by us - [[ -n ${PATCHDATE} ]] && SRC_URI="${SRC_URI} http://dev.gentooexperimental.org/~jlec/science-dist/${PV}-${PATCHDATE}-updates.patch.bz2" - -for i in $(seq $PATCH_TOT); do - NAME="PATCH${i}[1]" - SRC_URI="${SRC_URI} - ${SRC}/${PV}/patches/${!NAME}" -done - -LICENSE="ccp4" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="examples X" - -X11DEPS=" - x11-libs/libX11 - x11-libs/libXaw - x11-libs/libXt - x11-libs/libjwc_c - x11-libs/libjwc_f - x11-libs/libxdl_view" - -TKDEPS=" - >=dev-lang/tk-8.3 - >=dev-tcltk/blt-2.4 - dev-tcltk/iwidgets - dev-tcltk/itcl - dev-tcltk/itk - >=dev-tcltk/tdom-0.8 - dev-tcltk/tkimg - dev-tcltk/tktreectrl" - -SCILIBS=" - ~sci-libs/ccp4-libs-${PV} - sci-libs/clipper - =sci-libs/fftw-2* - virtual/blas - virtual/lapack" - -SCIAPPS=" - sci-chemistry/pdb-extract - sci-chemistry/pymol - sci-chemistry/rasmol - sci-chemistry/oasis" - -RDEPEND="X? ( ${X11DEPS} ) - ${TKDEPS} - ${SCILIBS} - app-shells/tcsh - dev-python/pyxml - dev-libs/libxml2 - dev-libs/boehm-gc - !app-office/sc - !& /dev/null - ccp_patch ${DISTDIR}/"${p}" - popd >& /dev/null - done - einfo "Done." - echo - - [[ -n ${PATCHDATE} ]] && epatch "${WORKDIR}"/${PV}-${PATCHDATE}-updates.patch - - einfo "Applying Gentoo patches ..." - - # it tries to create libdir, bindir etc on live system in configure - ccp_patch "${FILESDIR}"/${PV}-dont-make-dirs-in-configure.patch - - # We already have sci-chemistry/rasmol - # Also remember to create the bindir. - ccp_patch "${FILESDIR}"/${PV}-dont-build-double-and-make-bindir.patch - - # libraries come from sci-libs/ccp4-libs - ccp_patch "${FILESDIR}"/${PV}-dont-build-libs.patch - - # coreutils installs a binary called truncate - ccp_patch "${FILESDIR}"/${PV}-rename-truncate.patch - mv ./doc/truncate.doc ./doc/ftruncate.doc || die - mv ./html/truncate.html ./html/ftruncate.html || die - - # conflicts with media-libs/raptor - ccp_patch "${FILESDIR}"/${PV}-rename-rapper.patch - mv ./doc/rapper.doc ./doc/rappermc.doc || die - mv ./html/rapper.html ./html/rappermc.html || die - - # molref is provided as binary and dynamically linked against icc - ccp_patch "${FILESDIR}"/${PV}-dont-build-molref.patch - - # no xia - ccp_patch "${FILESDIR}"/${PV}-dont-build-xia.patch - - # We build scala ourself - ccp_patch "${FILESDIR}"/${PV}-dont-build-scala.patch - - # We build scala ourself - ccp_patch "${FILESDIR}"/${PV}-dont-build-imosflm.patch - - # don't configure what is not build - ccp_patch "${FILESDIR}"/${PV}-dont-configure.patch - - # Set python paths correctly - ccp_patch "${FILESDIR}"/${PV}-pythonpath.patch - - # Set python paths correctly - ccp_patch "${FILESDIR}"/${PV}-pisa.patch - - # Update things for oasis 4 usage - epatch "${WORKDIR}"/${PV}-oasis4.0.patch - sed 's: oasis : :g' -i src/Makefile.in || die - - einfo "Done." # done applying Gentoo patches - echo - - # Don't build refmac binaries available from the standalone version - sed -i -e "/^REFMACTARGETS/s:refmac5 libcheck makecif molrep sfcheck::g" configure - - # Rapper bundles libxml2 and boehm-gc. Don't build, use or install those. - pushd src/rapper 2>/dev/null - sed -i \ - -e '/^AC_CONFIG_SUBDIRS(\[gc7.0 libxml2\])/d' \ - configure.ac - sed -i \ - -e '/^SUBDIRS/s:libxml2 gc7.0::g' \ - Makefile.am - sed -i \ - -e '/^rappermc_LDADD/s:../gc7.0/libgc.la ../libxml2/libxml2.la:-lgc -lxml2:g' \ - LOOP/Makefile.am - sed -i \ - -e '/^INCLUDES/s:-I../gc7.0/include -I../libxml2/include:-I/usr/include/gc -I/usr/include/libxml2:g' \ - LOOP/Makefile.am - eautoreconf - popd 2>/dev/null - - gnuconfig_update -} - -src_configure() { - # Build system is broken if we set LDFLAGS - unset LDFLAGS - - # These are broken with ./src/procheck/ps.f - filter-flags "-floop-*" - - # GENTOO_OSNAME can be one of: - # irix irix64 sunos sunos64 aix hpux osf1 linux freebsd - # linux_compaq_compilers linux_intel_compilers generic Darwin - # ia64_linux_intel Darwin_ibm_compilers linux_ibm_compilers - if [[ "${FORTRANC}" = "ifc" ]]; then - if use ia64; then - GENTOO_OSNAME="ia64_linux_intel" - else - # Should be valid for x86, maybe amd64 - GENTOO_OSNAME="linux_intel_compilers" - fi - else - # Should be valid for x86 and amd64, at least - GENTOO_OSNAME="linux" - fi - - # Sets up env - ln -s \ - ccp4.setup-bash \ - "${S}"/include/ccp4.setup - - # We agree to the license by emerging this, set in LICENSE - sed -i \ - -e "s~^\(^agreed=\).*~\1yes~g" \ - "${S}"/configure - - # Fix up variables -- need to reset CCP4_MASTER at install-time - sed -i \ - -e "s~^\(setenv CCP4_MASTER.*\)/.*~\1${WORKDIR}~g" \ - -e "s~^\(export CCP4_MASTER.*\)/.*~\1${WORKDIR}~g" \ - -e "s~^\(setenv CCP4I_TCLTK.*\)/usr/local/bin~\1/usr/bin~g" \ - -e "s~^\(export CCP4I_TCLTK.*\)/usr/local/bin~\1/usr/bin~g" \ - "${S}"/include/ccp4.setup* - - # Set up variables for build - source "${S}"/include/ccp4.setup - - export CC=$(tc-getCC) - export CXX=$(tc-getCXX) - export COPTIM=${CFLAGS} - export CXXOPTIM=${CXXFLAGS} - # Default to -O2 if FFLAGS is unset - export FC=${FORTRANC} - export FOPTIM=${FFLAGS:- -O2} - export BINSORT_SCR="${T}" - export CCP4_MASTER="${WORKDIR}" - export CCP4I_TCLTK="/usr/bin" - - # Can't use econf, configure rejects unknown options like --prefix - ./configure \ - $(use_enable X x) \ - --with-shared-libs \ - --with-fftw=/usr \ - --with-warnings \ - --disable-pdb_extract \ - --disable-cctbx \ - --disable-phaser \ - --disable-diffractionImg \ - --disable-clipper \ - --disable-mosflm \ - --disable-mrbump \ - --tmpdir="${TMPDIR}" \ - ${GENTOO_OSNAME} || die "econf failed" - - # We do this manually, since disabling the clipper libraries also - # disables the clipper programs - pushd src/clipper_progs 2>/dev/null - econf \ - --prefix="${S}" \ - --with-ccp4="${S}" \ - --with-clipper=/usr \ - --with-fftw=/usr \ - --with-mmdb=/usr \ - CXX=$(tc-getCXX) \ - || die - popd 2>/dev/null -} - -src_compile() { - # fsplit is required for the programs - pushd lib/src 2>/dev/null - emake fsplit -j1 || die - popd 2>/dev/null - - # We do this manually, since disabling the clipper libraries also - # disables the clipper programs - pushd src/clipper_progs 2>/dev/null - emake || die - popd 2>/dev/null - - emake -j1 || die "emake failed" -} - -src_install() { - # Set up variables for build - source "${S}"/include/ccp4.setup - -# make install || die "install failed" - - # if we don't make this, a ton of programs fail to install - mkdir "${S}"/bin || die - - # We do this manually, since disabling the clipper libraries also - # disables the clipper programs - pushd "${S}"/src/clipper_progs 2>/dev/null - emake install || die - popd 2>/dev/null - - einstall || die "install failed" - - # Fix env -# -e "s~^\(.*setenv PYTHONPATH .*\)\${CCP4}.*~\1\${CCP4}/share/ccp4/python~g" \ -# -e "s~^\(.*export PYTHONPATH.*\)\${CCP4}.*~\1\${CCP4}/share/ccp4/python~g" \ - sed -i \ - -e "s~^\(setenv CCP4_MASTER.*\)${WORKDIR}~\1/usr~g" \ - -e "s~^\(setenv CCP4.*\$CCP4_MASTER\).*~\1~g" \ - -e "s~^\(setenv CCP4I_TOP\).*~\1 \$CCP4/$(get_libdir)/ccp4/ccp4i~g" \ - -e "s~^\(setenv DBCCP4I_TOP\).*~\1 \$CCP4/share/ccp4/dbccp4i~g" \ - -e "s~^\(.*setenv CINCL.*\$CCP4\).*~\1/share/ccp4/include~g" \ - -e "s~^\(.*setenv CLIBD .*\$CCP4\).*~\1/share/ccp4/data~g" \ - -e "s~^\(.*setenv CLIBD_MON .*\)\$CCP4.*~\1\$CCP4/share/ccp4/data/monomers/~g" \ - -e "s~^\(.*setenv MOLREPLIB .*\)\$CCP4.*~\1\$CCP4/share/ccp4/data/monomers/~g" \ - -e "s~^\(export CCP4_MASTER.*\)${WORKDIR}~\1/usr~g" \ - -e "s~^\(export CCP4.*\$CCP4_MASTER\).*~\1~g" \ - -e "s~^\(export CCP4I_TOP\).*~\1=\$CCP4/$(get_libdir)/ccp4/ccp4i~g" \ - -e "s~^\(export DBCCP4I_TOP\).*~\1=\$CCP4/share/ccp4/dbccp4i~g" \ - -e "s~^\(.*export CINCL.*\$CCP4\).*~\1/share/ccp4/include~g" \ - -e "s~^\(.*export CLIBD.*\$CCP4\).*~\1/share/ccp4/data~g" \ - -e "s~^\(.*export CLIBD_MON.*\)\$CCP4.*~\1\$CCP4/share/ccp4/data/monomers/~g" \ - -e "s~^\(.*export MOLREPLIB.*\)\$CCP4.*~\1\$CCP4/share/ccp4/data/monomers/~g" \ - -e "/IMOSFLM_VERSION/d" \ - "${S}"/include/ccp4.setup* || die - -# -e "s~\$CCP4/share/XIAROOT/setup.sh~\$CCP4/share/ccp4/XIAROOT/setup.sh~g" \ - - # Don't check for updates on every sourcing of /etc/profile - sed -i \ - -e "s:\(eval python.*\):#\1:g" - "${S}"/include/ccp4.setup* || die - - # Collision with sci-chemistry/mrbump - rm -f "${S}"/bin/{mrbump,pydbviewer} || die - - # Bins - dobin "${S}"/bin/* || die - - # Libs - for file in "${S}"/lib/*; do - if [[ -d ${file} ]]; then - continue - elif [[ -x ${file} ]]; then - dolib.so ${file} || die - else - insinto /usr/$(get_libdir) - doins ${file} || die - fi - done - - sed \ - -e 's:test "LD_LIBRARY_PATH":test "$LD_LIBRARY_PATH":g' \ - -i "${S}"/include/ccp4.setup-sh || die - - # Setup scripts - insinto /etc/profile.d -# newins "${S}"/include/ccp4.setup-bash ccp4.setup.bash || die - newins "${S}"/include/ccp4.setup-csh 40ccp4.setup.csh || die -# newins "${S}"/include/ccp4.setup-zsh ccp4.setup.zsh || die - newins "${S}"/include/ccp4.setup-sh 40ccp4.setup.sh || die - rm -f "${S}"/include/ccp4.setup* - - # Environment files, setup scripts, etc. - insinto /usr/share/ccp4/include - doins "${S}"/include/* || die - - # smartie -- log parsing - insinto /usr/share/ccp4 - doins -r "${S}"/share/smartie || die - - # Install docs and examples - doman "${S}"/man/cat1/* - - mv "${S}"/manual/README "${S}"/manual/README-manual - dodoc manual/* README CHANGES doc/* examples/README || die - - rm "${D}"/usr/share/doc/${PF}/GNUmakefile.* - rm "${D}"/usr/share/doc/${PF}/COPYING.* - - dohtml -r "${S}"/html/* - - if use examples; then - for i in data rnase toxd; do - docinto examples/${i} - dodoc "${S}"/examples/${i}/* - done - - docinto examples/tutorial - dohtml -r "${S}"/examples/tutorial/html examples/tutorial/tut.css - for i in data results; do - docinto examples/tutorial/${i} - dodoc "${S}"/examples/tutorial/${i}/* - done - - for i in non-runnable runnable; do - docinto examples/unix/${i} - dodoc "${S}"/examples/unix/${i}/* - done - fi - # Needed for ccp4i docs to work - dosym ../../share/doc/${PF}/examples /usr/$(get_libdir)/ccp4/examples - dosym ../../share/doc/${PF}/html /usr/$(get_libdir)/ccp4/html - - # Fix overlaps with other packages - rm -f "${D}"/usr/share/man/man1/rasmol.1* "${D}"/usr/lib/font84.dat || die - - cat >> "${T}"/baubles <<- EOF - #!/bin/bash - exec python \${CCP4}/share/ccp4/smartie/baubles.py - EOF - - dobin "${T}"/baubles || die -} - -pkg_postinst() { - einfo "The Web browser defaults to firefox. Change CCP4_BROWSER" - einfo "in /etc/profile.d/ccp4.setup* to modify this." -} - -# Epatch wrapper for bulk patching -ccp_patch() { - EPATCH_SINGLE_MSG=" ${1##*/} ..." epatch ${1} -} diff --git a/sci-chemistry/ccp4-apps/ccp4-apps-6.1.3-r2.ebuild b/sci-chemistry/ccp4-apps/ccp4-apps-6.1.3-r2.ebuild new file mode 100644 index 000000000..00ceef6ad --- /dev/null +++ b/sci-chemistry/ccp4-apps/ccp4-apps-6.1.3-r2.ebuild @@ -0,0 +1,431 @@ +# Copyright 1999-2010 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: $ + +EAPI="2" + +inherit fortran eutils flag-o-matic gnuconfig toolchain-funcs autotools + +FORTRAN="g77 gfortran ifc" + +MY_P="${PN/-apps}-${PV}" + +SRC="ftp://ftp.ccp4.ac.uk/ccp4" + +#UPDATE="04_03_09" +#PATCHDATE="090511" + +PATCH_TOT="0" +# Here's a little scriptlet to generate this list from the provided +# index.patches file +# +# i=1; while read -a line; do [[ ${line//#} != ${line} ]] && continue; +# echo "PATCH${i}=( ${line[1]}"; echo "${line[0]} )"; (( i++ )); done < +# index.patches +#PATCH1=( src/topp_ +#topp.f-r1.16.2.5-r1.16.2.6.diff ) +#PATCH2=( . +#configure-r1.372.2.18-r1.372.2.19.diff ) + +DESCRIPTION="Protein X-ray crystallography toolkit" +HOMEPAGE="http://www.ccp4.ac.uk/" +RESTRICT="mirror" +SRC_URI=" + ${SRC}/${PV}/${MY_P}-core-src.tar.gz + http://dev.gentooexperimental.org/~jlec/distfiles/${PV}-oasis4.0.patch.bz2" +# patch tarball from upstream + [[ -n ${UPDATE} ]] && SRC_URI="${SRC_URI} ${SRC}/${PV}/updates/${P}-src-patch-${UPDATE}.tar.gz" +# patches created by us + [[ -n ${PATCHDATE} ]] && SRC_URI="${SRC_URI} http://dev.gentooexperimental.org/~jlec/science-dist/${PV}-${PATCHDATE}-updates.patch.bz2" + +for i in $(seq $PATCH_TOT); do + NAME="PATCH${i}[1]" + SRC_URI="${SRC_URI} + ${SRC}/${PV}/patches/${!NAME}" +done + +LICENSE="ccp4" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="examples X" + +X11DEPS=" + x11-libs/libX11 + x11-libs/libXaw + x11-libs/libXt + x11-libs/libjwc_c + x11-libs/libjwc_f + x11-libs/libxdl_view" + +TKDEPS=" + >=dev-lang/tk-8.3 + >=dev-tcltk/blt-2.4 + dev-tcltk/iwidgets + dev-tcltk/itcl + dev-tcltk/itk + >=dev-tcltk/tdom-0.8 + dev-tcltk/tkimg + dev-tcltk/tktreectrl" + +SCILIBS=" + ~sci-libs/ccp4-libs-${PV} + sci-libs/clipper + =sci-libs/fftw-2* + virtual/blas + virtual/lapack" + +SCIAPPS=" + sci-chemistry/pdb-extract + sci-chemistry/pymol + sci-chemistry/rasmol + sci-chemistry/oasis" + +RDEPEND="X? ( ${X11DEPS} ) + ${TKDEPS} + ${SCILIBS} + app-shells/tcsh + dev-python/pyxml + dev-libs/libxml2 + dev-libs/boehm-gc + !app-office/sc + !& /dev/null + ccp_patch ${DISTDIR}/"${p}" + popd >& /dev/null + done + einfo "Done." + echo + + [[ -n ${PATCHDATE} ]] && epatch "${WORKDIR}"/${PV}-${PATCHDATE}-updates.patch + + einfo "Applying Gentoo patches ..." + + # it tries to create libdir, bindir etc on live system in configure + ccp_patch "${FILESDIR}"/${PV}-dont-make-dirs-in-configure.patch + + # We already have sci-chemistry/rasmol + # Also remember to create the bindir. + ccp_patch "${FILESDIR}"/${PV}-dont-build-double-and-make-bindir.patch + + # libraries come from sci-libs/ccp4-libs + ccp_patch "${FILESDIR}"/${PV}-dont-build-libs.patch + + # coreutils installs a binary called truncate + ccp_patch "${FILESDIR}"/${PV}-rename-truncate.patch + mv ./doc/truncate.doc ./doc/ftruncate.doc || die + mv ./html/truncate.html ./html/ftruncate.html || die + + # conflicts with media-libs/raptor + ccp_patch "${FILESDIR}"/${PV}-rename-rapper.patch + mv ./doc/rapper.doc ./doc/rappermc.doc || die + mv ./html/rapper.html ./html/rappermc.html || die + + # molref is provided as binary and dynamically linked against icc + ccp_patch "${FILESDIR}"/${PV}-dont-build-molref.patch + + # no xia + ccp_patch "${FILESDIR}"/${PV}-dont-build-xia.patch + + # We build scala ourself + ccp_patch "${FILESDIR}"/${PV}-dont-build-scala.patch + + # We build scala ourself + ccp_patch "${FILESDIR}"/${PV}-dont-build-imosflm.patch + + # don't configure what is not build + ccp_patch "${FILESDIR}"/${PV}-dont-configure.patch + + # Set python paths correctly + ccp_patch "${FILESDIR}"/${PV}-pythonpath.patch + + # Set python paths correctly + ccp_patch "${FILESDIR}"/${PV}-pisa.patch + + # Set python paths correctly + ccp_patch "${FILESDIR}"/${PV}-clipper-template.patch + + # Update things for oasis 4 usage + epatch "${WORKDIR}"/${PV}-oasis4.0.patch + sed 's: oasis : :g' -i src/Makefile.in || die + + einfo "Done." # done applying Gentoo patches + echo + + # Don't build refmac binaries available from the standalone version + sed -i -e "/^REFMACTARGETS/s:refmac5 libcheck makecif molrep sfcheck::g" configure + + # Rapper bundles libxml2 and boehm-gc. Don't build, use or install those. + pushd src/rapper 2>/dev/null + sed -i \ + -e '/^AC_CONFIG_SUBDIRS(\[gc7.0 libxml2\])/d' \ + configure.ac + sed -i \ + -e '/^SUBDIRS/s:libxml2 gc7.0::g' \ + Makefile.am + sed -i \ + -e '/^rappermc_LDADD/s:../gc7.0/libgc.la ../libxml2/libxml2.la:-lgc -lxml2:g' \ + LOOP/Makefile.am + sed -i \ + -e '/^INCLUDES/s:-I../gc7.0/include -I../libxml2/include:-I/usr/include/gc -I/usr/include/libxml2:g' \ + LOOP/Makefile.am + eautoreconf + popd 2>/dev/null + + gnuconfig_update +} + +src_configure() { + # Build system is broken if we set LDFLAGS + unset LDFLAGS + + # These are broken with ./src/procheck/ps.f + filter-flags "-floop-*" + + # GENTOO_OSNAME can be one of: + # irix irix64 sunos sunos64 aix hpux osf1 linux freebsd + # linux_compaq_compilers linux_intel_compilers generic Darwin + # ia64_linux_intel Darwin_ibm_compilers linux_ibm_compilers + if [[ "${FORTRANC}" = "ifc" ]]; then + if use ia64; then + GENTOO_OSNAME="ia64_linux_intel" + else + # Should be valid for x86, maybe amd64 + GENTOO_OSNAME="linux_intel_compilers" + fi + else + # Should be valid for x86 and amd64, at least + GENTOO_OSNAME="linux" + fi + + # Sets up env + ln -s \ + ccp4.setup-bash \ + "${S}"/include/ccp4.setup + + # We agree to the license by emerging this, set in LICENSE + sed -i \ + -e "s~^\(^agreed=\).*~\1yes~g" \ + "${S}"/configure + + # Fix up variables -- need to reset CCP4_MASTER at install-time + sed -i \ + -e "s~^\(setenv CCP4_MASTER.*\)/.*~\1${WORKDIR}~g" \ + -e "s~^\(export CCP4_MASTER.*\)/.*~\1${WORKDIR}~g" \ + -e "s~^\(setenv CCP4I_TCLTK.*\)/usr/local/bin~\1/usr/bin~g" \ + -e "s~^\(export CCP4I_TCLTK.*\)/usr/local/bin~\1/usr/bin~g" \ + "${S}"/include/ccp4.setup* + + # Set up variables for build + source "${S}"/include/ccp4.setup + + export CC=$(tc-getCC) + export CXX=$(tc-getCXX) + export COPTIM=${CFLAGS} + export CXXOPTIM=${CXXFLAGS} + # Default to -O2 if FFLAGS is unset + export FC=${FORTRANC} + export FOPTIM=${FFLAGS:- -O2} + export BINSORT_SCR="${T}" + export CCP4_MASTER="${WORKDIR}" + export CCP4I_TCLTK="/usr/bin" + + # Can't use econf, configure rejects unknown options like --prefix + ./configure \ + $(use_enable X x) \ + --with-shared-libs \ + --with-fftw=/usr \ + --with-warnings \ + --disable-pdb_extract \ + --disable-cctbx \ + --disable-phaser \ + --disable-diffractionImg \ + --disable-clipper \ + --disable-mosflm \ + --disable-mrbump \ + --tmpdir="${TMPDIR}" \ + ${GENTOO_OSNAME} || die "econf failed" + + # We do this manually, since disabling the clipper libraries also + # disables the clipper programs + pushd src/clipper_progs 2>/dev/null + econf \ + --prefix="${S}" \ + --with-ccp4="${S}" \ + --with-clipper=/usr \ + --with-fftw=/usr \ + --with-mmdb=/usr \ + CXX=$(tc-getCXX) \ + || die + popd 2>/dev/null +} + +src_compile() { + # fsplit is required for the programs + pushd lib/src 2>/dev/null + emake fsplit -j1 || die + popd 2>/dev/null + + # We do this manually, since disabling the clipper libraries also + # disables the clipper programs + pushd src/clipper_progs 2>/dev/null + emake || die + popd 2>/dev/null + + emake -j1 || die "emake failed" +} + +src_install() { + # Set up variables for build + source "${S}"/include/ccp4.setup + +# make install || die "install failed" + + # if we don't make this, a ton of programs fail to install + mkdir "${S}"/bin || die + + # We do this manually, since disabling the clipper libraries also + # disables the clipper programs + pushd "${S}"/src/clipper_progs 2>/dev/null + emake install || die + popd 2>/dev/null + + einstall || die "install failed" + + # Fix env +# -e "s~^\(.*setenv PYTHONPATH .*\)\${CCP4}.*~\1\${CCP4}/share/ccp4/python~g" \ +# -e "s~^\(.*export PYTHONPATH.*\)\${CCP4}.*~\1\${CCP4}/share/ccp4/python~g" \ + sed -i \ + -e "s~^\(setenv CCP4_MASTER.*\)${WORKDIR}~\1/usr~g" \ + -e "s~^\(setenv CCP4.*\$CCP4_MASTER\).*~\1~g" \ + -e "s~^\(setenv CCP4I_TOP\).*~\1 \$CCP4/$(get_libdir)/ccp4/ccp4i~g" \ + -e "s~^\(setenv DBCCP4I_TOP\).*~\1 \$CCP4/share/ccp4/dbccp4i~g" \ + -e "s~^\(.*setenv CINCL.*\$CCP4\).*~\1/share/ccp4/include~g" \ + -e "s~^\(.*setenv CLIBD .*\$CCP4\).*~\1/share/ccp4/data~g" \ + -e "s~^\(.*setenv CLIBD_MON .*\)\$CCP4.*~\1\$CCP4/share/ccp4/data/monomers/~g" \ + -e "s~^\(.*setenv MOLREPLIB .*\)\$CCP4.*~\1\$CCP4/share/ccp4/data/monomers/~g" \ + -e "s~^\(export CCP4_MASTER.*\)${WORKDIR}~\1/usr~g" \ + -e "s~^\(export CCP4.*\$CCP4_MASTER\).*~\1~g" \ + -e "s~^\(export CCP4I_TOP\).*~\1=\$CCP4/$(get_libdir)/ccp4/ccp4i~g" \ + -e "s~^\(export DBCCP4I_TOP\).*~\1=\$CCP4/share/ccp4/dbccp4i~g" \ + -e "s~^\(.*export CINCL.*\$CCP4\).*~\1/share/ccp4/include~g" \ + -e "s~^\(.*export CLIBD.*\$CCP4\).*~\1/share/ccp4/data~g" \ + -e "s~^\(.*export CLIBD_MON.*\)\$CCP4.*~\1\$CCP4/share/ccp4/data/monomers/~g" \ + -e "s~^\(.*export MOLREPLIB.*\)\$CCP4.*~\1\$CCP4/share/ccp4/data/monomers/~g" \ + -e "/IMOSFLM_VERSION/d" \ + "${S}"/include/ccp4.setup* || die + +# -e "s~\$CCP4/share/XIAROOT/setup.sh~\$CCP4/share/ccp4/XIAROOT/setup.sh~g" \ + + # Don't check for updates on every sourcing of /etc/profile + sed -i \ + -e "s:\(eval python.*\):#\1:g" + "${S}"/include/ccp4.setup* || die + + # Collision with sci-chemistry/mrbump + rm -f "${S}"/bin/{mrbump,pydbviewer} || die + + # Bins + dobin "${S}"/bin/* || die + + # Libs + for file in "${S}"/lib/*; do + if [[ -d ${file} ]]; then + continue + elif [[ -x ${file} ]]; then + dolib.so ${file} || die + else + insinto /usr/$(get_libdir) + doins ${file} || die + fi + done + + sed \ + -e 's:test "LD_LIBRARY_PATH":test "$LD_LIBRARY_PATH":g' \ + -i "${S}"/include/ccp4.setup-sh || die + + # Setup scripts + insinto /etc/profile.d +# newins "${S}"/include/ccp4.setup-bash ccp4.setup.bash || die + newins "${S}"/include/ccp4.setup-csh 40ccp4.setup.csh || die +# newins "${S}"/include/ccp4.setup-zsh ccp4.setup.zsh || die + newins "${S}"/include/ccp4.setup-sh 40ccp4.setup.sh || die + rm -f "${S}"/include/ccp4.setup* + + # Environment files, setup scripts, etc. + insinto /usr/share/ccp4/include + doins "${S}"/include/* || die + + # smartie -- log parsing + insinto /usr/share/ccp4 + doins -r "${S}"/share/smartie || die + + # Install docs and examples + doman "${S}"/man/cat1/* + + mv "${S}"/manual/README "${S}"/manual/README-manual + dodoc manual/* README CHANGES doc/* examples/README || die + + rm "${D}"/usr/share/doc/${PF}/GNUmakefile.* + rm "${D}"/usr/share/doc/${PF}/COPYING.* + + dohtml -r "${S}"/html/* + + if use examples; then + for i in data rnase toxd; do + docinto examples/${i} + dodoc "${S}"/examples/${i}/* + done + + docinto examples/tutorial + dohtml -r "${S}"/examples/tutorial/html examples/tutorial/tut.css + for i in data results; do + docinto examples/tutorial/${i} + dodoc "${S}"/examples/tutorial/${i}/* + done + + for i in non-runnable runnable; do + docinto examples/unix/${i} + dodoc "${S}"/examples/unix/${i}/* + done + fi + # Needed for ccp4i docs to work + dosym ../../share/doc/${PF}/examples /usr/$(get_libdir)/ccp4/examples + dosym ../../share/doc/${PF}/html /usr/$(get_libdir)/ccp4/html + + # Fix overlaps with other packages + rm -f "${D}"/usr/share/man/man1/rasmol.1* "${D}"/usr/lib/font84.dat || die + + cat >> "${T}"/baubles <<- EOF + #!/bin/bash + exec python \${CCP4}/share/ccp4/smartie/baubles.py + EOF + + dobin "${T}"/baubles || die +} + +pkg_postinst() { + einfo "The Web browser defaults to firefox. Change CCP4_BROWSER" + einfo "in /etc/profile.d/ccp4.setup* to modify this." +} + +# Epatch wrapper for bulk patching +ccp_patch() { + EPATCH_SINGLE_MSG=" ${1##*/} ..." epatch ${1} +} diff --git a/sci-chemistry/ccp4-apps/files/6.1.3-clipper-template.patch b/sci-chemistry/ccp4-apps/files/6.1.3-clipper-template.patch new file mode 100644 index 000000000..433a78dbd --- /dev/null +++ b/sci-chemistry/ccp4-apps/files/6.1.3-clipper-template.patch @@ -0,0 +1,70 @@ +--- src/clipper_progs/src/intensity_target.h.orig 2010-01-21 11:27:13.236795886 -0600 ++++ src/clipper_progs/src/intensity_target.h 2010-01-21 11:31:33.450686927 -0600 +@@ -70,9 +70,31 @@ + { + public: + //! constructor: takes the datalist against which to calc target +- TargetFn_scaleLogI1I2( const HKL_data& hkl_data1_, const HKL_data& hkl_data2_ ); ++ TargetFn_scaleLogI1I2( const HKL_data& hkl_data1_, const HKL_data& hkl_data2_ ) ++ { ++ hkl_data1 = &hkl_data1_; ++ hkl_data2 = &hkl_data2_; ++ } + //! return the value and derivatives of the target function +- Rderiv rderiv( const HKL_info::HKL_reference_index& ih, const ftype& intensityh ) const; ++ Rderiv rderiv( const HKL_info::HKL_reference_index& ih, const ftype& intensityh ) const ++ { ++ Rderiv result; ++ result.r = result.dr = result.dr2 = 0.0; ++ const T1& it1 = (*hkl_data1)[ih]; ++ const T2& it2 = (*hkl_data2)[ih]; ++ if ( !it1.missing() && !it2.missing() ) ++ if ( it1.I() > 1.0e-6 && it2.I() > 1.0e-6 ) { ++ const ftype eps = ih.hkl_class().epsilon(); ++ const ftype i1 = it1.I() / eps; ++ const ftype i2 = it2.I() / eps; ++ const ftype w = sqrt( i1 * i2 ); ++ const ftype d = intensityh + log(i1) - log(i2); ++ result.r = w * d * d; ++ result.dr = 2.0 * w * d; ++ result.dr2 = 2.0 * w; ++ } ++ return result; ++ } + //! the type of the function: optionally used to improve convergence + FNtype type() const { return QUADRATIC; } + private: +@@ -109,33 +131,4 @@ + return result; + } + +- // Log I1-I2 scaling +- +- template TargetFn_scaleLogI1I2::TargetFn_scaleLogI1I2( const HKL_data& hkl_data1_, const HKL_data& hkl_data2_ ) +- { +- hkl_data1 = &hkl_data1_; +- hkl_data2 = &hkl_data2_; +- } +- +- template TargetFn_base::Rderiv TargetFn_scaleLogI1I2::rderiv( const HKL_info::HKL_reference_index& ih, const ftype& intensityh ) const +- { +- Rderiv result; +- result.r = result.dr = result.dr2 = 0.0; +- const T1& it1 = (*hkl_data1)[ih]; +- const T2& it2 = (*hkl_data2)[ih]; +- if ( !it1.missing() && !it2.missing() ) +- if ( it1.I() > 1.0e-6 && it2.I() > 1.0e-6 ) { +- const ftype eps = ih.hkl_class().epsilon(); +- const ftype i1 = it1.I() / eps; +- const ftype i2 = it2.I() / eps; +- const ftype w = sqrt( i1 * i2 ); +- const ftype d = intensityh + log(i1) - log(i2); +- result.r = w * d * d; +- result.dr = 2.0 * w * d; +- result.dr2 = 2.0 * w; +- } +- return result; +- } +- +- + #endif -- cgit v1.2.3-65-gdbad