--- net-im/ejabberd/ejabberd-2.0.5-r3.ebuild 2009-11-25 12:36:20.000000000 +0100 +++ net-im/ejabberd/ejabberd-2.1.1.ebuild 2009-11-16 20:24:22.000000000 +0100 @@ -1,151 +1,110 @@ # Copyright 1999-2009 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/ejabberd-2.0.5-r3.ebuild,v 1.4 2009/11/25 11:20:01 maekke Exp $ +# $Header: $ +EAPI=2 -inherit eutils multilib +inherit eutils pam JABBER_ETC="/etc/jabber" JABBER_RUN="/var/run/jabber" JABBER_SPOOL="/var/spool/jabber" JABBER_LOG="/var/log/jabber" -MY_PV=${PV} -MY_P=${PN}-${MY_PV} - DESCRIPTION="The Erlang Jabber Daemon" HOMEPAGE="http://www.ejabberd.im/" -SRC_URI="http://www.process-one.net/downloads/ejabberd/${PV}/${MY_P}.tar.gz" +SRC_URI="http://www.process-one.net/downloads/${PN}/${PV}/${P}.tar.gz" + LICENSE="GPL-2" SLOT="0" -KEYWORDS="amd64 ~arm ~ia64 ~ppc x86" -IUSE="debug mod_irc mod_muc mod_pubsub ldap odbc pam ssl web zlib" +KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~x86" + +IUSE="captcha debug +mod_irc +mod_muc +mod_proxy65 +mod_pubsub ldap odbc pam +ssl +web zlib" DEPEND=">=net-im/jabber-base-0.01 >=dev-libs/expat-1.95 - >=dev-lang/erlang-11.2.5 - odbc? ( dev-db/unixODBC ) + >=dev-lang/erlang-12.2.5[ssl?] + captcha? ( media-gfx/imagemagick[truetype,png] ) ldap? ( =net-nds/openldap-2* ) + odbc? ( dev-db/unixODBC ) ssl? ( >=dev-libs/openssl-0.9.8e ) zlib? ( sys-libs/zlib )" RDEPEND="${DEPEND}" PROVIDE="virtual/jabber-server" -S=${WORKDIR}/${MY_P}/src - -src_unpack() { - unpack ${A} - cd "${S}" - - # make ejabberd working with erlang-13 - rm ram_file_io_server.erl - epatch "${FILESDIR}/ejabberd-2.0.5-erlang-13.patch" - - # get rid of the prefix - sed -i -e "s/\\@prefix\\@//" "${S}/Makefile.in" \ - || die "cannot sed Makefile.in" - # we want ejabberdctl in /usr/sbin not /sbin !!! - sed -i -e "s/\\/sbin/\\/usr\\/sbin/" "${S}/Makefile.in" \ - || die "cannot sed Makefile.in" -} +src_configure() { + cd "${S}/src" -src_compile() { - econf --prefix=/ \ + econf \ + --docdir="/usr/share/doc/${P}" \ $(use_enable mod_irc) \ - $(use_enable ldap eldap) \ $(use_enable mod_muc) \ + $(use_enable mod_proxy65) \ $(use_enable mod_pubsub) \ + $(use_enable ldap eldap) \ + $(use_enable odbc) \ $(use_enable ssl tls) \ $(use_enable web) \ - $(use_enable odbc) \ $(use_enable zlib ejabberd_zlib) \ $(use_enable pam) \ - || die "econf failed" + --enable-user=jabber +} - if useq debug; then - emake ejabberd_debug=true || die "compiling ejabberd core failed" - else - emake || die "compiling ejabberd core failed" - fi +src_compile() { + cd "${S}/src" + + emake \ + $(use debug && echo debug=true ejabberd_debug=true) } src_install() { - make \ + cd "${S}/src" + emake \ DESTDIR="${D}" \ - EJABBERDDIR="${D}/usr/$(get_libdir)/erlang/lib/${P}" \ ETCDIR="${D}${JABBER_ETC}" \ LOGDIR="${D}${JABBER_LOG}" \ + SPOOLDIR="${D}${JABBER_SPOOL}" \ install || die "install failed" - # remove the default ejabberdctl as we use our own - rm "${D}/sbin/ejabberdctl" - - insinto ${JABBER_ETC} - - fowners -R jabber:jabber ${JABBER_ETC} - fowners -R jabber:jabber ${JABBER_LOG} - fowners -R jabber:jabber /usr/$(get_libdir)/erlang/lib/${P} + insinto "${JABBER_ETC}" - if useq ssl; then + if use ssl; then doins "${FILESDIR}/ssl.cnf" newins "${FILESDIR}/self-cert-v2.sh" self-cert.sh fi - # Pam helper module permissions - # http://www.process-one.net/docs/ejabberd/guide_en.html - if useq pam; then - fowners root:jabber /usr/$(get_libdir)/erlang/lib/${P}/priv/bin/epam - fperms 4750 /usr/$(get_libdir)/erlang/lib/${P}/priv/bin/epam + # 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" + fperms 4750 "/usr/$(get_libdir)/${PN}/priv/bin/epam" || die "Cannot adjust epam permissions" fi - cd "${WORKDIR}/${MY_P}/doc" - dodoc "release_notes_${MY_PV}.txt" - dohtml *.{html,png} - - # set up /usr/sbin/ejabberd wrapper - cat "${FILESDIR}/ejabberd-wrapper-2.template" \ - | sed -e "s/\@libdir\@/$(get_libdir)/g" -e "s/\@version\@/${PV}/g" \ - > "${T}/ejabberd" - exeinto /usr/sbin - doexe "${T}/ejabberd" || die - - # set up /usr/sbin/ejabberdctl wrapper - cat "${FILESDIR}/ejabberdctl-wrapper-3.template" \ - | sed -e "s:\@libdir\@:$(get_libdir):g" -e "s:\@version\@:${PV}:g" \ - > "${T}/ejabberdctl" - doexe "${T}/ejabberdctl" - - dodir /var/lib/ejabberd - newinitd "${FILESDIR}/${PN}-2.initd" ${PN} || die - newconfd "${FILESDIR}/${PN}-2.confd" ${PN} || die + newinitd "${FILESDIR}/${PN}-2.initd" "${PN}" || die "Cannot install init.d script" + newconfd "${FILESDIR}/${PN}-2.confd" "${PN}" || die "Cannot install conf.d file" # fix up the ssl cert paths in /etc/jabber/ejabberd.cfg to use the cert # that would be generated by /etc/jabber/self-cert.sh sed -i -e "s/\/path\/to\/ssl.pem/\/etc\/jabber\/ssl.pem/g" \ "${D}${JABBER_ETC}/ejabberd.cfg" || die "Cannot sed ejabberd.cfg" - - # if mod_irc is not enabled, comment out the mod_irc in the default - # ejabberd.cfg - if ! use mod_irc; then - sed -i -e "s/{mod_irc,/%{mod_irc,/" \ - "${D}${JABBER_ETC}/ejabberd.cfg" || die "Cannot sed ejabberd.cfg" - fi } 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/projects/ejabberd/docs/guide_en.html" - if useq ssl ; then + + if use ssl ; then if [ ! -e /etc/jabber/ssl.pem ]; then elog "Please edit ${JABBER_ETC}/ssl.cnf and run ${JABBER_ETC}/self-cert.sh" elog "Ejabberd may refuse to start without an SSL certificate" fi fi - if ! useq web ; then + + if ! use web ; then elog "The web USE flag is off, this has disabled the web admin interface." fi - elog "====================================================================" + + elog '====================================================================' elog 'Quick Start Guide:' elog '1) Add output of `hostname -f` to /etc/jabber/ejabberd.cfg line 89' elog ' {hosts, ["localhost", "thehost"]}.'