diff options
Diffstat (limited to 'sci-chemistry/modeller/modeller-10.5.ebuild')
-rw-r--r-- | sci-chemistry/modeller/modeller-10.5.ebuild | 148 |
1 files changed, 148 insertions, 0 deletions
diff --git a/sci-chemistry/modeller/modeller-10.5.ebuild b/sci-chemistry/modeller/modeller-10.5.ebuild new file mode 100644 index 000000000000..80718ec876c8 --- /dev/null +++ b/sci-chemistry/modeller/modeller-10.5.ebuild @@ -0,0 +1,148 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{10..12} ) +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_EXT=1 + +inherit distutils-r1 + +DESCRIPTION="Homology or comparative modeling of protein three-dimensional structures" +HOMEPAGE="https://salilab.org/modeller/" +SRC_URI="https://salilab.org/${PN}/${PV}/${P}.tar.gz" + +LICENSE="modeller" +SLOT="0" +KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" +IUSE="doc examples" + +RESTRICT="mirror" + +DEPEND=">=dev-lang/swig-1.3" + +PATCHES=( "${FILESDIR}/${P}-fix-except.patch" ) + +INPATH="${EPREFIX}"/opt/modeller${ver} + +QA_PREBUILT="/opt/*" + +pkg_setup() { + case ${ARCH} in + x86) + EXECTYPE="i386-intel8";; + amd64) + EXECTYPE="x86_64-intel8";; + *) + die "Your arch "${ARCH}" does not appear supported at this time.";; + esac +} + +python_prepare_all() { + sed "s:i386-intel8:${EXECTYPE}:g" -i src/swig/setup.py || die + rm -rf modlib/modeller/python_library || die + distutils-r1_python_prepare_all +} + +python_compile() { + cd src/swig || die + swig -python -keyword -nodefaultctor -nodefaultdtor -noproxy modeller.i || die + distutils-r1_python_compile +} + +python_install() { + cd src/swig || die + distutils-r1_python_install +} + +python_install_all() { + cd "${S}" || die + sed \ + -e "/^EXECUTABLE_TYPE/s:xxx:${EXECTYPE}:g" \ + -e "/MODINSTALL/s:xxx:\"${INPATH}\":g" \ + -i bin/modscript || die + + sed -e "s;@TOPDIR\@;\"${INPATH}\";" \ + -e "s;@EXETYPE\@;${EXECTYPE};" \ + bin/modpy.sh.in > "${T}/modpy.sh" + + insinto ${INPATH} + doins -r modlib + python_foreach_impl python_domodule modlib/modeller + + insinto ${INPATH}/bin + doins -r bin/{lib,*top} + + exeinto ${INPATH}/bin + doexe bin/{modscript,mod${PV}_${EXECTYPE}} "${T}"/modpy.sh + + dosym ${INPATH}/bin/modscript /opt/bin/mod${PV} + dosym ${INPATH}/bin/modpy.sh /opt/bin/modpy.sh + + exeinto ${INPATH}/lib/${EXECTYPE}/ + doexe lib/${EXECTYPE}/lib* + dosym libmodeller.so.12 ${INPATH}/lib/${EXECTYPE}/libmodeller.so + dosym ../../${INPATH}/lib/${EXECTYPE}/libmodeller.so.12 /usr/$(get_libdir)/libmodeller.so.12 + + use doc && HTML_DOCS=( doc/. ) + distutils-r1_python_install_all + + if use examples; then + insinto /usr/share/${PN}/ + doins -r examples + fi + + insinto /etc/revdep-rebuild + cat >> "${T}"/40-${PN} <<- EOF + SEARCH_DIRS_MASK="${EPREFIX}/opt/modeller/lib/" + EOF + doins "${T}"/40-${PN} +} + +pkg_postinst() { + if [[ ! -e "${INPATH}/modlib/modeller/config.py" ]]; then + echo install_dir = \"${INPATH}/\"> ${INPATH}/modlib/modeller/config.py + fi + + if grep -q license ${INPATH}/modlib/modeller/config.py; then + einfo "A license key file is already present in ${INPATH}/modlib/modeller/config.py" + else + ewarn "Obtain a license Key from" + ewarn "http://salilab.org/modeller/registration.html" + ewarn "And run this before using modeller:" + ewarn "emerge --config =${CATEGORY}/${PF}" + ewarn "That way you can [re]enter your license key." + fi +} + +pkg_postrm() { + ewarn "This package leaves a license Key file in ${INPATH}/modlib/modeller/config.py" + ewarn "that you need to remove to completely get rid of modeller." +} + +pkg_config() { + ewarn "Your license key is NOT checked for validity here." + ewarn " Make sure you type it in correctly." + eerror "If you CTRL+C out of this, modeller will not run!" + while true + do + einfo "Please enter your license key:" + read license_key1 + einfo "Please re-enter your license key:" + read license_key2 + if [[ "$license_key1" == "" ]] + then + echo "You entered a blank license key. Try again." + else + if [[ "$license_key1" == "$license_key2" ]] + then + echo license = '"'$license_key1'"' >> "${INPATH}/modlib/modeller/config.py" + einfo "Thank you!" + break + else + eerror "Your license key entries do not match. Try again." + fi + fi + done +} |