]> git.pld-linux.org Git - packages/ejabberd.git/commitdiff
Startup scripts updated
authorJacek Konieczny <jajcus@jajcus.net>
Thu, 14 Nov 2013 20:39:36 +0000 (21:39 +0100)
committerJacek Konieczny <jajcus@jajcus.net>
Thu, 14 Nov 2013 21:47:43 +0000 (22:47 +0100)
ejabberd-inetrc [deleted file]
ejabberd-inetrc_path.patch [new file with mode: 0644]
ejabberd.init
ejabberd.sh [deleted file]
ejabberd.spec
ejabberd.sysconfig
ejabberdctl.sh [deleted file]

diff --git a/ejabberd-inetrc b/ejabberd-inetrc
deleted file mode 100644 (file)
index 1619ee8..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-{file, hosts, "/etc/hosts"}.
-{file, resolv, "/etc/resolv.conf"}.
-{lookup, [file, dns]}.
diff --git a/ejabberd-inetrc_path.patch b/ejabberd-inetrc_path.patch
new file mode 100644 (file)
index 0000000..bd4a7a6
--- /dev/null
@@ -0,0 +1,24 @@
+diff -dur -x '*~' ejabberd-13.10.orig/Makefile.in ejabberd-13.10/Makefile.in
+--- ejabberd-13.10.orig/Makefile.in    2013-11-14 20:21:37.000000000 +0100
++++ ejabberd-13.10/Makefile.in 2013-11-14 20:30:48.745590816 +0100
+@@ -123,7 +123,7 @@
+       [ -f $(ETCDIR)/ejabberdctl.cfg ] \
+               && $(INSTALL) -b -m 640 $(G_USER) ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg-new \
+               || $(INSTALL) -b -m 640 $(G_USER) ejabberdctl.cfg.example $(ETCDIR)/ejabberdctl.cfg
+-      $(INSTALL) -b -m 644 $(G_USER) inetrc $(ETCDIR)/inetrc
++      $(INSTALL) -b -m 644 $(G_USER) inetrc $(ETCDIR)/ejabberd-inetrc
+       #
+       # Administration script
+       [ -d $(SBINDIR) ] || $(INSTALL) -d -m 755 $(SBINDIR)
+diff -dur -x '*~' ejabberd-13.10.orig/ejabberdctl.template ejabberd-13.10/ejabberdctl.template
+--- ejabberd-13.10.orig/ejabberdctl.template   2013-09-27 11:19:22.000000000 +0200
++++ ejabberd-13.10/ejabberdctl.template        2013-11-14 20:27:04.240688181 +0100
+@@ -104,7 +104,7 @@
+ SASL_LOG_PATH=$LOGS_DIR/erlang.log
+ DATETIME=`date "+%Y%m%d-%H%M%S"`
+ ERL_CRASH_DUMP=$LOGS_DIR/erl_crash_$DATETIME.dump
+-ERL_INETRC=$ETCDIR/inetrc
++ERL_INETRC=$ETCDIR/ejabberd-inetrc
+ HOME=$SPOOLDIR
+ # define erl parameters
index 395801ab36a7a81304620c19b2a74e15bbae1ebd..f4060c4d8b3dab0536f41425ace50b8133ba70ba 100644 (file)
 # Get service config - may override defaults
 [ -f /etc/sysconfig/ejabberd ] && . /etc/sysconfig/ejabberd
 
-[ -z "$NODENAME" ] && NODENAME=$(hostname)
-
 EJABBERD_DOC_PATH="@EJABBERD_DOC_PATH@"
