Modify initrd script for right detecting ejabberd by openrc.

atratsevskiy
parent a539113862
commit c54d354469

@ -2,6 +2,12 @@
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
*calculate-ejabberd-2.0.5-r3 (03 Dec 2009)
03 Dec 2009; Mike Hirecky (mhiretskiy) <mh@calculate.ru>
+calculate-ejabberd-2.0.5-r3.ebuild, +files/ejabberd-2.0.5-r3.initd:
Modify initd script for right detecting by openrc.
*calculate-ejabberd-2.0.5-r2 (01 Dec 2009)
01 Dec 2009; Mike Hirecky (mhiretskiy) <mh@calculate.ru>

@ -7,6 +7,7 @@ AUX ejabberd-2.0.2.confd 840 RMD160 5227a3fbb0d0c8bffd8a5537003f965f1fb73582 SHA
AUX ejabberd-2.0.2.initd 1134 RMD160 b5d3a5a50069be713511ebd37f9eab07dab33371 SHA1 0cd2c3bd44c1923014c1cdd84edfb56ddb11bdc2 SHA256 8b2c50bc80b5b0700195c79a4eaa6f68549fd63310b584c2e86d951c116e14de
AUX ejabberd-2.0.5-erlang-13.patch 16877 RMD160 4b8924f5b37de85823dec539523e7800c394bc7c SHA1 663ffc03f29613d695589c199222bc0382a24c76 SHA256 3d5cb7c163647580e1776a4e31ca3f8e03b1b411288b8273c861d17db5fa1e4a
AUX ejabberd-2.0.5-r1.initd 1438 RMD160 cef00b2ed6a0bf8eb791485853824fd42f2441e4 SHA1 da3fcc19ef60ecfaf27d948e27b5756f5bb1f83e SHA256 24a18be96ed3c22b1ac0ac3f9f89995a5aea0efcd4e825b9d668d98d1a96951b
AUX ejabberd-2.0.5-r3.initd 1622 RMD160 a9253f3c9621a3751d1ec7ce2069e4fbf9ebef3e SHA1 7cc0f60b530bdceff4bef6163a5d46e116567f81 SHA256 e0b93d0e236c7f3130db6a689f05129af0e5f417d4d7f6a6a9efa73f34f7183a
AUX ejabberd-2.0.5.confd 841 RMD160 5e01a2b13e88f9f799386304f66d25ff1146a9cf SHA1 420fba1888c8a5fcaef47f59b9518a4a9ce36b6f SHA256 12719cadf9d20b8d36bc299c41f6e1a15ccd545048859e9e878706308d691dde
AUX ejabberd-2.0.5.initd 1432 RMD160 531cc4634e9e953fa901a59b301ee9f09beab29e SHA1 89f9535545d25eb89572a6d630f01c58366b499a SHA256 b6c312b148b5b833ebd69f1429f302bb51f0852074530600aadbbe49733115f1
AUX ejabberd-wrapper-2.0.2.template 1273 RMD160 7ec1a86be5df671cb2ce54705de482ca1a172974 SHA1 ec412773c7913d8cfa59e6dcd330242268e60959 SHA256 96dcdca694fbe26b1098007d9e33361812a0ed532894e417155c0ac973bcdf6f
@ -25,5 +26,6 @@ EBUILD calculate-ejabberd-2.0.2-r3.ebuild 5073 RMD160 b37dd12707fc6ce6a0b16c2354
EBUILD calculate-ejabberd-2.0.2.ebuild 4955 RMD160 392007636ef070def316e5d62c5d02c05ef21b51 SHA1 6382ac2f5b11cf10ac1e5a18928726ca140aa2c8 SHA256 6f6e10f69f66bf2859fc54f794f015809af35079245bbde1000b944ccd369e2c
EBUILD calculate-ejabberd-2.0.5-r1.ebuild 4408 RMD160 027a310d6764d532311a11196e2ae24e39fca89d SHA1 cd015c9681cc40d8aa6d7a64fad55d28aff3cdec SHA256 e88f72100bb53dd596f7812e3f93e8e66d637580b8c461ca7e6b294a3eb55ae7
EBUILD calculate-ejabberd-2.0.5-r2.ebuild 4531 RMD160 e74c8cbe4c281c6e8cf6c97af369b23a3d8f2dee SHA1 a10f29e6247970885fb769448912d3837e58a8d6 SHA256 8a47d5cdc7f7af186efbcf29e269a11b9522d0956734ee73962aeb155b0950d5
EBUILD calculate-ejabberd-2.0.5-r3.ebuild 4531 RMD160 f1cc290794eadbdbc21f83e480884d6e8910f98d SHA1 0dabba97bbcb7fcdca18856f3ca4ae5a172f403c SHA256 32580f3416e1e5ddfc75bd4367fed3d6c2630a16020e0ba68905a9be89c296b2
EBUILD calculate-ejabberd-2.0.5.ebuild 4407 RMD160 6a86556378ed61909e8ba6d04bbc4a8213265eb1 SHA1 db31820f036967ba0c4a020ae61ed5398d8eab5b SHA256 24b5519bf7d7ea896a5d498497a254695676c6b7b6aa0c2d15169f3e6c45aa94
MISC ChangeLog 365 RMD160 3cb17835e7346bb43f65250d39d3172a1cacc257 SHA1 0b1cdfc1061dd1d728335882bad84d884bc5bba7 SHA256 17d7d71575171a95625fe589a4f9614046415e33eccb9c21032d000c809685e3
MISC ChangeLog 593 RMD160 26376b6cb9fcb875c44160be8bb2ec994c00c79f SHA1 8517cfc569635ff09cf5cb36487826b67c36cb53 SHA256 063242bcb4b7ded9ffe7be363d52433b4b93a66c60a3bd7676ce0bb06c0c9858

