diff options
Diffstat (limited to 'net-im/ejabberd/files')
-rw-r--r-- | net-im/ejabberd/files/ejabberd-16.04-ejabberdctl.patch | 49 | ||||
-rw-r--r-- | net-im/ejabberd/files/epam-wrapper | 21 |
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" |