Version bump, fixes security issue #386075 wrt Anton Podavalov. Report version correc...
authorPeter Volkov <pva@gentoo.org>
Sat, 17 Dec 2011 03:27:21 +0000 (03:27 +0000)
committerPeter Volkov <pva@gentoo.org>
Sat, 17 Dec 2011 03:27:21 +0000 (03:27 +0000)
Package-Manager: portage-2.1.10.39/cvs/Linux x86_64

net-im/ejabberd/ChangeLog
net-im/ejabberd/Manifest
net-im/ejabberd/ejabberd-2.1.9.ebuild [new file with mode: 0644]

index e45263533d658ac4e7395ecd48c02a36a664cef4..f53153aacfffd9ae5e4cfad1bfa296478648c5ea 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for net-im/ejabberd
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/ChangeLog,v 1.98 2011/06/22 13:02:32 pva Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/ChangeLog,v 1.99 2011/12/17 03:27:21 pva Exp $
+
+*ejabberd-2.1.9 (17 Dec 2011)
+
+  17 Dec 2011; Peter Volkov <pva@gentoo.org> +ejabberd-2.1.9.ebuild:
+  Version bump, fixes security issue #386075 wrt Anton Podavalov. Report
+  version correctly, bug #372287 by cyberbat.
 
   22 Jun 2011; Peter Volkov <pva@gentoo.org>
   -files/ejabberd-2.0.5-erlang-13.patch,
index c7b7a6397a663e25e27b6d38a71b6f241d261a20..16f9b3b45de4bac9da5cb7f1280a200a80897dfc 100644 (file)
@@ -1,7 +1,19 @@
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
 AUX ejabberd-3.confd 161 RMD160 3b2c2b2a871c42c75e854a3c592c0d399a5dd387 SHA1 01e72bda178e7bf26a66321c4330bbcc1607e540 SHA256 0296d3d281a321cd7380772c1d89a94e4a86f85b7f43bf9dc1af74935c2e6386
 AUX ejabberd-3.initd 1018 RMD160 1d52bc9c664a6477d10b1396aba4a2c626da910a SHA1 fd0bb049df3d8a04410b3ccf59b9d78b40ee9d49 SHA256 1c07fa02152b42bee44a8d1cd3f031596aeee37276ec4a36d765e3c54aa23075
 DIST ejabberd-2.1.8.tar.gz 3382833 RMD160 24d3042565a8631447bbf56f998f3a2377c23822 SHA1 3f8ecc944e0719577bfc45a68e974b1945ffa296 SHA256 dedf7684f9e96efbbc12f08f175096ef50b3f75b284bd27d172eaf75cecded7f
+DIST ejabberd-2.1.9.tar.gz 1872544 RMD160 6a6431a54999f5ca40273fef289ae7fd9b289476 SHA1 7faff4252eb2a10c046f1e6a2fcb11fd4f500ea8 SHA256 f97f2daad497d9d9979455b67ce31e2ddbd3a3cd638a97b2e1d76a6ac8758781
 DIST ejabberd-mod_statsdx-1080.patch.gz 14024 RMD160 eb40aa4c3b7b4529a317c8b521a883d156f90ce9 SHA1 ba669e917393b4400878613464ff83a84ff414da SHA256 0f3a3a991c14d797e795ef4fffcf19aa9a54608f5053b759187ec7d3696b9edb
 EBUILD ejabberd-2.1.8.ebuild 7921 RMD160 214754ab72a39c1d2f7a744ef2b3482fda9c1a24 SHA1 20a2a00080e3b73a22616d77ca408f5d7b50000d SHA256 1cc2c8c6ada4c540e4b04ca5bd15d35214bcf1b3c34de198ac07fbfa0f677a54
