Gentoo Archives: gentoo-commits

From: Hans de Graaff <graaff@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] dev/graaff:master commit in: net-im/ejabberd/, net-im/ejabberd/files/
Date: Mon, 30 Jul 2012 17:33:07
Message-Id: 1343669568.36248f64f18222d5cc5c80cebc9899a1fb29cedd.graaff@gentoo
1 commit: 36248f64f18222d5cc5c80cebc9899a1fb29cedd
2 Author: Hans de Graaff <hans <AT> degraaff <DOT> org>
3 AuthorDate: Mon Jul 30 17:32:48 2012 +0000
4 Commit: Hans de Graaff <graaff <AT> gentoo <DOT> org>
5 CommitDate: Mon Jul 30 17:32:48 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=dev/graaff.git;a=commit;h=36248f64
7
8 Fix metadata.
9
10 (Portage version: 2.1.10.65/git/Linux x86_64, signed Manifest commit with key 0x8883FA56A308A8D7!)
11
12 ---
13 net-im/ejabberd/ChangeLog | 16 ++
14 net-im/ejabberd/Manifest | 12 +
15 net-im/ejabberd/ejabberd-2.1.11-r1.ebuild | 216 ++++++++++++++++++++
16 .../ejabberd/files/ejabberd-2.1.11-ldap-ipv6.patch | 15 ++
17 net-im/ejabberd/files/ejabberd-3.confd | 5 +
18 net-im/ejabberd/files/ejabberd-3.initd | 47 +++++
19 net-im/ejabberd/metadata.xml | 16 ++
20 7 files changed, 327 insertions(+), 0 deletions(-)
21
22 diff --git a/net-im/ejabberd/ChangeLog b/net-im/ejabberd/ChangeLog
23 new file mode 100644
24 index 0000000..89e4f2e
25 --- /dev/null
26 +++ b/net-im/ejabberd/ChangeLog
27 @@ -0,0 +1,16 @@
28 +# ChangeLog for net-im/ejabberd
29 +# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
30 +# $Header: $
31 +
32 + 30 Jul 2012; Hans de Graaff <graaff@g.o> +ejabberd-2.1.11-r1.ebuild,
33 + +files/ejabberd-2.1.11-ldap-ipv6.patch, +files/ejabberd-3.confd,
34 + +files/ejabberd-3.initd, +metadata.xml:
35 + Fix metadata.
36 +
37 +*ejabberd-2.1.11-r1 (30 Jul 2012)
38 +
39 + 30 Jul 2012; Hans de Graaff <graaff@g.o> +ejabberd-2.1.11-r1.ebuild,
40 + +files/ejabberd-2.1.11-ldap-ipv6.patch, +files/ejabberd-3.confd,
41 + +files/ejabberd-3.initd, +metadata.xml:
42 + Fix LDAP on IPv6.
43 +
44
45 diff --git a/net-im/ejabberd/Manifest b/net-im/ejabberd/Manifest
46 new file mode 100644
47 index 0000000..ad0d73f
48 --- /dev/null
49 +++ b/net-im/ejabberd/Manifest
50 @@ -0,0 +1,12 @@
51 +-----BEGIN PGP SIGNED MESSAGE-----
52 +Hash: SHA256
53 +
54 +DIST ejabberd-2.1.11.tgz 2014232 SHA256 91d5c10e64f9faa60c345c68304746f493d71f82723302955d40d6619e3d87de SHA512 6f09c80b03a84595294c679d49b5991985707f6c9e8c2f9fad94618224666e05b4325a5bef840d2ccf0c803038fc11b49b168716a3e258312216e201bdd4bb88 WHIRLPOOL 2ab09c84619173090acabf19cde10f14e3240fa6b89fb7d963bd79aca960b11a6f869f691d219c55b1b0a664c676afc800599671dfc923a0302d2075eec0e224
55 +DIST ejabberd-mod_statsdx-1080.patch.gz 14024 SHA256 0f3a3a991c14d797e795ef4fffcf19aa9a54608f5053b759187ec7d3696b9edb
56 +-----BEGIN PGP SIGNATURE-----
57 +Version: GnuPG v2.0.19 (GNU/Linux)
58 +
59 +iF4EAREIAAYFAlAWxT8ACgkQiIP6VqMIqNffrwD8CQo1GCIJHHv+8+PVDLP6qjQy
60 +s+fSygiYYoF7B++UydQA/2VoxryuRq6JV04WvV0+wlLm1ZNI8TDqsvMEZWIGfAo8
61 +=Jvnq
62 +-----END PGP SIGNATURE-----
63
64 diff --git a/net-im/ejabberd/ejabberd-2.1.11-r1.ebuild b/net-im/ejabberd/ejabberd-2.1.11-r1.ebuild
65 new file mode 100644
66 index 0000000..113caf2
67 --- /dev/null
68 +++ b/net-im/ejabberd/ejabberd-2.1.11-r1.ebuild
69 @@ -0,0 +1,216 @@
70 +# Copyright 1999-2012 Gentoo Foundation
71 +# Distributed under the terms of the GNU General Public License v2
72 +# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/ejabberd-2.1.11.ebuild,v 1.1 2012/05/30 23:37:05 radhermit Exp $
73 +
74 +EAPI=4
75 +
76 +inherit eutils multilib pam ssl-cert
77 +
78 +DESCRIPTION="The Erlang Jabber Daemon"
79 +HOMEPAGE="http://www.ejabberd.im/"
80 +SRC_URI="http://www.process-one.net/downloads/${PN}/${PV}/${P}.tgz
81 + mod_statsdx? ( mirror://gentoo/ejabberd-mod_statsdx-1080.patch.gz )"
82 +
83 +LICENSE="GPL-2"
84 +SLOT="0"
85 +KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~sparc ~x86"
86 +EJABBERD_MODULES="mod_irc mod_muc mod_proxy65 mod_pubsub mod_statsdx"
87 +IUSE="captcha debug ldap odbc pam +web zlib ${EJABBERD_MODULES}"
88 +
89 +DEPEND=">=net-im/jabber-base-0.01
90 + >=dev-libs/expat-1.95
91 + >=dev-lang/erlang-12.2.5[ssl]
92 + odbc? ( dev-db/unixODBC )
93 + ldap? ( =net-nds/openldap-2* )
94 + >=dev-libs/openssl-0.9.8e
95 + captcha? ( media-gfx/imagemagick[truetype,png] )
96 + zlib? ( sys-libs/zlib )"
97 +#>=sys-apps/shadow-4.1.4.2-r3 - fixes bug in su that made ejabberdctl unworkable.
98 +RDEPEND="${DEPEND}
99 + >=sys-apps/shadow-4.1.4.2-r3
100 + pam? ( virtual/pam )"
101 +
102 +S=${WORKDIR}/${P}/src
103 +
104 +# paths in net-im/jabber-base
105 +JABBER_ETC="${EPREFIX}/etc/jabber"
106 +#JABBER_RUN="/var/run/jabber"
107 +JABBER_SPOOL="${EPREFIX}/var/spool/jabber"
108 +JABBER_LOG="${EPREFIX}/var/log/jabber"
109 +JABBER_DOC="${EPREFIX}/usr/share/doc/${PF}"
110 +
111 +src_prepare() {
112 + epatch "${FILESDIR}"/${P}-ldap-ipv6.patch
113 +
114 + if use mod_statsdx; then
115 + ewarn "mod_statsdx is not a part of upstream tarball but is a third-party module"
116 + ewarn "taken from here: http://www.ejabberd.im/mod_stats2file"
117 + EPATCH_OPTS="-p2" epatch "${WORKDIR}/ejabberd-mod_statsdx-1080.patch"
118 + fi
119 +
120 + # don't install release notes (we'll do this manually)
121 + sed '/install .* [.][.]\/doc\/[*][.]txt $(DOCDIR)/d' -i Makefile.in || die
122 + # Set correct paths
123 + sed -e "/^EJABBERDDIR[[:space:]]*=/{s:ejabberd:${PF}:}" \
124 + -e "/^ETCDIR[[:space:]]*=/{s:@sysconfdir@/ejabberd:${JABBER_ETC}:}" \
125 + -e "/^LOGDIR[[:space:]]*=/{s:@localstatedir@/log/ejabberd:${JABBER_LOG}:}" \
126 + -e "/^SPOOLDIR[[:space:]]*=/{s:@localstatedir@/lib/ejabberd:${JABBER_SPOOL}:}" \
127 + -i Makefile.in || die
128 + sed -e "/EJABBERDDIR=/{s:ejabberd:${PF}:}" \
129 + -e "s|\(ETCDIR=\)@SYSCONFDIR@.*|\1${JABBER_ETC}|" \
130 + -e "s|\(LOGS_DIR=\)@LOCALSTATEDIR@.*|\1${JABBER_LOG}|" \
131 + -e "s|\(SPOOLDIR=\)@LOCALSTATEDIR@.*|\1${JABBER_SPOOL}|" \
132 + -i ejabberdctl.template || die
133 +
134 + # Set shell, so it'll work even in case jabber user have no shell
135 + # This is gentoo specific I guess since other distributions may have
136 + # ejabberd user with reall shell, while we share this user among different
137 + # jabberd implementations.
138 + sed '/^HOME/aSHELL=/bin/sh' -i ejabberdctl.template || die
139 + sed '/^export HOME/aexport SHELL' -i ejabberdctl.template || die
140 +
141 + #sed -e "s:/share/doc/ejabberd/:${JABBER_DOC}:" -i web/ejabberd_web_admin.erl
142 +
143 + # fix up the ssl cert paths in ejabberd.cfg to use our cert
144 + sed -e "s:/path/to/ssl.pem:/etc/ssl/ejabberd/server.pem:g" \
145 + -i ejabberd.cfg.example || die "Failed sed ejabberd.cfg.example"
146 +
147 + # correct path to captcha script in default ejabberd.cfg
148 + sed -e 's|\({captcha_cmd,[[:space:]]*"\).\+"}|\1/usr/'$(get_libdir)'/erlang/lib/'${P}'/priv/bin/captcha.sh"}|' \
149 + -i ejabberd.cfg.example || die "Failed sed ejabberd.cfg.example"
150 +
151 + # disable mod_irc in ejabberd.cfg
152 + if ! use mod_irc; then
153 + sed -i -e "s/{mod_irc,/%{mod_irc,/" \
154 + -i ejabberd.cfg.example || die "Failed to disable mod_irc"
155 + fi
156 +
157 +}
158 +
159 +src_configure() {
160 + econf \
161 + --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \
162 + --libdir="${EPREFIX}/usr/$(get_libdir)/erlang/lib/" \
163 + $(use_enable mod_irc) \
164 + $(use_enable ldap eldap) \
165 + $(use_enable mod_muc) \
166 + $(use_enable mod_proxy65) \
167 + $(use_enable mod_pubsub) \
168 + $(use_enable web) \
169 + $(use_enable odbc) \
170 + $(use_enable zlib ejabberd_zlib) \
171 + $(use_enable pam) \
172 + --enable-user=jabber
173 +}
174 +
175 +src_compile() {
176 + emake $(use debug && echo debug=true ejabberd_debug=true)
177 +}
178 +
179 +src_install() {
180 + emake DESTDIR="${ED}" install
181 +
182 + # Pam helper module permissions
183 + # http://www.process-one.net/docs/ejabberd/guide_en.html
184 + if use pam; then
185 + pamd_mimic_system xmpp auth account || die "Cannot create pam.d file"
186 + fowners root:jabber "/usr/$(get_libdir)/erlang/lib/${PF}/priv/bin/epam"
187 + fperms 4750 "/usr/$(get_libdir)/erlang/lib/${PF}/priv/bin/epam"
188 + fi
189 +
190 + cd "${WORKDIR}/${P}/doc"
191 + dodoc "release_notes_${PV%%_rc*}.txt"
192 +
193 + #dodir /var/lib/ejabberd
194 + newinitd "${FILESDIR}/${PN}-3.initd" ${PN}
195 + newconfd "${FILESDIR}/${PN}-3.confd" ${PN}
196 +}
197 +
198 +pkg_postinst() {
199 + elog "For configuration instructions, please see"
200 + elog "/usr/share/doc/${PF}/html/guide.html, or the online version at"
201 + elog "http://www.process-one.net/en/ejabberd/docs/guide_en/"
202 +
203 + if ! use web ; then
204 + ewarn
205 + ewarn "The web USE flag is off, this has disabled the web admin interface."
206 + ewarn
207 + fi
208 +
209 + elog
210 + elog '===================================================================='
211 + elog 'Quick Start Guide:'
212 + elog '1) Add output of `hostname -f` to /etc/jabber/ejabberd.cfg line 91'
213 + elog ' {hosts, ["localhost", "thehost"]}.'
214 + elog '2) Add an admin user to /etc/jabber/ejabberd.cfg line 360'
215 + elog ' {acl, admin, {user, "theadmin", "thehost"}}.'
216 + elog '3) Start the server'
217 + elog ' # /etc/init.d/ejabberd start'
218 + elog '4) Register the admin user'
219 + elog ' # /usr/sbin/ejabberdctl register theadmin thehost thepassword'
220 + elog '5) Log in with your favourite jabber client or using the web admin'
221 +
222 + # Upgrading from ejabberd-2.0.x:
223 + if grep -E '^[^#]*EJABBERD_NODE=' "${EROOT}/etc/conf.d/ejabberd" >/dev/null 2>&1; then
224 + source "${EROOT}/etc/conf.d/ejabberd"
225 + ewarn
226 + ewarn "!!! WARNING !!! WARNING !!! WARNING !!! WARNING !!!"
227 + ewarn "Starting with 2.1.x some paths and configuration files were"
228 + ewarn "changed to reflect upstream intentions better. Notable changes are:"
229 + ewarn
230 + ewarn "1. Everything (even init scripts) is now handled with ejabberdctl script."
231 + ewarn "Thus main configuration file became /etc/jabberd/ejabberdctl.cfg"
232 + ewarn "You must update ERLANG_NODE there with the value of EJABBERD_NODE"
233 + ewarn "from /etc/conf.d/ejebberd or ejabberd will refuse to start."
234 + ewarn
235 + ewarn "2. SSL certificate is now generated with ssl-cert eclass and resides"
236 + ewarn "at standard location: /etc/ssl/ejabberd/server.pem."
237 + ewarn
238 + ewarn "3. Cookie now resides at /var/spool/jabber/.erlang.cookie"
239 + ewarn
240 + ewarn "4. /var/log/jabber/sasl.log is now /var/log/jabber/erlang.log"
241 + ewarn
242 + ewarn "5. Crash dumps (if any) will be located at /var/log/jabber"
243 +
244 + local i ctlcfg new_ctlcfg
245 + i=0
246 + ctlcfg=${EROOT}/etc/jabber/ejabberdctl.cfg
247 + while :; do
248 + new_ctlcfg=$(printf "${EROOT}/etc/jabber/._cfg%04d_ejabberdctl.cfg" ${i})
249 + [[ ! -e ${new_ctlcfg} ]] && break
250 + ctlcfg=${new_ctlcfg}
251 + ((i++))
252 + done
253 +
254 + ewarn
255 + ewarn "Updating ${ctlcfg} (debug: ${new_ctlcfg})"
256 + sed -e "/#ERLANG_NODE=/aERLANG_NODE=$EJABBERD_NODE" "${ctlcfg}" > "${new_ctlcfg}" || die
257 +
258 + if [[ -e ${EROOT}/var/run/jabber/.erlang.cookie ]]; then
259 + ewarn "Moving .erlang.cookie..."
260 + if [[ -e ${EROOT}/var/spool/jabber/.erlang.cookie ]]; then
261 + mv -v "${EROOT}"/var/spool/jabber/.erlang.cookie{,bak}
262 + fi
263 + mv -v "${EROOT}"/var/{run/jabber,spool/jabber}/.erlang.cookie
264 + fi
265 + ewarn
266 + ewarn "We'll try to handle upgrade automagically but, please, do your"
267 + ewarn "own checks and do not forget to run 'etc-update'!"
268 + ewarn "PLEASE! Run 'etc-update' now!"
269 + fi
270 +
271 + SSL_ORGANIZATION="${SSL_ORGANIZATION:-Ejabberd XMPP Server}"
272 + install_cert /etc/ssl/ejabberd/server
273 + # Fix ssl cert permissions bug #369809
274 + chown root:jabber "${EROOT}/etc/ssl/ejabberd/server.pem"
275 + chmod 0440 "${EROOT}/etc/ssl/ejabberd/server.pem"
276 + if [[ -e ${EROOT}/etc/jabber/ssl.pem ]]; then
277 + ewarn
278 + ewarn "The location of SSL certificates has changed. If you are"
279 + ewarn "upgrading from ${CATEGORY}/${PN}-2.0.5* or earlier you might"
280 + ewarn "want to move your old certificates from /etc/jabber into"
281 + ewarn "/etc/ssl/ejabberd/, update config files and"
282 + ewarn "rm /etc/jabber/ssl.pem to avoid this message."
283 + ewarn
284 + fi
285 +}
286
287 diff --git a/net-im/ejabberd/files/ejabberd-2.1.11-ldap-ipv6.patch b/net-im/ejabberd/files/ejabberd-2.1.11-ldap-ipv6.patch
288 new file mode 100644
289 index 0000000..7fae64f
290 --- /dev/null
291 +++ b/net-im/ejabberd/files/ejabberd-2.1.11-ldap-ipv6.patch
292 @@ -0,0 +1,15 @@
293 +--- src/eldap/eldap.erl.~1~ 2012-04-26 16:04:16.000000000 +0200
294 ++++ src/eldap/eldap.erl 2012-07-30 19:28:33.182004486 +0200
295 +@@ -984,10 +984,10 @@
296 + ?INFO_MSG("LDAP connection on ~s:~p", [Host, S#eldap.port]),
297 + Opts = if S#eldap.tls == tls ->
298 + [{packet, asn1}, {active, true}, {keepalive, true},
299 +- binary | S#eldap.tls_options];
300 ++ inet6, binary | S#eldap.tls_options];
301 + true ->
302 + [{packet, asn1}, {active, true}, {keepalive, true},
303 +- {send_timeout, ?SEND_TIMEOUT}, binary]
304 ++ {send_timeout, ?SEND_TIMEOUT}, inet6, binary]
305 + end,
306 + SocketData = case S#eldap.tls of
307 + tls ->
308
309 diff --git a/net-im/ejabberd/files/ejabberd-3.confd b/net-im/ejabberd/files/ejabberd-3.confd
310 new file mode 100644
311 index 0000000..b1e984e
312 --- /dev/null
313 +++ b/net-im/ejabberd/files/ejabberd-3.confd
314 @@ -0,0 +1,5 @@
315 +# Please configure everything at /etc/jabber/ejabberdctl.cfg
316 +# Put here only command line arguments for ejabberdctl (if any are required)
317 +
318 +#EJABBERDCTL_OPTS=""
319 +
320
321 diff --git a/net-im/ejabberd/files/ejabberd-3.initd b/net-im/ejabberd/files/ejabberd-3.initd
322 new file mode 100644
323 index 0000000..526afe9
324 --- /dev/null
325 +++ b/net-im/ejabberd/files/ejabberd-3.initd
326 @@ -0,0 +1,47 @@
327 +#!/sbin/runscript
328 +# Copyright 1999-2012 Gentoo Foundation
329 +# Distributed under the terms of the GNU General Public License v2
330 +# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/files/ejabberd-3.initd,v 1.3 2010/06/02 07:12:27 pva Exp $
331 +
332 +depend() {
333 + use dns
334 + need net
335 + provide jabber-server
336 +}
337 +
338 +start() {
339 + if ejabberdctl status >/dev/null 2>&1; then
340 + ewarn "ejabberd is already started (manually?)."
341 + return 0
342 + fi
343 + ebegin "Starting ejabberd"
344 + /usr/sbin/ejabberdctl ${EJABBERDCTL_OPT} start
345 + eend $?
346 +}
347 +
348 +stop() {
349 + ejabberdctl status >/dev/null 2>&1
350 + if test $? = 3; then
351 + ewarn "ejabberd is already stopped (manually?)."
352 + return 0
353 + fi
354 + ebegin "Stopping ejabberd"
355 + if /usr/sbin/ejabberdctl stop >/dev/null 2>&1; then
356 + cnt=0
357 + sleep 1
358 + while ejabberdctl status >/dev/null 2>&1 || test $? = 1; do
359 + echo -n .
360 + cnt=`expr $cnt + 1`
361 + if [ $cnt -ge 60 ] ; then
362 + eend 1
363 + break
364 + fi
365 + sleep 1
366 + done
367 + eend 0
368 + else
369 + eend 1
370 + einfo "Please, run '/usr/sbin/ejabberdctl stop' to see what's going on."
371 + fi
372 + eend 0
373 +}
374
375 diff --git a/net-im/ejabberd/metadata.xml b/net-im/ejabberd/metadata.xml
376 new file mode 100644
377 index 0000000..c73c286
378 --- /dev/null
379 +++ b/net-im/ejabberd/metadata.xml
380 @@ -0,0 +1,16 @@
381 +<?xml version="1.0" encoding="UTF-8"?>
382 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
383 +
384 +<pkgmetadata>
385 +<herd>net-im</herd>
386 +<longdescription> Free and Open Source distributed fault-tolerant Jabber server. It's mostly written in Erlang, and works on many platforms.</longdescription>
387 + <use>
388 + <flag name='mod_irc'>Build irc gateway </flag>
389 + <flag name='mod_muc'>Build Multi User Chat module</flag>
390 + <flag name='mod_pubsub'>Build Pubsub module</flag>
391 + <flag name='web'>Enable web admin interface</flag>
392 + <flag name="captcha">Support for CAPTCHA Forms (XEP-158)</flag>
393 + <flag name="mod_proxy65">Support for SOCKS5 Bytestreams (XEP-0065)</flag>
394 + <flag name="mod_statsdx">Measures several statistics, and provides a new section in ejabberd Web Admin to view them.</flag>
395 + </use>
396 +</pkgmetadata>