Added MPI support for the BLAST family of programs.
authorOlivier Fisette <ribosome@gentoo.org>
Tue, 15 Nov 2005 00:29:54 +0000 (00:29 +0000)
committerOlivier Fisette <ribosome@gentoo.org>
Tue, 15 Nov 2005 00:29:54 +0000 (00:29 +0000)
Package-Manager: portage-2.0.51.22-r3

sci-biology/ncbi-tools/ChangeLog
sci-biology/ncbi-tools/Manifest
sci-biology/ncbi-tools/files/digest-ncbi-tools-20050605-r1 [new file with mode: 0644]
sci-biology/ncbi-tools/ncbi-tools-20050605-r1.ebuild [new file with mode: 0644]

index 1b39eec164277122e3e33297ca8e15407a0896a4..a102f3b3e97f5c50d8f547720cf5ec3496d9d31d 100644 (file)
@@ -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 <ribosome@gentoo.org>
+  +ncbi-tools-20050605-r1.ebuild:
+  Added MPI support for the BLAST family of programs. Thanks to Brady
+  Catherman <bradyc@uidaho.edu> for his work (fixes bug #111807).
 
   09 Nov 2005; Jason Wever <weeve@gentoo.org> ncbi-tools-20050605.ebuild:
   Stable on SPARC wrt bug #108334.
index 229dc6c91c9529bef4fbed88d6f48cd02e9f4373..293fa762f753ef9c4e5b7aa654975ebbe721aee6 100644 (file)
@@ -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 (file)
index 0000000..416d348
--- /dev/null
@@ -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 (file)
index 0000000..b1591d9
--- /dev/null
@@ -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
+}