updated Ejabberd to latest version default tip
authorNikolaus Polak <nik /at/ linuxlovers [dot] at>
Tue Jan 17 09:59:52 2012 +0100 (4 months ago)
changeset 85cf060e4dbe20
parent 84 291e21fd60d4
updated Ejabberd to latest version
net-im/ejabberd/Manifest
net-im/ejabberd/ejabberd-2.1.10.ebuild
     1.1 --- a/net-im/ejabberd/Manifest	Sat Oct 08 16:42:31 2011 +0200
     1.2 +++ b/net-im/ejabberd/Manifest	Tue Jan 17 09:59:52 2012 +0100
     1.3 @@ -7,9 +7,11 @@
     1.4  AUX mod_register_web_svn1097.patch 19565 RMD160 f0042b1dbb87557e1642425f3fd8ffe7c25b93fe SHA1 5f76b3d86c08faa1d6caae4d4f5ea4eed413daf2 SHA256 2738e29369b43be5ce11cbfbdce1bbd318fe22464fbb9899801e963945ea0bec
     1.5  AUX mod_s2s_log_svn701.patch 4423 RMD160 3ede699aa2261a67767b23628ec32c66dbf60fac SHA1 609ef979d94e72a5f039d9acd5a7040c53c1a13e SHA256 321e9903535cc8c47807268ae11860b8cbfb12551848d2f53d29d92f8a876a4c
     1.6  DIST 2.1.1-mod_statsdx.patch.bz2 13041 RMD160 9cc6d71ff2a2d58b0e377a3facb564d22d46af25 SHA1 4ef326eff97283530ee137613c009fe132312644 SHA256 a290217d7fd2c338d9ddba73e25ee052a3735d7168aafd24750de113f43ebc5f
     1.7 +DIST ejabberd-2.1.10.tar.gz 1942456 RMD160 7069aeeb87fd074988bc62cb4e898f7b920ab3c0 SHA1 c1164aa00f4445cc464cc57a986cf2607315635b SHA256 9dc2e5889e919a7d51f2b95b83da835116631db81550a115c02e71909ad932be
     1.8  DIST ejabberd-2.1.8.tar.gz 3382833 RMD160 24d3042565a8631447bbf56f998f3a2377c23822 SHA1 3f8ecc944e0719577bfc45a68e974b1945ffa296 SHA256 dedf7684f9e96efbbc12f08f175096ef50b3f75b284bd27d172eaf75cecded7f
     1.9  DIST ejabberd-2.1.9.tar.gz 1872544 RMD160 6a6431a54999f5ca40273fef289ae7fd9b289476 SHA1 7faff4252eb2a10c046f1e6a2fcb11fd4f500ea8 SHA256 f97f2daad497d9d9979455b67ce31e2ddbd3a3cd638a97b2e1d76a6ac8758781
    1.10  DIST ejabberd-mod_statsdx-1080.patch.gz 14024 RMD160 eb40aa4c3b7b4529a317c8b521a883d156f90ce9 SHA1 ba669e917393b4400878613464ff83a84ff414da SHA256 0f3a3a991c14d797e795ef4fffcf19aa9a54608f5053b759187ec7d3696b9edb
    1.11 +EBUILD ejabberd-2.1.10.ebuild 9090 RMD160 5758e5e5db684d7418d052d5a419447eda22d379 SHA1 5ecc93051df4727e5dd3e463d3ac037d296f05e5 SHA256 77a984234c04a3ef54b7c6a60ae877a67f41d639dd9c9f3337fa17505fc2a98f
    1.12  EBUILD ejabberd-2.1.8.ebuild 9024 RMD160 615a3dd55a77f48dfde87ed3eada4f71a64d7a3a SHA1 f556272f5f13dd5dd11d589d2553f3326f256743 SHA256 b24e8922fc9c43afb3b09ef34d6c697aa3b32d373f6be870c9db917053b0cce6
    1.13  EBUILD ejabberd-2.1.9.ebuild 9090 RMD160 5758e5e5db684d7418d052d5a419447eda22d379 SHA1 5ecc93051df4727e5dd3e463d3ac037d296f05e5 SHA256 77a984234c04a3ef54b7c6a60ae877a67f41d639dd9c9f3337fa17505fc2a98f
    1.14  MISC ChangeLog 9953 RMD160 ab4222c12a1f0b8d5762f6472271f8d9751c73c1 SHA1 471ceb672962a1b08f92e981244e528f3f6bb134 SHA256 d9153c401f4e015bed847479a5bb798120255c3f997583928c05aaeaeb3f940b
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/net-im/ejabberd/ejabberd-2.1.10.ebuild	Tue Jan 17 09:59:52 2012 +0100
     2.3 @@ -0,0 +1,252 @@
     2.4 +# Copyright 1999-2011 Gentoo Foundation
     2.5 +# Distributed under the terms of the GNU General Public License v2
     2.6 +# $Header
     2.7 +
     2.8 +EAPI=4
     2.9 +
    2.10 +inherit eutils multilib pam ssl-cert
    2.11 +
    2.12 +DESCRIPTION="The Erlang Jabber Daemon"
    2.13 +HOMEPAGE="http://www.ejabberd.im/"
    2.14 +SRC_URI="http://www.process-one.net/downloads/${PN}/${PV}/${P}.tar.gz
    2.15 +	mod_statsdx? ( mirror://gentoo/ejabberd-mod_statsdx-1080.patch.gz )"
    2.16 +
    2.17 +LICENSE="GPL-2"
    2.18 +SLOT="0"
    2.19 +KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~sparc ~x86"
    2.20 +EJABBERD_MODULES="mod_irc mod_muc mod_proxy65 mod_pubsub mod_statsdx \
    2.21 +	mod_admin_extra mod_cron mod_s2s_log xmlrpc"
    2.22 +IUSE="captcha debug ldap odbc pam +web zlib ${EJABBERD_MODULES} ejab1381"
    2.23 +
    2.24 +DEPEND=">=net-im/jabber-base-0.01
    2.25 +	>=dev-libs/expat-1.95
    2.26 +	>=dev-lang/erlang-12.2.5[ssl]
    2.27 +	odbc? ( dev-db/unixODBC )
    2.28 +	ldap? ( =net-nds/openldap-2* )
    2.29 +	>=dev-libs/openssl-0.9.8e
    2.30 +	captcha? ( media-gfx/imagemagick[truetype,png] )
    2.31 +	xmlrpc? ( >=dev-libs/xmlrpc-erlang-ipr2-1.13 )
    2.32 +	zlib? ( sys-libs/zlib )"
    2.33 +#>=sys-apps/shadow-4.1.4.2-r3 - fixes bug in su that made ejabberdctl unworkable.
    2.34 +RDEPEND="${DEPEND}
    2.35 +	>=sys-apps/shadow-4.1.4.2-r3
    2.36 +	pam? ( virtual/pam )"
    2.37 +
    2.38 +PROVIDE="virtual/jabber-server"
    2.39 +
    2.40 +S=${WORKDIR}/${P}/src
    2.41 +
    2.42 +# paths in net-im/jabber-base
    2.43 +JABBER_ETC="${EPREFIX}/etc/jabber"
    2.44 +#JABBER_RUN="/var/run/jabber"
    2.45 +JABBER_SPOOL="${EPREFIX}/var/spool/jabber"
    2.46 +JABBER_LOG="${EPREFIX}/var/log/jabber"
    2.47 +JABBER_DOC="${EPREFIX}/usr/share/doc/${PF}"
    2.48 +
    2.49 +src_prepare() {
    2.50 +	if use mod_statsdx; then
    2.51 +		ewarn "mod_statsdx is not a part of upstream tarball but is a third-party module"
    2.52 +		ewarn "taken from here: http://www.ejabberd.im/mod_stats2file"
    2.53 +		epatch "${WORKDIR}/ejabberd-mod_statsdx-1080.patch"
    2.54 +
    2.55 +	fi
    2.56 +
    2.57 +	# adding community modules source files
    2.58 +	if use xmlrpc ; then
    2.59 +		epatch "${FILESDIR}/ejabberd_xmlrpc_svn1102.patch"
    2.60 +	fi
    2.61 +	if use mod_admin_extra ; then
    2.62 +		epatch "${FILESDIR}/mod_admin_extra_svn1101.patch"
    2.63 +	fi
    2.64 +
    2.65 +	# older patches require change to work dir, not /src
    2.66 +	cd ${WORKDIR}/${P}
    2.67 +	if use mod_cron ; then
    2.68 +		epatch "${FILESDIR}/mod_cron_svn1034.patch"
    2.69 +	fi
    2.70 +	if use mod_s2s_log ; then
    2.71 +		epatch "${FILESDIR}/mod_s2s_log_svn701.patch"
    2.72 +	fi
    2.73 +        # adding patch from https://support.process-one.net/browse/EJAB-1381
    2.74 +        if use ejab1381 ; then
    2.75 +                epatch "${FILESDIR}/ejabberd_ejab1381-21.patch"
    2.76 +        fi
    2.77 +	cd ${S}
    2.78 +
    2.79 +	# don't install release notes (we'll do this manually)
    2.80 +	sed '/install .* [.][.]\/doc\/[*][.]txt $(DOCDIR)/d' -i Makefile.in || die
    2.81 +	# Set correct paths
    2.82 +	sed -e "/^EJABBERDDIR[[:space:]]*=/{s:ejabberd:${PF}:}" \
    2.83 +		-e "/^ETCDIR[[:space:]]*=/{s:@sysconfdir@/ejabberd:${JABBER_ETC}:}" \
    2.84 +		-e "/^LOGDIR[[:space:]]*=/{s:@localstatedir@/log/ejabberd:${JABBER_LOG}:}" \
    2.85 +		-e "/^SPOOLDIR[[:space:]]*=/{s:@localstatedir@/lib/ejabberd:${JABBER_SPOOL}:}" \
    2.86 +			-i Makefile.in || die
    2.87 +	sed -e "/EJABBERDDIR=/{s:ejabberd:${PF}:}" \
    2.88 +		-e "s|\(ETCDIR=\)@SYSCONFDIR@.*|\1${JABBER_ETC}|" \
    2.89 +		-e "s|\(LOGS_DIR=\)@LOCALSTATEDIR@.*|\1${JABBER_LOG}|" \
    2.90 +		-e "s|\(SPOOLDIR=\)@LOCALSTATEDIR@.*|\1${JABBER_SPOOL}|" \
    2.91 +			-i ejabberdctl.template || die
    2.92 +
    2.93 +	# Set shell, so it'll work even in case jabber user have no shell
    2.94 +	# This is gentoo specific I guess since other distributions may have
    2.95 +	# ejabberd user with reall shell, while we share this user among different
    2.96 +	# jabberd implementations.
    2.97 +	sed '/^HOME/aSHELL=/bin/sh' -i ejabberdctl.template || die
    2.98 +	sed '/^export HOME/aexport SHELL' -i ejabberdctl.template || die
    2.99 +
   2.100 +	#sed -e "s:/share/doc/ejabberd/:${JABBER_DOC}:" -i web/ejabberd_web_admin.erl
   2.101 +
   2.102 +	# fix up the ssl cert paths in ejabberd.cfg to use our cert
   2.103 +	sed -e "s:/path/to/ssl.pem:/etc/ssl/ejabberd/server.pem:g" \
   2.104 +		-i ejabberd.cfg.example || die "Failed sed ejabberd.cfg.example"
   2.105 +
   2.106 +	# correct path to captcha script in default ejabberd.cfg
   2.107 +	sed -e 's|\({captcha_cmd,[[:space:]]*"\).\+"}|\1/usr/'$(get_libdir)'/erlang/lib/'${P}'/priv/bin/captcha.sh"}|' \
   2.108 +			-i ejabberd.cfg.example || die "Failed sed ejabberd.cfg.example"
   2.109 +
   2.110 +	# disable mod_irc in ejabberd.cfg
   2.111 +	if ! use mod_irc; then
   2.112 +		sed -i -e "s/{mod_irc,/%{mod_irc,/" \
   2.113 +			-i ejabberd.cfg.example || die "Failed to disable mod_irc"
   2.114 +	fi
   2.115 +}
   2.116 +
   2.117 +src_configure() {
   2.118 +	econf \
   2.119 +		--docdir="${EPREFIX}/usr/share/doc/${PF}/html" \
   2.120 +		--libdir="${EPREFIX}/usr/$(get_libdir)/erlang/lib/" \
   2.121 +		$(use_enable mod_irc) \
   2.122 +		$(use_enable ldap eldap) \
   2.123 +		$(use_enable mod_muc) \
   2.124 +		$(use_enable mod_proxy65) \
   2.125 +		$(use_enable mod_pubsub) \
   2.126 +		$(use_enable web) \
   2.127 +		$(use_enable odbc) \
   2.128 +		$(use_enable zlib ejabberd_zlib) \
   2.129 +		$(use_enable pam) \
   2.130 +		--enable-user=jabber
   2.131 +}
   2.132 +
   2.133 +src_compile() {
   2.134 +	emake $(use debug && echo debug=true ejabberd_debug=true)
   2.135 +}
   2.136 +
   2.137 +src_install() {
   2.138 +	emake DESTDIR="${ED}" install
   2.139 +
   2.140 +	# Pam helper module permissions
   2.141 +	# http://www.process-one.net/docs/ejabberd/guide_en.html
   2.142 +	if use pam; then
   2.143 +		pamd_mimic_system xmpp auth account || die "Cannot create pam.d file"
   2.144 +		fowners root:jabber "/usr/$(get_libdir)/erlang/lib/${PF}/priv/bin/epam"
   2.145 +		fperms 4750 "/usr/$(get_libdir)/erlang/lib/${PF}/priv/bin/epam"
   2.146 +	fi
   2.147 +
   2.148 +	cd "${WORKDIR}/${P}/doc"
   2.149 +	dodoc "release_notes_${PV%%_rc*}.txt"
   2.150 +
   2.151 +	#dodir /var/lib/ejabberd
   2.152 +	newinitd "${FILESDIR}/${PN}-3.initd" ${PN}
   2.153 +	newconfd "${FILESDIR}/${PN}-3.confd" ${PN}
   2.154 +}
   2.155 +
   2.156 +pkg_postinst() {
   2.157 +	elog "For configuration instructions, please see"
   2.158 +	elog "/usr/share/doc/${PF}/html/guide.html, or the online version at"
   2.159 +	elog "http://www.process-one.net/en/ejabberd/docs/guide_en/"
   2.160 +
   2.161 +	if ! use web ; then
   2.162 +		ewarn
   2.163 +		ewarn "The web USE flag is off, this has disabled the web admin interface."
   2.164 +		ewarn
   2.165 +	fi
   2.166 +
   2.167 +	elog
   2.168 +	elog '===================================================================='
   2.169 +	elog 'Quick Start Guide:'
   2.170 +	elog '1) Add output of `hostname -f` to /etc/jabber/ejabberd.cfg line 91'
   2.171 +	elog '   {hosts, ["localhost", "thehost"]}.'
   2.172 +	elog '2) Add an admin user to /etc/jabber/ejabberd.cfg line 360'
   2.173 +	elog '   {acl, admin, {user, "theadmin", "thehost"}}.'
   2.174 +	elog '3) Start the server'
   2.175 +	elog '   # /etc/init.d/ejabberd start'
   2.176 +	elog '4) Register the admin user'
   2.177 +	elog '   # /usr/sbin/ejabberdctl register theadmin thehost thepassword'
   2.178 +	elog '5) Log in with your favourite jabber client or using the web admin'
   2.179 +
   2.180 +	# Upgrading from ejabberd-2.0.x:
   2.181 +	if grep -E '^[^#]*EJABBERD_NODE=' "${EROOT}/etc/conf.d/ejabberd" >/dev/null 2>&1; then
   2.182 +		source "${EROOT}/etc/conf.d/ejabberd"
   2.183 +		ewarn
   2.184 +		ewarn "!!! WARNING !!!  WARNING !!!  WARNING !!!  WARNING !!!"
   2.185 +		ewarn "Starting with 2.1.x some paths and configuration files were"
   2.186 +		ewarn "changed to reflect upstream intentions better. Notable changes are:"
   2.187 +		ewarn
   2.188 +		ewarn "1. Everything (even init scripts) is now handled with ejabberdctl script."
   2.189 +		ewarn "Thus main configuration file became /etc/jabberd/ejabberdctl.cfg"
   2.190 +		ewarn "You must update ERLANG_NODE there with the value of EJABBERD_NODE"
   2.191 +		ewarn "from /etc/conf.d/ejebberd or ejabberd will refuse to start."
   2.192 +		ewarn
   2.193 +		ewarn "2. SSL certificate is now generated with ssl-cert eclass and resides"
   2.194 +		ewarn "at standard location: /etc/ssl/ejabberd/server.pem."
   2.195 +		ewarn
   2.196 +		ewarn "3. Cookie now resides at /var/spool/jabber/.erlang.cookie"
   2.197 +		ewarn
   2.198 +		ewarn "4. /var/log/jabber/sasl.log is now /var/log/jabber/erlang.log"
   2.199 +		ewarn
   2.200 +		ewarn "5. Crash dumps (if any) will be located at /var/log/jabber"
   2.201 +
   2.202 +		local i ctlcfg new_ctlcfg
   2.203 +		i=0
   2.204 +		ctlcfg=${EROOT}/etc/jabber/ejabberdctl.cfg
   2.205 +		while :; do
   2.206 +			new_ctlcfg=$(printf "${EROOT}/etc/jabber/._cfg%04d_ejabberdctl.cfg" ${i})
   2.207 +			[[ ! -e ${new_ctlcfg} ]] && break
   2.208 +			ctlcfg=${new_ctlcfg}
   2.209 +			((i++))
   2.210 +		done
   2.211 +
   2.212 +		ewarn
   2.213 +		ewarn "Updating ${ctlcfg} (debug: ${new_ctlcfg})"
   2.214 +		sed -e "/#ERLANG_NODE=/aERLANG_NODE=$EJABBERD_NODE" "${ctlcfg}" > "${new_ctlcfg}" || die
   2.215 +
   2.216 +		if [[ -e ${EROOT}/var/run/jabber/.erlang.cookie ]]; then
   2.217 +			ewarn "Moving .erlang.cookie..."
   2.218 +			if [[ -e ${EROOT}/var/spool/jabber/.erlang.cookie ]]; then
   2.219 +				mv -v "${EROOT}"/var/spool/jabber/.erlang.cookie{,bak}
   2.220 +			fi
   2.221 +			mv -v "${EROOT}"/var/{run/jabber,spool/jabber}/.erlang.cookie
   2.222 +		fi
   2.223 +		ewarn
   2.224 +		ewarn "We'll try to handle upgrade automagically but, please, do your"
   2.225 +		ewarn "own checks and do not forget to run 'etc-update'!"
   2.226 +		ewarn "PLEASE! Run 'etc-update' now!"
   2.227 +	fi
   2.228 +
   2.229 +	SSL_ORGANIZATION="${SSL_ORGANIZATION:-Ejabberd XMPP Server}"
   2.230 +	install_cert /etc/ssl/ejabberd/server
   2.231 +	# Fix ssl cert permissions bug #369809
   2.232 +	chown root:jabber "${EROOT}/etc/ssl/ejabberd/server.pem"
   2.233 +	chmod 0440 "${EROOT}/etc/ssl/ejabberd/server.pem"
   2.234 +	if [[ -e ${EROOT}/etc/jabber/ssl.pem ]]; then
   2.235 +		ewarn
   2.236 +		ewarn "The location of SSL certificates has changed. If you are"
   2.237 +		ewarn "upgrading from ${CATEGORY}/${PN}-2.0.5* or earlier  you might"
   2.238 +		ewarn "want to move your old certificates from /etc/jabber into"
   2.239 +		ewarn "/etc/ssl/ejabberd/, update config files and"
   2.240 +		ewarn "rm /etc/jabber/ssl.pem to avoid this message."
   2.241 +		ewarn
   2.242 +	fi
   2.243 +
   2.244 +	# community modules information
   2.245 +        if use mod_admin_extra || use mod_cron || use mod_s2s_log || use xmlrpc ; then
   2.246 +		elog "One or more community modules installed, to activate and configure "
   2.247 +		elog "them read their documentation on http://www.ejabberd.im/contributions"
   2.248 +        fi
   2.249 +
   2.250 +	# ejab-1381 information
   2.251 +	if use ejab138 ; then
   2.252 +		elog "Patch from #EJAB-1381 for remote roster management activated,"
   2.253 +		elog "read the documentation at http://spectrum.im/projects/spectrum/wiki/Remote_roster"
   2.254 +	fi
   2.255 +}