summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'net-im/prosody')
-rw-r--r--net-im/prosody/files/prosody-0.11.7-bit32.patch20
-rw-r--r--net-im/prosody/files/prosody-0.11.7-gentoo.patch29
-rw-r--r--net-im/prosody/files/prosody.initd-r443
-rw-r--r--net-im/prosody/files/prosody.service-r113
-rw-r--r--net-im/prosody/files/prosody.tmpfilesd-r11
-rw-r--r--net-im/prosody/prosody-0.11.7-r1.ebuild96
6 files changed, 202 insertions, 0 deletions
diff --git a/net-im/prosody/files/prosody-0.11.7-bit32.patch b/net-im/prosody/files/prosody-0.11.7-bit32.patch
new file mode 100644
index 000000000000..fb7b55f6bbef
--- /dev/null
+++ b/net-im/prosody/files/prosody-0.11.7-bit32.patch
@@ -0,0 +1,20 @@
+# HG changeset patch
+# User Kim Alvefur <zash@zash.se>
+# Date 1601928749 -7200
+# Node ID e17b98feb0b7cad6539ee25c5cc7728911349a6d
+# Parent c3eefb517b7b934dbf4f78244c18f7e91b852846
+util.dependencies: Check for bitop library same way as net.websocket.frames (fixes #1594)
+
+diff -r c3eefb517b7b -r e17b98feb0b7 util/dependencies.lua
+--- a/util/dependencies.lua
++++ b/util/dependencies.lua
+@@ -90,7 +90,7 @@
+ }, "SSL/TLS support will not be available");
+ end
+
+- local bit = _G.bit32 or softreq"bit";
++ local bit = softreq"bit" or softreq"bit32";
+
+ if not bit then
+ missingdep("lua-bitops", {
+
diff --git a/net-im/prosody/files/prosody-0.11.7-gentoo.patch b/net-im/prosody/files/prosody-0.11.7-gentoo.patch
new file mode 100644
index 000000000000..e571066874b7
--- /dev/null
+++ b/net-im/prosody/files/prosody-0.11.7-gentoo.patch
@@ -0,0 +1,29 @@
+--- a/prosody.cfg.lua.dist
++++ b/prosody.cfg.lua.dist
+@@ -17,6 +17,15 @@
+ -- Settings in this section apply to the whole server and are the default settings
+ -- for any virtual hosts
+
++-- Prosody will use this user and group for launching the service.
++-- Gentoo uses by default jabber:jabber (uid:gid) for all Jabber related services.
++prosody_user = "jabber"
++prosody_group = "jabber"
++
++-- Prosody will create this pid file after it has been successfully started.
++-- Please don't change that path, as it's being used by the Gentoo init scripts.
++pidfile = "/run/jabber/prosody.pid"
++
+ -- This is a (by default, empty) list of accounts that are admins
+ -- for the server. Note that you must create the accounts separately
+ -- (see https://prosody.im/doc/creating_accounts for info)
+@@ -30,7 +39,9 @@
+ -- Prosody will always look in its source directory for modules, but
+ -- this option allows you to specify additional locations where Prosody
+ -- will look for modules first. For community modules, see https://modules.prosody.im/
+---plugin_paths = {}
++-- The default included path is for the optional net-im/prosody-modules package,
++-- which provides additional community maintained modules.
++plugin_paths = { "/usr/GENTOO_LIBDIR/prosody/community-modules" };
+
+ -- This is the list of modules Prosody will load on startup.
+ -- It looks for mod_modulename.lua in the plugins folder, so make sure that exists too.
diff --git a/net-im/prosody/files/prosody.initd-r4 b/net-im/prosody/files/prosody.initd-r4
new file mode 100644
index 000000000000..1282e9dc4561
--- /dev/null
+++ b/net-im/prosody/files/prosody.initd-r4
@@ -0,0 +1,43 @@
+#!/sbin/openrc-run
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+name="Prosody XMPP server"
+extra_started_commands="reload"
+jabber_pid="/run/jabber"
+jabber_logs="/var/log/jabber"
+pidfile="${jabber_pid}/prosody.pid"
+prosody_config="/etc/jabber/prosody.cfg.lua"
+
+command="/usr/bin/prosody"
+command_group="jabber"
+command_user="jabber"
+
+checkconfig() {
+ if [ ! -f "${prosody_config}" ]; then
+ eerror "Please create ${prosody_config} before starting Prosody!"
+ return 1
+ fi
+
+ luac -p "${prosody_config}"
+ return $?
+}
+
+depend() {
+ need net
+ provide jabber-server
+ use dns postgresql
+}
+
+reload() {
+ ebegin "Reloading configuration"
+ start-stop-daemon --signal HUP --pidfile "${pidfile}"
+ eend $?
+}
+
+start_pre() {
+ checkconfig || return 1
+
+ checkpath -d -m 0750 -o "${command_user}:${command_group}" -q "${jabber_logs}"
+ checkpath -d -m 0750 -o "${command_user}:${command_group}" -q "${jabber_pid}"
+}
diff --git a/net-im/prosody/files/prosody.service-r1 b/net-im/prosody/files/prosody.service-r1
new file mode 100644
index 000000000000..608423869fd6
--- /dev/null
+++ b/net-im/prosody/files/prosody.service-r1
@@ -0,0 +1,13 @@
+[Unit]
+Description=Prosody XMPP server
+After=network.target
+
+[Service]
+Group=jabber
+PIDFile=/run/jabber/prosody.pid
+ExecStart=/usr/bin/prosody
+ExecReload=/usr/bin/kill -HUP $MAINPID
+User=jabber
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-im/prosody/files/prosody.tmpfilesd-r1 b/net-im/prosody/files/prosody.tmpfilesd-r1
new file mode 100644
index 000000000000..7fcdd539decc
--- /dev/null
+++ b/net-im/prosody/files/prosody.tmpfilesd-r1
@@ -0,0 +1 @@
+d /run/jabber 750 jabber jabber - -
diff --git a/net-im/prosody/prosody-0.11.7-r1.ebuild b/net-im/prosody/prosody-0.11.7-r1.ebuild
new file mode 100644
index 000000000000..89566c865a54
--- /dev/null
+++ b/net-im/prosody/prosody-0.11.7-r1.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit systemd tmpfiles toolchain-funcs
+
+DESCRIPTION="Prosody is a modern XMPP communication server"
+HOMEPAGE="https://prosody.im/"
+SRC_URI="https://prosody.im/downloads/source/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE="+libevent libressl luajit mysql postgres +sqlite +ssl test +zlib"
+RESTRICT="!test? ( test )"
+
+COMMON_DEPEND="
+ || (
+ >=dev-lang/lua-5.2:*
+ dev-lua/lua-bit32
+ )
+ net-dns/libidn
+ net-im/jabber-base
+ libressl? ( dev-libs/libressl:= )
+ !libressl? ( dev-libs/openssl:0= )
+ luajit? ( dev-lang/luajit:2 )
+ !luajit? ( dev-lang/lua:0 )
+"
+
+DEPEND="
+ ${COMMON_DEPEND}
+ test? ( dev-lua/busted )
+"
+
+RDEPEND="
+ ${COMMON_DEPEND}
+ dev-lua/luaexpat
+ dev-lua/luafilesystem
+ dev-lua/luasocket
+ libevent? ( dev-lua/luaevent )
+ mysql? ( dev-lua/luadbi[mysql] )
+ postgres? ( dev-lua/luadbi[postgres] )
+ sqlite? ( dev-lua/luadbi[sqlite] )
+ ssl? ( dev-lua/luasec )
+ zlib? ( dev-lua/lua-zlib )
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.11.7-bit32.patch"
+ "${FILESDIR}/${PN}-0.11.7-gentoo.patch"
+)
+
+src_prepare() {
+ default
+
+ # Set correct plugin path for optional net-im/prosody-modules package
+ sed -e "s/GENTOO_LIBDIR/$(get_libdir)/g" -i prosody.cfg.lua.dist || die
+}
+
+src_configure() {
+ local myeconfargs=(
+ --c-compiler="$(tc-getCC)"
+ --datadir="${EPREFIX}/var/spool/jabber"
+ --libdir="${EPREFIX}/usr/$(get_libdir)"
+ --linker="$(tc-getCC)"
+ --ostype="linux"
+ --prefix="${EPREFIX}/usr"
+ --runwith="$(usex luajit luajit lua)"
+ --sysconfdir="${EPREFIX}/etc/jabber"
+ --with-lua-include="${EPREFIX}/usr/include"
+ --with-lua-lib="${EPREFIX}/usr/$(get_libdir)/lua"
+ )
+
+ # Since the configure script is handcrafted,
+ # and yells at unknown options, do not use 'econf'.
+ ./configure ${myeconfargs[@]} --cflags="${CFLAGS} -Wall -fPIC" --ldflags="${LDFLAGS} -shared" || die
+
+ rm makefile || die
+ mv GNUmakefile Makefile || die
+}
+
+src_install() {
+ default
+
+ newinitd "${FILESDIR}"/prosody.initd-r4 prosody
+ systemd_newunit "${FILESDIR}"/prosody.service-r1 prosody.service
+
+ newtmpfiles "${FILESDIR}"/prosody.tmpfilesd-r1 prosody.conf
+
+ keepdir /var/spool/jabber
+}
+
+pkg_postinst() {
+ tmpfiles_process prosody.conf
+}