diff options
Diffstat (limited to 'net-im/prosody')
-rw-r--r-- | net-im/prosody/files/prosody-0.11.7-bit32.patch | 20 | ||||
-rw-r--r-- | net-im/prosody/files/prosody-0.11.7-gentoo.patch | 29 | ||||
-rw-r--r-- | net-im/prosody/files/prosody.initd-r4 | 43 | ||||
-rw-r--r-- | net-im/prosody/files/prosody.service-r1 | 13 | ||||
-rw-r--r-- | net-im/prosody/files/prosody.tmpfilesd-r1 | 1 | ||||
-rw-r--r-- | net-im/prosody/prosody-0.11.7-r1.ebuild | 96 |
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 +} |