Sebastian, you made me remember having this diff for a long time.
Using it in production for more than a year, but last 2 or 3
releases I always rememebered about it right at the freeze time. :(
Feel free to take any ideas from here if you want.
IIRC, I didn't implement "stop" via ejabberctl because it could
leave daemon running under some circumstances.
--
WBR,
Vadim Zhukov
Index: patches/patch-src_Makefile_in
===================================================================
RCS file: /cvs/ports/net/ejabberd/patches/patch-src_Makefile_in,v
retrieving revision 1.3
diff -u -p -r1.3 patch-src_Makefile_in
--- patches/patch-src_Makefile_in 23 Jan 2012 10:54:47 -0000 1.3
+++ patches/patch-src_Makefile_in 9 Dec 2014 20:44:35 -0000
@@ -1,7 +1,6 @@
+$OpenBSD: patch-src_Makefile_in,v 1.3 2012/01/23 10:54:47 ajacoutot Exp $
No need to install release notes.
ejabberdctl mode 550 is annoying, and debian doesn't do that either
-
-$OpenBSD: patch-src_Makefile_in,v 1.3 2012/01/23 10:54:47 ajacoutot Exp $
--- src/Makefile.in.orig Fri Dec 23 12:27:30 2011
+++ src/Makefile.in Sun Jan 22 20:22:08 2012
@@ -124,7 +124,7 @@ MSGSDIR = $(PRIVDIR)/msgs
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/net/ejabberd/pkg/PLIST,v
retrieving revision 1.14
diff -u -p -r1.14 PLIST
--- pkg/PLIST 24 Jan 2014 19:05:29 -0000 1.14
+++ pkg/PLIST 9 Dec 2014 20:44:35 -0000
@@ -269,9 +269,10 @@ share/examples/ejabberd/transport-config
share/examples/ejabberd/transport-configs/init-scripts/jit
share/examples/ejabberd/transport-configs/init-scripts/msn-transport
share/examples/ejabberd/transport-configs/init-scripts/yahoo-transport-2
+@rcscript /etc/rc.d/ejabberd
+@mode 0750
@owner _ejabberd
@group _ejabberd
-@mode 0750
@sample /var/log/ejabberd/
@sample /var/db/ejabberd/
@sample /var/db/ejabberd/ejabberd/
Index: pkg/README
===================================================================
RCS file: /cvs/ports/net/ejabberd/pkg/README,v
retrieving revision 1.6
diff -u -p -r1.6 README
--- pkg/README 5 May 2013 16:17:19 -0000 1.6
+++ pkg/README 9 Dec 2014 20:44:35 -0000
@@ -31,26 +31,15 @@ $OpenBSD: README,v 1.6 2013/05/05 16:17:
{registration_watchers, ["[email protected]"]},
-* Running
- Control is done using ${TRUEPREFIX}/sbin/ejabberdctl, run it without
+* Administration
+ Control is done using ${TRUEPREFIX}/sbin/ejabberdctl. Run it without
arguments for list of possible commands and flags. It needs to be
executed as either root or _ejabberd user.
- To start ejabberd at boot time, you may insert the following
- into ${SYSCONFDIR}/rc.local:
-
- if [ -x ${TRUEPREFIX}/sbin/ejabberdctl ]; then
- echo -n ' ejabberd'; ${TRUEPREFIX}/sbin/ejabberdctl start
- fi
-
-
-* Administration
- ejabberdctl has some commands for administration of the server. After
- starting ejabberd run ejabberdctl again for the list of options.
Another possibility, giving you more options, is the web interface,
- available at http://your.server:5280/admin/ where you need to log in
- as a user added to admin acl group, give your full jid and your
- account password
+ available at http://your.server:5280/admin/ . First, you need to
+ create a user in the "admin" ACL group. Then you can use his full JID
+ and account password to log in.
* Using SSL
@@ -58,7 +47,8 @@ $OpenBSD: README,v 1.6 2013/05/05 16:17:
generate the keys. Note that you should enter your domain name as the
Common Name for your certificate.
# openssl req -new -nodes -x509 -newkey rsa:4096 -days 365 \
- -keyout ${SYSCONFDIR}/ejabberd/myserver.pem -out
${SYSCONFDIR}/ejabberd/myserver.pem
+ -keyout ${SYSCONFDIR}/ejabberd/myserver.pem \
+ -out ${SYSCONFDIR}/ejabberd/myserver.pem
# chown root:_ejabberd ${SYSCONFDIR}/ejabberd/myserver.pem
# chmod 640 ${SYSCONFDIR}/ejabberd/myserver.pem
Index: pkg/ejabberd.rc
===================================================================
RCS file: pkg/ejabberd.rc
diff -N pkg/ejabberd.rc
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ pkg/ejabberd.rc 9 Dec 2014 20:44:35 -0000
@@ -0,0 +1,22 @@
+#!/bin/sh
+#
+# $OpenBSD$
+
+daemon="${PREFIX}/bin/erl"
+daemon_ctl="${PREFIX}/sbin/ejabberdctl"
+daemon_user="_ejabberd"
+# same as ejabberdctl provides
+daemon_flags="-sname ejabberd@$(hostname -s)"
+
+. /etc/rc.d/rc.subr
+
+rc_reload=NO
+pexp="${LOCALBASE}/lib/erlang/.*/bin/beam .* -sname ejabberd@"
+
+rc_start() {
+ ${rcexec} "${daemon_ctl} start" || return 1
+ sleep 1
+ rc_check
+}
+
+rc_cmd $1