From 21185d1a53f9597691eff67f05f7ac4fa0a3c769 Mon Sep 17 00:00:00 2001 From: Conrad Kostecki Date: Sat, 10 Oct 2020 17:53:20 +0200 Subject: 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 --- net-im/prosody/files/prosody-0.11.7-bit32.patch | 20 +++++ net-im/prosody/files/prosody-0.11.7-gentoo.patch | 29 +++++++ net-im/prosody/files/prosody.initd-r4 | 43 +++++++++++ net-im/prosody/files/prosody.service-r1 | 13 ++++ net-im/prosody/files/prosody.tmpfilesd-r1 | 1 + net-im/prosody/prosody-0.11.7-r1.ebuild | 96 ++++++++++++++++++++++++ 6 files changed, 202 insertions(+) create mode 100644 net-im/prosody/files/prosody-0.11.7-bit32.patch create mode 100644 net-im/prosody/files/prosody-0.11.7-gentoo.patch create mode 100644 net-im/prosody/files/prosody.initd-r4 create mode 100644 net-im/prosody/files/prosody.service-r1 create mode 100644 net-im/prosody/files/prosody.tmpfilesd-r1 create mode 100644 net-im/prosody/prosody-0.11.7-r1.ebuild 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 +# 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 +} -- cgit v1.2.3-65-gdbad