summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-im/ejabberd/files')
-rw-r--r--net-im/ejabberd/files/ejabberd-16.04-ejabberdctl.patch49
-rw-r--r--net-im/ejabberd/files/epam-wrapper21
2 files changed, 70 insertions, 0 deletions
diff --git a/net-im/ejabberd/files/ejabberd-16.04-ejabberdctl.patch b/net-im/ejabberd/files/ejabberd-16.04-ejabberdctl.patch
new file mode 100644
index 000000000000..de2acd5aa017
--- /dev/null
+++ b/net-im/ejabberd/files/ejabberd-16.04-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.
+
+--- a/ejabberdctl.template 2016-01-12 11:07:58.000000000 +0000
++++ b/ejabberdctl.template 2016-02-15 21:36:27.508297627 +0000
+@@ -16,6 +16,7 @@
+ EPMD={{bindir}}/epmd
+ INSTALLUSER={{installuser}}
+ ERL_LIBS={{libdir}}
++SHELL=/bin/sh
+
+ # check the proper system user is used if defined
+ if [ "$INSTALLUSER" != "" ] ; then
+@@ -23,11 +24,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
+@@ -100,6 +101,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 mnesia options
+ MNESIA_OPTS="-mnesia dir \"\\\"$SPOOL_DIR\\\"\" $MNESIA_OPTIONS"
+@@ -159,6 +161,8 @@
+ export CONTRIB_MODULES_PATH
+ export CONTRIB_MODULES_CONF_DIR
+ export ERL_LIBS
++export HOME
++export SHELL
+
+ shell_escape()
+ {
diff --git a/net-im/ejabberd/files/epam-wrapper b/net-im/ejabberd/files/epam-wrapper
new file mode 100644
index 000000000000..a22793c86c03
--- /dev/null
+++ b/net-im/ejabberd/files/epam-wrapper
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+ERL_LIBS=/usr/lib/erlang/lib
+
+for bin in "$ERL_LIBS"/p1_pam-*/priv/bin/epam; do
+ if [ -x "$bin" ]; then
+ if [ -z "$epam" ]; then
+ epam="$bin"
+ else
+ echo "Multiple p1_pam libraries - don't know what to do" >&2
+ exit 1
+ fi
+ fi
+done
+
+if [ -z "$epam" ]; then
+ echo "Couldn't find p1_pam package" >&2
+ exit 1
+fi
+
+exec "$epam"