-export EJABBERD_DOC_PATH
+EJABBERD_PID_PATH=/var/run/jabber/ejabberd.pid
+export EJABBERD_DOC_PATH EJABBERD_PID_PATH
 
 start() {
        # Check if the service is already running?
        if [ ! -f /var/lock/subsys/ejabberd ]; then
-               export ERL_MAX_PORTS ERL_FULLSWEEP_AFTER
                msg_starting ejabberd
-               daemon /usr/sbin/ejabberd
+               /usr/sbin/ejabberdctl start
                RETVAL=$?
+               if [ $RETVAL -eq 0 ]; then
+                       /usr/sbin/ejabberdctl started
+                       RETVAL=$?
+               fi
                if [ $RETVAL -eq 0 ]; then
                        touch /var/lock/subsys/ejabberd
+                       ok
+               else
+                       fail
                fi
        else
                msg_already_running ejabberd
@@ -37,9 +42,13 @@ start() {
 stop() {
        # Stop daemons.
        if [ -f /var/lock/subsys/ejabberd ]; then
-               msg_stopping ejabberd
-               /usr/sbin/ejabberdctl ejabberd@${NODENAME} stop 2>/dev/null
+               msg_stopping ejabberd ; busy
+               /usr/sbin/ejabberdctl stop 2>/dev/null
                RETVAL=$?
+               if [ $RETVAL -eq 0 ]; then
+                       /usr/sbin/ejabberdctl stopped 2>/dev/null
+                       RETVAL=$?
+               fi
                if [ $RETVAL -eq 0 ]; then
                        ok
                else
@@ -61,40 +70,21 @@ case "$1" in
        ;;
   restart)
        stop
-       sleep 2
        start
        ;;
   reload|force-reload)
        if [ -f /var/lock/subsys/ejabberd ]; then
-               msg_reloading ejabberd
-               busy
-               /usr/sbin/ejabberdctl ejabberd@${NODENAME} restart
+               stop
+               start
                RETVAL=$?
-               if [ $RETVAL -eq 0 ]; then
-                   ok
-               else
-                   RETVAL=1
-                   fail
-               fi
        else
                msg_not_running ejabberd
                RETVAL=7
        fi
        ;;
   status)
-       EPMDOUT=`@libdir@/erlang/bin/epmd -names`
-       echo "$EPMDOUT" | head -n 1
-       echo "$EPMDOUT" | grep ejabberd
+       status --pidfile $EJABBERD_PID_PATH ejabberd
        RETVAL=$?
-       if [ "$RETVAL" -ne "0" ] ; then
-               if [ -f /var/lock/subsys/ejabberd ]; then
-                       nls "%s dead but subsys locked" "ejabberd"
-                       RETVAL=2
-               else
-                       nls "%s is stopped" "ejabberd"
-                       RETVAL=3
-               fi
-       fi
        ;;
   *)
        msg_usage "$0 {start|stop|status|restart|reload|force-reload}"
diff --git a/ejabberd.sh b/ejabberd.sh
deleted file mode 100644 (file)
index 3949d18..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/bin/sh
-
-umask 007 || exit $?
-cd /var/lib/ejabberd || exit $?
-
-COOKIE=`cat /etc/jabber/cookie`
-
-COMMAND="setsid erl -pa @libdir@/ejabberd/ebin \
-      -setcookie $COOKIE \
-      -sname ejabberd \
-      -s ejabberd \
-      -ejabberd config \\\"/etc/jabber/ejabberd.cfg\\\" \
-      log_path \\\"/var/log/ejabberd/ejabberd.log\\\" \
-      -sasl sasl_error_logger \\{file,\\\"/var/log/ejabberd/sasl.log\\\"\\} \
-      -kernel inetrc \\\"/etc/jabber/ejabberd-inetrc\\\" \
-      -heart \
-      -detached"
-
-if [ "`id -u`" -eq "0" ] ; then
-       exec su -s /bin/sh jabber -c "exec $COMMAND"
-else
-       eval "exec $COMMAND"
-fi
index 5c17c0f2a14d006120307f87a3024737469ac3f3..c8dc50158cd6dc760e421e333c25dfe793035a32 100644 (file)
@@ -1,7 +1,5 @@
 #
 # TODO:
-#      - config migration from old versions
-#      - check/udpate the init script
 #      - add systemd unit
 
 # Conditional build:
@@ -22,9 +20,6 @@ Source0:      http://www.process-one.net/downloads/ejabberd/%{version}/%{realname}-%{
 # Source0-md5: 94ce4fe244ee72771eeafe27209d6d3c
 Source1:       %{realname}.init
 Source2:       %{realname}.sysconfig
