blob: 777f77d912ee917ada8bce83f427c25fb26055f3 (
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
150
151
152
153
154
155
156
157
158
159
160
|
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-zope/zope/zope-2.12.16.ebuild,v 1.1 2011/02/23 16:23:26 arfrever Exp $
EAPI="3"
PYTHON_DEPEND="2:2.6"
SUPPORT_PYTHON_ABIS="1"
RESTRICT_PYTHON_ABIS="2.4 2.5 3.* *-jython"
inherit distutils multilib versionator
MY_PN="Zope2"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Zope 2 application server / web framework"
HOMEPAGE="http://www.zope.org http://zope2.zope.org http://pypi.python.org/pypi/Zope2 https://launchpad.net/zope2"
SRC_URI="mirror://pypi/${MY_PN:0:1}/${MY_PN}/${MY_P}.zip"
LICENSE="ZPL"
SLOT="$(get_version_component_range 1-2)"
KEYWORDS="~alpha ~amd64 ~ppc ~sparc ~x86"
IUSE="doc"
RESTRICT="test"
RDEPEND="|| ( net-zope/namespaces-zope[Products,Shared,Shared-DC] net-zope/namespaces )
dev-python/docutils
dev-python/restrictedpython
dev-python/setuptools
net-zope/acquisition
net-zope/datetime
net-zope/extensionclass
net-zope/five-formlib
net-zope/initgroups
net-zope/missing
net-zope/multimapping
net-zope/persistence
net-zope/record
net-zope/tempstorage
net-zope/threadlock
net-zope/transaction
net-zope/zconfig
net-zope/zdaemon
net-zope/zlog
>=net-zope/zodb-3.9
net-zope/zope-app-form
net-zope/zope-app-publication
net-zope/zope-app-publisher
net-zope/zope-app-schema
net-zope/zope-component
net-zope/zope-configuration
net-zope/zope-container
net-zope/zope-contentprovider
net-zope/zope-contenttype
net-zope/zope-deferredimport
net-zope/zope-event
net-zope/zope-exceptions
net-zope/zope-formlib
net-zope/zope-i18n
net-zope/zope-i18nmessageid
net-zope/zope-interface
net-zope/zope-lifecycleevent
net-zope/zope-location
net-zope/zope-mkzeoinstance
net-zope/zope-pagetemplate
net-zope/zope-processlifetime
net-zope/zope-proxy
net-zope/zope-publisher
net-zope/zope-schema
net-zope/zope-security
<net-zope/zope-sendmail-3.7.0
net-zope/zope-sequencesort
net-zope/zope-site
net-zope/zope-size
net-zope/zope-structuredtext
net-zope/zope-tales
net-zope/zope-testbrowser
net-zope/zope-testing
net-zope/zope-traversing
net-zope/zope-viewlet
net-zope/zopeundo"
DEPEND="${RDEPEND}
app-arch/unzip
doc? ( dev-python/sphinx )"
PDEPEND="net-zope/zsqlmethods"
S="${WORKDIR}/${MY_P}"
pkg_setup() {
python_pkg_setup
ZOPE_INSTALLATION_DIR="usr/$(get_libdir)/${PN}-${SLOT}"
}
src_compile() {
distutils_src_compile
if use doc; then
einfo "Generation of documentation"
"$(PYTHON -f)" setup.py build_sphinx || die "Generation of documentation failed"
fi
}
distutils_src_install_post_hook() {
mv "${T}/images/${PYTHON_ABI}/${ZOPE_INSTALLATION_DIR}/lib/python"{,-${PYTHON_ABI}}
}
src_install() {
distutils_src_install --home="${ZOPE_INSTALLATION_DIR}"
# Don't install C sources.
find "${D}${ZOPE_INSTALLATION_DIR}" -name "*.c" | xargs rm -f
local file
for file in "${D}${ZOPE_INSTALLATION_DIR}/bin/"*; do
scripts_preparation() {
cp "${file}" "${file}-${PYTHON_ABI}" || return 1
python_convert_shebangs -q $(python_get_version) "${file}-${PYTHON_ABI}"
sed \
-e "/import sys/i import os\nos.environ['PYTHONPATH'] = (os.environ.get('PYTHONPATH') + ':' if os.environ.get('PYTHONPATH') is not None else '') + os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'lib', 'python-${PYTHON_ABI}'))" \
-e "/import sys/a sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..', 'lib', 'python-${PYTHON_ABI}')))" \
-i "${file}-${PYTHON_ABI}"
}
python_execute_function -q scripts_preparation
python_generate_wrapper_scripts -f "${file}"
done
modules_installation() {
local module
for module in Products Shared Shared/DC; do
echo "__import__('pkg_resources').declare_namespace(__name__)" > "${D}${ZOPE_INSTALLATION_DIR}/lib/python-${PYTHON_ABI}/${module}/__init__.py" || return 1
done
}
python_execute_function -q modules_installation
skel_preparation() {
sed -e "/^ZOPE_RUN=/s/runzope/&-${PYTHON_ABI}/" -i "${D}${ZOPE_INSTALLATION_DIR}/lib/python-${PYTHON_ABI}/Zope2/utilities/skel/bin/runzope.in" || return 1
sed -e "/^ZDCTL=/s/zopectl/&-${PYTHON_ABI}/" -i "${D}${ZOPE_INSTALLATION_DIR}/lib/python-${PYTHON_ABI}/Zope2/utilities/skel/bin/zopectl.in" || return 1
}
python_execute_function -q skel_preparation
if use doc; then
pushd build/sphinx/html > /dev/null
dodoc _sources/* || die "Installation of documentation failed"
docinto html
dohtml -r [A-Za-z]* _static || die "Installation of documentation failed"
popd > /dev/null
fi
# Copy the init script skeleton to skel directory of our installation.
insinto "/${ZOPE_INSTALLATION_DIR}/skel"
doins "${FILESDIR}/zope.initd" || die "doins failed"
}
pkg_postinst() {
python_mod_optimize --allow-evaluated-non-sitedir-paths "/${ZOPE_INSTALLATION_DIR}/lib/python-\${PYTHON_ABI}"
}
pkg_postrm() {
python_mod_cleanup --allow-evaluated-non-sitedir-paths "/${ZOPE_INSTALLATION_DIR}/lib/python-\${PYTHON_ABI}"
}
|