--- /usr/portage/net-im/ejabberd/ejabberd-2.0.5-r3.ebuild 2009-06-03 10:07:17.000000000 +0400 +++ ./ejabberd-2.1.0_rc1.ebuild 2009-09-13 00:32:52.000000000 +0400 @@ -1,110 +1,94 @@ # 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.1 2009/06/03 06:07:17 fauli Exp $ +# $Header: $ -inherit eutils multilib +EAPI=2 + +inherit eutils multilib pam JABBER_ETC="/etc/jabber" JABBER_RUN="/var/run/jabber" JABBER_SPOOL="/var/spool/jabber" JABBER_LOG="/var/log/jabber" -MY_PV=${PV} +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}/${MY_PV}/sources/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="~amd64 ~ppc ~x86" -IUSE="debug mod_irc mod_muc mod_pubsub ldap odbc pam ssl web zlib" +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 + >=dev-lang/erlang-12.2.5 odbc? ( dev-db/unixODBC ) ldap? ( =net-nds/openldap-2* ) ssl? ( >=dev-libs/openssl-0.9.8e ) + captcha? ( media-gfx/imagemagick[truetype,png] ) 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" -} +S=${WORKDIR}/${P}/src -src_compile() { - econf --prefix=/ \ +src_configure() { + econf \ + --docdir=/usr/share/doc/"${PF}"/html \ $(use_enable mod_irc) \ $(use_enable ldap eldap) \ $(use_enable mod_muc) \ + $(use_enable mod_proxy65) \ $(use_enable mod_pubsub) \ $(use_enable ssl tls) \ $(use_enable web) \ $(use_enable odbc) \ $(use_enable zlib ejabberd_zlib) \ $(use_enable pam) \ - || die "econf failed" + --enable-user=jabber \ + || die "econf failed" +} - if useq debug; then - emake ejabberd_debug=true || die "compiling ejabberd core failed" - else - emake || die "compiling ejabberd core failed" - fi +src_compile() { + + emake $(use debug && echo debug=true ejabberd_debug=true) || die "compiling ejabberd core failed" } src_install() { - make \ + 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} - - 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 + if use pam; then + pamd_mimic_system xmpp auth account || die "Cannot create pam.d file" + fperms 4750 "/usr/$(get_libdir)/erlang/lib/${P}/priv/bin/epam" || die "Cannot adjust epam permissions" fi - cd "${WORKDIR}/${MY_P}/doc" - dodoc "release_notes_${MY_PV}.txt" - dohtml *.{html,png} + cd "${WORKDIR}/${P}/doc" + dodoc "release_notes_${PV%%_rc*}.txt" + rm "${D}"/usr/share/doc/"${PF}"/html/*.txt + chmod -x "${D}"/usr/share/doc/"${PF}"/html/* # set up /usr/sbin/ejabberd wrapper - cat "${FILESDIR}/ejabberd-wrapper-2.template" \ - | sed -e "s/\@libdir\@/$(get_libdir)/g" -e "s/\@version\@/${PV}/g" \ + cat "${FILESDIR}/ejabberd-wrapper-3.template" \ + | sed -e "s/\@libdir\@/$(get_libdir)/g" -e "s/\@version\@/${PV}/g" -e "s/\@doc\@/${PF}/g" \ > "${T}/ejabberd" exeinto /usr/sbin doexe "${T}/ejabberd" || die @@ -116,14 +100,18 @@ 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" + # correct path to captcha script in default ejabberd.cfg + sed -r 's|\{captcha_cmd,[[:space:]]*".+"\}|{captcha_cmd, "/usr/'$(get_libdir)'/erlang/lib/'${P}'/priv/bin/captcha.sh"}|' -i \ + "${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 @@ -136,16 +124,19 @@ 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"]}.'