blob: 688ff9b135918702c05ca4162ef26f67a978135b (
plain) (
blame)
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
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
|
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=5
inherit eutils user multilib autotools versionator
SYMPA_VERSION="$(get_version_component_range 1-2)"
SYMPA_RELEASE="$(get_version_component_range 3-)"
if [[ ${SYMPA_VERSION} == "9999" ]] ; then
# Development version
ESVN_REPO_URI="http://svn.cru.fr/sympa/trunk"
inherit subversion
elif [[ ${SYMPA_RELEASE} == "9999" ]] ; then
# Latest stable
ESVN_REPO_URI="http://svn.cru.fr/sympa/branches/sympa-${SYMPA_VERSION}-branch"
inherit subversion
else
# Release
SRC_URI="http://www.sympa.org/distribution/${P}.tar.gz http://www.sympa.org/distribution/old/${P}.tar.gz"
fi
DESCRIPTION="A feature-rich open source mailing list software"
HOMEPAGE="http://www.sympa.org/"
SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~x86 ~amd64"
IUSE="clamav -compat dkim fastcgi ldap mysql nls postgres soap sqlite ssl"
REQUIRED_USE="|| ( mysql postgres sqlite )"
# See http://www.sympa.org/manual/installing-sympa#required_cpan_modules
RDEPEND="
>=dev-lang/perl-5.8
>=dev-perl/CGI-3.51
>=virtual/perl-Digest-MD5-2.00
virtual/perl-Encode
>=virtual/perl-File-Path-2.08
>=virtual/perl-MIME-Base64-3.03
>=virtual/perl-Scalar-List-Utils-1.20
>=virtual/perl-Sys-Syslog-0.03
>=virtual/perl-Time-HiRes-1.29
virtual/perl-libnet
>=dev-perl/Archive-Zip-1.05
>=dev-perl/Class-Singleton-1.03
>=dev-perl/Data-Password-1.07
>=dev-perl/DateTime-Format-Mail-0.28
>=dev-perl/DateTime-TimeZone-0.59
>=dev-perl/DBI-1.48
>=dev-perl/File-Copy-Recursive-0.36
dev-perl/File-NFSLock
>=dev-perl/HTML-StripScripts-Parser-1.30
dev-perl/HTML-Tree
dev-perl/IO-stringy
>=dev-perl/MailTools-1.70
>=dev-perl/MIME-Charset-1.011.3
>=dev-perl/MIME-EncWords-1.014
>=dev-perl/MIME-Lite-HTML-1.230
>=dev-perl/MIME-tools-5.423
>=dev-perl/Net-CIDR-0.16
>=dev-perl/Net-DNS-0.65
>=dev-perl/Template-Toolkit-2.21
>=dev-perl/Term-ProgressBar-2.09
>=dev-perl/Unicode-LineBreak-2011.05
>=dev-perl/Unicode-CaseFold-0.02
>=dev-perl/URI-1.35
>=dev-perl/XML-LibXML-1.70
>=dev-perl/libintl-perl-1.20
dev-perl/libwww-perl
>=net-mail/mhonarc-2.6.18
clamav? ( app-antivirus/clamav )
compat? ( >=dev-perl/Crypt-CipherSaber-0.50 )
dkim? ( >=dev-perl/Mail-DKIM-0.37 )
fastcgi? (
>=dev-perl/FCGI-0.67
>=dev-perl/CGI-Fast-1.08
)
ldap? ( >=dev-perl/perl-ldap-0.40 )
mysql? ( >=dev-perl/DBD-mysql-4.008 )
postgres? ( >=dev-perl/DBD-Pg-2.0 )
soap? ( >=dev-perl/SOAP-Lite-0.712 )
sqlite? ( >=dev-perl/DBD-SQLite-1.31 )
ssl? (
>=dev-perl/IO-Socket-SSL-0.90
dev-libs/openssl
)
virtual/mta
"
DEPEND="${RDEPEND}
sys-devel/gettext
"
SYMPA_USER="sympa"
SYMPA_GROUP="sympa"
pkg_setup() {
enewgroup ${SYMPA_GROUP}
enewuser ${SYMPA_USER} -1 -1 -1 ${SYMPA_GROUP}
}
src_unpack() {
if [[ ${SYMPA_VERSION} == "9999" ]] ; then
subversion_src_unpack
elif [[ ${SYMPA_RELEASE} == "9999" ]] ; then
subversion_src_unpack
else
unpack ${A}
cd ${S}
fi
cd ${S}
# Override defaults for certain options, so
# Sympa won't complain about conflicting paths
sed -i -e "/'queuebounce'/,/}/ s|'/bounce'|'/qbounce'|" src/lib/Sympa/ConfDef.pm
# Gentoo specific: redefine some defaults
sed -i -e 's|^\(\s*staticdir=\).*|\1/var/spool/sympa/static_content|' \
-e 's|^\(\s*bouncedir=\).*|\1/var/spool/sympa/bounce|' \
-e 's|^\(\s*arcdir=\).*|\1/var/spool/sympa/arc|' \
configure.ac
# Do not create runtime directories
sed -i -e 's| $(piddir) | |' Makefile.am
eautoreconf
}
src_configure() {
econf \
--enable-fhs \
--prefix=/usr \
--libdir=/usr/$(get_libdir)/sympa \
--libexec=/usr/libexec/sympa \
--localstatedir=/var \
--docdir=/usr/share/doc/${P} \
--with-localedir=/usr/share/locale \
--sysconfdir=/etc/sympa \
--with-confdir=/etc/sympa \
--with-piddir=/run/sympa \
--with-spooldir=/var/spool/sympa \
--with-modulesdir=/usr/$(get_libdir)/sympa \
--with-cgidir=/usr/libexec/sympa \
--with-expldir=/var/lib/sympa/lists \
--with-scriptdir=/usr/share/sympa/scripts \
--without-initdir \
--with-unitsdir=/usr/lib/systemd/system \
--with-defaultdir=/usr/share/sympa/default \
--with-user=${SYMPA_USER} \
--with-group=${SYMPA_GROUP} \
$(use_enable nls) \
|| die "econf failed"
}
src_compile() {
emake CFLAGS="${CFLAGS} -Wl,-z,now"
}
src_install() {
emake DESTDIR="${D}" install
# Do not overwrite data_structure.version
rm -f "${D}/etc/sympa/data_structure.version"
# Set permissions and ownership on config files
fowners root:${SYMPA_GROUP} /etc/sympa/sympa.conf
fperms u=rwX,g=rX,o= /etc/sympa/sympa.conf
# Elevate some permissions to read config files
fperms g+s /usr/libexec/sympa/{bouncequeue,familyqueue,queue}
# Docs
dodoc AUTHORS.md CONTRIBUTING.md INSTALL.md NEWS.md README.md COPYING etc_README
# Startup script
newinitd "${FILESDIR}/${PN}-${SYMPA_VERSION}.initd" "${PN}"
# Set proper fastcgi flag
if use fastcgi; then
sed -i -r 's:^(\s*use_fast_cgi\s*).*:\11:' "${D}/etc/sympa/sympa.conf"
else
sed -i -r 's:^(\s*use_fast_cgi\s*).*:\10:' "${D}/etc/sympa/sympa.conf"
fi
# Update antivirus config
if use clamav; then
sed -i -r \
-e 's:^#?\s*antivirus_path\s*/.*:antivirus_path /usr/bin/clamscan:' \
-e 's:^#?\s*antivirus_args\s*.*:antivirus_args --stdout:' \
"${D}/etc/sympa/sympa.conf"
else
sed -i -r \
-e 's:^(\s*antivirus_path\s*/.*):#\1:' \
-e 's:^(\s*antivirus_args\s*.*):#\1:' \
"${D}/etc/sympa/sympa.conf"
fi
# Update openssl config
if use ssl; then
sed -i -r \
-e 's:^#?\s*openssl\s*/.*:openssl /usr/bin/openssl:' \
-e 's:^#?\s*capath\s*/.*:capath /etc/ssl/certs:' \
-e 's:^#?\s*cafile\s*/.*:cafile /etc/ssl/certs/ca-certificates.crt:' \
"${D}/etc/sympa/sympa.conf"
else
sed -i -r \
-e 's:^(\s*openssl\s*/.*):#\1:' \
-e 's:^(\s*capath\s*/.*):#\1:' \
-e 's:^(\s*cafile\s*/.*):#\1:' \
"${D}/etc/sympa/sympa.conf"
fi
# Queue dirs
keepdir /var/spool/sympa
local SYMPA_DIRS="arc auth automatic bounce bulk digest moderation msg \
outgoing qbounce static_content task tmp topic"
local DIR
for DIR in ${SYMPA_DIRS}; do
keepdir /var/spool/sympa/${DIR}
fowners ${SYMPA_USER}:${SYMPA_GROUP} /var/spool/sympa/${DIR}
case "${DIR}" in
"static_content" )
fperms 755 /var/spool/sympa/${DIR}
;;
* )
fperms 750 /var/spool/sympa/${DIR}
;;
esac
done
keepdir /var/lib/sympa
keepdir /var/lib/sympa/lists
newdoc "${FILESDIR}/${PN}-apache.conf" apache.conf
newdoc "${FILESDIR}/${PN}-apache_soap.conf" apache_soap.conf
newdoc "${FILESDIR}/${PN}-lighttpd.conf" lighttpd.conf
newdoc "${FILESDIR}/${PN}-lighttpd_soap.conf" lighttpd_soap.conf
newdoc "${FILESDIR}/${PN}-nginx.conf" nginx.conf
}
pkg_postinst() {
elog
elog "You need to create a database with associated database account"
elog "prior to use Sympa. That account will need general"
elog "access privileges to the Sympa database."
elog
elog "The Sympa web interface needs to be setup in your webserver."
elog "For more information please consult Sympa documentation at"
elog "http://www.sympa.org/manual/web-interface#web_server_setup"
elog "Sample configs are installed in /usr/share/doc/${P}"
elog
if use clamav; then
elog "By default we use clamscan antivirus scanner"
elog "(antivirus_path option in sympa.conf). For performance"
elog "reason you might want to use clamdscan which is much faster."
elog "To use it you need to do the following:"
elog
elog "# gpasswd -a clamav sympa"
elog "# /etc/init.d/clamd restart"
elog
fi
ewarn "If you are upgrading from an earlier version please run:"
ewarn
ewarn "# sympa.pl --upgrade"
ewarn
ewarn "If you are upgrading from version 5.x make sure"
ewarn "compat use flag is set while emerging, then run:"
ewarn
ewarn "# sympa.pl --upgrade"
ewarn
ewarn "to upgrade your data structures and"
ewarn
ewarn "# sympa.pl --md5_encode_password"
ewarn
ewarn "to convert your passwords. When completed compat use flag"
ewarn "can be removed"
}
|