summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConrad Kostecki <conikost@gentoo.org>2020-10-10 17:53:20 +0200
committerConrad Kostecki <conikost@gentoo.org>2020-10-10 17:57:23 +0200
commit21185d1a53f9597691eff67f05f7ac4fa0a3c769 (patch)
tree0f4507680ef88eec77b032db40a3c67121e0bb8a
parentsys-auth/pambase: Version bump (v20201010) (diff)
downloadgentoo-21185d1a53f9597691eff67f05f7ac4fa0a3c769.tar.gz
gentoo-21185d1a53f9597691eff67f05f7ac4fa0a3c769.tar.bz2
gentoo-21185d1a53f9597691eff67f05f7ac4fa0a3c769.zip
net-im/prosody: switch to bit32, update init scripts
Since dev-lua/LuaBitOp is not supported on >=lua-5.2, switching to dev-lua/lua-bit32 as an alternative, since it's supported by upstream. Also updated the init scripts, since starting with prosodyctl is not recomended and current init scripts warns about not using it. Closes: https://bugs.gentoo.org/407079 Package-Manager: Portage-3.0.8, Repoman-3.0.1 Signed-off-by: Conrad Kostecki <conikost@gentoo.org>
-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
+}