blob: 237dd5a6b1b0873fb535e4e8592c8bd645cd2b68 (
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
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
|
# Copyright 1999-2003 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-zope/zope/zope-2.6.0-r3.ebuild,v 1.2 2003/09/07 00:21:34 msterret Exp $
S="${WORKDIR}/Zope-${PV}-src"
DESCRIPTION="Zope is a web application platform used for building high-performance, dynamic web sites."
HOMEPAGE="http://www.zope.org"
SRC_URI="http://www.zope.org/Products/Zope/${PV}/Zope-${PV}-src.tgz"
LICENSE="ZPL"
SLOT="0"
KEYWORDS="~x86 ~sparc"
# This is for developers that wish to test Zope with virtual/python.
# If this is a problem, let me know right away. --kutsuya@gentoo.org
# I wondering if we need a USE flag for this. But I'm planning to have
# a private environmental variable called PYTHON_SLOT_VERSION set in
# ebuilds to build extensions for python2.1.
if [ "${PYTHON_SLOT_VERSION}" = 'VIRTUAL' ] ; then
RDEPEND="virtual/python"
python='python'
else
RDEPEND="=dev-lang/python-2.1.3*"
python='python2.1'
fi
DEPEND="virtual/glibc
>=sys-apps/sed-4.0.5
${RDEPEND}"
RDEPEND="app-admin/zope-config
${RDEPEND}"
ZUID=zope
ZGID=$(echo ${P} |sed -e "s:\.:_:g")
ZS_DIR=${ROOT}/usr/share/zope/
ZI_DIR=${ROOT}/var/lib/zope/
ZSERVDIR=${ZS_DIR}/${PF}/
ZINSTDIR=${ZI_DIR}/${ZGID}
CONFDIR=${ROOT}/etc/conf.d/
RCNAME=zope-r2.initd
# Narrow the scope of ownership/permissions.
# Security plan:
# * ZUID is the superuser for all zope instances.
# * ZGID is for a single instance's administration.
# * Other's should not have any access to ${ZSERVDIR},
# because they can work through the Zope web interface.
# This should protect our code/data better.
#Parameters:
# $1 = instance directory
# $2 = group
setup_security()
{
chown -R ${ZUID}:${2} ${1}
chmod -R g+u ${1}
chmod -R o-rwx ${1}
}
#
install_help()
{
einfo "Need to setup an inituser \(admin\) before executing zope:"
einfo "\tzope-config --zpasswd"
einfo "To execute default Zope instance:"
einfo "\t/etc/conf.d/${ZGID} start"
}
#
pkg_setup()
{
if [ "${PYTHON_SLOT_VERSION}" = 'VIRTUAL' ] ; then
ewarn "WARNING: You set PYTHON_SLOT_VERSION=VIRTUAL. So this ebuild will"
ewarn "use python-2.2*. Zope Corp. only recommends using python-2.1.3 "
ewarn "with this version of zope. Emerge at your own risk."
sleep 12
fi
if ! groupmod ${ZGID} > /dev/null 2>&1 ; then
groupadd ${ZGID} || die "Can not add ${ZGID} group!"
fi
if ! id ${ZUID} > /dev/null 2>&1 ; then
useradd -d ${ZS_DIR} -c "Zope root user" -u 261 ${ZUID} \
|| die "Can not add ${ZUID} user!"
fi
}
#
src_unpack()
{
unpack ${A}
# DateTime 2.6.0(only) rfc822 fix
einfo "Applying patch..."
bzcat ${FILESDIR}/${PV}/DateTime.py.bz2 \
> ${S}/lib/python/DateTime/DateTime.py || die "Patch failed"
}
#
src_compile() {
$python wo_pcgi.py || die "Failed to compile."
}
#
src_install() {
dodoc LICENSE.txt README.txt
docinto doc ; dodoc doc/*.txt
docinto doc/PLATFORMS ; dodoc doc/PLATFORMS/*
docinto doc/changenotes ; dodoc doc/changenotes/*
# using '/etc/init.d/zope'
rm -Rf start stop LICENSE.txt README.txt doc/
# Need to rip out the zinstance stuff out
# but save as templates
mkdir -p .templates/import
cp import/README.txt .templates/import/
mv -f Extensions/ .templates/
mv -f var/ .templates/
# Add conf.d script.
dodir /etc/conf.d
echo "ZOPE_OPTS=\"-u zope\"" | \
cat - ${FILESDIR}/${PV}/zope.envd > .templates/zope.confd
# Fill in environmental variables
sed -i -e "/ZOPE_HOME=/ c\\ZOPE_HOME=${ZSERVDIR}\\ " \
-e "/SOFTWARE_HOME=/ c\\SOFTWARE_HOME=${ZSERVDIR}/lib/python\\ " \
.templates/zope.confd
# Add rc-script.
#!! TODO: fill in $python in zope-r2.initd
sed -e "/python=/ c\\python=\"${python}\"\\ " ${FILESDIR}/${PV}/${RCNAME} \
> .templates/zope.initd
# Copy the remaining contents of ${S} into the ${D}.
dodir ${ZSERVDIR}
cp -a . ${D}${ZSERVDIR}
setup_security ${D}${ZSERVDIR} ${ZGID}
}
#
pkg_postinst()
{
# Here we add our default zope instance.
/usr/sbin/zope-config --zserv=${ZSERVDIR} --zinst=${ZINSTDIR} \
--zgid=${ZGID}
install_help
}
#
pkg_postrm()
{
# Remove the rcscript and confd file. Emerge won't do it because it
# didn't add them. zope-config did added them. This will change when
# zope-config can remove instances.
rm -f ${CONFDIR}/${ZGID} /etc/init.d/${ZGID}
# Delete .default if this ebuild is the default. zprod-manager will
# have to handle a missing default;
local VERSION_DEF="$(zope-config --zidef-get)"
if [ "${ZGID}" = "$VERSION_DEF" ] ; then
rm -f ${ZI_DIR}/.default
fi
}
#
pkg_config()
{
install_help
}
|