diff options
Diffstat (limited to 'sci-biology/staden/staden-1.5.3-r1.ebuild')
-rw-r--r-- | sci-biology/staden/staden-1.5.3-r1.ebuild | 283 |
1 files changed, 283 insertions, 0 deletions
diff --git a/sci-biology/staden/staden-1.5.3-r1.ebuild b/sci-biology/staden/staden-1.5.3-r1.ebuild new file mode 100644 index 000000000000..af10d404352a --- /dev/null +++ b/sci-biology/staden/staden-1.5.3-r1.ebuild @@ -0,0 +1,283 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sci-biology/staden/staden-1.5.3-r1.ebuild,v 1.1 2005/11/13 05:38:39 ribosome Exp $ + +inherit eutils toolchain-funcs fortran + +TCLV="8.4.6" +TKV="8.4.6" + +DESCRIPTION="The Staden Package - Biological sequence handling and analysis" +LICENSE="${PN}" +HOMEPAGE="http://staden.sourceforge.net" +SRC_URI="mirror://sourceforge/${PN}/${PN}-src-${PV//./-}.tar.gz + mirror://gentoo/${PN}-1.4.1-missing-doc.tar.bz2 + mirror://sourceforge/tcl/tcl${TCLV}-src.tar.gz + mirror://sourceforge/tcl/tk${TKV}-src.tar.gz + doc? ( mirror://sourceforge/${PN}/course-1.1.tar.gz )" + +SLOT="0" +IUSE="doc" +KEYWORDS="~amd64 ~x86" + +RDEPEND="app-shells/ksh + dev-lang/tcl + dev-lang/tk + sci-libs/io_lib + =dev-tcltk/itcl-3.2* + dev-tcltk/iwidgets + media-libs/libpng + virtual/x11" + +DEPEND="${RDEPEND} + dev-lang/perl + media-gfx/imagemagick + virtual/emacs + virtual/tetex" + +S="${WORKDIR}/${PN}-src-${PV//./-}" + +src_unpack() { + unpack ${A} + mv "${WORKDIR}"/tcl${TCLV} "${S}"/src + mv "${WORKDIR}"/tk${TKV} "${S}"/src + + # The following Makefiles are more or less broken. Libraries are missing, + # or their directories are not included, or the variables are not set + # correctly and must be replaced by hardcoded library names. The + # top-level Makefile is also changed to avoid compiling documentation + # (which is provided prebuilt because of numerous compilation/dead links + # problems). + cd "${S}" + epatch "${FILESDIR}"/${P}-top.patch + epatch "${FILESDIR}"/${P}-text_utils.patch + epatch "${FILESDIR}"/${P}-tk_utils.patch + epatch "${FILESDIR}"/${P}-prefinish.patch + epatch "${FILESDIR}"/${P}-tracediff.patch + epatch "${FILESDIR}"/${P}-mutscan.patch + epatch "${FILESDIR}"/${P}-mutlib-gcc-3.4.patch + cd "${S}"/src/mk + # Remove the "-fpic" flag. This will be replaced by "-fPIC". + sed -i -e 's/SHLIB_CFLAGS = -fpic/SHLIB_CFLAGS = /' linux.mk || die + cd "${S}" + + # "getopt" is incorrectly included as an extern (for Win32 compatibility). + epatch "${FILESDIR}"/${P}-getopt.patch + + # The original iwidgetsrc crashes... + einfo 'Replacing broken iwidgetsrc' + cp "${FILESDIR}"/${P}-iwidgetsrc.new "${S}"/tables/iwidgetsrc + + # Netscape is not a good default browser (security masked in Portage). + # Use documentation.html rather than staden_home.html as the top-level + # hypertext documentation file. + einfo 'Replacing old staden_help script.' + cp "${FILESDIR}"/${P}-staden_help.new "${S}"/src/scripts/staden_help + chmod +x "${S}"/src/scripts/staden_help + + # The documentation building process is broken on Gentoo, mainly because + # incorrect program locations are assumed. + einfo "Patching Staden Package documentation build system." + + # Documentation build process cannot find "update-nodes.el". + cd "${S}"/doc/manual/tools + sed -i -e 's%emacs -batch $1 -l ${DOCDIR:-.}/tools/update-nodes.el%emacs -batch $1 -l ${DOCDIR:-..}/manual/tools/update-nodes.el%' update-nodes || die + + # Perl scripts search for "pearl" in "/usr/local". + for SCRIPT in *.pl texi2html; do + sed -i -e 's%/usr/local/bin/perl%/usr/bin/perl%' ${SCRIPT} || die + done + + # The "convert" tool from Imagemagick is searched for in "/usr/X11R6". + sed -i -e 's%/usr/X11R6/bin/convert%/usr/bin/convert%' make_ps | die + + # Solves issues with images in the exercise* texi files. + cd "${S}"/course/texi + for FILE in exercise*.texi; do + sed -i -e 's/,,8in}/,,8in,,eps}/' ${FILE} + sed -i -e 's/,6in}/,6in,,,eps}/' ${FILE} + done + + # "CFLAGS" and "FFLAGS" need to be set to the user's values in the build + # system global Makefile. We also want only "-fPIC" shared libraries. + einfo "Applying user-defined compilation/linking flags:" + cd "${S}"/src/mk + sed -e "s/COPT = -O2 -g3 -DNDEBUG/COPT = ${CFLAGS:-"-O2 -g3 -DNDEBUG"} -fPIC/" \ + -e "s/FOPT = -O2 -g3 -DNDEBUG/FOPT = ${FFLAGS:-"-O2 -g3 -DNDEBUG"} -fPIC/" \ + -i global.mk || die +} + +src_compile() { + # "MACHINE", "{STADEN,SRC}ROOT" and "JOB" are mandatory arguments to the + # Staden Package build process. "O" is redefined on the command line to + # avoid a conflict between Portage and the Staden Package build system, + # which both use this variable. (In Portage, its value is the directory + # containing the current ebuild, while in the Staden Package build system + # it is set to the directory containing the compiler object files.) + # Compiler program names also need to be specified to override the + # incorrect hardcoded ones. + + # Compile executables and libraries. + make \ + STADENROOT="${S}" \ + SRCROOT="${S}/src" \ + MACHINE="linux" \ + JOB="all" \ + O="linux-binaries" \ + CC=$(tc-getCC) \ + CXX=$(tc-getCXX) \ + F77=${F77:-g77} \ + || die "Package compilation failed." + + # Build documentation. + cd "${S}"/doc + make \ + STADENROOT="${S}" \ + SRCROOT="${S}/src" \ + MACHINE="linux" \ + JOB="all" \ + O="linux-binaries" \ + CC=$(tc-getCC) \ + CXX=$(tc-getCXX) \ + F77=${F77:-g77} \ + || die "Package compilation failed." + + + # The install process will copy the libraries in ${S}/lib/linux-binaries, + # but this directory is in fact a symlink to the source directory. + rm "${S}"/lib/linux-binaries + mkdir "${S}"/lib/linux-binaries + + # Moves executables in "${S}/linux-bin" and libraries to + # ${S}/lib/linux-binaries. + cd "${S}" + make \ + STADENROOT="${S}" \ + SRCROOT="${S}/src" \ + MACHINE="linux" \ + JOB="all" \ + O="linux-binaries" \ + install || die "Package pre-installation failed." + + # Remove Makefiles from directories which will be manually installed. + rm "${S}"/lib/Makefile + rm "${S}"/demo/Makefile + rm "${S}"/tables/Makefile + rm "${S}"/userdata/Makefile + + #Remove libread since an updated version is included in "sci-libs/io_lib". + rm "${S}"/lib/linux-binaries/libread.so + # Delete the binaries already included in "sci-libs/io_lib". + for FILE in convert_trace \ + extract_seq \ + get_comment \ + index_tar \ + makeSCF \ + scf_{dump,info,update} \ + trace_dump; do + rm "${S}"/linux-bin/${FILE} + done + + # These won't be found if they are not symlinked in the lib dir. + ln -s /usr/$(get_libdir)/libitcl3.2.so "${S}"/lib/itcl3.3/libitcl3.3.so + ln -s /usr/$(get_libdir)/libitk3.2.so "${S}"/lib/itk3.3/libitk3.3.so + + # Remove the (broken) prebuilt EMBOSS tcl/tk GUIs. + rm "${S}"/tables/emboss_menu + rm -r "${S}"/lib/spin2_emboss/acdtcl + rm -r "${S}"/lib/spin_emboss/acdtcl + + # Patch hypertext documentation. + cd "${S}"/doc/manual + for FILE in *.html; do + sed -i -e 's%<a href="../staden_home.html"><img src="i/nav_home.gif" alt="home"></a>%%' ${FILE} + done + cd "${S}"/doc/scripting_manual + for FILE in *.html; do + sed -i -e 's%<a href="../staden_home.html"><img src="i/nav_home.gif" alt="home"></a>%%' ${FILE} + done +} + +src_install() { + # Executables and libraries + mkdir -p "${D}"/opt/${PN} + + for FILE in "${S}"/lib/linux-binaries/*; do + dolib ${FILE} + done + + mv "${S}"/linux-bin "${D}"/opt/${PN}/linux-bin + mv "${S}"/lib "${D}"/opt/${PN}/lib + + # Shared files + mv "${S}"/demo "${D}"/opt/${PN} + mv "${S}"/tables "${D}"/opt/${PN} + mv "${S}"/userdata "${D}"/opt/${PN} + + # "env" file for setting paths to Staden Package root, libraries, tables... + insinto /etc/env.d + newins "${FILESDIR}"/${P}-env 27${PN} + + # Basic documentation + insinto /opt/${PN}/doc + doins "${S}"/doc/Acknowledgements + newins "${S}"/doc/emboss.txt README.emboss + + # Man pages + doman "${S}"/doc/manual/man/man*/*.* + + # Hypertext documentation + insinto /opt/${PN}/doc/manual + doins "${S}"/doc/manual/*unix*.{png,html,index} + insinto /opt/${PN}/doc/scripting_manual + doins "${S}"/doc/scripting_manual/*.html + insinto /opt/${PN}/doc/manual/i + doins "${S}"/doc/manual/i/* + insinto /opt/${PN}/doc/scripting_manual/i + doins "${S}"/doc/scripting_manual/i/* + + # Missing hypertext documentation + insinto /opt/${PN}/doc + doins "${WORKDIR}"/${PN}-1.4.1-missing-doc/documentation.html + insinto /opt/${PN}/doc/misc + doins "${WORKDIR}"/${PN}-1.4.1-missing-doc/misc/* + insinto /opt/${PN}/doc/misc/i + doins "${S}"/doc/manual/i/* + + # Printable manuals and articles + insinto /opt/${PN}/doc + newins "${S}"/doc/gkb547_gml.pdf Staden1998.pdf + newins "${S}"/doc/manual/manual_unix.pdf manual.pdf + newins "${S}"/doc/manual/mini_unix.pdf mini_manual.pdf + newins "${S}"/doc/scripting_manual/scripting.pdf scripting_manual.pdf + + # A short course in printable format, along with example data + if use doc; then + mkdir -p "${D}"/opt/${PN}/course + mv "${WORKDIR}"/course-1.1/data "${D}"/opt/${PN}/course/data + insinto /opt/${PN}/course + doins "${WORKDIR}"/course-1.1/README + newins "${WORKDIR}"/course-1.1/unix_docs/mutation_talk.ppt course_mutation_detection_diapos.pdf + newins "${WORKDIR}"/course-1.1/unix_docs/course_unix.pdf course_project_management.pdf + newins "${WORKDIR}"/course-1.1/unix_docs/mutation_notes.pdf course_mutation_detection.pdf + fi +} + +pkg_postinst() { + echo + ewarn 'Known issues:' + ewarn + ewarn 'The help browser integrated in the GUI applications reports missing' + ewarn 'files when following hyperlinks on the main documentation page. This' + ewarn 'seems to be a problem in the Staden Package help browser. You might' + ewarn 'want to use your favorite browser instead of the integrated one to' + ewarn 'read the documentation.' + ewarn + ewarn 'The GUI programs may crash when bringing up the font selection' + ewarn 'dialog. This problem is related to the presence of certain' + ewarn 'fonts in "FontPath". If you experience this problem, try using' + ewarn '"strace" to identify the problematic font(s) and either uninstall' + ewarn 'them or remove the directory they are in from "FontPath" by' + ewarn 'editing your X server configuration file.' + echo +} |