blob: d91d38732bde971c11e8eb82094acc4d447cf3f7 (
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
|
# Copyright 1999-2004 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.3.ebuild,v 1.2 2004/01/21 21:21:49 lanius Exp $
inherit eutils
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="${PV}"
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'
elif [ "${PYTHON_SLOT_VERSION}" != '' ] ; then
RDEPEND="=dev-lang/python-${PYTHON_SLOT_VERSION}*"
python="python${PYTHON_SLOT_VERSION}"
else
RDEPEND="=dev-lang/python-2.1.3*"
python='python2.1'
fi
RDEPEND="${RDEPEND}
!net-zope/verbosesecurity"
DEPEND="${RDEPEND}
virtual/glibc
>=sys-apps/sed-4.0.5
>=app-admin/zope-config-0.3"
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.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/init.d/${ZGID} start"
}
pkg_setup() {
if [ "${PYTHON_SLOT_VERSION}" != '' ] ; then
ewarn "WARNING: You set PYTHON_SLOT_VERSION=${PYTHON_SLOT_VERSION}."
if [ "${PYTHON_SLOT_VERSION}" = 'VIRTUAL' ] ; then
ewarn "So this ebuild will use virtual/python."
else
ewarn "So this ebuild will use python-${PYTHON_SLOT_VERSION}*."
fi
ewarn "Zope Corp. only recommends using python-2.1.3 "
ewarn "with this version of zope. Emerge at your own risk."
ewarn "Python-2.3 is known NOT to work."
sleep 12
fi
enewgroup ${ZGID}
enewuser ${ZUID} 261 /bin/bash ${ZS_DIR} ${ZGID}
}
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}/2.6.1/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}/2.6.1/${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() {
# rcscripts and conf.d files will remain. i.e. /etc protection.
# 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
}
|