diff options
Diffstat (limited to 'net-im/ejabberd')
-rw-r--r-- | net-im/ejabberd/Manifest | 3 | ||||
-rw-r--r-- | net-im/ejabberd/ejabberd-15.03-r1.ebuild | 150 | ||||
-rw-r--r-- | net-im/ejabberd/ejabberd-2.1.13-r1.ebuild | 222 | ||||
-rw-r--r-- | net-im/ejabberd/files/ejabberd-15.03-ejabberdctl.patch | 49 | ||||
-rw-r--r-- | net-im/ejabberd/files/ejabberd-3.confd | 5 | ||||
-rw-r--r-- | net-im/ejabberd/files/ejabberd-3.initd | 47 | ||||
-rw-r--r-- | net-im/ejabberd/files/ejabberd.logrotate | 13 | ||||
-rw-r--r-- | net-im/ejabberd/files/ejabberd.service | 17 | ||||
-rw-r--r-- | net-im/ejabberd/files/ejabberd.tmpfiles.conf | 1 | ||||
-rw-r--r-- | net-im/ejabberd/metadata.xml | 26 |
10 files changed, 533 insertions, 0 deletions
diff --git a/net-im/ejabberd/Manifest b/net-im/ejabberd/Manifest new file mode 100644 index 000000000000..b3e9e0895883 --- /dev/null +++ b/net-im/ejabberd/Manifest @@ -0,0 +1,3 @@ +DIST ejabberd-15.03.tar.xz 6274856 SHA256 3a6fd6e94d6f24575dcaff1aa7ca319944eb76970a9d3b6bf5f30819824143fc SHA512 b292b596094aeab576d9d4aadea47042eeda130881de5dd523985dc60cd0644726dae8d525364ec72992c0c45ba9e0673b7a6ffc2bc20613ba0092e2b285e16f WHIRLPOOL 630feba542f5d4bac1e4c17f453b2298a500c0d18159e8f09a4f11e9d372f7ffbf6e2e600c0ee849c689868872644404c03ebfb375d4852f3bbbd966417d951e +DIST ejabberd-2.1.13.tgz 1999853 SHA256 a80d1c72e435da31758261cb0c04fe750ac71fc3e33a3b606123efd3b3abc86d SHA512 9348271f0cf1d9a7e6c53204121568e77820afc50fff1271e7b7ef66c5c5d7d067034c46472250423c4e9052046b18c1c8178f09eda0b0bfe25a1eac465fd07b WHIRLPOOL 2c366d2f7c4371db56f47f5492ef27028a589186eeddb7a6b4e8aac0537b1b80ee31a9760f0551063ce2c2a658b9b5eafb7ed25294e00eb69480231a599a7b10 +DIST ejabberd-mod_statsdx-1118.patch.gz 13989 SHA256 5e5d975e44248cf2b0d6dd0ecf4c477e8479b2b4d0bd531e80f4623fd787320e SHA512 99399323150990cda15e707385f0f26fa790d4ba188a97ac46daaaab9c25e72a7ec72a875573136f17a18648017074d76e4e267b544dc4c95a5101ed9ad6815d WHIRLPOOL 05997f03bb70136ee5e829ea9c55e3aeb0704150f1ed54f11c6cce382a82106129fc1a6ef35a62780837cd2b59fbb384fa10f3bb49813acaee8c5edc22ae3702 diff --git a/net-im/ejabberd/ejabberd-15.03-r1.ebuild b/net-im/ejabberd/ejabberd-15.03-r1.ebuild new file mode 100644 index 000000000000..3154b9755ddc --- /dev/null +++ b/net-im/ejabberd/ejabberd-15.03-r1.ebuild @@ -0,0 +1,150 @@ +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit eutils multilib pam ssl-cert systemd + +DESCRIPTION="The Erlang Jabber Daemon" +HOMEPAGE="http://www.ejabberd.im/ https://github.com/processone/ejabberd/" +SRC_URI="http://dev.gentoo.org/~radhermit/dist/${P}.tar.xz" +# upstream tarball missing bundled erlang libs that are fetched via git +#SRC_URI="https://www.process-one.net/downloads/downloads-action.php?file=/${PN}/${PV}/${P}.tgz -> ${P}.tar.gz" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~sparc ~x86" +EJABBERD_MODULES="mod_bosh mod_irc mod_muc mod_proxy65 mod_pubsub" +IUSE="captcha debug elixir ldap mysql nls odbc pam postgres riak redis tools zlib ${EJABBERD_MODULES}" + +DEPEND=">=net-im/jabber-base-0.01 + >=dev-libs/expat-1.95 + >=dev-libs/libyaml-0.1.4 + >=dev-lang/erlang-15.2[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-1.2.3 )" +RDEPEND="${DEPEND} + >=sys-apps/shadow-4.1.4.2-r3 + pam? ( virtual/pam )" + +# 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() { + epatch "${FILESDIR}"/${P}-ejabberdctl.patch + + # 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|\(ETC_DIR=\){{sysconfdir}}.*|\1${JABBER_ETC}|" \ + -e "s|\(LOGS_DIR=\){{localstatedir}}.*|\1${JABBER_LOG}|" \ + -e "s|\(SPOOL_DIR=\){{localstatedir}}.*|\1${JABBER_SPOOL}|" \ + -i ejabberdctl.template || die + + # fix up the ssl cert paths in ejabberd.yml to use our cert and + # also use the correct pam service name + sed -e "s:/path/to/ssl.pem:/etc/ssl/ejabberd/server.pem:g" \ + -e "s:pamservicename:xmpp:" \ + -i ejabberd.yml.example || die + + # correct path to captcha script in default ejabberd.yml + sed -e 's|\({captcha_cmd,[[:space:]]*"\).\+"}|\1/usr/'$(get_libdir)'/erlang/lib/'${P}'/priv/bin/captcha.sh"}|' \ + -i ejabberd.yml.example || die + + # disable mod_irc in ejabberd.yml + if ! use mod_irc; then + sed -e "s/{mod_irc,/%{mod_irc,/" \ + -i ejabberd.yml.example || die + fi + + epatch_user +} + +src_configure() { + econf \ + --docdir="${EPREFIX}/usr/share/doc/${PF}/html" \ + --libdir="${EPREFIX}/usr/$(get_libdir)/erlang/lib/" \ + $(use_enable tools) \ + $(use_enable odbc) \ + $(use_enable mysql) \ + $(use_enable postgres pgsql) \ + $(use_enable pam) \ + $(use_enable zlib) \ + $(use_enable riak) \ + $(use_enable redis) \ + $(use_enable mod_bosh json) \ + $(use_enable nls iconv) \ + $(use_enable elixir) \ + $(use_enable debug) \ + --enable-lager \ + --enable-user=jabber + + # run configure scripts for all prefetched deps + ./rebar get-deps || die +} + +src_compile() { + emake $(use debug && echo debug=true ejabberd_debug=true) +} + +src_install() { + default + + # Pam helper module permissions + # https://www.process-one.net/docs/ejabberd/guide_en.html#pam + 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 + + newinitd "${FILESDIR}"/${PN}-3.initd ${PN} + newconfd "${FILESDIR}"/${PN}-3.confd ${PN} + systemd_dounit "${FILESDIR}"/${PN}.service + systemd_dotmpfilesd "${FILESDIR}"/${PN}.tmpfiles.conf + + insinto /etc/logrotate.d + newins "${FILESDIR}"/${PN}.logrotate ${PN} +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]] ; then + 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/" + else + elog "Ejabberd now defaults to using a YAML format for its config file." + elog "The old ejabberd.cfg file can be converted using the following instructions:" + echo + elog "1. Make sure all processes related to the previous version of ejabberd aren't running." + elog " Usually this just means the ejabberd daemon and possibly the pam-related processes" + elog " (epmd and epam) if pam support is enabled." + elog "2. Run \`ejabberdctl start\` with sufficient permissions. Note that this can fail to" + elog " start ejabberd properly for various reasons. Check ejabberd's main log file" + elog " at /var/log/jabber/ejabberd.log to confirm it started successfully." + elog "3. Run \`ejabberdctl convert_to_yaml /etc/jabber/ejabberd.cfg /etc/jabber/ejabberd.yml.new\`" + elog " with sufficient permissions, edit and rename /etc/jabber/ejabberd.yml.new to" + elog " /etc/jabber/ejabberd.yml, and finally restart ejabberd with the new config file." + echo + 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" +} diff --git a/net-im/ejabberd/ejabberd-2.1.13-r1.ebuild b/net-im/ejabberd/ejabberd-2.1.13-r1.ebuild new file mode 100644 index 000000000000..74019181e8fd --- /dev/null +++ b/net-im/ejabberd/ejabberd-2.1.13-r1.ebuild @@ -0,0 +1,222 @@ +# Copyright 1999-2014 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=5 + +inherit eutils multilib pam ssl-cert systemd + +DESCRIPTION="The Erlang Jabber Daemon" +HOMEPAGE="http://www.ejabberd.im/ https://github.com/processone/ejabberd/" +SRC_URI="http://www.process-one.net/downloads/${PN}/${PV}/${P}.tgz + mod_statsdx? ( http://dev.gentoo.org/~radhermit/dist/${PN}-mod_statsdx-1118.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] + <dev-lang/erlang-16 + 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_OPTS="-p2" epatch "${WORKDIR}"/${PN}-mod_statsdx-1118.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() { + default + + # 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 + + newinitd "${FILESDIR}"/${PN}-3.initd ${PN} + newconfd "${FILESDIR}"/${PN}-3.confd ${PN} + systemd_dounit "${FILESDIR}"/${PN}.service + systemd_dotmpfilesd "${FILESDIR}"/${PN}.tmpfiles.conf + + insinto /etc/logrotate.d + newins "${FILESDIR}"/${PN}.logrotate ${PN} +} + +pkg_postinst() { + if [[ -z ${REPLACING_VERSIONS} ]] ; then + 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 (for openRC)' + elog ' # systemctl start ejabberd (for Systemd)' + 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' + fi + + # 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 +} diff --git a/net-im/ejabberd/files/ejabberd-15.03-ejabberdctl.patch b/net-im/ejabberd/files/ejabberd-15.03-ejabberdctl.patch new file mode 100644 index 000000000000..0d2ccf32485f --- /dev/null +++ b/net-im/ejabberd/files/ejabberd-15.03-ejabberdctl.patch @@ -0,0 +1,49 @@ +Set SHELL since the generic jabber user used on Gentoo for jabber servers +doesn't have a valid shell set by default and fix EXEC_CMD otherwise it fails +with "This account is currently not available" again due to jabber not having +a valid shell. + +Also, workaround the assumption that jabber's $HOME is a directory when instead +it defaults to /dev/null on Gentoo. + +--- ejabberd-15.03/ejabberdctl.template ++++ ejabberd-15.03/ejabberdctl.template +@@ -15,6 +15,7 @@ + IEX={{bindir}}/iex + EPMD={{bindir}}/epmd + INSTALLUSER={{installuser}} ++SHELL=/bin/sh + + # Compatibility in ZSH + #setopt shwordsplit 2>/dev/null +@@ -25,11 +26,11 @@ + for GID in `id -G`; do + if [ $GID -eq 0 ] ; then + INSTALLUSER_HOME=$(getent passwd "$INSTALLUSER" | cut -d: -f6) +- if [ -n "$INSTALLUSER_HOME" ] && [ ! -d "$INSTALLUSER_HOME" ] ; then ++ if [ -n "$INSTALLUSER_HOME" ] && [ ! -e "$INSTALLUSER_HOME" ] ; then + mkdir -p "$INSTALLUSER_HOME" + chown "$INSTALLUSER" "$INSTALLUSER_HOME" + fi +- EXEC_CMD="su $INSTALLUSER -c" ++ EXEC_CMD="su $INSTALLUSER -p -c" + fi + done + if [ `id -g` -eq `id -g $INSTALLUSER` ] ; then +@@ -111,6 +112,7 @@ + DATETIME=`date "+%Y%m%d-%H%M%S"` + ERL_CRASH_DUMP=$LOGS_DIR/erl_crash_$DATETIME.dump + ERL_INETRC=$ETC_DIR/inetrc ++HOME=$SPOOL_DIR + + # define erl parameters + ERL_OPTIONS=$(echo $ERL_OPTIONS | sed 's/ /\\ /g') +@@ -167,6 +169,8 @@ + export ERL_INETRC + export ERL_MAX_PORTS + export ERL_MAX_ETS_TABLES ++export HOME ++export SHELL + + # start server + start() diff --git a/net-im/ejabberd/files/ejabberd-3.confd b/net-im/ejabberd/files/ejabberd-3.confd new file mode 100644 index 000000000000..b1e984e4d7ab --- /dev/null +++ b/net-im/ejabberd/files/ejabberd-3.confd @@ -0,0 +1,5 @@ +# Please configure everything at /etc/jabber/ejabberdctl.cfg +# Put here only command line arguments for ejabberdctl (if any are required) + +#EJABBERDCTL_OPTS="" + diff --git a/net-im/ejabberd/files/ejabberd-3.initd b/net-im/ejabberd/files/ejabberd-3.initd new file mode 100644 index 000000000000..29a30da3610d --- /dev/null +++ b/net-im/ejabberd/files/ejabberd-3.initd @@ -0,0 +1,47 @@ +#!/sbin/runscript +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +depend() { + use dns + need net + provide jabber-server +} + +start() { + if ejabberdctl status >/dev/null 2>&1; then + ewarn "ejabberd is already started (manually?)." + return 0 + fi + ebegin "Starting ejabberd" + /usr/sbin/ejabberdctl ${EJABBERDCTL_OPTS} start + eend $? +} + +stop() { + ejabberdctl status >/dev/null 2>&1 + if test $? = 3; then + ewarn "ejabberd is already stopped (manually?)." + return 0 + fi + ebegin "Stopping ejabberd" + if /usr/sbin/ejabberdctl stop >/dev/null 2>&1; then + cnt=0 + sleep 1 + while ejabberdctl status >/dev/null 2>&1 || test $? = 1; do + echo -n . + cnt=`expr $cnt + 1` + if [ $cnt -ge 60 ] ; then + eend 1 + break + fi + sleep 1 + done + eend 0 + else + eend 1 + einfo "Please, run '/usr/sbin/ejabberdctl stop' to see what's going on." + fi + eend 0 +} diff --git a/net-im/ejabberd/files/ejabberd.logrotate b/net-im/ejabberd/files/ejabberd.logrotate new file mode 100644 index 000000000000..4f324729dba8 --- /dev/null +++ b/net-im/ejabberd/files/ejabberd.logrotate @@ -0,0 +1,13 @@ +/var/log/jabber/*.log { + su jabber jabber + weekly + rotate 4 + missingok + nocreate + sharedscripts + notifempty + compress + postrotate + /usr/sbin/ejabberdctl reopen-log > /dev/null 2>&1 || true + endscript +} diff --git a/net-im/ejabberd/files/ejabberd.service b/net-im/ejabberd/files/ejabberd.service new file mode 100644 index 000000000000..0b792565b75e --- /dev/null +++ b/net-im/ejabberd/files/ejabberd.service @@ -0,0 +1,17 @@ +[Unit] +Description=A distributed, fault-tolerant Jabber/XMPP server +After=network.target + +[Service] +Type=oneshot +User=jabber +LimitNOFILE=16000 +RestartSec=5 +ExecStart=/usr/sbin/ejabberdctl \ + --config /etc/jabber/ejabberd.cfg --ctl-config /etc/jabber/ejabberdctl.cfg \ + --logs "/var/log/jabber" --spool "/var/spool/jabber" start +ExecStop=/usr/sbin/ejabberdctl stop +RemainAfterExit=yes + +[Install] +WantedBy=multi-user.target diff --git a/net-im/ejabberd/files/ejabberd.tmpfiles.conf b/net-im/ejabberd/files/ejabberd.tmpfiles.conf new file mode 100644 index 000000000000..cf17b73b43a3 --- /dev/null +++ b/net-im/ejabberd/files/ejabberd.tmpfiles.conf @@ -0,0 +1 @@ +d /var/lock/ejabberdctl 0750 jabber jabber diff --git a/net-im/ejabberd/metadata.xml b/net-im/ejabberd/metadata.xml new file mode 100644 index 000000000000..2b661cf5a454 --- /dev/null +++ b/net-im/ejabberd/metadata.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>net-im</herd> + <longdescription> + Free and Open Source distributed fault-tolerant Jabber server. It's + mostly written in Erlang, and works on many platforms. + </longdescription> + <use> + <flag name="captcha">Support for CAPTCHA Forms (XEP-158)</flag> + <flag name="mod_proxy65">Support for SOCKS5 Bytestreams (XEP-0065)</flag> + <flag name="mod_statsdx">Measures several statistics, and provides a new section in ejabberd Web Admin to view them.</flag> + <flag name="elixir">Enable Elixir language support (http://elixir-lang.org/)</flag> + <flag name="mod_bosh">Enable support for XMPP over BOSH (XEP-0206)</flag> + <flag name="mod_irc">Build irc gateway</flag> + <flag name="mod_muc">Build Multi User Chat module</flag> + <flag name="mod_pubsub">Build Pubsub module</flag> + <flag name="redis">Enable Redis support</flag> + <flag name="riak">Enable Riak support</flag> + <flag name="tools">Build development tools</flag> + <flag name="web">Enable web admin interface</flag> + </use> + <upstream> + <remote-id type="github">processone/ejabberd</remote-id> + </upstream> +</pkgmetadata> |