summaryrefslogtreecommitdiff
path: root/net-voip
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-07-09 15:43:36 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-07-09 15:43:36 +0100
commit2719f73b6813d11d13a9650cdd2ab8ec6e69385d (patch)
tree8c816148bcbd22757d892089c989ae614eae4f5a /net-voip
parent0f558761aa2dee1017b4751e4017205e015a9560 (diff)
gentoo resync : 09.07.2022
Diffstat (limited to 'net-voip')
-rw-r--r--net-voip/Manifest.gzbin1225 -> 1719 bytes
-rw-r--r--net-voip/mumble/Manifest10
-rw-r--r--net-voip/mumble/files/mumble-1.4-crypto-threads.patch131
-rw-r--r--net-voip/mumble/files/mumble-1.4.230-gcc12-include-memory.patch28
-rw-r--r--net-voip/mumble/files/mumble-1.4.230-poco-link-cmake.patch24
-rw-r--r--net-voip/mumble/metadata.xml17
-rw-r--r--net-voip/mumble/mumble-1.3.4-r1.ebuild169
-rw-r--r--net-voip/mumble/mumble-1.4.230-r3.ebuild149
-rw-r--r--net-voip/mumble/mumble-9999.ebuild145
-rw-r--r--net-voip/murmur/Manifest14
-rw-r--r--net-voip/murmur/files/murmur.confd9
-rw-r--r--net-voip/murmur/files/murmur.initd-r125
-rw-r--r--net-voip/murmur/files/murmur.initd-r224
-rw-r--r--net-voip/murmur/files/murmur.logrotate8
-rw-r--r--net-voip/murmur/files/murmurd-dbus.tmpfiles1
-rw-r--r--net-voip/murmur/metadata.xml15
-rw-r--r--net-voip/murmur/murmur-1.3.3.ebuild162
-rw-r--r--net-voip/murmur/murmur-1.3.4.ebuild162
-rw-r--r--net-voip/murmur/murmur-1.4.230-r3.ebuild181
-rw-r--r--net-voip/murmur/murmur-9999.ebuild175
-rw-r--r--net-voip/umurmur/Manifest13
-rw-r--r--net-voip/umurmur/files/umurmur-0.2.20-openssl3.patch11
-rw-r--r--net-voip/umurmur/files/umurmur.conf58
-rw-r--r--net-voip/umurmur/files/umurmurd.confd3
-rw-r--r--net-voip/umurmur/files/umurmurd.initd18
-rw-r--r--net-voip/umurmur/files/umurmurd.service15
-rw-r--r--net-voip/umurmur/metadata.xml26
-rw-r--r--net-voip/umurmur/umurmur-0.2.17-r4.ebuild111
-rw-r--r--net-voip/umurmur/umurmur-0.2.19.ebuild110
-rw-r--r--net-voip/umurmur/umurmur-0.2.20.ebuild114
-rw-r--r--net-voip/umurmur/umurmur-9999.ebuild110
31 files changed, 2038 insertions, 0 deletions
diff --git a/net-voip/Manifest.gz b/net-voip/Manifest.gz
index 8e3fba63b55c..d3e935386a6a 100644
--- a/net-voip/Manifest.gz
+++ b/net-voip/Manifest.gz
Binary files differ
diff --git a/net-voip/mumble/Manifest b/net-voip/mumble/Manifest
new file mode 100644
index 000000000000..4a50ad57eeab
--- /dev/null
+++ b/net-voip/mumble/Manifest
@@ -0,0 +1,10 @@
+AUX mumble-1.4-crypto-threads.patch 6518 BLAKE2B 87d9ca8879cd09b8f29d0942ae84dfe4de7ab0216f50f2ff7f8b2802017802083b38793f9703de3bc4de1a083fc17a353f5527405740c68d826e8e82092455cf SHA512 2d0fcb11005f52b58d5dc43ac421fcccd9204a3ead36e0d4b4e1893818bcb9bf509d1459c358c0a8d02b0ff749738a262b9fe321e049bd65d8b2a2b441603d99
+AUX mumble-1.4.230-gcc12-include-memory.patch 934 BLAKE2B 2cbcb1983687effdcb183f034f76f05106bb2757b278a001da64a6c6c37c593776f391a23d23023d8c8c28ff5a53b1df0e4f2fb597904dee450b36a88abb8cd2 SHA512 8d00e760e5b49acba50cd6637de990d3b16f493327110cf768aef9d11aa309372996bf8c5a8a49fa3e4364dfec5f1611f855efe05284d9b388d3184e012278d5
+AUX mumble-1.4.230-poco-link-cmake.patch 476 BLAKE2B 91268125286d07820c98e941e443655b7edfb4f6c13815f988de8ed4ad50aa37fca557a88cee399418853cdd2e577f67acad7f8e3c2b7e1eefe8a64d4a26358c SHA512 9bab7ca52fd27f600215ceebac690ddae2702547a8519bdbb24be0df411a2ddd89750cfeeca77bcc47fec32b27526971a180519431b8e1637a224d902ec8de88
+DIST mumble-1.3.4.tar.gz 8592741 BLAKE2B bcde3fd859ec4faea06f996cd4c583af7c0b8409cca79cb05ef8ba7fcdeac9e49ed1d07a4131225dd582da7610190d4006abc731fd4276b2288e02e8c18effb6 SHA512 e2dde5aad30d1a931e7acd8d7db0b8c785d3a268d0b8cf5626fa03953a51bcadb719c6682c440d02524e83beee13d73d8f5bb3fdf98ab1c82d3ecf824cc25f68
+DIST mumble-1.4-openssl3.patch.xz 4172 BLAKE2B 5b68f023e218628a4d73b0991dcc7790ce5f92ce6a27c372c5e80b1f3a8beafa3ddd6416b884705b321aee31ea4f5e09dda6ceb240272dde64f420fbeb06845a SHA512 3a4e504f3365e93418cb85d0da4e6f2f54ab904283743907604bb39276560a4215d9bea1b225601789d1c3d84d270c04840ec57cd04e3df1204cc586ea42562a
+DIST mumble-1.4.230.tar.gz 9441667 BLAKE2B da433f3c15d7e45dfac0c8a78c9dbe86ba8d5cd078d2d87fd4d90718968fc9e5928c3c5c5ba2e40a8a54d02a646c5fc6a7ee2fff4b71dfa411d74f395b097c26 SHA512 6cffc7a95d88b33876f4093b99266468210f5c14f190fbd2fbe4991bef91a567e55296e7c8c6cc99e19c054853211085cc3cc08109e367e6776afb70766b3a53
+EBUILD mumble-1.3.4-r1.ebuild 3927 BLAKE2B 496adcaacc667be53b436748c49c506d0a79287e6623d90b24a2ca26b52840f96fc0317e60fceb9cc52293e1b18335fdb77b46e7fe6b9224f44f33dd51cc3082 SHA512 82de10280b9a1985cdb64aa5757325c856699a3f3ef97aca716c147c8ed5ee52e537b574bd5e0c1f2a4e37ed37732e185a478779aa3c981e5db2105bc54e3e20
+EBUILD mumble-1.4.230-r3.ebuild 3873 BLAKE2B b3fadb749ebfc81ca0a3e39d529df13108c3840d4270cdd66179deec3fcc0638e1fae3a21084a72b57a1cc82c375536e63cb18ee4cc3422eb630f6d903c17291 SHA512 25cc911d0613a6a0d963ce77d0075eb81cf667933e1c9d99e25413f76eaba703faa127f506804757270e644c7dd3ba7c93183f8f186b7ebc5bdf079e460e0623
+EBUILD mumble-9999.ebuild 3748 BLAKE2B a6130ee0a88b814639f02188c915a8a90e495f48ef357572d3099eed021615f13901d782315661630b47d85cf3744fb6c3a87650a2c1c3c2ed99dd8b2ea80e99 SHA512 ca87450df487f95ce49bdb4cf374862c0f281144ab89ec3dd03239acb51eaf3f2b7d8f423a3ff9c7590e32000b2ab34cc002cefd40cbb7091e3d703166db6cb1
+MISC metadata.xml 671 BLAKE2B 7b1c991f969e5a98295f030e6d0dc992b75a131d47d2b76f5b43a92f1e89bb7de2844961ccaebc50d1d60b09c4753f1e5d6bbcf4049f865362c3dc8e1bb3669e SHA512 46e61fa94649ed48b129ebf75f4eb7c31001ca5db9d786f807feaaf518d907d536b4a6bf8760b66ddee420039a61e45cfdfc41121c638243d9e5543a746938a8
diff --git a/net-voip/mumble/files/mumble-1.4-crypto-threads.patch b/net-voip/mumble/files/mumble-1.4-crypto-threads.patch
new file mode 100644
index 000000000000..0ad371cd6c63
--- /dev/null
+++ b/net-voip/mumble/files/mumble-1.4-crypto-threads.patch
@@ -0,0 +1,131 @@
+commit f8d47db318f302f5a7d343f15c9936c7030c49c4
+Author: Terry Geng <terry@terriex.com>
+Date: Sun Dec 12 22:39:38 2021 -0500
+
+ FIX(crypto): Sharing EVP context between threads crushes Mumble
+
+ Functions ocb_encrypt and ocb_decrypt share the same set
+ of encrypt and decrypt contexts. However, they are invoked
+ in different threads (audio input thread and server
+ handler thread).
+ This may lead to conflicts that would crash Mumble.
+ This patch separates contexts used in these two functions
+ to avoid such conflicts.
+
+ Fixes #5361
+
+diff --git a/src/crypto/CryptStateOCB2.cpp b/src/crypto/CryptStateOCB2.cpp
+index 640fdedac..3b3473ffe 100644
+--- a/src/crypto/CryptStateOCB2.cpp
++++ b/src/crypto/CryptStateOCB2.cpp
+@@ -30,7 +30,9 @@
+ #include <cstring>
+ #include <openssl/rand.h>
+
+-CryptStateOCB2::CryptStateOCB2() : CryptState(), enc_ctx(EVP_CIPHER_CTX_new()), dec_ctx(EVP_CIPHER_CTX_new()) {
++CryptStateOCB2::CryptStateOCB2()
++ : CryptState(), enc_ctx_ocb_enc(EVP_CIPHER_CTX_new()), dec_ctx_ocb_enc(EVP_CIPHER_CTX_new()),
++ enc_ctx_ocb_dec(EVP_CIPHER_CTX_new()), dec_ctx_ocb_dec(EVP_CIPHER_CTX_new()) {
+ for (int i = 0; i < 0x100; i++)
+ decrypt_history[i] = 0;
+ memset(raw_key, 0, AES_KEY_SIZE_BYTES);
+@@ -39,8 +41,10 @@ CryptStateOCB2::CryptStateOCB2() : CryptState(), enc_ctx(EVP_CIPHER_CTX_new()),
+ }
+
+ CryptStateOCB2::~CryptStateOCB2() noexcept {
+- EVP_CIPHER_CTX_free(enc_ctx);
+- EVP_CIPHER_CTX_free(dec_ctx);
++ EVP_CIPHER_CTX_free(enc_ctx_ocb_enc);
++ EVP_CIPHER_CTX_free(dec_ctx_ocb_enc);
++ EVP_CIPHER_CTX_free(enc_ctx_ocb_dec);
++ EVP_CIPHER_CTX_free(dec_ctx_ocb_dec);
+ }
+
+ bool CryptStateOCB2::isValid() const {
+@@ -257,25 +261,28 @@ static void inline ZERO(keyblock &block) {
+ block[i] = 0;
+ }
+
+-#define AESencrypt(src, dst, key) \
+- { \
+- int outlen = 0; \
+- EVP_EncryptInit_ex(enc_ctx, EVP_aes_128_ecb(), NULL, key, NULL); \
+- EVP_CIPHER_CTX_set_padding(enc_ctx, 0); \
+- EVP_EncryptUpdate(enc_ctx, reinterpret_cast< unsigned char * >(dst), &outlen, \
+- reinterpret_cast< const unsigned char * >(src), AES_BLOCK_SIZE); \
+- EVP_EncryptFinal_ex(enc_ctx, reinterpret_cast< unsigned char * >(dst + outlen), &outlen); \
++#define AESencrypt_ctx(src, dst, key, enc_ctx) \
++ { \
++ int outlen = 0; \
++ EVP_EncryptInit_ex(enc_ctx, EVP_aes_128_ecb(), NULL, key, NULL); \
++ EVP_CIPHER_CTX_set_padding(enc_ctx, 0); \
++ EVP_EncryptUpdate(enc_ctx, reinterpret_cast< unsigned char * >(dst), &outlen, \
++ reinterpret_cast< const unsigned char * >(src), AES_BLOCK_SIZE); \
++ EVP_EncryptFinal_ex(enc_ctx, reinterpret_cast< unsigned char * >((dst) + outlen), &outlen); \
+ }
+-#define AESdecrypt(src, dst, key) \
+- { \
+- int outlen = 0; \
+- EVP_DecryptInit_ex(dec_ctx, EVP_aes_128_ecb(), NULL, key, NULL); \
+- EVP_CIPHER_CTX_set_padding(dec_ctx, 0); \
+- EVP_DecryptUpdate(dec_ctx, reinterpret_cast< unsigned char * >(dst), &outlen, \
+- reinterpret_cast< const unsigned char * >(src), AES_BLOCK_SIZE); \
+- EVP_DecryptFinal_ex(dec_ctx, reinterpret_cast< unsigned char * >(dst + outlen), &outlen); \
++#define AESdecrypt_ctx(src, dst, key, dec_ctx) \
++ { \
++ int outlen = 0; \
++ EVP_DecryptInit_ex(dec_ctx, EVP_aes_128_ecb(), NULL, key, NULL); \
++ EVP_CIPHER_CTX_set_padding(dec_ctx, 0); \
++ EVP_DecryptUpdate(dec_ctx, reinterpret_cast< unsigned char * >(dst), &outlen, \
++ reinterpret_cast< const unsigned char * >(src), AES_BLOCK_SIZE); \
++ EVP_DecryptFinal_ex(dec_ctx, reinterpret_cast< unsigned char * >((dst) + outlen), &outlen); \
+ }
+
++#define AESencrypt(src, dst, key) AESencrypt_ctx(src, dst, key, enc_ctx_ocb_enc)
++#define AESdecrypt(src, dst, key) AESdecrypt_ctx(src, dst, key, dec_ctx_ocb_enc)
++
+ bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encrypted, unsigned int len,
+ const unsigned char *nonce, unsigned char *tag, bool modifyPlainOnXEXStarAttack) {
+ keyblock checksum, delta, tmp, pad;
+@@ -345,6 +352,12 @@ bool CryptStateOCB2::ocb_encrypt(const unsigned char *plain, unsigned char *encr
+ return success;
+ }
+
++#undef AESencrypt
++#undef AESdecrypt
++
++#define AESencrypt(src, dst, key) AESencrypt_ctx(src, dst, key, enc_ctx_ocb_dec)
++#define AESdecrypt(src, dst, key) AESdecrypt_ctx(src, dst, key, dec_ctx_ocb_dec)
++
+ bool CryptStateOCB2::ocb_decrypt(const unsigned char *encrypted, unsigned char *plain, unsigned int len,
+ const unsigned char *nonce, unsigned char *tag) {
+ keyblock checksum, delta, tmp, pad;
+@@ -392,9 +405,9 @@ bool CryptStateOCB2::ocb_decrypt(const unsigned char *encrypted, unsigned char *
+ return success;
+ }
+
++#undef AESencrypt
++#undef AESdecrypt
+ #undef BLOCKSIZE
+ #undef SHIFTBITS
+ #undef SWAPPED
+ #undef HIGHBIT
+-#undef AESencrypt
+-#undef AESdecrypt
+diff --git a/src/crypto/CryptStateOCB2.h b/src/crypto/CryptStateOCB2.h
+index cc3f1c0bc..0fd3000ad 100644
+--- a/src/crypto/CryptStateOCB2.h
++++ b/src/crypto/CryptStateOCB2.h
+@@ -44,8 +44,10 @@ private:
+ unsigned char decrypt_iv[AES_BLOCK_SIZE];
+ unsigned char decrypt_history[0x100];
+
+- EVP_CIPHER_CTX *enc_ctx;
+- EVP_CIPHER_CTX *dec_ctx;
++ EVP_CIPHER_CTX *enc_ctx_ocb_enc;
++ EVP_CIPHER_CTX *dec_ctx_ocb_enc;
++ EVP_CIPHER_CTX *enc_ctx_ocb_dec;
++ EVP_CIPHER_CTX *dec_ctx_ocb_dec;
+ };
+
+
diff --git a/net-voip/mumble/files/mumble-1.4.230-gcc12-include-memory.patch b/net-voip/mumble/files/mumble-1.4.230-gcc12-include-memory.patch
new file mode 100644
index 000000000000..624a8594d995
--- /dev/null
+++ b/net-voip/mumble/files/mumble-1.4.230-gcc12-include-memory.patch
@@ -0,0 +1,28 @@
+https://github.com/mumble-voip/mumble/commit/36398fb3b293fc889bbc38df29665359f5c2a0ca
+
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Sun, 27 Feb 2022 10:59:57 +0000
+Subject: [PATCH] BUILD(positional-audio): Fix missing <memory> include
+
+Without the change the build fails on upcoming gcc-12 as:
+
+ /build/mumble/plugins/gtav/gtav.cpp:13:13:
+ error: 'unique_ptr' in namespace 'std' does not name a template type
+ 13 | static std::unique_ptr< Game > game;
+ | ^~~~~~~~~~
+ /build/mumble/plugins/gtav/gtav.cpp:12:1:
+ note: 'std::unique_ptr' is defined in header '<memory>';
+ did you forget to '#include <memory>'?
+ 11 | #include <cstring>
+ +++ |+#include <memory>
+ 12 |
+--- a/plugins/gtav/gtav.cpp
++++ b/plugins/gtav/gtav.cpp
+@@ -9,6 +9,7 @@
+ #include "mumble_positional_audio_utils.h"
+
+ #include <cstring>
++#include <memory>
+
+ static std::unique_ptr< Game > game;
+
diff --git a/net-voip/mumble/files/mumble-1.4.230-poco-link-cmake.patch b/net-voip/mumble/files/mumble-1.4.230-poco-link-cmake.patch
new file mode 100644
index 000000000000..d1b4dee11d51
--- /dev/null
+++ b/net-voip/mumble/files/mumble-1.4.230-poco-link-cmake.patch
@@ -0,0 +1,24 @@
+https://bugs.gentoo.org/842984
+https://github.com/mumble-voip/mumble/commit/fefdd79ebcd53a3035967789d004938ee39e2030
+
+Fix underlinking against Poco.
+--- a/src/mumble/CMakeLists.txt
++++ b/src/mumble/CMakeLists.txt
+@@ -383,11 +383,16 @@ target_include_directories(mumble
+ "${PLUGINS_DIR}"
+ )
+
+-find_pkg(Poco COMPONENTS Zip)
++find_pkg(Poco
++ COMPONENTS
++ XML
++ Zip
++)
+
+ if(TARGET Poco::Zip)
+ target_link_libraries(mumble
+ PRIVATE
++ Poco::XML
+ Poco::Zip
+ )
+ else()
diff --git a/net-voip/mumble/metadata.xml b/net-voip/mumble/metadata.xml
new file mode 100644
index 000000000000..4155b39a062c
--- /dev/null
+++ b/net-voip/mumble/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>concord@gentoo.org</email>
+ <name>Kenton Groombridge</name>
+ </maintainer>
+ <use>
+ <flag name="g15">Enable support for the Logitech G15 LCD (and compatible devices).</flag>
+ <flag name="pipewire">Enable pipewire support for audio output.</flag>
+ <flag name="rnnoise">Enable alternative noise suppression option based on RNNoise.</flag>
+ <flag name="speech">Enable text-to-speech support in Mumble.</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">mumble</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-voip/mumble/mumble-1.3.4-r1.ebuild b/net-voip/mumble/mumble-1.3.4-r1.ebuild
new file mode 100644
index 000000000000..b949aeef04ef
--- /dev/null
+++ b/net-voip/mumble/mumble-1.3.4-r1.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8..10} )
+inherit desktop multilib-build python-any-r1 qmake-utils xdg
+
+DESCRIPTION="Mumble is an open source, low-latency, high quality voice chat software"
+HOMEPAGE="https://wiki.mumble.info"
+if [[ "${PV}" == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/mumble-voip/mumble.git"
+ EGIT_SUBMODULES=( '-*' celt-0.7.0-src celt-0.11.0-src themes/Mumble 3rdparty/rnnoise-src )
+else
+ if [[ "${PV}" == *_pre* ]] ; then
+ SRC_URI="https://dev.gentoo.org/~polynomial-c/dist/${P}.tar.xz"
+ else
+ MY_PV="${PV/_/-}"
+ MY_P="${PN}-${MY_PV}"
+ SRC_URI="https://github.com/mumble-voip/mumble/releases/download/${MY_PV}/${MY_P}.tar.gz
+ https://dl.mumble.info/${MY_P}.tar.gz"
+ S="${WORKDIR}/${P/_*}"
+ fi
+ KEYWORDS="amd64 ~arm64 ~ppc64 x86"
+fi
+
+LICENSE="BSD MIT"
+SLOT="0"
+IUSE="+alsa +dbus debug g15 jack +opus oss pch portaudio pulseaudio +rnnoise speech zeroconf"
+
+RDEPEND="
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5[ssl]
+ dev-qt/qtsql:5[sqlite]
+ dev-qt/qtsvg:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtxml:5
+ >=dev-libs/protobuf-2.2.0:=
+ >=media-libs/libsndfile-1.0.20[-minimal]
+ >=media-libs/speex-1.2.0
+ media-libs/speexdsp
+ sys-apps/lsb-release
+ x11-libs/libX11
+ x11-libs/libXi
+ alsa? ( media-libs/alsa-lib )
+ dbus? ( dev-qt/qtdbus:5 )
+ g15? ( app-misc/g15daemon )
+ jack? ( virtual/jack )
+ >=dev-libs/openssl-1.0.0b:0=
+ opus? ( >=media-libs/opus-1.0.1 )
+ portaudio? ( media-libs/portaudio )
+ pulseaudio? ( media-sound/pulseaudio )
+ speech? ( >=app-accessibility/speech-dispatcher-0.8.0 )
+ zeroconf? ( net-dns/avahi[mdnsresponder-compat] )
+"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ >=dev-libs/boost-1.41.0
+ x11-base/xorg-proto
+"
+BDEPEND="
+ dev-qt/linguist-tools:5
+ virtual/pkgconfig
+"
+
+pkg_setup() {
+ python-any-r1_pkg_setup
+}
+
+# NB: qmake does not support multilib but it's fine to configure
+# for the native ABI here
+src_configure() {
+ myuse() {
+ [[ -n "${1}" ]] || die "myuse: No use option given"
+ use ${1} || echo no-${1}
+ }
+
+ local conf_add=(
+ bundled-celt
+ no-bundled-opus
+ no-bundled-speex
+ no-embed-qt-translations
+ no-server
+ no-update
+ $(myuse alsa)
+ $(myuse dbus)
+ $(usex debug 'symbols debug' release)
+ $(myuse g15)
+ $(usex jack '' no-jackaudio)
+ $(myuse opus)
+ $(myuse oss)
+ $(myuse portaudio)
+ $(myuse pulseaudio)
+ $(usex rnnoise bundled-rnnoise '')
+ $(usex speech '' no-speechd)
+ $(usex zeroconf '' no-bonjour)
+ )
+
+ use pch || conf_add+=( no-pch )
+
+ eqmake5 "${S}/main.pro" -recursive \
+ CONFIG+="${conf_add[*]}" \
+ DEFINES+="PLUGIN_PATH=/usr/$(get_libdir)/mumble"
+}
+
+multilib_src_compile() {
+ local emake_args=(
+ # place libmumble* in a subdirectory
+ DESTDIR_ADD="/${MULTILIB_ABI_FLAG}"
+ {C,L}FLAGS_ADD="$(get_abi_CFLAGS)"
+ )
+ # build only overlay library for other ABIs
+ multilib_is_native_abi || emake_args+=( -C overlay_gl )
+ emake "${emake_args[@]}"
+ emake clean
+}
+
+src_compile() {
+ multilib_foreach_abi multilib_src_compile
+}
+
+multilib_src_install() {
+ local dir=$(usex debug debug release)
+ insinto /usr/$(get_libdir)/${PN}
+ doins "${dir}/${MULTILIB_ABI_FLAG}"/libmumble.so*
+ if multilib_is_native_abi; then
+ dobin "${dir}"/mumble
+ doins "${dir}"/libcelt0.so* "${dir}"/plugins/lib*.so*
+ fi
+}
+
+src_install() {
+ multilib_foreach_abi multilib_src_install
+
+ newdoc README.Linux README
+ dodoc CHANGES
+ dobin scripts/mumble-overlay
+
+ insinto /usr/share/services
+ doins scripts/mumble.protocol
+
+ domenu scripts/mumble.desktop
+
+ doicon -s scalable icons/mumble.svg
+
+ doman man/mumble-overlay.1
+ doman man/mumble.1
+
+ insinto /usr/share/mumble
+ doins -r samples
+}
+
+pkg_preinst() {
+ xdg_pkg_preinst
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ echo
+ elog "Visit https://wiki.mumble.info/ for futher configuration instructions."
+ elog "Run mumble-overlay to start the OpenGL overlay (after starting mumble)."
+ echo
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+}
diff --git a/net-voip/mumble/mumble-1.4.230-r3.ebuild b/net-voip/mumble/mumble-1.4.230-r3.ebuild
new file mode 100644
index 000000000000..382e030edb65
--- /dev/null
+++ b/net-voip/mumble/mumble-1.4.230-r3.ebuild
@@ -0,0 +1,149 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake flag-o-matic python-any-r1 xdg
+
+DESCRIPTION="Mumble is an open source, low-latency, high quality voice chat software"
+HOMEPAGE="https://wiki.mumble.info"
+if [[ "${PV}" == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/mumble-voip/mumble.git"
+ EGIT_SUBMODULES=( '-*' celt-0.7.0-src celt-0.11.0-src themes/Mumble 3rdparty/rnnoise-src 3rdparty/FindPythonInterpreter )
+else
+ if [[ "${PV}" == *_pre* ]] ; then
+ SRC_URI="https://dev.gentoo.org/~polynomial-c/dist/${P}.tar.xz"
+ else
+ MY_PV="${PV/_/-}"
+ MY_P="${PN}-${MY_PV}"
+ SRC_URI="https://github.com/mumble-voip/mumble/releases/download/v${MY_PV}/${MY_P}.tar.gz"
+ S="${WORKDIR}/${P/_*}.src"
+ fi
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+fi
+
+SRC_URI+=" https://dev.gentoo.org/~polynomial-c/${PN}-1.4-openssl3.patch.xz"
+
+LICENSE="BSD MIT"
+SLOT="0"
+IUSE="+alsa +dbus debug g15 jack pipewire portaudio pulseaudio multilib nls +rnnoise speech test zeroconf"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-libs/openssl-1.0.0b:0=
+ dev-libs/poco[util,xml,zip]
+ >=dev-libs/protobuf-2.2.0:=
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5[ssl]
+ dev-qt/qtsql:5[sqlite]
+ dev-qt/qtsvg:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtxml:5
+ >=media-libs/libsndfile-1.0.20[-minimal]
+ >=media-libs/opus-1.3.1
+ >=media-libs/speex-1.2.0
+ media-libs/speexdsp
+ sys-apps/lsb-release
+ x11-libs/libX11
+ x11-libs/libXi
+ alsa? ( media-libs/alsa-lib )
+ dbus? ( dev-qt/qtdbus:5 )
+ g15? ( app-misc/g15daemon:= )
+ jack? ( virtual/jack )
+ portaudio? ( media-libs/portaudio )
+ pulseaudio? ( media-sound/pulseaudio )
+ pipewire? ( media-video/pipewire )
+ speech? ( >=app-accessibility/speech-dispatcher-0.8.0 )
+ zeroconf? ( net-dns/avahi[mdnsresponder-compat] )
+"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ dev-qt/qtconcurrent:5
+ dev-qt/qttest:5
+ >=dev-libs/boost-1.41.0
+ x11-base/xorg-proto
+"
+BDEPEND="
+ dev-qt/linguist-tools:5
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${WORKDIR}/${PN}-1.4-openssl3.patch"
+ "${FILESDIR}/${PN}-1.4-crypto-threads.patch"
+ "${FILESDIR}/${PN}-1.4.230-gcc12-include-memory.patch"
+ "${FILESDIR}/${PN}-1.4.230-poco-link-cmake.patch"
+)
+
+pkg_setup() {
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ # required because of xdg.eclass also providing src_prepare
+ cmake_src_prepare
+}
+
+src_configure() {
+
+ local mycmakeargs=(
+ -Dalsa="$(usex alsa)"
+ -Dtests="$(usex test)"
+ -Dbundled-celt="ON"
+ -Dbundled-opus="OFF"
+ -Dbundled-speex="OFF"
+ -Ddbus="$(usex dbus)"
+ -Dg15="$(usex g15)"
+ -Djackaudio="$(usex jack)"
+ -Doverlay="ON"
+ -Dportaudio="$(usex portaudio)"
+ -Doverlay-xcompile="$(usex multilib)"
+ -Dpipewire="$(usex pipewire)"
+ -Dpulseaudio="$(usex pulseaudio)"
+ -Drnnoise="$(usex rnnoise)"
+ -Dserver="OFF"
+ -Dspeechd="$(usex speech)"
+ -Dtranslations="$(usex nls)"
+ -Dupdate="OFF"
+ -Dwarnings-as-errors="OFF"
+ -Dzeroconf="$(usex zeroconf)"
+ )
+
+ if [[ "${PV}" != 9999 ]] ; then
+ mycmakeargs+=( -DBUILD_NUMBER="$(ver_cut 3)" )
+ fi
+
+ # https://bugs.gentoo.org/832978
+ # fix tests (and possibly runtime issues) on arches with unsigned chars
+ append-cxxflags -fsigned-char
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ if use amd64 && use multilib ; then
+ # The 32bit overlay library gets built when multilib is enabled.
+ # Install it into the correct 32bit lib dir.
+ local libdir_64="/usr/$(get_libdir)/mumble"
+ local libdir_32="/usr/$(get_abi_var LIBDIR x86)/mumble"
+ dodir ${libdir_32}
+ mv "${ED}"/${libdir_64}/libmumbleoverlay.x86.so* \
+ "${ED}"/${libdir_32}/ || die
+ fi
+
+ insinto /usr/share/mumble
+ doins -r samples
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ echo
+ elog "Visit https://wiki.mumble.info/ for futher configuration instructions."
+ elog "Run 'mumble-overlay <program>' to start the OpenGL overlay (after starting mumble)."
+ echo
+}
diff --git a/net-voip/mumble/mumble-9999.ebuild b/net-voip/mumble/mumble-9999.ebuild
new file mode 100644
index 000000000000..548fe5b1e282
--- /dev/null
+++ b/net-voip/mumble/mumble-9999.ebuild
@@ -0,0 +1,145 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{8..10} )
+inherit cmake flag-o-matic python-any-r1 xdg
+
+DESCRIPTION="Mumble is an open source, low-latency, high quality voice chat software"
+HOMEPAGE="https://wiki.mumble.info"
+if [[ "${PV}" == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/mumble-voip/mumble.git"
+ EGIT_SUBMODULES=( '-*' celt-0.7.0-src celt-0.11.0-src themes/Mumble 3rdparty/rnnoise-src 3rdparty/FindPythonInterpreter 3rdparty/tracy 3rdparty/gsl )
+else
+ if [[ "${PV}" == *_pre* ]] ; then
+ SRC_URI="https://dev.gentoo.org/~polynomial-c/dist/${P}.tar.xz"
+ else
+ MY_PV="${PV/_/-}"
+ MY_P="${PN}-${MY_PV}"
+ SRC_URI="https://github.com/mumble-voip/mumble/releases/download/v${MY_PV}/${MY_P}.tar.gz"
+ S="${WORKDIR}/${P/_*}.src"
+ fi
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+fi
+
+LICENSE="BSD MIT"
+SLOT="0"
+IUSE="+alsa +dbus debug g15 jack pipewire portaudio pulseaudio multilib nls +rnnoise speech test zeroconf"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-libs/openssl-1.0.0b:0=
+ dev-libs/poco[util,xml,zip]
+ >=dev-libs/protobuf-2.2.0:=
+ dev-qt/qtcore:5
+ dev-qt/qtgui:5
+ dev-qt/qtnetwork:5[ssl]
+ dev-qt/qtsql:5[sqlite]
+ dev-qt/qtsvg:5
+ dev-qt/qtwidgets:5
+ dev-qt/qtxml:5
+ >=media-libs/libsndfile-1.0.20[-minimal]
+ >=media-libs/opus-1.3.1
+ >=media-libs/speex-1.2.0
+ media-libs/speexdsp
+ sys-apps/lsb-release
+ x11-libs/libX11
+ x11-libs/libXi
+ alsa? ( media-libs/alsa-lib )
+ dbus? ( dev-qt/qtdbus:5 )
+ g15? ( app-misc/g15daemon:= )
+ jack? ( virtual/jack )
+ portaudio? ( media-libs/portaudio )
+ pulseaudio? ( media-sound/pulseaudio )
+ pipewire? ( media-video/pipewire )
+ speech? ( >=app-accessibility/speech-dispatcher-0.8.0 )
+ zeroconf? ( net-dns/avahi[mdnsresponder-compat] )
+"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ dev-cpp/nlohmann_json
+ dev-qt/qtconcurrent:5
+ dev-qt/qttest:5
+ >=dev-libs/boost-1.41.0
+ x11-base/xorg-proto
+"
+BDEPEND="
+ dev-qt/linguist-tools:5
+ virtual/pkgconfig
+"
+
+pkg_setup() {
+ python-any-r1_pkg_setup
+}
+
+src_prepare() {
+ sed '/TRACY_ON_DEMAND/s@ ON @ OFF @' -i src/CMakeLists.txt || die
+
+ # required because of xdg.eclass also providing src_prepare
+ cmake_src_prepare
+}
+
+src_configure() {
+
+ local mycmakeargs=(
+ -Dalsa="$(usex alsa)"
+ -Dbundled-celt="ON"
+ -Dbundled-json="OFF"
+ -Dbundled-opus="OFF"
+ -Dbundled-speex="OFF"
+ -Ddbus="$(usex dbus)"
+ -Dg15="$(usex g15)"
+ -Djackaudio="$(usex jack)"
+ -Doverlay="ON"
+ -Dportaudio="$(usex portaudio)"
+ -Doverlay-xcompile="$(usex multilib)"
+ -Dpipewire="$(usex pipewire)"
+ -Dpulseaudio="$(usex pulseaudio)"
+ -Drnnoise="$(usex rnnoise)"
+ -Dserver="OFF"
+ -Dspeechd="$(usex speech)"
+ -Dtests="$(usex test)"
+ -Dtracy="OFF"
+ -Dtranslations="$(usex nls)"
+ -Dupdate="OFF"
+ -Dwarnings-as-errors="OFF"
+ -Dzeroconf="$(usex zeroconf)"
+ )
+
+ if [[ "${PV}" != 9999 ]] ; then
+ mycmakeargs+=( -DBUILD_NUMBER="$(ver_cut 3)" )
+ fi
+
+ # https://bugs.gentoo.org/832978
+ # fix tests (and possibly runtime issues) on arches with unsigned chars
+ append-cxxflags -fsigned-char
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ if use amd64 && use multilib ; then
+ # The 32bit overlay library gets built when multilib is enabled.
+ # Install it into the correct 32bit lib dir.
+ local libdir_64="/usr/$(get_libdir)/mumble"
+ local libdir_32="/usr/$(get_abi_var LIBDIR x86)/mumble"
+ dodir ${libdir_32}
+ mv "${ED}"/${libdir_64}/libmumbleoverlay.x86.so* \
+ "${ED}"/${libdir_32}/ || die
+ fi
+
+ insinto /usr/share/mumble
+ doins -r samples
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ echo
+ elog "Visit https://wiki.mumble.info/ for futher configuration instructions."
+ elog "Run 'mumble-overlay <program>' to start the OpenGL overlay (after starting mumble)."
+ echo
+}
diff --git a/net-voip/murmur/Manifest b/net-voip/murmur/Manifest
new file mode 100644
index 000000000000..4933be947c12
--- /dev/null
+++ b/net-voip/murmur/Manifest
@@ -0,0 +1,14 @@
+AUX murmur.confd 172 BLAKE2B 1f25ce417f1b9f504ea59d4e5216774f8eb2b00450577a1d137f645fbbd69f0991b510c35bad81ac739c868ce128f4de0c6b4e4095edcd977d3822fac622524c SHA512 4a05e2a640abf3f7a74c63b47ab87774718ad4e86f985c5308a2ba3167d816abedd9c35b07b8572f7789309ba91fa37bc0c1938493cc8d78844ecdeed7bd4171
+AUX murmur.initd-r1 506 BLAKE2B fd483f5f1c43f1778a909c725abee43b7299251e70e3f4e365804e7da94f674035dbb953167f2143c2d00dfbb4e23d5ed3d378c8aa2acbafbae8e7cf93fab263 SHA512 e1178a42c10f4a62f9b937e977b9e13059cae501851a377aea221ae2bd2bf031a1574e1f29f6df1b0ee08406a6a88fae8fbffd8acd0546f9ff6b27189ef55653
+AUX murmur.initd-r2 511 BLAKE2B 2ff09ffdb62c5131f97f52960ac71360eb4959bb974c8cbc7f0fb0a27da91f34826a3065840be5a5ef9c24e243185cee0106c85285aa2aefbb534934cff9621d SHA512 3153254ec2c31e1b19e4991cce65ae9df7a609ad61c13ff569bbe822fc728dcf562c63c0a0d3198de3bd1599524db3f0e122004d1491b6bceafdbb28066a56cc
+AUX murmur.logrotate 175 BLAKE2B b13282fc194ed7a576e22ac241285053a7882f670580b6a3004e8ce22b3cc5f3854f46aa2a89629931a0e8cdc826e2d4e1096e837aed41148d8ef87afd485676 SHA512 09bbc2f364e038dc81e55adb86210f4cdc178bd2dba770e373f6c411b2c21d08218fd9784fff0ba133b7e18c84ddc3b2ac86d9d67a99a3169d3be42bd7fe2863
+AUX murmurd-dbus.tmpfiles 33 BLAKE2B 4040c58c142ae051e3086bfb179a1b28fc97f997d2b4ccf0392fb30d6212ac937f3d8ec120699210bee333b224af73dc1b72a40f3bda1cb4f4e8e683ac09b262 SHA512 9bc78c99dd5d830e6ea0fff82e1fdc3c323b7952e54f139754d8d0dd5e5e75c3374e26ea5a404029c96766cbf3a08afdffd53b99fdca5cd9c97dd8a28b8fc410
+DIST mumble-1.3.3.tar.gz 8591354 BLAKE2B e5bf4d0a21f3c9af761b0892c4a5a7d86244d3283070976fe7a779a10567ffd857e0c19dad750cdbae40d851ce1dcf17b66c63a2cb5142a13358af6f272445dd SHA512 be4c6d4de82a1059bf30d4c7e3c44e41e4bb50dc4a811b7d0def808c52059ff7bcccf65140db940f18cc1bb66d58ea4dab23ba5dcfae3b8b904866751f32edb3
+DIST mumble-1.3.4.tar.gz 8592741 BLAKE2B bcde3fd859ec4faea06f996cd4c583af7c0b8409cca79cb05ef8ba7fcdeac9e49ed1d07a4131225dd582da7610190d4006abc731fd4276b2288e02e8c18effb6 SHA512 e2dde5aad30d1a931e7acd8d7db0b8c785d3a268d0b8cf5626fa03953a51bcadb719c6682c440d02524e83beee13d73d8f5bb3fdf98ab1c82d3ecf824cc25f68
+DIST mumble-1.4-openssl3.patch.xz 4172 BLAKE2B 5b68f023e218628a4d73b0991dcc7790ce5f92ce6a27c372c5e80b1f3a8beafa3ddd6416b884705b321aee31ea4f5e09dda6ceb240272dde64f420fbeb06845a SHA512 3a4e504f3365e93418cb85d0da4e6f2f54ab904283743907604bb39276560a4215d9bea1b225601789d1c3d84d270c04840ec57cd04e3df1204cc586ea42562a
+DIST mumble-1.4.230.tar.gz 9441667 BLAKE2B da433f3c15d7e45dfac0c8a78c9dbe86ba8d5cd078d2d87fd4d90718968fc9e5928c3c5c5ba2e40a8a54d02a646c5fc6a7ee2fff4b71dfa411d74f395b097c26 SHA512 6cffc7a95d88b33876f4093b99266468210f5c14f190fbd2fbe4991bef91a567e55296e7c8c6cc99e19c054853211085cc3cc08109e367e6776afb70766b3a53
+EBUILD murmur-1.3.3.ebuild 3717 BLAKE2B b313b09d41ccfd356fe6735df7403c740d8e5549d1c72f51ec2ea310e0e16f318f5fe15c566ed8cbc278f85a8d396507fe2ac945ec1fa2756c2d9a9fafd0dc4f SHA512 18514c16c8cc8fcdb89cb101263b4b2cbb0649d3b7482d3cc9218cfcb5f6ed17b6f7ab2ec6655ac9743394e0c2229d2808ce0ce85bf70ed536121869a9e91cd9
+EBUILD murmur-1.3.4.ebuild 3719 BLAKE2B 68fd2ce435c1fd071ca24021f70710bce3e5f5867b6b9f9eba9582c48daccb03ae96087e9a960f752f4e5b018fe220f848d1377348bad4b80a7843c00de689bd SHA512 0eab4bb4e9264df6608dcc0b5bfbff2673337a785edee06da0507535e99b4148ecd53ecedca7f9e2396288ab78d512f373c3e9ba03ea7e6cd38935566ea099d5
+EBUILD murmur-1.4.230-r3.ebuild 4169 BLAKE2B 437e5257bbabf7dd0616a2efd953acc15d699a1822fe5655e89279f5d2113d4be6627b4216d86791f1fffd3847cfeb3932bf99bef1c6838c7016059694b9907a SHA512 ed0c2d3c005bf67867922b1bd820a9147983590dd0f1e78400ade159565a53dc899bc9f387ec4f9dfaefdd01192817dd9a882dfe166f129c912019f57223bf04
+EBUILD murmur-9999.ebuild 4105 BLAKE2B 485b4f5e48180f4ac85b7099aa21d02e06e0aa748c981c5312de12538968ed52ac4aa1962f18477325136b8c4bcabd575db9147c36c4f3818813f541141c7c36 SHA512 1546963c1e693b6570538ff2027e82c95274bcb2f279d94223a5e4413c26270440780fb7cb63bb7cef8dd51288834cc181906884c5dd9259716be5b0ba406fd8
+MISC metadata.xml 532 BLAKE2B 033c64eda04542535df56a2ab4daedb41367f776873b757610e41a7afc450cc8acc2679f07dc749a75c82b6ac2b904fe8d63afa2ca6f017263d0230269e7bc78 SHA512 7ec514d46eb13c349514504ba976f8f787202497354515be2535793d3b1a9e287c210b861bec5778ce7d6de17aa40819c1520e58642ddc384cae6d009c193c24
diff --git a/net-voip/murmur/files/murmur.confd b/net-voip/murmur/files/murmur.confd
new file mode 100644
index 000000000000..36367c51136b
--- /dev/null
+++ b/net-voip/murmur/files/murmur.confd
@@ -0,0 +1,9 @@
+# where to look for the config file
+MURMUR_CONF=/etc/murmur/murmur.ini
+
+# run as this user
+MURMUR_USER=murmur
+
+# HOME directory of MURMUR_USER
+MURMUR_HOME=/var/lib/murmur
+
diff --git a/net-voip/murmur/files/murmur.initd-r1 b/net-voip/murmur/files/murmur.initd-r1
new file mode 100644
index 000000000000..fe49b32f1410
--- /dev/null
+++ b/net-voip/murmur/files/murmur.initd-r1
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+
+pidfile="/run/murmur/murmur.pid"
+command="/usr/bin/murmurd"
+command_args="-ini \"${MURMUR_CONF}\""
+start_stop_daemon_args="-u \"${MURMUR_USER}\" --env HOME=\"${MURMUR_HOME}\" --wait 20"
+extra_started_commands="reload"
+
+depend() {
+ need localmount net
+ use dbus logger
+ after bootmisc mysql
+}
+
+start_pre() {
+ checkpath -q -d -o ${MURMUR_USER} ${pidfile%/*}
+}
+
+reload() {
+ ebegin "Reloading Murmur"
+ start-stop-daemon --signal HUP --pidfile "${pidfile}" \
+ --exec ${command}
+ eend $?
+}
+
diff --git a/net-voip/murmur/files/murmur.initd-r2 b/net-voip/murmur/files/murmur.initd-r2
new file mode 100644
index 000000000000..b754c242462b
--- /dev/null
+++ b/net-voip/murmur/files/murmur.initd-r2
@@ -0,0 +1,24 @@
+#!/sbin/openrc-run
+
+pidfile="/run/murmur/murmur.pid"
+command="/usr/bin/mumble-server"
+command_args="-ini \"${MURMUR_CONF}\""
+start_stop_daemon_args="-u \"${MURMUR_USER}\" --env HOME=\"${MURMUR_HOME}\" --wait 20"
+extra_started_commands="reload"
+
+depend() {
+ need localmount net
+ use dbus logger
+ after bootmisc mysql
+}
+
+start_pre() {
+ checkpath -q -d -o ${MURMUR_USER} ${pidfile%/*}
+}
+
+reload() {
+ ebegin "Reloading Murmur"
+ start-stop-daemon --signal HUP --pidfile "${pidfile}" \
+ --exec ${command}
+ eend $?
+}
diff --git a/net-voip/murmur/files/murmur.logrotate b/net-voip/murmur/files/murmur.logrotate
new file mode 100644
index 000000000000..a82cb1a336c4
--- /dev/null
+++ b/net-voip/murmur/files/murmur.logrotate
@@ -0,0 +1,8 @@
+/var/log/murmur/*.log {
+ missingok
+ notifempty
+ sharedscripts
+ postrotate
+ test -r /run/murmur/murmur.pid && kill -HUP $(cat /run/murmur/murmur.pid) &>/dev/null
+ endscript
+}
diff --git a/net-voip/murmur/files/murmurd-dbus.tmpfiles b/net-voip/murmur/files/murmurd-dbus.tmpfiles
new file mode 100644
index 000000000000..70963d0a575b
--- /dev/null
+++ b/net-voip/murmur/files/murmurd-dbus.tmpfiles
@@ -0,0 +1 @@
+d /run/murmur 0755 murmur murmur
diff --git a/net-voip/murmur/metadata.xml b/net-voip/murmur/metadata.xml
new file mode 100644
index 000000000000..453aea68c4d9
--- /dev/null
+++ b/net-voip/murmur/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>concord@gentoo.org</email>
+ <name>Kenton Groombridge</name>
+ </maintainer>
+ <use>
+ <flag name="grpc">Use <pkg>net-libs/grpc</pkg> to enable remote control capabilities.</flag>
+ <flag name="ice">Use <pkg>dev-libs/Ice</pkg> to enable remote control capabilities.</flag>
+ </use>
+ <upstream>
+ <remote-id type="sourceforge">mumble</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-voip/murmur/murmur-1.3.3.ebuild b/net-voip/murmur/murmur-1.3.3.ebuild
new file mode 100644
index 000000000000..02674b111771
--- /dev/null
+++ b/net-voip/murmur/murmur-1.3.3.ebuild
@@ -0,0 +1,162 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit qmake-utils systemd readme.gentoo-r1 tmpfiles
+
+DESCRIPTION="Mumble is an open source, low-latency, high quality voice chat software"
+HOMEPAGE="https://wiki.mumble.info"
+if [[ "${PV}" == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/mumble-voip/mumble.git"
+ EGIT_SUBMODULES=( '-*' )
+else
+ MY_PN="mumble"
+ if [[ "${PV}" == *_pre* ]] ; then
+ MY_P="${MY_PN}-${PV}"
+ SRC_URI="https://dev.gentoo.org/~polynomial-c/dist/${MY_P}.tar.xz"
+ S="${WORKDIR}/${MY_P}"
+ else
+ MY_PV="${PV/_/-}"
+ MY_P="${MY_PN}-${MY_PV}"
+ SRC_URI="https://github.com/mumble-voip/mumble/releases/download/${MY_PV}/${MY_P}.tar.gz
+ https://dl.mumble.info/${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_PN}-${PV/_*}"
+ fi
+ KEYWORDS="amd64 ~arm x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="+dbus debug +ice pch zeroconf"
+
+RDEPEND="
+ acct-group/murmur
+ acct-user/murmur
+ >=dev-libs/openssl-1.0.0b:0=
+ >=dev-libs/protobuf-2.2.0:=
+ dev-qt/qtcore:5
+ dev-qt/qtnetwork:5
+ || (
+ dev-qt/qtsql:5[sqlite]
+ dev-qt/qtsql:5[mysql]
+ )
+ dev-qt/qtxml:5
+ sys-apps/lsb-release
+ >=sys-libs/libcap-2.15
+ dbus? ( dev-qt/qtdbus:5 )
+ ice? ( dev-libs/Ice:= )
+ zeroconf? ( net-dns/avahi[mdnsresponder-compat] )
+"
+
+DEPEND="${RDEPEND}
+ >=dev-libs/boost-1.41.0
+"
+BDEPEND="
+ acct-group/murmur
+ acct-user/murmur
+ virtual/pkgconfig
+"
+
+if [[ "${PV}" == *9999 ]] ; then
+ # Required for the mkini.sh script which calls perl multiple times
+ BDEPEND+="
+ dev-lang/perl
+ "
+fi
+
+DOC_CONTENTS="
+ Useful scripts are located in /usr/share/doc/${PF}/scripts.\n
+ Please execute:\n
+ murmurd -ini /etc/murmur/murmur.ini -supw <pw>\n
+ chown murmur:murmur /var/lib/murmur/murmur.sqlite\n
+ to set the build-in 'SuperUser' password before starting murmur.
+ Please restart dbus before starting murmur, or else dbus
+ registration will fail.
+"
+
+src_prepare() {
+ default
+
+ if [[ "${PV}" == *9999 ]] ; then
+ pushd scripts &>/dev/null || die
+ ./mkini.sh || die
+ popd &>/dev/null || die
+ fi
+
+ sed \
+ -e 's:mumble-server:murmur:g' \
+ -e 's:/var/run:/run:g' \
+ -i "${S}"/scripts/murmur.{conf,ini.system} || die
+
+ # Adjust systemd service file to our config location #689208
+ sed "s@/etc/${PN}\.ini@/etc/${PN}/${PN}.ini@" \
+ -i scripts/${PN}.service || die
+}
+
+src_configure() {
+ myuse() {
+ [[ -n "${1}" ]] || die "myconf: No use flag given."
+ use ${1} || echo "no-${1}"
+ }
+ local conf_add=(
+ no-client
+ $(myuse dbus)
+ $(usex debug 'symbols debug' release)
+ $(myuse ice)
+ $(myuse pch)
+ $(usex zeroconf '' no-bonjour)
+ )
+
+ eqmake5 main.pro -recursive \
+ CONFIG+="${conf_add[*]}"
+}
+
+src_install() {
+ dodoc README CHANGES
+
+ docinto scripts
+ dodoc -r scripts/server
+ docompress -x /usr/share/doc/${PF}/scripts
+
+ local dir="$(usex debug debug release)"
+ dobin "${dir}"/murmurd
+
+ local etcdir="/etc/murmur"
+ insinto ${etcdir}
+ newins scripts/${PN}.ini.system ${PN}.ini
+
+ insinto /etc/logrotate.d/
+ newins "${FILESDIR}"/murmur.logrotate murmur
+
+ insinto /etc/dbus-1/system.d/
+ doins scripts/murmur.conf
+
+ insinto /usr/share/murmur/
+ doins src/murmur/Murmur.ice
+
+ newinitd "${FILESDIR}"/murmur.initd-r1 murmur
+ newconfd "${FILESDIR}"/murmur.confd murmur
+
+ systemd_dounit scripts/${PN}.service
+ newtmpfiles "${FILESDIR}"/murmurd-dbus.tmpfiles "${PN}".conf
+
+ keepdir /var/lib/murmur /var/log/murmur
+ fowners -R murmur /var/lib/murmur /var/log/murmur
+ fperms 750 /var/lib/murmur /var/log/murmur
+
+ # Fix permissions on config file as it might contain passwords.
+ # (bug #559362)
+ fowners root:murmur ${etcdir}/murmur.ini
+ fperms 640 ${etcdir}/murmur.ini
+
+ doman man/murmurd.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ tmpfiles_process ${PN}.conf
+ readme.gentoo_print_elog
+}
diff --git a/net-voip/murmur/murmur-1.3.4.ebuild b/net-voip/murmur/murmur-1.3.4.ebuild
new file mode 100644
index 000000000000..a2034bc55449
--- /dev/null
+++ b/net-voip/murmur/murmur-1.3.4.ebuild
@@ -0,0 +1,162 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit qmake-utils systemd readme.gentoo-r1 tmpfiles
+
+DESCRIPTION="Mumble is an open source, low-latency, high quality voice chat software"
+HOMEPAGE="https://wiki.mumble.info"
+if [[ "${PV}" == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/mumble-voip/mumble.git"
+ EGIT_SUBMODULES=( '-*' )
+else
+ MY_PN="mumble"
+ if [[ "${PV}" == *_pre* ]] ; then
+ MY_P="${MY_PN}-${PV}"
+ SRC_URI="https://dev.gentoo.org/~polynomial-c/dist/${MY_P}.tar.xz"
+ S="${WORKDIR}/${MY_P}"
+ else
+ MY_PV="${PV/_/-}"
+ MY_P="${MY_PN}-${MY_PV}"
+ SRC_URI="https://github.com/mumble-voip/mumble/releases/download/${MY_PV}/${MY_P}.tar.gz
+ https://dl.mumble.info/${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_PN}-${PV/_*}"
+ fi
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="+dbus debug +ice pch zeroconf"
+
+RDEPEND="
+ acct-group/murmur
+ acct-user/murmur
+ >=dev-libs/openssl-1.0.0b:0=
+ >=dev-libs/protobuf-2.2.0:=
+ dev-qt/qtcore:5
+ dev-qt/qtnetwork:5
+ || (
+ dev-qt/qtsql:5[sqlite]
+ dev-qt/qtsql:5[mysql]
+ )
+ dev-qt/qtxml:5
+ sys-apps/lsb-release
+ >=sys-libs/libcap-2.15
+ dbus? ( dev-qt/qtdbus:5 )
+ ice? ( dev-libs/Ice:= )
+ zeroconf? ( net-dns/avahi[mdnsresponder-compat] )
+"
+
+DEPEND="${RDEPEND}
+ >=dev-libs/boost-1.41.0
+"
+BDEPEND="
+ acct-group/murmur
+ acct-user/murmur
+ virtual/pkgconfig
+"
+
+if [[ "${PV}" == *9999 ]] ; then
+ # Required for the mkini.sh script which calls perl multiple times
+ BDEPEND+="
+ dev-lang/perl
+ "
+fi
+
+DOC_CONTENTS="
+ Useful scripts are located in /usr/share/doc/${PF}/scripts.\n
+ Please execute:\n
+ murmurd -ini /etc/murmur/murmur.ini -supw <pw>\n
+ chown murmur:murmur /var/lib/murmur/murmur.sqlite\n
+ to set the build-in 'SuperUser' password before starting murmur.
+ Please restart dbus before starting murmur, or else dbus
+ registration will fail.
+"
+
+src_prepare() {
+ default
+
+ if [[ "${PV}" == *9999 ]] ; then
+ pushd scripts &>/dev/null || die
+ ./mkini.sh || die
+ popd &>/dev/null || die
+ fi
+
+ sed \
+ -e 's:mumble-server:murmur:g' \
+ -e 's:/var/run:/run:g' \
+ -i "${S}"/scripts/murmur.{conf,ini.system} || die
+
+ # Adjust systemd service file to our config location #689208
+ sed "s@/etc/${PN}\.ini@/etc/${PN}/${PN}.ini@" \
+ -i scripts/${PN}.service || die
+}
+
+src_configure() {
+ myuse() {
+ [[ -n "${1}" ]] || die "myconf: No use flag given."
+ use ${1} || echo "no-${1}"
+ }
+ local conf_add=(
+ no-client
+ $(myuse dbus)
+ $(usex debug 'symbols debug' release)
+ $(myuse ice)
+ $(myuse pch)
+ $(usex zeroconf '' no-bonjour)
+ )
+
+ eqmake5 main.pro -recursive \
+ CONFIG+="${conf_add[*]}"
+}
+
+src_install() {
+ dodoc README CHANGES
+
+ docinto scripts
+ dodoc -r scripts/server
+ docompress -x /usr/share/doc/${PF}/scripts
+
+ local dir="$(usex debug debug release)"
+ dobin "${dir}"/murmurd
+
+ local etcdir="/etc/murmur"
+ insinto ${etcdir}
+ newins scripts/${PN}.ini.system ${PN}.ini
+
+ insinto /etc/logrotate.d/
+ newins "${FILESDIR}"/murmur.logrotate murmur
+
+ insinto /etc/dbus-1/system.d/
+ doins scripts/murmur.conf
+
+ insinto /usr/share/murmur/
+ doins src/murmur/Murmur.ice
+
+ newinitd "${FILESDIR}"/murmur.initd-r1 murmur
+ newconfd "${FILESDIR}"/murmur.confd murmur
+
+ systemd_dounit scripts/${PN}.service
+ newtmpfiles "${FILESDIR}"/murmurd-dbus.tmpfiles "${PN}".conf
+
+ keepdir /var/lib/murmur /var/log/murmur
+ fowners -R murmur /var/lib/murmur /var/log/murmur
+ fperms 750 /var/lib/murmur /var/log/murmur
+
+ # Fix permissions on config file as it might contain passwords.
+ # (bug #559362)
+ fowners root:murmur ${etcdir}/murmur.ini
+ fperms 640 ${etcdir}/murmur.ini
+
+ doman man/murmurd.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ tmpfiles_process ${PN}.conf
+ readme.gentoo_print_elog
+}
diff --git a/net-voip/murmur/murmur-1.4.230-r3.ebuild b/net-voip/murmur/murmur-1.4.230-r3.ebuild
new file mode 100644
index 000000000000..cb402564c70b
--- /dev/null
+++ b/net-voip/murmur/murmur-1.4.230-r3.ebuild
@@ -0,0 +1,181 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake flag-o-matic systemd readme.gentoo-r1 tmpfiles
+
+DESCRIPTION="Mumble is an open source, low-latency, high quality voice chat software"
+HOMEPAGE="https://wiki.mumble.info"
+if [[ "${PV}" == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/mumble-voip/mumble.git"
+ EGIT_SUBMODULES=( '-*' )
+else
+ MY_PN="mumble"
+ if [[ "${PV}" == *_pre* ]] ; then
+ MY_P="${MY_PN}-${PV}"
+ SRC_URI="https://dev.gentoo.org/~polynomial-c/dist/${MY_P}.tar.xz"
+ S="${WORKDIR}/${MY_P}"
+ else
+ MY_PV="${PV/_/-}"
+ MY_P="${MY_PN}-${MY_PV}"
+ SRC_URI="https://github.com/mumble-voip/mumble/releases/download/${MY_PV}/${MY_P}.tar.gz
+ https://dl.mumble.info/${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_PN}-${PV/_*}.src"
+ fi
+ KEYWORDS="~amd64 ~x86"
+fi
+
+SRC_URI+=" https://dev.gentoo.org/~polynomial-c/mumble-1.4-openssl3.patch.xz"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="+dbus grpc +ice test zeroconf"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ acct-group/murmur
+ acct-user/murmur
+ >=dev-libs/openssl-1.0.0b:0=
+ >=dev-libs/protobuf-2.2.0:=
+ dev-qt/qtcore:5
+ dev-qt/qtnetwork:5
+ || (
+ dev-qt/qtsql:5[sqlite]
+ dev-qt/qtsql:5[mysql]
+ )
+ dev-qt/qtxml:5
+ sys-apps/lsb-release
+ >=sys-libs/libcap-2.15
+ dbus? ( dev-qt/qtdbus:5 )
+ grpc? ( net-libs/grpc )
+ ice? ( dev-libs/Ice:= )
+ zeroconf? ( net-dns/avahi[mdnsresponder-compat] )
+"
+
+DEPEND="${RDEPEND}
+ >=dev-libs/boost-1.41.0
+ dev-qt/qttest:5
+"
+BDEPEND="
+ acct-group/murmur
+ acct-user/murmur
+ virtual/pkgconfig
+"
+
+if [[ "${PV}" == *9999 ]] ; then
+ # Required for the mkini.sh script which calls perl multiple times
+ BDEPEND+="
+ dev-lang/perl
+ "
+fi
+
+DOC_CONTENTS="
+ Useful scripts are located in /usr/share/doc/${PF}/scripts.\n
+ Please execute:\n
+ murmurd -ini /etc/murmur/murmur.ini -supw <pw>\n
+ chown murmur:murmur /var/lib/murmur/murmur.sqlite\n
+ to set the build-in 'SuperUser' password before starting murmur.
+ Please restart dbus before starting murmur, or else dbus
+ registration will fail.
+"
+
+PATCHES=(
+ "${WORKDIR}/mumble-1.4-openssl3.patch"
+)
+
+src_prepare() {
+ if [[ "${PV}" == *9999 ]] ; then
+ pushd scripts &>/dev/null || die
+ ./mkini.sh || die
+ popd &>/dev/null || die
+ fi
+
+ sed \
+ -e 's:mumble-server:murmur:g' \
+ -e 's:/var/run:/run:g' \
+ -i "${S}"/scripts/murmur.{conf,ini} || die
+
+ # Adjust systemd service file to our config location #689208
+ sed \
+ -e "s@/etc/${PN}\.ini@/etc/${PN}/${PN}.ini@" \
+ -e "s@murmurd@mumble-server@" \
+ -i scripts/${PN}.service || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ myuse() {
+ [[ -n "${1}" ]] || die "myconf: No use flag given."
+ use ${1} || echo "no-${1}"
+ }
+ local mycmakeargs=(
+ -DBUILD_TESTING="$(usex test)"
+ -Dclient="OFF"
+ -Ddbus="$(usex dbus)"
+ -Dg15="OFF"
+ -Dgrpc="$(usex grpc)"
+ -Dice="$(usex ice)"
+ -Doverlay="OFF"
+ -Dserver="ON"
+ -Dzeroconf="$(usex zeroconf)"
+ )
+ if [[ "${PV}" != 9999 ]] ; then
+ mycmakeargs+=( -DBUILD_NUMBER="$(ver_cut 3)" )
+ fi
+
+ # https://bugs.gentoo.org/832978
+ # fix tests (and possibly runtime issues) on arches with unsigned chars
+ append-cxxflags -fsigned-char
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ dodoc README.md CHANGES
+
+ docinto scripts
+ dodoc -r scripts/server
+ docompress -x /usr/share/doc/${PF}/scripts
+
+ local etcdir="/etc/murmur"
+ insinto ${etcdir}
+ doins scripts/${PN}.ini
+
+ insinto /etc/logrotate.d/
+ newins "${FILESDIR}"/murmur.logrotate murmur
+
+ insinto /etc/dbus-1/system.d/
+ doins scripts/murmur.conf
+
+ insinto /usr/share/murmur/
+ doins src/murmur/Murmur.ice
+
+ newinitd "${FILESDIR}"/murmur.initd-r2 murmur
+ newconfd "${FILESDIR}"/murmur.confd murmur
+
+ systemd_dounit scripts/${PN}.service
+ newtmpfiles "${FILESDIR}"/murmurd-dbus.tmpfiles "${PN}".conf
+
+ keepdir /var/lib/murmur /var/log/murmur
+ fowners -R murmur /var/lib/murmur /var/log/murmur
+ fperms 750 /var/lib/murmur /var/log/murmur
+
+ # Fix permissions on config file as it might contain passwords.
+ # (bug #559362)
+ fowners root:murmur ${etcdir}/murmur.ini
+ fperms 640 ${etcdir}/murmur.ini
+
+ doman man/murmurd.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ tmpfiles_process ${PN}.conf
+ readme.gentoo_print_elog
+}
diff --git a/net-voip/murmur/murmur-9999.ebuild b/net-voip/murmur/murmur-9999.ebuild
new file mode 100644
index 000000000000..13d53c0b08f9
--- /dev/null
+++ b/net-voip/murmur/murmur-9999.ebuild
@@ -0,0 +1,175 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit cmake flag-o-matic systemd readme.gentoo-r1 tmpfiles
+
+DESCRIPTION="Mumble is an open source, low-latency, high quality voice chat software"
+HOMEPAGE="https://wiki.mumble.info"
+if [[ "${PV}" == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/mumble-voip/mumble.git"
+ EGIT_SUBMODULES=( '-*' 3rdparty/FindPythonInterpreter 3rdparty/gsl 3rdparty/tracy )
+else
+ MY_PN="mumble"
+ if [[ "${PV}" == *_pre* ]] ; then
+ MY_P="${MY_PN}-${PV}"
+ SRC_URI="https://dev.gentoo.org/~polynomial-c/dist/${MY_P}.tar.xz"
+ S="${WORKDIR}/${MY_P}"
+ else
+ MY_PV="${PV/_/-}"
+ MY_P="${MY_PN}-${MY_PV}"
+ SRC_URI="https://github.com/mumble-voip/mumble/releases/download/${MY_PV}/${MY_P}.tar.gz
+ https://dl.mumble.info/${MY_P}.tar.gz"
+ S="${WORKDIR}/${MY_PN}-${PV/_*}.src"
+ fi
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="+dbus grpc +ice test zeroconf"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ acct-group/murmur
+ acct-user/murmur
+ >=dev-libs/openssl-1.0.0b:0=
+ >=dev-libs/protobuf-2.2.0:=
+ dev-qt/qtcore:5
+ dev-qt/qtnetwork:5
+ || (
+ dev-qt/qtsql:5[sqlite]
+ dev-qt/qtsql:5[mysql]
+ )
+ dev-qt/qtxml:5
+ sys-apps/lsb-release
+ >=sys-libs/libcap-2.15
+ dbus? ( dev-qt/qtdbus:5 )
+ grpc? ( net-libs/grpc )
+ ice? ( dev-libs/Ice:= )
+ zeroconf? ( net-dns/avahi[mdnsresponder-compat] )
+"
+
+DEPEND="${RDEPEND}
+ >=dev-libs/boost-1.41.0
+ dev-qt/qttest:5
+"
+BDEPEND="
+ acct-group/murmur
+ acct-user/murmur
+ virtual/pkgconfig
+"
+
+if [[ "${PV}" == *9999 ]] ; then
+ # Required for the mkini.sh script which calls perl multiple times
+ BDEPEND+="
+ dev-lang/perl
+ "
+fi
+
+DOC_CONTENTS="
+ Useful scripts are located in /usr/share/doc/${PF}/scripts.\n
+ Please execute:\n
+ murmurd -ini /etc/murmur/murmur.ini -supw <pw>\n
+ chown murmur:murmur /var/lib/murmur/murmur.sqlite\n
+ to set the build-in 'SuperUser' password before starting murmur.
+ Please restart dbus before starting murmur, or else dbus
+ registration will fail.
+"
+
+src_prepare() {
+ if [[ "${PV}" == *9999 ]] ; then
+ pushd scripts &>/dev/null || die
+ ./mkini.sh || die
+ popd &>/dev/null || die
+ fi
+
+ sed \
+ -e 's:mumble-server:murmur:g' \
+ -e 's:/var/run:/run:g' \
+ -i "${S}"/scripts/murmur.{conf,ini} || die
+
+ # Adjust systemd service file to our config location #689208
+ sed \
+ -e "s@/etc/${PN}\.ini@/etc/${PN}/${PN}.ini@" \
+ -e "s@murmurd@mumble-server@" \
+ -i scripts/${PN}.service || die
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ myuse() {
+ [[ -n "${1}" ]] || die "myconf: No use flag given."
+ use ${1} || echo "no-${1}"
+ }
+ local mycmakeargs=(
+ -DBUILD_TESTING="$(usex test)"
+ -Dclient="OFF"
+ -Ddbus="$(usex dbus)"
+ -Dg15="OFF"
+ -Dgrpc="$(usex grpc)"
+ -Dice="$(usex ice)"
+ -Doverlay="OFF"
+ -Dserver="ON"
+ -Dzeroconf="$(usex zeroconf)"
+ )
+ if [[ "${PV}" != 9999 ]] ; then
+ mycmakeargs+=( -DBUILD_NUMBER="$(ver_cut 3)" )
+ fi
+
+ # https://bugs.gentoo.org/832978
+ # fix tests (and possibly runtime issues) on arches with unsigned chars
+ append-cxxflags -fsigned-char
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ dodoc README.md
+
+ docinto scripts
+ dodoc -r scripts/server
+ docompress -x /usr/share/doc/${PF}/scripts
+
+ local etcdir="/etc/murmur"
+ insinto ${etcdir}
+ doins scripts/${PN}.ini
+
+ insinto /etc/logrotate.d/
+ newins "${FILESDIR}"/murmur.logrotate murmur
+
+ insinto /etc/dbus-1/system.d/
+ doins scripts/murmur.conf
+
+ insinto /usr/share/murmur/
+ doins src/murmur/Murmur.ice
+
+ newinitd "${FILESDIR}"/murmur.initd-r2 murmur
+ newconfd "${FILESDIR}"/murmur.confd murmur
+
+ systemd_dounit scripts/${PN}.service
+ newtmpfiles "${FILESDIR}"/murmurd-dbus.tmpfiles "${PN}".conf
+
+ keepdir /var/lib/murmur /var/log/murmur
+ fowners -R murmur /var/lib/murmur /var/log/murmur
+ fperms 750 /var/lib/murmur /var/log/murmur
+
+ # Fix permissions on config file as it might contain passwords.
+ # (bug #559362)
+ fowners root:murmur ${etcdir}/murmur.ini
+ fperms 640 ${etcdir}/murmur.ini
+
+ newman man/mumble-server.1 murmurd.1
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ tmpfiles_process ${PN}.conf
+ readme.gentoo_print_elog
+}
diff --git a/net-voip/umurmur/Manifest b/net-voip/umurmur/Manifest
new file mode 100644
index 000000000000..54d538c0a414
--- /dev/null
+++ b/net-voip/umurmur/Manifest
@@ -0,0 +1,13 @@
+AUX umurmur-0.2.20-openssl3.patch 246 BLAKE2B b14bf838f72d901f2a6f99b6e33447e5a7dd51c767a88f90842d5f5aa6495cd86793b3a5d7a8f03e067e4784e89aa8f4ceaf52cd3e70180f9f4884b6893e8733 SHA512 0a12c34c870c050f46790fb387bd6b5313f0c0cf98dd5232d960963a9c1b88d6314b69c96b6c148c9f6c8dc5bece2d2fc3fa4a221cd966a0f1c7efbc76978171
+AUX umurmur.conf 1637 BLAKE2B ba9519dc2a09512c3b8398009c1ee41a8d49f1a18de5800dd53ad38e927c21dd58790504b4434b394ec3fa1c35614f49c512db55bde01e2956f90564b6d96ba5 SHA512 563573c405013bdf9d76003d68eb9619064659dc1e1b8b1fde24c0e587a807202bf62efe7f227cc95ff8b6db68a2ace3f0f359cef74c1bf5f1582815dd623501
+AUX umurmurd.confd 64 BLAKE2B d98d616da50acabd055333c36699ab0dd060193fc4507528370b1b77d5c3335f61e0c0ab6cc28bb8530aa9876345bb9ff01bdb1db56f0d0e44b09ef7d6a12eff SHA512 4af070ab4d8f4a9a2d5b59b8be95cfb49c22faae809843d9c8ede954bdf39f1224bb31cc53e5cf0f771a2033dfe904890345a6031055c9e79fdd315447e54840
+AUX umurmurd.initd 458 BLAKE2B e1f8dc704fa6237edfcfbb936e9d1c679e0f1a57ec862ec7215c3f263de0582baf70a0b822a1712c2423d753dda9e2602ff404d11f2f0d02df02116cdfb3729d SHA512 d60c700bf0bb54c904faff658e09dc37a6cd79edb69e4aa54f46872f474c8f673a91ebe022a47dc0d6b4f624a86f70be99f661a1e80a672b04dff6af3328b28d
+AUX umurmurd.service 363 BLAKE2B 373b02c3d2d9f80e3b1a44dc98032f68310e8c5b82682efc1001cf130bef21f6f925f4b535d0d02209617c92b4d4a3dad4a7b459c8dbbcf6f97b050bab933de0 SHA512 3366dc2b35623daf4704e30bc6207cf795e31cb4c9cd0c7e19f64fa9d92da772fcc309e5799261b6c07c95cfeacd2d9b898ec4a4be7b5acc46efda7a98308913
+DIST umurmur-0.2.17.tar.gz 93786 BLAKE2B 92fc7d63dc0eed228c3fbcb0d18861cd49967f44378d980e856f8fb24fe7abc3429a4ca8e811eda6096727b76780724c909c46c04975b5edef70d848b7511618 SHA512 a496a51fd7815ad117f5aee17bb78cbd319c584ad60ab8aebbfd8ddf7b1760f443f2337bc74be1e0d5af17d3c3df2ae6c9060eca576cf1e6ed4c6cb0825e9c15
+DIST umurmur-0.2.19.tar.gz 93117 BLAKE2B 54d6fe6e67f51f24d6c9f0125fa330292004cd5df71791c40ece6aa7c2938bce98ca981e873a1e2b43598f99ea57c687963fd7cd8708400f5f2ce00ab11386eb SHA512 4a10c41d8396d6bd2b195578ff6a29e69a105f8830daf85141217f768cc2c4ea6204a2b3b65599d07d76c841090750db4ad6264c4e9d7e5afa7f1b4cf27bc768
+DIST umurmur-0.2.20.tar.gz 93152 BLAKE2B 7850d0f3a5c35db1f5ed2b2eea7725d288901eb7e49b9bf2f715963a102c6c6345ed90fd066d80a2666137918c73a58dd2c954321b69d0ce59f686e1c6d01e5a SHA512 0913f5ba84b30fec4ae6a1521c442ff8c48121bbbca5de9082e04e41b36434fadb5f81cb2ea0bd0a8c63f6e541d15eeda3637667d8cc7113d38935ded320cef4
+EBUILD umurmur-0.2.17-r4.ebuild 2458 BLAKE2B a32a7f267c1828fc28f0313239f0e5f0b376c17e9d45c436af9ce8017bccc7174cbbee2e429f707e671662fd0e271a8c2ff05ca86166176e5f72e3e3212154cf SHA512 0c82934b7179d35002fd60fc5ef81bce878a7ac43c671697a348ba161b545e781913599e792c2515936834e5ac35847659b09835f5ba5143dd5ac0aba099925a
+EBUILD umurmur-0.2.19.ebuild 2460 BLAKE2B f2166a099ab77ae50f6020f7214f0849534d19cb8137d0356711d74a4b2ca65550363efebe16b99bc7847ddffd2cd428a01faadfc32545c730a0bd7539a8bc74 SHA512 77e260c9b81fa2fdd8acb2c5d5ddd6aa18245853f00485163902055172f307da42304fa044ca0f0c5cecd21c4e5d3e3efd4ddf9e18d6ccdc991bd5264b53fa33
+EBUILD umurmur-0.2.20.ebuild 2524 BLAKE2B 62d098501b0363cea6fba3bbbb66baad7258fd440abe6d0b2b59c3f29f87ee979cd76188ce61e5e8d7be15a21a2842257c8cc7ea35ae43336e8082c96895a288 SHA512 117bee1f600a4533f4f56541b6bd5c1235c7749fbe8436de54a4eddb46abcbbb46b03f9e5353115aa06b177ae13ae4ca188e7bd31ed0ea49fdb2010db2ef28b0
+EBUILD umurmur-9999.ebuild 2460 BLAKE2B f2166a099ab77ae50f6020f7214f0849534d19cb8137d0356711d74a4b2ca65550363efebe16b99bc7847ddffd2cd428a01faadfc32545c730a0bd7539a8bc74 SHA512 77e260c9b81fa2fdd8acb2c5d5ddd6aa18245853f00485163902055172f307da42304fa044ca0f0c5cecd21c4e5d3e3efd4ddf9e18d6ccdc991bd5264b53fa33
+MISC metadata.xml 1008 BLAKE2B feba592603f9cb71e517192271e9379ae130c38fd5c8979571197ced233160e38a8fa2fb927989289a2be5ba3f2609b29c278195e392998c45aba3ad576d1363 SHA512 5ecfd76cf6be609fb5f41ddc48ddf1a5eaa3b6af0355c51be0457e87c79e66cc87666ca8f0b2eb8ca52a18047bedc25b25d978f6b69b1bb44cfcf7f8d8924943
diff --git a/net-voip/umurmur/files/umurmur-0.2.20-openssl3.patch b/net-voip/umurmur/files/umurmur-0.2.20-openssl3.patch
new file mode 100644
index 000000000000..ad7cc1177874
--- /dev/null
+++ b/net-voip/umurmur/files/umurmur-0.2.20-openssl3.patch
@@ -0,0 +1,11 @@
+--- umurmur-0.2.20/src/ssli_openssl.c
++++ umurmur-0.2.20/src/ssli_openssl.c
+@@ -142,8 +142,6 @@
+
+ Log_info("Generating new server certificate.");
+
+- CRYPTO_mem_ctrl(CRYPTO_MEM_CHECK_ON);
+-
+ x509 = X509_new();
+ if (!x509)
+ goto err_out;
diff --git a/net-voip/umurmur/files/umurmur.conf b/net-voip/umurmur/files/umurmur.conf
new file mode 100644
index 000000000000..cebcca28a583
--- /dev/null
+++ b/net-voip/umurmur/files/umurmur.conf
@@ -0,0 +1,58 @@
+# This configuration is based on the official example configuration. More information can be found
+# at http://code.google.com/p/umurmur/wiki/Configuring02x
+
+max_bandwidth = 48000;
+welcometext = "Welcome to uMurmur!";
+certificate = "/etc/umurmur/cert.crt";
+private_key = "/etc/umurmur/key.key";
+password = "";
+max_users = 10;
+
+# Specify port and/or address to bind to. Typically not needed.
+# Default is '*' for address and 64738 for port.
+# Can also be specified on the command line, which takes precedence if
+# both are specified.
+# bindport = 64738;
+# bindaddr = "192.168.1.1";
+
+# Specify this for privilege dropping. If username is specified but not
+# the groupname, the user's login group is used.
+username = "murmur";
+groupname = "murmur";
+
+# Root channel must always be defined first.
+# If a channel has a parent, the parent must be defined before the child channel(s).
+channels = ( {
+ name = "Root";
+ parent = "";
+ description = "The Root of all channels";
+ noenter = true;
+ },
+ {
+ name = "Lobby";
+ parent = "Root";
+ description = "Lobby channel";
+ },
+ {
+ name = "Red team";
+ parent = "Lobby";
+ description = "The Red team channel";
+ },
+ {
+ name = "Blue team";
+ parent = "Lobby";
+ description = "The Blue team channel";
+ }
+);
+# Channel links configuration.
+channel_links = ( {
+ source = "Lobby";
+ destination = "Red team";
+ },
+ {
+ source = "Lobby";
+ destination = "Blue team";
+ }
+);
+
+default_channel = "Lobby";
diff --git a/net-voip/umurmur/files/umurmurd.confd b/net-voip/umurmur/files/umurmurd.confd
new file mode 100644
index 000000000000..d83461ce725d
--- /dev/null
+++ b/net-voip/umurmur/files/umurmurd.confd
@@ -0,0 +1,3 @@
+# Additional flags to be passed to umurmurd
+UMURMURD_OPTS="-r"
+
diff --git a/net-voip/umurmur/files/umurmurd.initd b/net-voip/umurmur/files/umurmurd.initd
new file mode 100644
index 000000000000..d0dd5517d626
--- /dev/null
+++ b/net-voip/umurmur/files/umurmurd.initd
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+description="umurmurd - A minimalistic mumble server"
+pidfile="/run/umurmurd/umurmurd.pid"
+command="/usr/bin/umurmurd"
+command_args="-c /etc/umurmur/umurmur.conf -p ${pidfile} ${UMURMURD_OPTS}"
+start_stop_daemon_args="-p ${pidfile} -w 100"
+
+depend() {
+ need net
+ use logger
+}
+
+start_pre() {
+ checkpath -d -o murmur ${pidfile%/*}
+}
diff --git a/net-voip/umurmur/files/umurmurd.service b/net-voip/umurmur/files/umurmurd.service
new file mode 100644
index 000000000000..12ad2aec6459
--- /dev/null
+++ b/net-voip/umurmur/files/umurmurd.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=A minimalistic Mumble server
+After=network.target
+
+[Service]
+Type=simple
+User=murmur
+Group=murmur
+PIDFile=/run/umurmurd.pid
+ExecStartPre=/usr/bin/umurmurd -t -c /etc/umurmur/umurmur.conf
+ExecStart=/usr/bin/umurmurd -d -r -p /run/umurmurd.pid -c /etc/umurmur/umurmur.conf
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-voip/umurmur/metadata.xml b/net-voip/umurmur/metadata.xml
new file mode 100644
index 000000000000..f3ecd2642bfb
--- /dev/null
+++ b/net-voip/umurmur/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <!-- maintainer-needed -->
+ <longdescription lang="en">
+ uMurmur is a minimalistic Mumble server primarily targeted to
+ run on routers with an open OS like OpenWRT. The server part
+ of Mumble is called Murmur, hence the name uMurmur.
+ </longdescription>
+ <use>
+ <flag name="mbedtls">Use <pkg>net-libs/mbedtls</pkg> as TLS provider</flag>
+ <flag name="shm">Enable shared memory support</flag>
+ </use>
+ <upstream>
+ <maintainer status="active">
+ <email>fatbob.snack@gmail.com</email>
+ <name>Martin Johansson</name>
+ </maintainer>
+ <bugs-to>https://code.google.com/p/umurmur/issues/list</bugs-to>
+ <changelog>
+ https://code.google.com/p/umurmur/wiki/Changelog</changelog>
+ <doc lang="en">https://code.google.com/p/umurmur/w/list</doc>
+ <remote-id type="google-code">umurmur</remote-id>
+ <remote-id type="github">umurmur/umurmur</remote-id>
+ </upstream>
+</pkgmetadata>
diff --git a/net-voip/umurmur/umurmur-0.2.17-r4.ebuild b/net-voip/umurmur/umurmur-0.2.17-r4.ebuild
new file mode 100644
index 000000000000..c61a58654320
--- /dev/null
+++ b/net-voip/umurmur/umurmur-0.2.17-r4.ebuild
@@ -0,0 +1,111 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools systemd readme.gentoo-r1
+
+DESCRIPTION="Minimalistic Murmur (Mumble server)"
+HOMEPAGE="https://github.com/umurmur/umurmur"
+if [[ "${PV}" == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/umurmur/umurmur.git"
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/${PV/_}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 ~arm x86"
+fi
+LICENSE="BSD"
+SLOT="0"
+IUSE="gnutls mbedtls shm"
+
+# ssl-provider precendence: gnutls, mbedtls
+# and openssl if none specified
+DEPEND=">=dev-libs/protobuf-c-1.0.0_rc2:=
+ dev-libs/libconfig:=
+ gnutls? (
+ dev-libs/nettle:=
+ >=net-libs/gnutls-3.0.0:=
+ )
+ !gnutls? (
+ mbedtls? ( net-libs/mbedtls:= )
+ !mbedtls? ( dev-libs/openssl:0= )
+ )
+"
+
+RDEPEND="${DEPEND}
+ acct-group/murmur
+ acct-user/murmur
+"
+
+DOC_CONTENTS="
+ A configuration file has been installed at /etc/umurmur/umurmur.conf - you
+ may want to review it. See also\n
+ https://github.com/umurmur/umurmur/wiki/Configuration "
+
+S="${WORKDIR}/${P/_}"
+
+get_ssl_impl() {
+ local ssl_provider=()
+
+ use gnutls && ssl_provider+=( gnutls )
+ use mbedtls && ssl_provider+=( mbedtls )
+
+ if ! use gnutls && ! use mbedtls; then
+ ssl_provider+=( openssl )
+ fi
+ echo ${ssl_provider[@]}
+}
+
+pkg_pretend() {
+ local ssl_provider=( $(get_ssl_impl) )
+
+ if [[ ${#ssl_provider[@]} -gt 1 ]] ; then
+ ewarn "More than one ssl provider selected (${ssl_provider[@]})"
+ ewarn "defaulting to ${ssl_provider[0]}."
+ fi
+}
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local ssl_provider=( $(get_ssl_impl) )
+
+ local myeconfargs=(
+ --with-ssl="${ssl_provider[@]}"
+ $(use_enable shm shmapi)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ local confdir
+
+ emake DESTDIR="${D}" install
+
+ newinitd "${FILESDIR}"/umurmurd.initd umurmurd
+ newconfd "${FILESDIR}"/umurmurd.confd umurmurd
+ systemd_dounit "${FILESDIR}"/umurmurd.service
+
+ dodoc AUTHORS ChangeLog
+ newdoc README.md README
+
+ confdir="/etc/umurmur"
+ insinto "${confdir}"
+ doins "${FILESDIR}"/umurmur.conf
+
+ # Some permissions are adjusted as the config may contain a server
+ # password, and /etc/umurmur will typically contain the cert and the
+ # key used to sign it, which are read after priveleges are dropped.
+ fperms 0750 "${confdir}"
+ fowners -R root:murmur "${confdir}"
+ fperms 0640 "${confdir}"/umurmur.conf
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
diff --git a/net-voip/umurmur/umurmur-0.2.19.ebuild b/net-voip/umurmur/umurmur-0.2.19.ebuild
new file mode 100644
index 000000000000..68da6bed82ba
--- /dev/null
+++ b/net-voip/umurmur/umurmur-0.2.19.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools systemd readme.gentoo-r1
+
+DESCRIPTION="Minimalistic Murmur (Mumble server)"
+HOMEPAGE="https://github.com/umurmur/umurmur"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/umurmur/umurmur.git"
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/${PV/_}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+LICENSE="BSD"
+SLOT="0"
+IUSE="gnutls mbedtls shm"
+
+# ssl-provider precendence: gnutls, mbedtls and openssl if none specified
+DEPEND=">=dev-libs/protobuf-c-1.0.0_rc2:=
+ dev-libs/libconfig:=
+ gnutls? (
+ dev-libs/nettle:=
+ >=net-libs/gnutls-3.0.0:=
+ )
+ !gnutls? (
+ mbedtls? ( net-libs/mbedtls:= )
+ !mbedtls? ( dev-libs/openssl:0= )
+ )
+"
+
+RDEPEND="${DEPEND}
+ acct-group/murmur
+ acct-user/murmur
+"
+
+DOC_CONTENTS="
+ A configuration file has been installed at /etc/umurmur/umurmur.conf - you
+ may want to review it. See also\n
+ https://github.com/umurmur/umurmur/wiki/Configuration "
+
+S="${WORKDIR}/${P/_}"
+
+get_ssl_impl() {
+ local ssl_provider=()
+
+ use gnutls && ssl_provider+=( gnutls )
+ use mbedtls && ssl_provider+=( mbedtls )
+
+ if ! use gnutls && ! use mbedtls ; then
+ ssl_provider+=( openssl )
+ fi
+ echo ${ssl_provider[@]}
+}
+
+pkg_pretend() {
+ local ssl_provider=( $(get_ssl_impl) )
+
+ if [[ ${#ssl_provider[@]} -gt 1 ]] ; then
+ ewarn "More than one ssl provider selected (${ssl_provider[@]})"
+ ewarn "defaulting to ${ssl_provider[0]}."
+ fi
+}
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local ssl_provider=( $(get_ssl_impl) )
+
+ local myeconfargs=(
+ --with-ssl="${ssl_provider[0]}"
+ $(use_enable shm shmapi)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ local confdir
+
+ emake DESTDIR="${D}" install
+
+ newinitd "${FILESDIR}"/umurmurd.initd umurmurd
+ newconfd "${FILESDIR}"/umurmurd.confd umurmurd
+ systemd_dounit "${FILESDIR}"/umurmurd.service
+
+ dodoc AUTHORS ChangeLog
+ newdoc README.md README
+
+ confdir="/etc/umurmur"
+ insinto "${confdir}"
+ doins "${FILESDIR}"/umurmur.conf
+
+ # Some permissions are adjusted as the config may contain a server
+ # password, and /etc/umurmur will typically contain the cert and the
+ # key used to sign it, which are read after priveleges are dropped.
+ fperms 0750 "${confdir}"
+ fowners -R root:murmur "${confdir}"
+ fperms 0640 "${confdir}"/umurmur.conf
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
diff --git a/net-voip/umurmur/umurmur-0.2.20.ebuild b/net-voip/umurmur/umurmur-0.2.20.ebuild
new file mode 100644
index 000000000000..677e6fa4f97a
--- /dev/null
+++ b/net-voip/umurmur/umurmur-0.2.20.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools systemd readme.gentoo-r1
+
+DESCRIPTION="Minimalistic Murmur (Mumble server)"
+HOMEPAGE="https://github.com/umurmur/umurmur"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/umurmur/umurmur.git"
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/${PV/_}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+LICENSE="BSD"
+SLOT="0"
+IUSE="gnutls mbedtls shm"
+
+# ssl-provider precendence: gnutls, mbedtls and openssl if none specified
+DEPEND=">=dev-libs/protobuf-c-1.0.0_rc2:=
+ dev-libs/libconfig:=
+ gnutls? (
+ dev-libs/nettle:=
+ >=net-libs/gnutls-3.0.0:=
+ )
+ !gnutls? (
+ mbedtls? ( net-libs/mbedtls:= )
+ !mbedtls? ( dev-libs/openssl:0= )
+ )
+"
+
+RDEPEND="${DEPEND}
+ acct-group/murmur
+ acct-user/murmur
+"
+
+DOC_CONTENTS="
+ A configuration file has been installed at /etc/umurmur/umurmur.conf - you
+ may want to review it. See also\n
+ https://github.com/umurmur/umurmur/wiki/Configuration "
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.2.20-openssl3.patch" #806154
+)
+
+S="${WORKDIR}/${P/_}"
+
+get_ssl_impl() {
+ local ssl_provider=()
+
+ use gnutls && ssl_provider+=( gnutls )
+ use mbedtls && ssl_provider+=( mbedtls )
+
+ if ! use gnutls && ! use mbedtls ; then
+ ssl_provider+=( openssl )
+ fi
+ echo ${ssl_provider[@]}
+}
+
+pkg_pretend() {
+ local ssl_provider=( $(get_ssl_impl) )
+
+ if [[ ${#ssl_provider[@]} -gt 1 ]] ; then
+ ewarn "More than one ssl provider selected (${ssl_provider[@]})"
+ ewarn "defaulting to ${ssl_provider[0]}."
+ fi
+}
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local ssl_provider=( $(get_ssl_impl) )
+
+ local myeconfargs=(
+ --with-ssl="${ssl_provider[0]}"
+ $(use_enable shm shmapi)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ local confdir
+
+ emake DESTDIR="${D}" install
+
+ newinitd "${FILESDIR}"/umurmurd.initd umurmurd
+ newconfd "${FILESDIR}"/umurmurd.confd umurmurd
+ systemd_dounit "${FILESDIR}"/umurmurd.service
+
+ dodoc AUTHORS ChangeLog
+ newdoc README.md README
+
+ confdir="/etc/umurmur"
+ insinto "${confdir}"
+ doins "${FILESDIR}"/umurmur.conf
+
+ # Some permissions are adjusted as the config may contain a server
+ # password, and /etc/umurmur will typically contain the cert and the
+ # key used to sign it, which are read after priveleges are dropped.
+ fperms 0750 "${confdir}"
+ fowners -R root:murmur "${confdir}"
+ fperms 0640 "${confdir}"/umurmur.conf
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
diff --git a/net-voip/umurmur/umurmur-9999.ebuild b/net-voip/umurmur/umurmur-9999.ebuild
new file mode 100644
index 000000000000..68da6bed82ba
--- /dev/null
+++ b/net-voip/umurmur/umurmur-9999.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools systemd readme.gentoo-r1
+
+DESCRIPTION="Minimalistic Murmur (Mumble server)"
+HOMEPAGE="https://github.com/umurmur/umurmur"
+if [[ "${PV}" == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/umurmur/umurmur.git"
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/${PV/_}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+LICENSE="BSD"
+SLOT="0"
+IUSE="gnutls mbedtls shm"
+
+# ssl-provider precendence: gnutls, mbedtls and openssl if none specified
+DEPEND=">=dev-libs/protobuf-c-1.0.0_rc2:=
+ dev-libs/libconfig:=
+ gnutls? (
+ dev-libs/nettle:=
+ >=net-libs/gnutls-3.0.0:=
+ )
+ !gnutls? (
+ mbedtls? ( net-libs/mbedtls:= )
+ !mbedtls? ( dev-libs/openssl:0= )
+ )
+"
+
+RDEPEND="${DEPEND}
+ acct-group/murmur
+ acct-user/murmur
+"
+
+DOC_CONTENTS="
+ A configuration file has been installed at /etc/umurmur/umurmur.conf - you
+ may want to review it. See also\n
+ https://github.com/umurmur/umurmur/wiki/Configuration "
+
+S="${WORKDIR}/${P/_}"
+
+get_ssl_impl() {
+ local ssl_provider=()
+
+ use gnutls && ssl_provider+=( gnutls )
+ use mbedtls && ssl_provider+=( mbedtls )
+
+ if ! use gnutls && ! use mbedtls ; then
+ ssl_provider+=( openssl )
+ fi
+ echo ${ssl_provider[@]}
+}
+
+pkg_pretend() {
+ local ssl_provider=( $(get_ssl_impl) )
+
+ if [[ ${#ssl_provider[@]} -gt 1 ]] ; then
+ ewarn "More than one ssl provider selected (${ssl_provider[@]})"
+ ewarn "defaulting to ${ssl_provider[0]}."
+ fi
+}
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local ssl_provider=( $(get_ssl_impl) )
+
+ local myeconfargs=(
+ --with-ssl="${ssl_provider[0]}"
+ $(use_enable shm shmapi)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ local confdir
+
+ emake DESTDIR="${D}" install
+
+ newinitd "${FILESDIR}"/umurmurd.initd umurmurd
+ newconfd "${FILESDIR}"/umurmurd.confd umurmurd
+ systemd_dounit "${FILESDIR}"/umurmurd.service
+
+ dodoc AUTHORS ChangeLog
+ newdoc README.md README
+
+ confdir="/etc/umurmur"
+ insinto "${confdir}"
+ doins "${FILESDIR}"/umurmur.conf
+
+ # Some permissions are adjusted as the config may contain a server
+ # password, and /etc/umurmur will typically contain the cert and the
+ # key used to sign it, which are read after priveleges are dropped.
+ fperms 0750 "${confdir}"
+ fowners -R root:murmur "${confdir}"
+ fperms 0640 "${confdir}"/umurmur.conf
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}