blob: f791a3104661ea79ffebeaa6ce9e97308ef8fc9d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python3_{7..10} )
DISTUTILS_USE_SETUPTOOLS=no
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"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
IUSE="doc examples"
SLOT="0"
RESTRICT="mirror"
DEPEND=">=dev-lang/swig-1.3"
RDEPEND=""
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
sed -i '1 i\#!/usr/bin/python' bin/modslave.py || die
2to3 -w -n modlib/modeller || 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
python_foreach_impl python_doscript bin/modslave.py
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
}
|