Date: Thursday, January 20, 2022 @ 23:51:00 Author: dvzrv Revision: 1111600
upgpkg: mumble 1.4.230-1: Upgrade to 1.4.230. Use new upstream PGP key 1EDEBE2A93CB97FA9903D52E25F63C66245DFC60, see https://github.com/mumble-voip/mumble-gpg-signatures/issues/2#issuecomment-1017781349 Switch to cmake as build system. Disable use of bundled speex and opus. Add poco as new dependency for mumble. Use package dependencies wherever mumble/murmur dlopen() a given library. Turn murmur configuration modifications into patch: Unset logfile to run in foreground and log to stdout by default and set default sqlite db location. Rename mumble-server back to murmur as the renaming process is not finished: https://github.com/mumble-voip/mumble/issues/5436 Harden murmur.service and run it as the murmur user/ group by default. Added: mumble/trunk/mumble-1.4.230-configuration.patch Modified: mumble/trunk/PKGBUILD mumble/trunk/murmur.service Deleted: mumble/trunk/0001-Added-DBus-calls-to-activate-and-deactivate-push-to-talk.patch ---------------------------------------------------------------------+ 0001-Added-DBus-calls-to-activate-and-deactivate-push-to-talk.patch | 42 -- PKGBUILD | 164 ++++------ mumble-1.4.230-configuration.patch | 21 + murmur.service | 28 + 4 files changed, 125 insertions(+), 130 deletions(-) Deleted: 0001-Added-DBus-calls-to-activate-and-deactivate-push-to-talk.patch =================================================================== --- 0001-Added-DBus-calls-to-activate-and-deactivate-push-to-talk.patch 2022-01-20 23:36:56 UTC (rev 1111599) +++ 0001-Added-DBus-calls-to-activate-and-deactivate-push-to-talk.patch 2022-01-20 23:51:00 UTC (rev 1111600) @@ -1,42 +0,0 @@ -From 03dbea56f650bba4f1aa0c54d02b6e8c3639d04f Mon Sep 17 00:00:00 2001 -From: Robby Zampino <[email protected]> -Date: Mon, 22 Apr 2019 22:04:36 -0600 -Subject: [PATCH] Added DBus calls to activate and deactivate push to talk - ---- - src/mumble/DBus.cpp | 8 ++++++++ - src/mumble/DBus.h | 2 ++ - 2 files changed, 10 insertions(+) - -diff --git a/src/mumble/DBus.cpp b/src/mumble/DBus.cpp -index 6fcde04b..5260e1b2 100644 ---- a/src/mumble/DBus.cpp -+++ b/src/mumble/DBus.cpp -@@ -97,3 +97,11 @@ bool MumbleDBus::isSelfMuted() { - bool MumbleDBus::isSelfDeaf() { - return g.s.bDeaf; - } -+ -+void MumbleDBus::startTalking() { -+ g.mw->on_PushToTalk_triggered(true, QVariant()); -+} -+ -+void MumbleDBus::stopTalking () { -+ g.mw->on_PushToTalk_triggered(false, QVariant()); -+} -diff --git a/src/mumble/DBus.h b/src/mumble/DBus.h -index 1505017c..bd28e5f0 100644 ---- a/src/mumble/DBus.h -+++ b/src/mumble/DBus.h -@@ -28,6 +28,8 @@ class MumbleDBus : public QDBusAbstractAdaptor { - void setSelfDeaf(bool deafen); - bool isSelfMuted(); - bool isSelfDeaf(); -+ void startTalking(); -+ void stopTalking(); - }; - - #endif --- -2.26.2 - Modified: PKGBUILD =================================================================== --- PKGBUILD 2022-01-20 23:36:56 UTC (rev 1111599) +++ PKGBUILD 2022-01-20 23:51:00 UTC (rev 1111600) @@ -6,8 +6,8 @@ pkgbase=mumble pkgname=('mumble' 'murmur') -pkgver=1.3.4 -pkgrel=12 +pkgver=1.4.230 +pkgrel=1 pkgdesc="An Open Source, low-latency, high quality voice chat software" arch=('x86_64') url="https://www.mumble.info/" @@ -15,115 +15,109 @@ # shared depends depends=('gcc-libs' 'glibc' 'lsb-release' 'openssl' 'qt5-base') # shared makedepends -makedepends=('avahi' 'boost' 'protobuf' 'python' 'qt5-tools') +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/${pkgver}/mumble-${pkgver}.tar.gz"{,.sig} - "0001-Added-DBus-calls-to-activate-and-deactivate-push-to-talk.patch" - "murmur.dbus.conf" - "murmur.service" - "murmur.sysusers" - "murmur.tmpfiles") -sha512sums=('e2dde5aad30d1a931e7acd8d7db0b8c785d3a268d0b8cf5626fa03953a51bcadb719c6682c440d02524e83beee13d73d8f5bb3fdf98ab1c82d3ecf824cc25f68' +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" +) +sha512sums=('6cffc7a95d88b33876f4093b99266468210f5c14f190fbd2fbe4991bef91a567e55296e7c8c6cc99e19c054853211085cc3cc08109e367e6776afb70766b3a53' 'SKIP' - 'ca751eb688e9de88064e2e11f155b4c69a55c9464fcd839ad8ce834af7e444a5683be62700fe7e6e7a60a5de37c0dc48575bb81d633607974e0f41d05b6a51be' '97c7effdddec324e40195c36ef4927950a5de26d2ee2d268d89df6fb547207bbbe30292773316cae6f57ec9923244f205fb0edc377b798771ba7385e3c11d86a' - '2059eeac32cc078168a2ea56fe3034df69814516303adeffb8062c7b90a88177a536e6a6742196ee90370084d4e536f825b1744f8bed2bb704159a8a8bccb606' + 'd080821eda9fc8eb49eb6536e333de7fff1be44ccf501ada086f684c96faf5da25aad1ff15465524f928e65b89c3c5b032167ff1a3d5971e269d4d1b093a1d62' '5af28d0c2b2b072cfbd500b5f63549e88a86cf3fc15e4d2df89e787c4d2bafdecbe078a518e0d1b25d82f9873cb06838ec1c9ebed625ffb7e8c80fcd942ebf74' - '411784e8e0dcf6c163780ae895ae1a6bdad0bb2dd2b128911c484ac3eff073d95c5791b625493a2b8296d24bd7e6ac72d3c42180817e48b29f0c6a8fd841807c') -b2sums=('bcde3fd859ec4faea06f996cd4c583af7c0b8409cca79cb05ef8ba7fcdeac9e49ed1d07a4131225dd582da7610190d4006abc731fd4276b2288e02e8c18effb6' + '411784e8e0dcf6c163780ae895ae1a6bdad0bb2dd2b128911c484ac3eff073d95c5791b625493a2b8296d24bd7e6ac72d3c42180817e48b29f0c6a8fd841807c' + 'e35dee4ce1cca15747330ba21892064adec85feb9937a89aea95ccf2c668746075fbe1c343e26ba2ac26a9e36144fb0b3eb0f44d85e6d258040bcd3500818a31') +b2sums=('da433f3c15d7e45dfac0c8a78c9dbe86ba8d5cd078d2d87fd4d90718968fc9e5928c3c5c5ba2e40a8a54d02a646c5fc6a7ee2fff4b71dfa411d74f395b097c26' 'SKIP' - 'cb8d25c0e6e46a5d85c61b04586293180bf1804296aa338c8c67e05817fec41965eb46e44dab2f4c5bec24e29e08a8f6eb645500c7b6c0d63ce31f2f09c75250' 'a416d071d9658fc3f3ea267d6ff24237317f5c05b59fe1578e5a4cb4911840896bf5e524a143f5c70a797da9f343312468720f03343b4b66bea20e94aa316cc2' - 'd3ff1099c98ccb01cb96608c9ce328b654fe8f6c1922cdb602223ba66267655b569b7113ad24820e37989448695b874872279d49f94d44ab569a228cf545498f' + '00d452eb3a8892e7b818083365ba6785ea82adf948caa4b93dcbb814e867b8207251455c1df8c0af67a85048270c5d736fde595e30cfd6ee858661862f97227c' '9909371a0d1c06d2aa00f161aebb19266aad0253b407dd01da5325f4f307678bba28a89596bd2ec97df5844068856c10bb4b10acad7bf170dd2853b3e11c48cd' - '999b2848c718f25a2d8257595194521e08d36d101906d76b137218f0a19f2451b7e1adc0c013e1f1c3448145b89a1e88f46cb1c9da27777737379227d3574d10') + '999b2848c718f25a2d8257595194521e08d36d101906d76b137218f0a19f2451b7e1adc0c013e1f1c3448145b89a1e88f46cb1c9da27777737379227d3574d10' + 'd77b81c5ac39561e3df087ad325e88909b083dad95a25c7106a941645354c87d07ea5d41eec5aa4a77a402cadbe8230a4a1c641d8414d11174e4b3254fc18647') # See https://github.com/mumble-voip/mumble-gpg-signatures -validpgpkeys=('6A24D225AAE02DD6352C3D269F179B6BF48ADF25') # Mumble Automatic Build Infrastructure 2021 <[email protected]> +validpgpkeys=( +'1EDEBE2A93CB97FA9903D52E25F63C66245DFC60' # Mumble Automatic Build Infrastructure 2022 <[email protected]> +) prepare() { - cd "${pkgbase}-${pkgver}" - # set default configuration for murmur - sed -e "1i; vi:ft=cfg" \ - -e "s|database=|database=/var/db/murmur/murmur.sqlite|" \ - -e "s|;logfile=murmur.log|logfile=|" \ - -e "s|;uname=|uname=murmur|" \ - -i scripts/murmur.ini - - patch -Np1 -i "$srcdir"/0001-Added-DBus-calls-to-activate-and-deactivate-push-to-talk.patch + cd "${pkgbase}-${pkgver}.src" + patch -Np1 -i ../"${pkgname}-1.4.230-configuration.patch" } build() { - cd "$pkgname-$pkgver" - # build mumble - qmake-qt5 main.pro \ - CONFIG+="no-bundled-opus no-bundled-speex no-g15 no-xevie no-server \ - no-embed-qt-translations no-update packaged bundled-celt" \ - DEFINES+="PLUGIN_PATH=/usr/lib/mumble" \ - INCLUDEPATH+="/usr/include/speech-dispatcher" - make release - # build murmur - qmake-qt5 main.pro CONFIG+="no-client grpc" - make release + cmake -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=None \ + -Dwarnings-as-errors=OFF \ + -Dbundled-opus=OFF \ + -Dbundled-speex=OFF \ + -Dupdate=OFF \ + -Dserver=OFF \ + -Wno-dev \ + -B build-client \ + -S "${pkgbase}-${pkgver}.src" + make VERBOSE=1 -C build-client + + cmake -DCMAKE_INSTALL_PREFIX=/usr \ + -DCMAKE_BUILD_TYPE=None \ + -Dwarnings-as-errors=OFF \ + -Dbundled-opus=OFF \ + -Dbundled-speex=OFF \ + -Dupdate=OFF \ + -Dclient=OFF \ + -Wno-dev \ + -B build-server \ + -S "${pkgbase}-${pkgver}.src" + make VERBOSE=1 -C build-server } package_mumble() { pkgdesc+=" (client)" - # NOTE: opus is dlopen'ed - depends+=('hicolor-icon-theme' 'libasound.so' 'libdns_sd.so' 'libjack.so' - 'libprotobuf.so' 'libpulse.so' 'libsndfile.so' 'libspeechd' 'libx11' 'libxi' - 'opus' 'qt5-svg' 'speex' 'xdg-utils') - optdepends=('speech-dispatcher: Text-to-speech support' - 'espeak-ng: Text-to-speech support') + # 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') + optdepends=( + 'lib32-glibc: for mumble-overlay' + 'espeak-ng: Text-to-speech support' + 'speech-dispatcher: Text-to-speech support' + ) - cd "$pkgbase-$pkgver" - # mumble has no install target: https://github.com/mumble-voip/mumble/issues/1029 - # binaries and scripts - install -vDm 755 release/mumble -t "$pkgdir/usr/bin" - install -vDm 755 scripts/mumble-overlay -t "$pkgdir/usr/bin/" - # (vendored) libs - install -vdm 755 "$pkgdir/usr/lib/mumble/" - local _lib - for _lib in release/*.so*; do - if [ -L "$_lib" ]; then - cp -vP "$_lib" "$pkgdir/usr/lib/mumble/" - else - install -vDm 755 "$_lib" -t "$pkgdir/usr/lib/mumble/" - fi - done - install -vDm 755 release/plugins/*.so -t "$pkgdir/usr/lib/mumble/" - # XDG desktop integration - install -vDm 644 scripts/mumble.desktop -t "$pkgdir/usr/share/applications" - # AppStream metadata - install -vDm 644 scripts/mumble.appdata.xml -t "$pkgdir/usr/share/metainfo" - # man page - install -vDm 644 "man/${pkgname}"*.1 -t "$pkgdir/usr/share/man/man1/" - # XDG desktop icons - install -vDm 644 icons/mumble.svg -t "$pkgdir/usr/share/icons/hicolor/scalable/apps/" - # license - install -vDm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname" + make DESTDIR="${pkgdir}" install -C build-client + install -vDm 644 "${pkgbase}-${pkgver}.src/LICENSE" -t "$pkgdir/usr/share/licenses/$pkgname" } package_murmur() { pkgdesc+=" (server)" - depends+=('grpc' 'libcap.so' 'libdns_sd.so' 'libprotobuf.so' 'zeroc-ice') - backup=("etc/murmur.ini") - install="murmur.install" + # NOTE: avahi is dlopen'ed + depends+=('avahi' 'grpc' 'libcap.so' 'libdns_sd.so' 'libprotobuf.so' 'zeroc-ice') + backup=('etc/murmur.ini') + install=murmur.install - cd "${pkgbase}-${pkgver}" - # murmur has no install target: https://github.com/mumble-voip/mumble/issues/1029 - install -vDm 755 release/murmurd -t "${pkgdir}"/usr/bin - install -vDm 640 scripts/murmur.ini -t "${pkgdir}"/etc - install -vDm 644 "${srcdir}"/murmur.dbus.conf "${pkgdir}"/usr/share/dbus-1/system.d/murmur.conf - install -vDm 644 README -t "${pkgdir}/usr/share/doc/${pkgname}" - install -vDm 644 man/murmur*.1 -t "${pkgdir}/usr/share/man/man1/" - install -vDm 644 "${srcdir}"/murmur.service -t "${pkgdir}/usr/lib/systemd/system/" - install -vDm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" - install -vDm 644 "${srcdir}"/murmur.sysusers "${pkgdir}/usr/lib/sysusers.d/${pkgname}.conf" - install -vDm 644 "${srcdir}"/murmur.tmpfiles "${pkgdir}/usr/lib/tmpfiles.d/${pkgname}.conf" - install -vDm 644 src/murmur/{Murmur.ice,MurmurRPC.proto} -t "${pkgdir}/usr/share/${pkgname}" + 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} + + ( + 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 man/murmur*.1 -t "${pkgdir}/usr/share/man/man1/" + install -vDm 644 LICENSE -t "${pkgdir}/usr/share/licenses/${pkgname}" + install -vDm 644 src/murmur/{Murmur.ice,MurmurRPC.proto} -t "${pkgdir}/usr/share/${pkgname}" + ) + + 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" } # vim: sw=2:ts=2 et: Added: mumble-1.4.230-configuration.patch =================================================================== --- mumble-1.4.230-configuration.patch (rev 0) +++ mumble-1.4.230-configuration.patch 2022-01-20 23:51:00 UTC (rev 1111600) @@ -0,0 +1,21 @@ +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 Modified: murmur.service =================================================================== --- murmur.service 2022-01-20 23:36:56 UTC (rev 1111599) +++ murmur.service 2022-01-20 23:51:00 UTC (rev 1111600) @@ -1,15 +1,37 @@ [Unit] Description=Mumble Daemon +Documentation=man:murmurd(1) After=network.target +Wants=network-online.target [Service] -Type=simple +AmbientCapabilities=CAP_NET_BIND_SERVICE +CapabilityBoundingSet=CAP_NET_BIND_SERVICE ExecStart=/usr/bin/murmurd -ini /etc/murmur.ini -fg -Restart=always +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 -ProtectHome=true +RestrictAddressFamilies=~AF_PACKET AF_NETLINK +RestrictNamespaces=yes +RestrictSUIDSGID=yes +RestrictRealtime=yes +Restart=always +SystemCallArchitectures=native +SystemCallFilter=@system-service +SystemCallFilter=~@resources @privileged +Type=simple +User=murmur [Install] WantedBy=multi-user.target
