blob: d73bc2e4dad3eb5c414c6ba18b5362486b98040b (
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
|
# Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-zope/zope/zope-2.12.2.ebuild,v 1.2 2010/01/16 19:32:07 fauli Exp $
EAPI="2"
inherit eutils multilib python versionator
MY_PN="Zope2"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="Zope is a web application platform used for building high-performance, dynamic web sites"
HOMEPAGE="http://www.zope.org http://pypi.python.org/pypi/Zope2"
SRC_URI="http://pypi.python.org/packages/source/${MY_PN:0:1}/${MY_PN}/${MY_P}.tar.gz"
LICENSE="ZPL"
SLOT="$(get_version_component_range 1-2)"
KEYWORDS="~amd64 ~x86"
IUSE="doc"
RESTRICT="test"
RDEPEND="|| ( dev-lang/python:2.7 dev-lang/python:2.6 )
dev-python/docutils
dev-python/restrictedpython
dev-python/setuptools
net-zope/acquisition
net-zope/datetime
net-zope/extensionclass
net-zope/persistence
net-zope/tempstorage
net-zope/transaction
net-zope/zdaemon
net-zope/zconfig
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-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
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
"
DEPEND="${RDEPEND}
doc? ( dev-python/sphinx )"
S="${WORKDIR}/${MY_P}"
ZUID="zope"
ZGID="zope"
ZSERVDIR="/usr/$(get_libdir)/${PN}-${SLOT}"
# Narrow the scope of ownership/permissions.
# Security plan:
# * ZUID is the superuser for all zope instances.
# * ZGID is for a single instance's administration.
pkg_setup() {
python_set_active_version 2
}
src_prepare() {
epatch "${FILESDIR}/${P}-fix_syntax_error.patch"
}
src_compile() {
"$(PYTHON -2)" setup.py build || "Building failed"
if use doc; then
cd doc
emake html || die "Building of documentation failed"
fi
}
src_install() {
"$(PYTHON -2)" setup.py install --home="${ZSERVDIR}" --root="${D}" || die "Installation failed"
dosym "$(PYTHON -2 -a)" "${ZSERVDIR}/bin/python" || die "dosym failed"
for file in "${D}usr/$(get_libdir)/${PN}-${SLOT}/bin/"*; do
if [[ -f "${file}" && ! -L "${file}" ]]; then
sed -e '/import sys/iimport os\nos.environ["PYTHONPATH"] = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "lib", "python"))' -e '/import sys/asys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "lib", "python")))' -i "${file}" || die "Changing of os.environ and sys.path in ${file} failed"
fi
done
touch "${D}usr/$(get_libdir)/${PN}-${SLOT}/lib/python/Products/__init__.py" || die "touch failed"
if use doc; then
pushd doc/.build/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 "${ZSERVDIR}/skel"
doins "${FILESDIR}/zope.initd" || die "doins failed"
}
pkg_postinst() {
python_mod_optimize "${ZSERVDIR}/lib/python"
# Create the zope user and group for backward compatibility.
enewgroup ${ZGID} 261
usermod -g ${ZGID} ${ZUID} 2>&1 >/dev/null || \
enewuser ${ZUID} 261 -1 /var/$(get_libdir)/zope ${ZGID}
einfo "Be warned that you need at least one zope instance to run zope."
einfo "Please emerge zope-config for further instance management."
}
pkg_postrm() {
python_mod_cleanup "${ZSERVDIR}/lib/python"
}
|