-MISC ChangeLog 20387 RMD160 e6203c5669f49994d6d0250955474a619a8653da SHA1 00e4b6c1ea26e82672066ab2b2c41be4f0991a7a SHA256 8e93439fed833f5f18adebadce5b0148567612a5d4812d9da8de001cde47d0b7
+EBUILD ejabberd-2.1.9.ebuild 7920 RMD160 b4fbcf8085f3186d4401eeed070bb5745123cad1 SHA1 574021a53d1e614a750c332a3b12aa5f92a93bd1 SHA256 5e2e88e15b4c29da03136c3ea45170d4a3caca4ada876a9eefeba220804346ef
+MISC ChangeLog 20607 RMD160 45fddd8229b67c31e6ed6a6a0491525ad0838d90 SHA1 085f6c872683371209f88cee84dc5b171126b283 SHA256 0b85e57af6581d5e2e4a7b7b2dcbb6d1b50b7b8fd20140e9d7dc19a8625207e5
 MISC metadata.xml 929 RMD160 3a456c8945da34e417ca2fb659807a280b834f85 SHA1 a7b3173f8b63655c049881629e1354c71ddd633e SHA256 4d46909fd72908dff8698bb9dfcf60132e973b28eabbfe75001397ed349ff11b
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.0.17 (GNU/Linux)
+
+iF4EAREIAAYFAk7sDBcACgkQGrk+8vGYmwdClAD/ao9noFQHRL7BZvbHm4e07U1/
+kPEQ2xV1Zyr8Vk12OIkA/iGiDhH95tZDuF31KnBDqLOG3QEzWgYQ72Tg+KgYfO0L
+=yU9/
+-----END PGP SIGNATURE-----
diff --git a/net-im/ejabberd/ejabberd-2.1.9.ebuild b/net-im/ejabberd/ejabberd-2.1.9.ebuild
new file mode 100644 (file)
index 0000000..9165e65
--- /dev/null
@@ -0,0 +1,214 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/ejabberd-2.1.9.ebuild,v 1.1 2011/12/17 03:27:21 pva Exp $
+
+EAPI=4
+
+inherit eutils multilib pam ssl-cert
+
+DESCRIPTION="The Erlang Jabber Daemon"
+HOMEPAGE="http://www.ejabberd.im/"
+SRC_URI="http://www.process-one.net/downloads/${PN}/${PV}/${P}.tar.gz
+       mod_statsdx? ( mirror://gentoo/ejabberd-mod_statsdx-1080.patch.gz )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~sparc ~x86"
+EJABBERD_MODULES="mod_irc mod_muc mod_proxy65 mod_pubsub mod_statsdx"
+IUSE="captcha debug ldap odbc pam +web zlib ${EJABBERD_MODULES}"
+
+DEPEND=">=net-im/jabber-base-0.01
+       >=dev-libs/expat-1.95
+       >=dev-lang/erlang-12.2.5[ssl]
+       odbc? ( dev-db/unixODBC )
+       ldap? ( =net-nds/openldap-2* )
+       >=dev-libs/openssl-0.9.8e
+       captcha? ( media-gfx/imagemagick[truetype,png] )
+       zlib? ( sys-libs/zlib )"
+#>=sys-apps/shadow-4.1.4.2-r3 - fixes bug in su that made ejabberdctl unworkable.
+RDEPEND="${DEPEND}
+       >=sys-apps/shadow-4.1.4.2-r3
+       pam? ( virtual/pam )"
+
+S=${WORKDIR}/${P}/src
+
+# paths in net-im/jabber-base
+JABBER_ETC="${EPREFIX}/etc/jabber"
+#JABBER_RUN="/var/run/jabber"
+JABBER_SPOOL="${EPREFIX}/var/spool/jabber"
+JABBER_LOG="${EPREFIX}/var/log/jabber"
+JABBER_DOC="${EPREFIX}/usr/share/doc/${PF}"
+
+src_prepare() {
+       if use mod_statsdx; then
+               ewarn "mod_statsdx is not a part of upstream tarball but is a third-party module"
+               ewarn "taken from here: http://www.ejabberd.im/mod_stats2file"
+               epatch "${WORKDIR}/ejabberd-mod_statsdx-1080.patch"
+       fi
+
+       # don't install release notes (we'll do this manually)
+       sed '/install .* [.][.]\/doc\/[*][.]txt $(DOCDIR)/d' -i Makefile.in || die
+       # Set correct paths
+       sed -e "/^EJABBERDDIR[[:space:]]*=/{s:ejabberd:${PF}:}" \
+               -e "/^ETCDIR[[:space:]]*=/{s:@sysconfdir@/ejabberd:${JABBER_ETC}:}" \
+               -e "/^LOGDIR[[:space:]]*=/{s:@localstatedir@/log/ejabberd:${JABBER_LOG}:}" \
+               -e "/^SPOOLDIR[[:space:]]*=/{s:@localstatedir@/lib/ejabberd:${JABBER_SPOOL}:}" \
+                       -i Makefile.in || die
+       sed -e "/EJABBERDDIR=/{s:ejabberd:${PF}:}" \
+               -e "s|\(ETCDIR=\)@SYSCONFDIR@.*|\1${JABBER_ETC}|" \
+               -e "s|\(LOGS_DIR=\)@LOCALSTATEDIR@.*|\1${JABBER_LOG}|" \
+               -e "s|\(SPOOLDIR=\)@LOCALSTATEDIR@.*|\1${JABBER_SPOOL}|" \
+                       -i ejabberdctl.template || die
+
+       # Set shell, so it'll work even in case jabber user have no shell
+       # This is gentoo specific I guess since other distributions may have
+       # ejabberd user with reall shell, while we share this user among different
+       # jabberd implementations.
+       sed '/^HOME/aSHELL=/bin/sh' -i ejabberdctl.template || die
+       sed '/^export HOME/aexport SHELL' -i ejabberdctl.template || die
+
+       #sed -e "s:/share/doc/ejabberd/:${JABBER_DOC}:" -i web/ejabberd_web_admin.erl
+
+       # fix up the ssl cert paths in ejabberd.cfg to use our cert
+       sed -e "s:/path/to/ssl.pem:/etc/ssl/ejabberd/server.pem:g" \
+               -i ejabberd.cfg.example || die "Failed sed ejabberd.cfg.example"
+
+       # correct path to captcha script in default ejabberd.cfg
+       sed -e 's|\({captcha_cmd,[[:space:]]*"\).\+"}|\1/usr/'$(get_libdir)'/erlang/lib/'${P}'/priv/bin/captcha.sh"}|' \
+                       -i ejabberd.cfg.example || die "Failed sed ejabberd.cfg.example"
+
+       # disable mod_irc in ejabberd.cfg
+       if ! use mod_irc; then
+               sed -i -e "s/{mod_irc,/%{mod_irc,/" \
+                       -i ejabberd.cfg.example || die "Failed to disable mod_irc"
+       fi
+
+}
+
+src_configure() {
+       econf \
+               --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \
+               --libdir="${EPREFIX}/usr/$(get_libdir)/erlang/lib/" \
+               $(use_enable mod_irc) \
+               $(use_enable ldap eldap) \
+               $(use_enable mod_muc) \
+               $(use_enable mod_proxy65) \
+               $(use_enable mod_pubsub) \
+               $(use_enable web) \
+               $(use_enable odbc) \
+               $(use_enable zlib ejabberd_zlib) \
+               $(use_enable pam) \
+               --enable-user=jabber
+}
+
+src_compile() {
+       emake $(use debug && echo debug=true ejabberd_debug=true)
+}
+
+src_install() {
+       emake DESTDIR="${ED}" install
+
+       # Pam helper module permissions
+       # http://www.process-one.net/docs/ejabberd/guide_en.html
+       if use pam; then
+               pamd_mimic_system xmpp auth account || die "Cannot create pam.d file"
+               fowners root:jabber "/usr/$(get_libdir)/erlang/lib/${PF}/priv/bin/epam"
+               fperms 4750 "/usr/$(get_libdir)/erlang/lib/${PF}/priv/bin/epam"
+       fi
+
+       cd "${WORKDIR}/${P}/doc"
+       dodoc "release_notes_${PV%%_rc*}.txt"
+
+       #dodir /var/lib/ejabberd
+       newinitd "${FILESDIR}/${PN}-3.initd" ${PN}
+       newconfd "${FILESDIR}/${PN}-3.confd" ${PN}
+}
+
+pkg_postinst() {
+       elog "For configuration instructions, please see"
+       elog "/usr/share/doc/${PF}/html/guide.html, or the online version at"
+       elog "http://www.process-one.net/en/ejabberd/docs/guide_en/"
+
+       if ! use web ; then
+               ewarn
+               ewarn "The web USE flag is off, this has disabled the web admin interface."
+               ewarn
+       fi
+
+       elog
+       elog '===================================================================='
+       elog 'Quick Start Guide:'
+       elog '1) Add output of `hostname -f` to /etc/jabber/ejabberd.cfg line 91'
+       elog '   {hosts, ["localhost", "thehost"]}.'
+       elog '2) Add an admin user to /etc/jabber/ejabberd.cfg line 360'
+       elog '   {acl, admin, {user, "theadmin", "thehost"}}.'
+       elog '3) Start the server'
+       elog '   # /etc/init.d/ejabberd start'
+       elog '4) Register the admin user'
+       elog '   # /usr/sbin/ejabberdctl register theadmin thehost thepassword'
+       elog '5) Log in with your favourite jabber client or using the web admin'
+
+       # Upgrading from ejabberd-2.0.x:
+       if grep -E '^[^#]*EJABBERD_NODE=' "${EROOT}/etc/conf.d/ejabberd" >/dev/null 2>&1; then
+               source "${EROOT}/etc/conf.d/ejabberd"
+               ewarn
+               ewarn "!!! WARNING !!!  WARNING !!!  WARNING !!!  WARNING !!!"
+               ewarn "Starting with 2.1.x some paths and configuration files were"
+               ewarn "changed to reflect upstream intentions better. Notable changes are:"
+               ewarn
+               ewarn "1. Everything (even init scripts) is now handled with ejabberdctl script."
+               ewarn "Thus main configuration file became /etc/jabberd/ejabberdctl.cfg"
+               ewarn "You must update ERLANG_NODE there with the value of EJABBERD_NODE"
+               ewarn "from /etc/conf.d/ejebberd or ejabberd will refuse to start."
+               ewarn
+               ewarn "2. SSL certificate is now generated with ssl-cert eclass and resides"
+               ewarn "at standard location: /etc/ssl/ejabberd/server.pem."
+               ewarn
+               ewarn "3. Cookie now resides at /var/spool/jabber/.erlang.cookie"
+               ewarn
+               ewarn "4. /var/log/jabber/sasl.log is now /var/log/jabber/erlang.log"
+               ewarn
+               ewarn "5. Crash dumps (if any) will be located at /var/log/jabber"
+
+               local i ctlcfg new_ctlcfg
+               i=0
+               ctlcfg=${EROOT}/etc/jabber/ejabberdctl.cfg
+               while :; do
+                       new_ctlcfg=$(printf "${EROOT}/etc/jabber/._cfg%04d_ejabberdctl.cfg" ${i})
+                       [[ ! -e ${new_ctlcfg} ]] && break
+                       ctlcfg=${new_ctlcfg}
+                       ((i++))
+               done
+
+               ewarn
+               ewarn "Updating ${ctlcfg} (debug: ${new_ctlcfg})"
+               sed -e "/#ERLANG_NODE=/aERLANG_NODE=$EJABBERD_NODE" "${ctlcfg}" > "${new_ctlcfg}" || die
+
+               if [[ -e ${EROOT}/var/run/jabber/.erlang.cookie ]]; then
+                       ewarn "Moving .erlang.cookie..."
+                       if [[ -e ${EROOT}/var/spool/jabber/.erlang.cookie ]]; then
+                               mv -v "${EROOT}"/var/spool/jabber/.erlang.cookie{,bak}
+                       fi
+                       mv -v "${EROOT}"/var/{run/jabber,spool/jabber}/.erlang.cookie
+               fi
+               ewarn
+               ewarn "We'll try to handle upgrade automagically but, please, do your"
+               ewarn "own checks and do not forget to run 'etc-update'!"
+               ewarn "PLEASE! Run 'etc-update' now!"
+       fi
+
+       SSL_ORGANIZATION="${SSL_ORGANIZATION:-Ejabberd XMPP Server}"
+       install_cert /etc/ssl/ejabberd/server
+       # Fix ssl cert permissions bug #369809
+       chown root:jabber "${EROOT}/etc/ssl/ejabberd/server.pem"
+       chmod 0440 "${EROOT}/etc/ssl/ejabberd/server.pem"
+       if [[ -e ${EROOT}/etc/jabber/ssl.pem ]]; then
+               ewarn
+               ewarn "The location of SSL certificates has changed. If you are"
+               ewarn "upgrading from ${CATEGORY}/${PN}-2.0.5* or earlier  you might"
+               ewarn "want to move your old certificates from /etc/jabber into"
+               ewarn "/etc/ssl/ejabberd/, update config files and"
+               ewarn "rm /etc/jabber/ssl.pem to avoid this message."
+               ewarn
+       fi
+}