@ -0,0 +1,157 @@
# 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.ebuild,v 1.1 2009/04/09 05:40:39 pva Exp $
inherit eutils multilib
JABBER_ETC="/etc/jabber"
JABBER_RUN="/var/run/jabber"
JABBER_SPOOL="/var/spool/jabber"
JABBER_LOG="/var/log/jabber"
JABBER_NAME="ejabberd"
MY_PV=${PV}
MY_PR=${PR}
MY_P=${JABBER_NAME}-${MY_PV}
MY_PF=${JABBER_NAME}-${MY_PV}-${MY_PR}
DESCRIPTION="The Erlang Jabber Daemon"
HOMEPAGE="http://www.ejabberd.im/"
SRC_URI="http://www.process-one.net/downloads/ejabberd/${PV}/${MY_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"
DEPEND=">=net-im/jabber-base-0.01
>=dev-libs/expat-1.95
>=dev-lang/erlang-11.2.5
odbc? ( dev-db/unixODBC )
ldap? ( =net-nds/openldap-2* )
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"
# mod_shared_roster_ldap.patch
epatch "${FILESDIR}/mod_shared_roster_ldap.patch"
# mod_logxml.patch
epatch "${FILESDIR}/mod_logxml.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_compile() {
econf --prefix=/ \
$(use_enable mod_irc) \
$(use_enable ldap eldap) \
$(use_enable mod_muc) \
$(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"
if useq debug; then
emake ejabberd_debug=true || die "compiling ejabberd core failed"
else
emake || die "compiling ejabberd core failed"
fi
}
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"
# remove the default ejabberdctl as we use our own
rm "${D}/sbin/ejabberdctl"
insinto ${JABBER_ETC}
chown -R jabber:jabber "${D}${JABBER_ETC}"
chown -R jabber:jabber "${D}${JABBER_LOG}"
chown -R jabber:jabber "${D}/usr/$(get_libdir)/erlang/lib/${P}"
if useq 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
chown root:jabber "${D}"/usr/lib/erlang/lib/${P}/priv/bin/epam
chmod 4750 "${D}"/usr/lib/erlang/lib/${P}/priv/bin/epam
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-${MY_PV}.template" \
| sed -e "s/\@libdir\@/$(get_libdir)/g" -e "s/\@version\@/${PV}/g" \
> "${T}/ejabberd"
exeinto /usr/sbin
doexe "${T}/ejabberd"
# set up /usr/sbin/ejabberdctl wrapper
cat "${FILESDIR}/ejabberdctl-wrapper-${MY_PV}.template" \
| sed -e "s/\@libdir\@/$(get_libdir)/g" -e "s/\@version\@/${PV}/g" \
> "${T}/ejabberdctl"
doexe "${T}/ejabberdctl"
dodir /var/lib/ejabberd
newinitd "${FILESDIR}/${MY_P}-r3.initd" ${JABBER_NAME}
newconfd "${FILESDIR}/${MY_P}.confd" ${JABBER_NAME}
# 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 [ ! -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
elog "The web USE flag is off, this has disabled the web admin interface."
fi
}

@ -0,0 +1,67 @@
#!/sbin/runscript
# Copyright 1999-2008 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-im/ejabberd/files/ejabberd-2.0.2.initd,v 1.1 2008/08/03 16:19:05 caleb Exp $
opts="${opts} reload"
depend() {
use dns slapd
need net
provide jabber-server
}
checkconfig() {
if [ ! -e /etc/jabber/ejabberd.cfg ] ; then
eerror "You need a /etc/jabber/ejabberd.cfg file to run ejabberd"
return 1
fi
}
start() {
checkconfig || return 1
ebegin "Starting ejabberd"
# the process name of beam is different depending whether smp is used.
# set it explicitly so start-stop-daemon works
case "$HAVE_SMP" in
"1"|"true"|"yes")
BEAMNAME="beam.smp"
SMPOPT="enable"
;;
*)
BEAMNAME="beam"
SMPOPT="disable"
;;
esac
cd /var/lib/ejabberd
PIDFILE=/var/run/jabber/ejabber.pid
start-stop-daemon --start --pidfile $PIDFILE --quiet --chuid jabber:jabber \
--name $BEAMNAME \
--exec /usr/sbin/ejabberd -- -detached -noinput -smp $SMPOPT
# find pid of ejabberd process
ps axo pid,cmd | sed -nr "/${BEAMNAME}.*ejabberd/ {/delsed/d;s/^\s*([0-9]+).*/\1/p}" >$PIDFILE
eend $?
}
stop() {
ebegin "Stopping ejabberd"
/usr/sbin/ejabberdctl stop
RES=$?
sleep 1
if ps ax | grep "epmd -daemon" | grep -v "grep" >/dev/null;
then
kill `ps ax | grep "epmd -daemon" | grep -v "grep" | awk '{print $1;}'`
fi
if ps ax | grep "ejabber" | grep "beam" >/dev/null;
then
kill `ps ax | grep "ejabber" | grep "beam" | awk '{print $1}'`
fi
eend $RES
}
reload() {
ebegin "Reloading ejabberd"
/usr/sbin/ejabberdctl reopen-log
eend $?
}
Loading…
Cancel
Save