From 96fd5553fc44ed970568dffe472300c902bddfbd Mon Sep 17 00:00:00 2001 From: Olivier Fisette Date: Tue, 15 Nov 2005 00:29:54 +0000 Subject: [PATCH] Added MPI support for the BLAST family of programs. Package-Manager: portage-2.0.51.22-r3 --- sci-biology/ncbi-tools/ChangeLog | 9 +- sci-biology/ncbi-tools/Manifest | 12 +- .../files/digest-ncbi-tools-20050605-r1 | 3 + .../ncbi-tools/ncbi-tools-20050605-r1.ebuild | 192 ++++++++++++++++++ 4 files changed, 210 insertions(+), 6 deletions(-) create mode 100644 sci-biology/ncbi-tools/files/digest-ncbi-tools-20050605-r1 create mode 100644 sci-biology/ncbi-tools/ncbi-tools-20050605-r1.ebuild diff --git a/sci-biology/ncbi-tools/ChangeLog b/sci-biology/ncbi-tools/ChangeLog index 1b39eec16427..a102f3b3e97f 100644 --- a/sci-biology/ncbi-tools/ChangeLog +++ b/sci-biology/ncbi-tools/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for sci-biology/ncbi-tools # Copyright 2000-2005 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sci-biology/ncbi-tools/ChangeLog,v 1.32 2005/11/09 05:03:53 weeve Exp $ +# $Header: /var/cvsroot/gentoo-x86/sci-biology/ncbi-tools/ChangeLog,v 1.33 2005/11/15 00:29:53 ribosome Exp $ + +*ncbi-tools-20050605-r1 (15 Nov 2005) + + 15 Nov 2005; Olivier Fisette + +ncbi-tools-20050605-r1.ebuild: + Added MPI support for the BLAST family of programs. Thanks to Brady + Catherman for his work (fixes bug #111807). 09 Nov 2005; Jason Wever ncbi-tools-20050605.ebuild: Stable on SPARC wrt bug #108334. diff --git a/sci-biology/ncbi-tools/Manifest b/sci-biology/ncbi-tools/Manifest index 229dc6c91c95..293fa762f753 100644 --- a/sci-biology/ncbi-tools/Manifest +++ b/sci-biology/ncbi-tools/Manifest @@ -1,7 +1,9 @@ -MD5 6ad26e50ebb8bf5d37dd5e5505d56fbc ChangeLog 8205 -MD5 a5f54430f6f7422d75320e91068cae0b files/21ncbi-r1 232 +MD5 8a5d6415b997982e33a27bdcdc206f89 ncbi-tools-20050605-r1.ebuild 6177 +MD5 27f1ef207c35088c37ca584b6158bd03 ncbi-tools-20050605.ebuild 5688 +MD5 4e98d0dd0efb75eacc3595fdf0e67ec1 ChangeLog 8471 +MD5 f189a3c4ff5ae55bcee4f8ed0ace5d20 metadata.xml 254 +MD5 2f82cbf863fc3fc2522b55f74f9c3244 files/digest-ncbi-tools-20050605-r1 207 +MD5 23986a001c85eb8c2c319aacfa9cb40c files/ncbirc 33 MD5 9cef4ca17113d005c44d3bf3d330f747 files/digest-ncbi-tools-20050605 144 +MD5 a5f54430f6f7422d75320e91068cae0b files/21ncbi-r1 232 MD5 6b62beda180ee6d7d4d4a52507acc3ff files/ncbi-tools-20050605-lop.patch 701 -MD5 23986a001c85eb8c2c319aacfa9cb40c files/ncbirc 33 -MD5 f189a3c4ff5ae55bcee4f8ed0ace5d20 metadata.xml 254 -MD5 27f1ef207c35088c37ca584b6158bd03 ncbi-tools-20050605.ebuild 5688 diff --git a/sci-biology/ncbi-tools/files/digest-ncbi-tools-20050605-r1 b/sci-biology/ncbi-tools/files/digest-ncbi-tools-20050605-r1 new file mode 100644 index 000000000000..416d3489a46f --- /dev/null +++ b/sci-biology/ncbi-tools/files/digest-ncbi-tools-20050605-r1 @@ -0,0 +1,3 @@ +MD5 61864b4999390eb69e60734b3b02c149 ncbi-tools-20050605.tar.gz 14458684 +MD5 c0860f787d95623b72fba58dbf1b60c5 ncbi-tools-sdk-doc.tar.bz2 263568 +MD5 76a5f1b547b40dcb00ae3790579dba1b mpiBLAST-1.4.0.tgz 344877 diff --git a/sci-biology/ncbi-tools/ncbi-tools-20050605-r1.ebuild b/sci-biology/ncbi-tools/ncbi-tools-20050605-r1.ebuild new file mode 100644 index 000000000000..b1591d976ee6 --- /dev/null +++ b/sci-biology/ncbi-tools/ncbi-tools-20050605-r1.ebuild @@ -0,0 +1,192 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-biology/ncbi-tools/ncbi-tools-20050605-r1.ebuild,v 1.1 2005/11/15 00:29:53 ribosome Exp $ + +inherit flag-o-matic toolchain-funcs eutils + +DESCRIPTION="Development toolkit and applications (BLAST, entrez, ddv, udv, sequin...) for computational biology" +LICENSE="public-domain" +HOMEPAGE="http://www.ncbi.nlm.nih.gov/" +SRC_URI="mirror://gentoo/${P}.tar.gz + doc? ( mirror://gentoo/${PN}-sdk-doc.tar.bz2 ) + mpi? ( mirror://gentoo/mpiBLAST-1.4.0.tgz )" + +SLOT="0" +KEYWORDS="~amd64 ~ppc ~ppc-macos ~ppc64 ~x86" +IUSE="doc mpi X" + +DEPEND="app-shells/tcsh + dev-lang/perl + media-libs/libpng + mpi? ( virtual/mpi ) + X? ( virtual/x11 + virtual/motif + )" + +S="${WORKDIR}/ncbi" + +pkg_setup() { + echo + ewarn 'It is important to note that the NCBI tools (especially the X' + ewarn 'applications) are known to have compilation and run-time' + ewarn 'problems when compiled with agressive compilation flags. The' + ewarn '"-O3" flag is filtered by the ebuild on the x86 architecture if' + ewarn 'X support is enabled. If you experience difficulties with this' + ewarn 'package and use agressive "CFLAGS", lower the "CFLAGS" and try' + ewarn 'to install the NCBI tools again.' + echo +} + +src_unpack() { + unpack ${A} + + if use ppc64; then + cd "${S}" + epatch "${FILESDIR}"/${P}-lop.patch + fi + + if use mpi; then + cd "${S}" + epatch "${WORKDIR}"/mpiblast-1.4.0/ncbi_Jun2005_evalue.patch + fi + + if ! use X; then + cd "${S}"/make + sed -e "s:\#set HAVE_OGL=0:set HAVE_OGL=0:" \ + -e "s:\#set HAVE_MOTIF=0:set HAVE_MOTIF=0:" \ + -i makedis.csh || die + else + if use x86; then + # X applications segfault on startup on x86 with -O3. + replace-flags '-O3' '-O2' + fi + fi + + # Apply user C flags... + cd "${S}"/platform + # ... on x86... + sed -e "s/NCBI_CFLAGS1 = -c/NCBI_CFLAGS1 = -c ${CFLAGS}/" \ + -e "s/NCBI_LDFLAGS1 = -O3 -mcpu=pentium4/NCBI_LDFLAGS1 = ${CFLAGS}/" \ + -e "s/NCBI_OPTFLAG = -O3 -mcpu=pentium4/NCBI_OPTFLAG = ${CFLAGS}/" \ + -i linux-x86.ncbi.mk || die + # ... on alpha... + sed -e "s/NCBI_CFLAGS1 = -c/NCBI_CFLAGS1 = -c ${CFLAGS}/" \ + -e "s/NCBI_LDFLAGS1 = -O3 -mieee/NCBI_LDFLAGS1 = -mieee ${CFLAGS}/" \ + -e "s/NCBI_OPTFLAG = -O3 -mieee/NCBI_OPTFLAG = -mieee ${CFLAGS}/" \ + -i linux-alpha.ncbi.mk || die + # ... on hppa... + sed -e "s/NCBI_CFLAGS1 = -c/NCBI_CFLAGS1 = -c ${CFLAGS}/" \ + -e "s/NCBI_LDFLAGS1 = -O2/NCBI_LDFLAGS1 = ${CFLAGS}/" \ + -e "s/NCBI_OPTFLAG = -O2/NCBI_OPTFLAG = ${CFLAGS}/" \ + -i hppalinux.ncbi.mk || die + # ... on ppc... + sed -e "s/NCBI_CFLAGS1 = -c/NCBI_CFLAGS1 = -c ${CFLAGS}/" \ + -e "s/NCBI_LDFLAGS1 = -O2/NCBI_LDFLAGS1 = ${CFLAGS}/" \ + -e "s/NCBI_OPTFLAG = -O2/NCBI_OPTFLAG = ${CFLAGS}/" \ + -i ppclinux.ncbi.mk || die + # ... on generic Linux. + sed -e "s/NCBI_CFLAGS1 = -c/NCBI_CFLAGS1 = -c ${CFLAGS}/" \ + -e "s/NCBI_LDFLAGS1 = -O3/NCBI_LDFLAGS1 = ${CFLAGS}/" \ + -e "s/NCBI_OPTFLAG = -O3/NCBI_OPTFLAG = ${CFLAGS}/" \ + -i linux.ncbi.mk || die + + # Put in our MAKEOPTS (doesn't work). + # sed -e "s:make \$MFLG:make ${MAKEOPTS}:" -i ncbi/make/makedis.csh + + # Set C compiler... + # ... on x86... + sed -i -e "s/NCBI_CC = gcc/NCBI_CC = $(tc-getCC)/" linux-x86.ncbi.mk || die + # ... on alpha... + sed -i -e "s/NCBI_CC = gcc/NCBI_CC = $(tc-getCC)/" linux-alpha.ncbi.mk || die + # ... on hppa... + sed -i -e "s/NCBI_CC = gcc/NCBI_CC = $(tc-getCC)/" hppalinux.ncbi.mk || die + # ... on ppc... + sed -i -e "s/NCBI_CC = gcc/NCBI_CC = $(tc-getCC)/" ppclinux.ncbi.mk || die + # ... on generic Linux. + sed -i -e "s/NCBI_CC = gcc/NCBI_CC = $(tc-getCC)/" linux.ncbi.mk || die +} + +src_compile() { + cd "${WORKDIR}" + ncbi/make/makedis.csh || die + mkdir "${S}"/cgi + mkdir "${S}"/real + mv "${S}"/bin/*.cgi "${S}"/cgi + mv "${S}"/bin/*.REAL "${S}"/real + + if use mpi; then + cd "${WORKDIR}"/mpiblast-1.4.0 + econf --with-ncbi="${WORKDIR}"/ncbi --with-mpi=/usr || die + emake || die + fi +} + +src_install() { + dobin "${S}"/bin/* + dolib "${S}"/lib/* + mkdir -p "${D}"/usr/include/ncbi + cp -RL "${S}"/include/* "${D}"/usr/include/ncbi + + if use mpi; then + cd "${WORKDIR}"/mpiblast-1.4.0 + make install DESTDIR="${D}" || die + fi + + # TODO: Web apps + #insinto /usr/share/ncbi/lib/cgi + #doins ${S}/cgi/* + #insinto /usr/share/ncbi/lib/real + #doins ${S}/real/* + # TODO: Add support for wwwblast. + + # Basic documentation + dodoc "${S}"/{README,VERSION,doc/{*.txt,README.asn2xml}} + newdoc "${S}"/doc/fa2htgs/README README.fa2htgs + newdoc "${S}"/config/README README.config + newdoc "${S}"/network/encrypt/README README.encrypt + newdoc "${S}"/network/nsclilib/readme README.nsclilib + newdoc "${S}"/sequin/README README.sequin + doman "${S}"/doc/man/* + + # Hypertext user documentation + dohtml "${S}"/{README.html,doc/{*.html *.gif}} + insinto /usr/share/doc/${PF}/html/blast + doins "${S}"/doc/blast/* + + # Developer documentation + if use doc; then + # "socks" documentation + SOCKS="network/socks/socks.cstc.4.2" + insinto /usr/share/doc/${PF}/socks + doins "${S}"/${SOCKS}/{CHANGES,How_to_SOCKSify,README.{1st,4.{0,1,2},DK},What_are_the_risks,What_SOCKS_expects} + newins "${S}"/${SOCKS}/libident/README README.libident + doins "${S}"/${SOCKS}/sockd/sockd.conf.sample + doman "${S}"/${SOCKS}/{doc/*.{1,5,8},libident/ident.3} + # "regexp" documentation + insinto /usr/share/doc/${PF}/regexp + doins "${S}"/regexp/doc/{AUTHORS,NEWS,README,Tech.Notes,*.txt} + insinto /usr/share/doc/${PF}/regexp/html + doins "${S}"/regexp/doc/*.html + doman "${S}"/regexp/doc/*.{1,3} + # Hypertext SDK documentation + insinto /usr/share/doc/${PF}/html/sdk + doins "${WORKDIR}"/${PN}-sdk-doc/* + # Demo programs + mkdir "${D}"/usr/share/ncbi + mv "${S}"/demo "${D}"/usr/share/ncbi/demo + mv "${S}"/regexp/demo "${D}"/usr/share/ncbi/demo/regexp + mv "${S}"/regexp/test "${D}"/usr/share/ncbi/demo/regexp/test + fi + + # Shared data (similarity matrices and such) and database directory. + insinto /usr/share/ncbi/data + doins "${S}"/data/* + dodir /usr/share/ncbi/formatdb + + # Default config file to set the path for shared data. + insinto /etc/ncbi + newins "${FILESDIR}"/ncbirc .ncbirc + + # Env file to set the location of the config file and BLAST databases. + newenvd "${FILESDIR}"/21ncbi-r1 21ncbi +} -- 2.26.2