community/mumble to 1.5.517-1

This commit is contained in:
Kevin Mihelich 2023-01-31 12:45:56 +00:00
parent 7a1c9094d0
commit 144037b54e
13 changed files with 223 additions and 174 deletions

View file

@ -7,127 +7,177 @@
# ALARM: Kevin Mihelich <kevin@archlinuxarm.org>
# - removed makedepend on lib32-gcc-libs
# NOTE: needs to be built using multilib for mumble-overlay!
pkgbase=mumble
pkgname=('mumble' 'murmur')
pkgver=1.4.287
pkgrel=5
pkgname=(mumble mumble-server)
pkgver=1.5.517
pkgrel=1
pkgdesc="An Open Source, low-latency, high quality voice chat software"
arch=('x86_64')
arch=(x86_64)
url="https://www.mumble.info/"
license=('BSD')
license=(BSD)
# shared depends
depends=('gcc-libs' 'glibc' 'openssl-1.1' 'qt5-base')
# shared makedepends
makedepends=('avahi' 'boost' 'cmake' 'poco' 'protobuf' 'python' 'qt5-tools' 'speech-dispatcher')
# mumble makedepends
makedepends+=('alsa-lib' 'hicolor-icon-theme' 'jack' 'libpulse' 'libsndfile'
'libspeechd' 'libx11' 'libxi' 'mesa' 'opus' 'qt5-svg' 'speex' 'xdg-utils')
# murmur makedepends
makedepends+=('grpc' 'libcap' 'zeroc-ice')
source=(
"https://github.com/mumble-voip/mumble/releases/download/v${pkgver}/mumble-${pkgver}.tar.gz"{,.sig}
"murmur.dbus.conf"
"murmur.service"
"murmur.sysusers"
"murmur.tmpfiles"
"${pkgname}-1.4.230-configuration.patch"
depends=(
gcc-libs
glibc
qt5-base
)
sha512sums=('34ed30c18257ba8deae6938009a90147c8bc3a0aca28e69bea7ec0262e8d2cdacb9a840fac7d3dd623a52ef8d5903ed5424b62b483af21d6df6aa9632eae9d82'
# shared makedepends
makedepends=(
avahi
boost
cmake
openssl
protobuf
python
qt5-tools
)
# mumble makedepends
makedepends+=(
alsa-lib
hicolor-icon-theme
jack
libpulse
libsndfile
libspeechd
libx11
libxi
mesa
nlohmann-json
opus
poco
qt5-svg
rnnoise
speech-dispatcher
speexdsp
xdg-utils
)
# mumble-server makedepends
makedepends+=(
libcap
systemd
zeroc-ice
)
checkdepends=(
xorg-server-xvfb
)
source=(
https://github.com/mumble-voip/mumble/releases/download/v$pkgver/$pkgbase-$pkgver.tar.gz{,.sig}
mumble-server.tmpfiles
$pkgbase-1.5.517-config_defaults.patch
$pkgbase-1.5.517-pkgconf.patch
)
sha512sums=('f64147aa392519d1a7ef538d4fa23eaba0e21474bc9155e2c9e82cff859ff93c455a9ac18aed6197513486ebfca36560bd6de51327555dc7efab884a6a601d9f'
'SKIP'
'97c7effdddec324e40195c36ef4927950a5de26d2ee2d268d89df6fb547207bbbe30292773316cae6f57ec9923244f205fb0edc377b798771ba7385e3c11d86a'
'a4d82a28e0e4277ca2f198285d164ae55e052a5f6b582ac1b4aa98409fea425c93e8f86f61878bd0b176ed33d307d16b877f34941f32e2147a38778a8554e25d'
'5af28d0c2b2b072cfbd500b5f63549e88a86cf3fc15e4d2df89e787c4d2bafdecbe078a518e0d1b25d82f9873cb06838ec1c9ebed625ffb7e8c80fcd942ebf74'
'411784e8e0dcf6c163780ae895ae1a6bdad0bb2dd2b128911c484ac3eff073d95c5791b625493a2b8296d24bd7e6ac72d3c42180817e48b29f0c6a8fd841807c'
'e35dee4ce1cca15747330ba21892064adec85feb9937a89aea95ccf2c668746075fbe1c343e26ba2ac26a9e36144fb0b3eb0f44d85e6d258040bcd3500818a31')
b2sums=('5fc89c184aa54ab8269870fd87b6c9ce271d77c05a6ecb2aa78eccf297ffb842a50a18a142ac628c1b287a2b5e6c0ae0dced3237242303840a4de05b7f3e7040'
'350575aaf26ac8b7dc567018defd59913da957983986017e82a92e53f2a6d21473d9c2566177abd7611d95858a723bcf7f8dad49e8ca18d18b9fa4e75fb15ca6'
'c12f6269c5745532031f09fba5b9e3118e6beaf387ae0aaba6ff8380a1452b47f9f0d1cae04472a5763b3da695e03467de152a98bf03c01ae59bd6d553ec7100'
'32a4ac43ba7fb2c9bee61609a6edf17d7dc26b27e13ab425ee12aaf25cf1071d99a35c3b045ea23dec1281725790c5ef0de3c9fb5e594073281877ecca70396d')
b2sums=('d61c8118423af6514ed98a899916516920fae790ce39bdbbc76c4b14a298cf6989e73e2a0f977634968e758ff1f77a03727671617e9c867728f57995ff0cfec2'
'SKIP'
'a416d071d9658fc3f3ea267d6ff24237317f5c05b59fe1578e5a4cb4911840896bf5e524a143f5c70a797da9f343312468720f03343b4b66bea20e94aa316cc2'
'4d8f84bccb7064e401f9d0ca2723b4a072a30e0eda0b458e22324f2c672c2684253776c441abdcccf29ab7d27887ffe8dc6394c08eb43ae9cf4498d5b00ca888'
'9909371a0d1c06d2aa00f161aebb19266aad0253b407dd01da5325f4f307678bba28a89596bd2ec97df5844068856c10bb4b10acad7bf170dd2853b3e11c48cd'
'999b2848c718f25a2d8257595194521e08d36d101906d76b137218f0a19f2451b7e1adc0c013e1f1c3448145b89a1e88f46cb1c9da27777737379227d3574d10'
'd77b81c5ac39561e3df087ad325e88909b083dad95a25c7106a941645354c87d07ea5d41eec5aa4a77a402cadbe8230a4a1c641d8414d11174e4b3254fc18647')
'476353608e794c431d9c79a54e11ad0442e3c96607b6492d3b2f5b589b96b120611e2e3dc1bb4f8e17c0911c238a9ca7b409277353fa08b9f690217f80d7dc4e'
'c607246691e9701f54b8d133db7d424a46ab94781178d172ae8a35df8ca505da59734ddae00789b93af316de3344d7e177a1a988e1438121e1e921ff59724f24'
'b3ea596e6603e0e0dbefdd90dea1dddd5609962e26594083c69bc28f69d306405f2ad7532d3d5360af0010ee9f06c7432089d1eca77a7ffa3df2bc7e76608106')
# See https://github.com/mumble-voip/mumble-gpg-signatures
validpgpkeys=(
'1EDEBE2A93CB97FA9903D52E25F63C66245DFC60' # Mumble Automatic Build Infrastructure 2022 <mumble-auto-build-2022@mumble.info>
'1EDEBE2A93CB97FA9903D52E25F63C66245DFC60' # Mumble Automatic Build Infrastructure 2022 <mumble-auto-build-2022@mumble.info>
'DA223B9603A9C7DD4691143E69F82AFF148DC0FF' # Mumble Automatic Build Infrastructure 2023 <mumble-auto-build-2023@mumble.info>
)
prepare() {
cd "${pkgbase}-${pkgver}.src"
# set default values in configuration file
patch -Np1 -i ../"${pkgname}-1.4.230-configuration.patch"
# add default configuration options
patch -Np1 -d $pkgbase-$pkgver -i ../$pkgbase-1.5.517-config_defaults.patch
# fix the use of pkgconf in cmake: https://github.com/mumble-voip/mumble/issues/6038
patch -Np1 -d $pkgbase-$pkgver -i ../$pkgbase-1.5.517-pkgconf.patch
}
build() {
# https://github.com/mumble-voip/mumble/pull/5352
export PKG_CONFIG_PATH=/usr/lib/openssl-1.1/pkgconfig
# upstream requires adding arbitrary build number specifically, as otherwise the version string is wrong:
# https://github.com/mumble-voip/mumble/issues/5538
local _build_number="$(cut -d '.' -f 3 <<< "$pkgver")"
local _default_options=(
local default_options=(
-D CMAKE_INSTALL_PREFIX=/usr
-D CMAKE_BUILD_TYPE=None
-D BUILD_NUMBER="$_build_number"
# upstream requires adding arbitrary build number specifically, as otherwise the version string is wrong:
# https://github.com/mumble-voip/mumble/issues/5538
-D BUILD_NUMBER="${pkgver/*./}"
-D tests=ON
-D warnings-as-errors=OFF
-S $pkgbase-$pkgver
-W no-dev
-S "${pkgbase}-${pkgver}.src"
)
local cmake_options_client=(
-D update=OFF
-D server=OFF
-B build-client
-D bundled-json=OFF
-D bundled-rnnoise=OFF
-D bundled-speex=OFF
)
local cmake_options_server=(
-D MUMBLE_INSTALL_ABS_SYSCONFDIR=/etc/mumble-server
-D CMAKE_INSTALL_SYSCONFDIR=/etc
-D client=OFF
-B build-server
)
cmake "${_default_options[@]}" \
-Dbundled-opus=OFF \
-Dbundled-speex=OFF \
-Dupdate=OFF \
-Dserver=OFF \
-B build-client
make VERBOSE=1 -C build-client
cmake "${default_options[@]}" "${cmake_options_server[@]}"
cmake --build build-server --verbose
cmake "${_default_options[@]}" \
-Dgrpc=ON \
-Dclient=OFF \
-B build-server
make VERBOSE=1 -C build-server
cmake "${default_options[@]}" "${cmake_options_client[@]}"
cmake --build build-client --verbose
}
check() {
xvfb-run ctest --test-dir build-client --output-on-failure
ctest --test-dir build-server --output-on-failure
}
package_mumble() {
pkgdesc+=" (client)"
# NOTE: avahi, jack, libpulse, opus is dlopen'ed
depends+=('avahi' 'hicolor-icon-theme' 'jack' 'libasound.so' 'libprotobuf.so'
'libpulse' 'libsndfile.so' 'libspeechd' 'libx11' 'libxi' 'opus' 'poco'
'qt5-svg' 'speex' 'xdg-utils')
# NOTE: jack, libpulse, and pipewire are dlopen'ed
depends+=(
alsa-lib libasound.so
avahi libdns_sd.so
hicolor-icon-theme
jack
protobuf libprotobuf.so
libpulse
libsndfile libsndfile.so
libspeechd
libx11
libxi
openssl libcrypto.so libssl.so
opus libopus.so
poco
qt5-svg
rnnoise
speexdsp libspeexdsp.so
xdg-utils
)
optdepends=(
'lib32-glibc: for mumble-overlay'
'espeak-ng: Text-to-speech support'
'speech-dispatcher: Text-to-speech support'
)
make DESTDIR="${pkgdir}" install -C build-client
install -vDm 644 "${pkgbase}-${pkgver}.src/LICENSE" -t "$pkgdir/usr/share/licenses/$pkgname"
DESTDIR="$pkgdir" cmake --install build-client
install -vDm 644 $pkgbase-$pkgver/LICENSE -t "$pkgdir/usr/share/licenses/$pkgname/"
}
package_murmur() {
package_mumble-server() {
pkgdesc+=" (server)"
# NOTE: avahi is dlopen'ed
depends+=('avahi' 'libcap.so' 'libdns_sd.so' 'libgrpc++.so' 'libprotobuf.so' 'zeroc-ice')
backup=('etc/murmur.ini')
install=murmur.install
make DESTDIR="${pkgdir}" install -C build-server
# renaming of the server component was not done in full capacity: https://github.com/mumble-voip/mumble/issues/5436
mv -v "${pkgdir}/usr/bin/"{mumble-server,murmurd}
mv -v "${pkgdir}/usr/share/man/man1/"{mumble-server,murmurd}.1
mv -v "${pkgdir}/usr/share/man/man1/"{mumble-server,murmur}-user-wrapper.1
(
cd "${pkgbase}-${pkgver}.src"
install -vDm 640 scripts/murmur.ini -t "${pkgdir}/etc"
install -vDm 644 README.md -t "${pkgdir}/usr/share/doc/${pkgname}"
install -vDm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}"
install -vDm 644 src/murmur/{Murmur.ice,MurmurRPC.proto} -t "${pkgdir}/usr/share/${pkgname}"
depends+=(
avahi libdns_sd.so
libcap libcap.so
openssl libcrypto.so libssl.so
protobuf libprotobuf.so
zeroc-ice
)
conflicts=('murmur<1.5')
replaces=('murmur<1.5')
backup=(etc/$pkgbase/$pkgname.ini)
install=mumble-server.install
install -vDm 644 murmur.dbus.conf "${pkgdir}/usr/share/dbus-1/system.d/murmur.conf"
install -vDm 644 murmur.service -t "${pkgdir}/usr/lib/systemd/system/"
install -vDm 644 murmur.sysusers "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf"
install -vDm 644 murmur.tmpfiles "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf"
DESTDIR="$pkgdir" cmake --install build-server
install -vDm 644 $pkgbase-$pkgver/LICENSE -t "$pkgdir/usr/share/licenses/$pkgname/"
# fix file mode: https://github.com/mumble-voip/mumble/issues/6039
chmod 640 "$pkgdir/etc/$pkgbase/$pkgname.ini"
install -vDm 644 $pkgname.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf"
}
# vim: sw=2:ts=2 et:

View file

@ -0,0 +1,10 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEYc+ZpRYJKwYBBAHaRw8BAQdAQ2CMVy22HgodygMg6PdMKN/k9mmgBnwk8PYh
tbFQ8H20T011bWJsZSBBdXRvbWF0aWMgQnVpbGQgSW5mcmFzdHJ1Y3R1cmUgMjAy
MiA8bXVtYmxlLWF1dG8tYnVpbGQtMjAyMkBtdW1ibGUuaW5mbz6IlgQTFggAPhYh
BB7eviqTy5f6mQPVLiX2PGYkXfxgBQJhz5mlAhsDBQkB4oUABQsJCAcCBhUKCQgL
AgQWAgMBAh4BAheAAAoJECX2PGYkXfxg9tQBAONPZDuPtEPvORzSCj+GSrJuUQs9
otoKM4Kaw95gicqeAP9gZPQiMEtLdaFSCTrHyX81ThlFc743TfV0rnQjStssAQ==
=sCgq
-----END PGP PUBLIC KEY BLOCK-----

View file

@ -0,0 +1,14 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEY7DR3hYJKwYBBAHaRw8BAQdA41ZNdehf8gazXKUb2MV28G+vwuhRn6amIZN2
bEsRKhW0T011bWJsZSBBdXRvbWF0aWMgQnVpbGQgSW5mcmFzdHJ1Y3R1cmUgMjAy
MyA8bXVtYmxlLWF1dG8tYnVpbGQtMjAyM0BtdW1ibGUuaW5mbz6IlgQTFggAPhYh
BNoiO5YDqcfdRpEUPmn4Kv8UjcD/BQJjsNHeAhsDBQkB4oUABQsJCAcCBhUKCQgL
AgQWAgMBAh4BAheAAAoJEGn4Kv8UjcD/FuMA/0MTw99n3cqNspeBvOkjzJQ6nTI5
BjGKOLQ8vzoZgl0IAP9ewWiYCr7mOmpOmf/ENwOdB3IJo2xsPTxo0t1B9+TfDbg4
BGOw0d4SCisGAQQBl1UBBQEBB0A/LUayu0DC2tZVBXSjvLJQCltQfKG9Yy5quqyx
ylM6HwMBCAeIfgQYFggAJhYhBNoiO5YDqcfdRpEUPmn4Kv8UjcD/BQJjsNHeAhsM
BQkB4oUAAAoJEGn4Kv8UjcD/o7AA/3DBsW4bF/UQhV6Q7OQZFv8jNPq5guONqXg6
rtl9vMuHAP9z6XgEI/743mKgHjGwoomCkBJ5rcIJH++cMVVexM52Dg==
=bpv4
-----END PGP PUBLIC KEY BLOCK-----

View file

@ -1,21 +0,0 @@
diff -ruN a/scripts/murmur.ini b/scripts/murmur.ini
--- a/scripts/murmur.ini 2022-01-18 02:00:00.334013700 +0100
+++ b/scripts/murmur.ini 2022-01-20 22:32:41.267250949 +0100
@@ -13,7 +13,7 @@
; Path to database. If blank, will search for
; murmur.sqlite in default locations or create it if not found.
-database=
+database=/var/db/murmur/murmur.sqlite
; Murmur defaults to using SQLite with its default rollback journal.
; In some situations, using SQLite's write-ahead log (WAL) can be
@@ -99,7 +99,7 @@
; logs to the file 'murmur.log'. If you leave this field blank
; on Unix-like systems, Murmur will force itself into foreground
; mode which logs to the console.
-;logfile=murmur.log
+logfile=
; If set, Murmur will write its process ID to this file
; when running in daemon mode (when the -fg flag is not

View file

@ -0,0 +1,21 @@
diff -ruN a/auxiliary_files/mumble-server.ini b/auxiliary_files/mumble-server.ini
--- a/auxiliary_files/mumble-server.ini 2023-01-18 07:54:18.355957000 +0100
+++ b/auxiliary_files/mumble-server.ini 2023-01-22 18:09:47.905232642 +0100
@@ -13,7 +13,7 @@
; Path to database. If blank, will search for
; mumble-server.sqlite in default locations or create it if not found.
-database=
+database=/var/lib/mumble-server/mumble-server.sqlite
; The server defaults to using SQLite with its default rollback journal.
; In some situations, using SQLite's write-ahead log (WAL) can be
@@ -83,7 +83,7 @@
; logs to the file 'mumble-server.log'. If you leave this field blank
; on Unix-like systems, the server will force itself into foreground
; mode which logs to the console.
-;logfile=mumble-server.log
+logfile=
; If set, the server will write its process ID to this file
; when running in daemon mode (when the -fg flag is not

View file

@ -0,0 +1,28 @@
diff -ruN a/auxiliary_files/CMakeLists.txt b/auxiliary_files/CMakeLists.txt
--- a/auxiliary_files/CMakeLists.txt 2023-01-18 07:54:18.355957000 +0100
+++ b/auxiliary_files/CMakeLists.txt 2023-01-22 00:35:54.387905181 +0100
@@ -64,22 +64,12 @@
file(COPY "config_files/mumble-server.conf" DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
if(UNIX AND NOT APPLE)
- get_pkgconf_variable(
- OUTPUT_VARIABLE SYSUSERS_DIR
- MODULE systemd
- VARIABLE_NAME sysusersdir
- QUIET
- )
+ pkg_get_variable(SYSUSERS_DIR systemd sysusersdir)
if(NOT SYSUSERS_DIR)
# Fallback value, in case it could not be fetched via pkg-config
set(SYSUSERS_DIR "${CMAKE_INSTALL_SYSCONFDIR}/sysconfig.d")
endif()
- get_pkgconf_variable(
- OUTPUT_VARIABLE SYSTEMD_SERVICE_DIR
- MODULE systemd
- VARIABLE_NAME systemd_system_unit_dir
- QUIET
- )
+ pkg_get_variable(SYSTEMD_SERVICE_DIR systemd systemd_system_unit_dir)
if(NOT SYSTEMD_SERVICE_DIR)
# Default to /etc/systemd/system - This is not where packages ought to install their service files (rather
# it's where an admin is supposed to add their system files), but this seems to be the most consistent

View file

@ -0,0 +1,12 @@
post_install() {
cat <<MSG
>>> This package replaces murmur!
Stop murmur.service, move /var/db/murmur/murmur.sqlite
to /var/lib/mumble-server/mumble-server.sqlite and
consolidate /etc/murmur.ini with /etc/mumble/mumble-server.ini.
When starting with a new database, create a superuser password
before starting mumble-server.service, by running the following
as the _mumble-server user:
mumble-server -ini /etc/mumble/mumble-server.ini -supw <password>
MSG
}

View file

@ -0,0 +1,2 @@
z /etc/mumble/mumble-server.ini 0640 root _mumble-server
d /var/lib/mumble-server 0750 _mumble-server _mumble-server -

View file

@ -1,22 +0,0 @@
<!-- vi: set ft=xml: -->
<!--
As described in http://mumble.sourceforge.net/DBus,
but with different username
-->
<!DOCTYPE busconfig PUBLIC
"-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<policy user="murmur">
<allow own="net.sourceforge.mumble.murmur"/>
</policy>
<policy user="root">
<allow own="net.sourceforge.mumble.murmur"/>
</policy>
<policy context="default">
<allow send_destination="net.sourceforge.mumble.murmur"/>
<allow receive_sender="net.sourceforge.mumble.murmur"/>
</policy>
</busconfig>

View file

@ -1,6 +0,0 @@
post_install() {
echo "You might have to reload dbus before launching murmur:"
echo " systemctl reload dbus"
echo "Don't forget to set the superuser password:"
echo " murmurd -ini /etc/murmur.ini -supw <your-password>"
}

View file

@ -1,36 +0,0 @@
[Unit]
Description=Mumble Daemon
Documentation=man:murmurd(1)
After=network.target
Wants=network-online.target
[Service]
AmbientCapabilities=CAP_NET_BIND_SERVICE
CapabilityBoundingSet=CAP_NET_BIND_SERVICE
ExecStart=/usr/bin/murmurd -ini /etc/murmur.ini -fg
Group=murmur
LockPersonality=yes
MemoryDenyWriteExecute=yes
NoNewPrivileges=yes
PrivateDevices=true
PrivateTmp=true
ProtectClock=yes
ProtectControlGroups=yes
ProtectHome=true
ProtectHostname=yes
ProtectKernelLogs=yes
ProtectKernelModules=yes
ProtectKernelTunables=yes
ProtectSystem=full
RestrictAddressFamilies=~AF_PACKET AF_NETLINK
RestrictNamespaces=yes
RestrictSUIDSGID=yes
RestrictRealtime=yes
Restart=always
SystemCallArchitectures=native
SystemCallFilter=@system-service
Type=simple
User=murmur
[Install]
WantedBy=multi-user.target

View file

@ -1 +0,0 @@
u murmur 122 "Murmur User" /var/db/murmur

View file

@ -1,2 +0,0 @@
z /etc/murmur.ini 0640 root murmur
d /var/db/murmur 0750 murmur murmur -