-Source3:       %{realname}.sh
-Source4:       %{realname}ctl.sh
-Source5:       %{realname}-inetrc
 #
 # Archives created with the ejabberd-pack_deps.sh script (in this repo)
 Source10:      ejabberd-goldrush-20131108.tar.gz
@@ -63,6 +58,7 @@ Patch0:               %{realname}-makefile.patch
 #Patch1:               %{realname}-vcard-access-get.patch
 # http://www.dp.uz.gov.ua/o.palij/mod_logdb/patch-mod_logdb-2.1.12.diff
 Patch2:                %{realname}-mod_logdb.patch
+Patch3:                %{realname}-inetrc_path.patch
 URL:           http://www.ejabberd.im/
 BuildRequires: autoconf
 BuildRequires: automake
@@ -85,6 +81,8 @@ Requires:     expat >= 1.95
 Requires:      rc-scripts
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
+%define                _noautoprovfiles        %{_libdir}/%{name}/priv/lib/
+
 %description
 ejabberd is a Free and Open Source fault-tolerant distributed Jabber
 server. It is written mostly in Erlang.
@@ -108,6 +106,7 @@ Server-side logging module.
 %if %{with logdb}
 %patch2 -p0
 %endif
+%patch3 -p1
 
 %build
 %{__aclocal} -I m4
@@ -166,15 +165,15 @@ sed -e's,@libdir@,%{_libdir},g' -e 's,@EJABBERD_DOC_PATH@,%{_docdir}/%{name}-%{v
 install %{SOURCE2} $RPM_BUILD_ROOT/etc/sysconfig/%{realname}
 
 chmod u+rw $RPM_BUILD_ROOT%{_sbindir}/%{realname}*
