# Copyright 2005-2006 BreakMyGentoo.net # Distributed under the terms of the GNU General Public License v2 # $Header: $ inherit eutils multilib ssl-cert JABBER_ETC="/etc/jabber" JABBER_RUN="/var/run/jabber" JABBER_SPOOL="/var/spool/jabber" JABBER_LOG="/var/log/jabber" DESCRIPTION="The Erlang Jabber Daemon" HOMEPAGE="http://ejabberd.jabber.ru/" SRC_URI="http://process-one.net/en/projects/ejabberd/download/${PV}/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="~x86" IUSE="${IUSE} irc ldap muc odbc postgres pubsub web" DEPEND="${DEPEND} net-im/jabber-base >=dev-libs/expat-1.95 >=dev-lang/erlang-10.2.0 odbc? ( dev-db/unixODBC ) ldap? ( =net-nds/openldap-2* )" RDEPEND="postgres? ( dev-db/postgresql )" PROVIDE="virtual/jabber-server" S=${WORKDIR}/${P}/src src_compile() { local myconf use icq && \ myconf="${myconf} --enable-roster-gateway-workaround" use irc || \ myconf="${myconf} --disable-mod_irc" use ldap || \ myconf="${myconf} --disable-eldap" use muc || \ myconf="${myconf} --disable-mod_muc" use odbc || use postgres && \ myconf="${myconf} --enable-odbc" use pubsub || \ myconf="--disable-mod_pubsub" use ssl || \ myconf="${myconf} --disable-tls" use web || \ myconf="${myconf} --disable-web" econf \ ${myconf} || die "econf ailed" emake || die "emake failed" } src_install() { make \ DESTDIR=${D} \ EJABBERDDIR=${D}/usr/$(get_libdir)/erlang/lib/${P} \ ETCDIR=${D}${JABBER_ETC} \ LOGDIR=${D}${JABBER_LOG} \ install \ || die "install failed" cd .. insinto /usr/share/doc/${PF} use postgres && doins src/odbc/pg.sql dodoc doc/release_notes_{$PV}.txt dohtml doc/*.{html,png} # Create /usr/sbin/ejabberd cat < ${T}/ejabberd #!/bin/bash erl -pa /usr/$(get_libdir)/erlang/lib/${P}/ebin \\ -sname ejabberd \\ -s ejabberd \\ -ejabberd config \"${JABBER_ETC}/ejabberd.cfg\" \\ log_path \"${JABBER_LOG}/ejabberd.log\" \\ -kernel inetrc \"${JABBER_ETC}/inetrc\" \\ -sasl sasl_error_logger \{file,\"${JABBER_LOG}/sasl.log\"\} \ -kernel inetrc \"/etc/ejabberd/inetrc\" \\ -mnesia dir \"${JABBER_SPOOL}\" \\ \$@ EOF # Create /usr/ejabberdctl cat < ${T}/ejabberdctl #!/bin/sh exec env HOME=${JABBER_RUN} \\ erl -pa /usr/lib/erlang/lib/${P}/ebin \\ -noinput \\ -sname ejabberdctl \\ -s ejabberd_ctl \\ -extra \$@ EOF dobin ${T}/ejabberdctl dobin ${T}/ejabberd newinitd ${FILESDIR}/${PN}-1.0.0.initd ${PN} newconfd ${FILESDIR}/${PN}-1.0.0.confd ${PN} insinto ${JABBER_ETC} if use ssl; then docert ssl rm -f ${D}${JABBER_ETC}/ssl.{crt,csr,key} fowners jabber:jabber /etc/ejabberd/ssl.pem fi # Fix for DNS-SRV doins ${FILESDIR}/initrc } pkg_postinst() { if [ ! -e ${JABBER_ETC}/ejabberd.cfg ] then einfo "Configuration file has been installed in ${JABBER_ETC}/ejabberd.cfg." einfo "Edit it according to your needs. For configuration instructions," einfo "please see /usr/share/doc/${PF}/html/guide.html" fi if use ssl ; then einfo "A script to generate a ssl key has been installed in" einfo "${JABBER_ETC}/self-cert.sh . Use it and change the config file to" einfo "point to the full path" fi if ! use web ; then einfo "The web USE flag is off, this will disable the web admin interface," einfo "if this was not the intention then add web to your USE flags." fi }