-sed -e's,@libdir@,%{_libdir},g' %{SOURCE3} > $RPM_BUILD_ROOT%{_sbindir}/%{realname}
-sed -e's,@libdir@,%{_libdir},g' %{SOURCE4} > $RPM_BUILD_ROOT%{_sbindir}/%{realname}ctl
-install %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/jabber
 
 chmod 755 $RPM_BUILD_ROOT%{_libdir}/ejabberd/priv/lib/*.so
 
 rm -rf _doc 2>/dev/null || :
 mv $RPM_BUILD_ROOT%{_docdir}/%{name} _doc
 
+touch $RPM_BUILD_ROOT%{_sysconfdir}/jabber/ejabberd.cfg
+touch $RPM_BUILD_ROOT/var/lib/ejabberd/.erlang.cookie
+
 %clean
 rm -rf $RPM_BUILD_ROOT
 
@@ -185,6 +184,11 @@ if [ -e /etc/jabber/ejabberd.cfg ] ; then
                echo "this is not supported by this ejabberd version in PLD" >&2
                exit 1
        fi
+       %banner -e %{name} <<'EOF'
+Old-style /etc/jabber/ejabberd.cfg configuration file exists. You should
+consider converting it to the new YAML format. You can do this with the
+ejabberctl command.
+EOF
 fi
 
 %post
@@ -192,17 +196,10 @@ if [ -f %{_sysconfdir}/jabber/secret ] ; then
        SECRET=`cat %{_sysconfdir}/jabber/secret`
        if [ -n "$SECRET" ] ; then
                echo "Updating component authentication secret in ejabberd config file..."
-               %{__sed} -i -e "s/>secret</>$SECRET</" /etc/jabber/ejabberd.cfg
+               %{__sed} -i -e "s/>secret</>$SECRET</" /etc/jabber/ejabberd.yml
        fi
 fi
 
-if [ ! -f %{_sysconfdir}/jabber/cookie ] ; then
-       echo "Generating erl authentication cookie..."
-       umask 066
-       perl -e 'open R,"/dev/urandom"; read R,$r,16;
-               printf "%02x",ord(chop $r) while($r);' > %{_sysconfdir}/jabber/cookie
-fi
-
 /sbin/chkconfig --add ejabberd
 %service ejabberd restart "ejabberd server"
 
@@ -212,17 +209,44 @@ if [ "$1" = "0" ]; then
        /sbin/chkconfig --del ejabberd
 fi
 
+%triggerpostun -- %{name} < 13.10
+# convert old 'NODENAME' in /etc/sysconfig/ejabberd
+# to 'ERLANG_NODE' in /etc/jabber/ejabberdctl.cfg
+# and move other settings
+NODENAME="$(hostname)"
+if [ -e /etc/sysconfig/ejabberd ] ; then
+       . /etc/sysconfig/ejabberd || :
+fi
+subst="s/^#ERLANG_NODE=.*/ERLANG_NODE=ejabberd@${NODENAME}/"
+if [ -n "$ERL_MAX_PORTS" ] ; then
+       subst="$subst;s/^#ERL_MAX_PORTS=.*/ERL_MAX_PORTS=${ERL_MAX_PORTS}/"
+fi
+sed -i -e"$subst" /etc/jabber/ejabberdctl.cfg || :
+if [ -e /etc/sysconfig/ejabberd ] ; then
+       sed -i.rpmsave \
+               -e'/^[#[:space:]]*NODENAME=/d;/^# Node name/d' \
+               -e'/^[#[:space:]]*ERL_MAX_PORTS=/d;/^# uncomment this to allow more then 1024 connections/d' \
+               -e'/^[#[:space:]]*ERL_FULLSWEEP_AFTER=/d;/^# uncomment this to limit memory usage/d' \
+               /etc/sysconfig/ejabberd || :
+fi
+cp %{_sysconfdir}/jabber/cookie /var/lib/ejabberd/.erlang.cookie || :
+
 %files
 %defattr(644,root,root,755)
 %doc sql _doc/*
 %attr(755,root,root) %{_sbindir}/*
-%attr(640,root,jabber) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jabber/*
+%attr(640,root,jabber) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jabber/ejabberd-inetrc
+%attr(640,root,jabber) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jabber/ejabberd.yml
+%attr(640,root,jabber) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jabber/ejabberdctl.cfg
+# legacy config may still be there
+%attr(640,root,jabber) %ghost %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/jabber/ejabberd.cfg
 %attr(770,root,jabber) /var/log/ejabberd
 %if %{with logdb}
 %exclude %{_libdir}/ejabberd/ebin/mod_logdb*
 %endif
 %{_libdir}/ejabberd
 %dir %attr(770,root,jabber) /var/lib/ejabberd
+%ghost %attr(400,jabber,jabber) %ghost %config(noreplace) %verify(not md5 mtime size) /var/lib/ejabberd/.erlang.cookie
 %attr(754,root,root) /etc/rc.d/init.d/%{realname}
 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/%{realname}
 
index 3983f47b1b8529f591b138cca2daa2a585f3fa36..191b67a997be7c912b8f965111279227829266fb 100644 (file)
@@ -1,11 +1,3 @@
-# Nice level for jabberd
+# Nice level for ejabberd
 SERVICE_RUN_NICE_LEVEL="+0"
 
-# Node name
-NODENAME="localhost"
-
-# uncomment this to allow more then 1024 connections (increases memory usage)
-#ERL_MAX_PORTS=32000
-
-# uncomment this to limit memory usage (and make ejabberd slower)
-#ERL_FULLSWEEP_AFTER=0
diff --git a/ejabberdctl.sh b/ejabberdctl.sh
deleted file mode 100644 (file)
index 1c4c963..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-
-cd /var/lib/ejabberd || exit $?
-
-COOKIE=`cat /etc/jabber/cookie`
-
-COMMAND="erl -pa @libdir@/ejabberd/ebin \
-      -setcookie $COOKIE \
-      -noinput \
-      -sname ejabberdctl \
-      -s ejabberd_ctl \
-      -extra $@"
-
-if [ "`id -u`" -eq "0" ] ; then
-       exec su -s /bin/sh jabber -c "exec $COMMAND"
-else
-       eval "exec $COMMAND"
-fi
This page took 0.31979 seconds and 4 git commands to generate.