# # spec file for package mumble # # Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %if 0%{?suse_version} > 1100 %bcond_without pulseaudio %else %if 0%{?fedora_version} > 9 %bcond_without pulseaudio %else %bcond_with pulseaudio %endif %endif %if 0%{?fedora_version} > 11 %bcond_without ice %else %bcond_with ice %endif %if 0%{?suse_version} && 0%{?suse_version} < 1230 %bcond_with systemd %else %bcond_without systemd %if 0%{?sles_version} %bcond_with speechd %else %bcond_without speechd %endif %endif %bcond_with mumble11x %bcond_with bonjour # mumble must be able to talk to other clients which may use # differnt versions of celt. Since each celt release is # incompatible to each other mumble bundles some specific # versions. %bcond_with system_celt %bcond_without system_speex Name: mumble BuildRequires: protobuf-devel %if %{with bonjour} %if 0%{?suse_version} %if 0%{?suse_version} > 1010 BuildRequires: avahi-compat-mDNSResponder-devel %endif %else BuildRequires: avahi-compat-libdns_sd-devel %endif %endif %if %{with system_celt} BuildRequires: libcelt-devel Requires: libcelt0 > 0.7.0 %endif BuildRequires: libcap-devel BuildRequires: libogg-devel BuildRequires: libsndfile-devel %if %{with system_speex} BuildRequires: speex-devel BuildRequires: pkgconfig(speexdsp) %endif BuildRequires: boost-devel BuildRequires: gcc-c++ %if 0%{?suse_version} BuildRequires: alsa-devel BuildRequires: libqt4-devel BuildRequires: pkg-config BuildRequires: update-desktop-files %if 0%{?suse_version} > 1020 BuildRequires: libopenssl-devel %else BuildRequires: openssl-devel %endif %endif %if 0%{?fedora_version} BuildRequires: alsa-lib-devel BuildRequires: libXevie-devel BuildRequires: openssl-devel BuildRequires: pkgconfig BuildRequires: qt4-devel %endif %if %{with ice} BuildRequires: ice-devel %endif %if 0%{?mandriva_version} BuildRequires: -alsa-plugins BuildRequires: alsa-lib-devel BuildRequires: libxevie-devel BuildRequires: libxi-devel BuildRequires: openssl-devel BuildRequires: pkgconfig BuildRequires: qt4-devel BuildRequires: qt4-linguist %endif %if %{with pulseaudio} BuildRequires: pulseaudio-devel %endif %if %{with speechd} BuildRequires: libspeechd-devel %endif Version: 1.2.9%{?snapshot:_%snapshot} Release: 1.1 %if 0%{!?snapshot:1} Source: http://downloads.sourceforge.net/project/mumble/Mumble/%{version}/mumble-%{version}.tar.gz Source1: http://downloads.sourceforge.net/project/mumble/Mumble/%{version}/mumble-%{version}.tar.gz.sig %endif Source2: mumble-server.init Source3: murmur.apparmor # http://mumble.info/gpg/gpg.txt Source4: %{name}.keyring Source5: mumble-server.service Source6: baselibs.conf Patch50: mumble-1.2.2-buildcompare.diff # hack, no clue about glx so no idea to fix this properly Patch99: mumble-1.1.4-sle10glx.diff BuildRoot: %{_tmppath}/%{name}-%{version}-build Url: http://mumble.sourceforge.net/ Summary: Voice Communication Client for Gamers License: BSD-3-Clause Group: Productivity/Multimedia/Sound/Utilities Requires: lsb-release %if 0%{?suse_version} Requires: qt-sql-sqlite %if 0%{?suse_version} == 1030 #XXX: qt4 bug on 10.3 (bnc#370942) Requires: libqt4 > 4.3.1-23 %endif # 10.3 %if 0%{?suse_version} == 1100 # the version shipped on 11.0 is insufficient Requires: libspeex > 1.1.99.3 %endif # 11.0 %endif # suse_version %if 0%{?fedora_version} Requires: qt4-sqlite %endif %if 0%{?suse_version} > 1010 %ifarch x86_64 Recommends: %{name}-32bit Conflicts: %{name}-32bit < %{version} %endif %ifarch ppc Recommends: %{name}-64bit Conflicts: %{name}-64bit < %{version} %endif %endif # %if 0%{?snapshot:1} Conflicts: mumble < %version Provides: mumble = %version # %endif # %description Low-latency, high-quality voice communication for gamers. Includes game linking, so voice from other players comes from the direction of their characters, and has echo cancellation so the sound from your loudspeakers won't be audible to other players. %package server Summary: Voice Communication Server for Gamers Group: Productivity/Multimedia/Sound/Utilities Requires: lsb-release Requires: qt-sql-sqlite PreReq: /usr/sbin/useradd %if 0%{?snapshot:1} Conflicts: mumble-server < %version Provides: mumble-server = %version %endif %if %{with systemd} %{?systemd_requires} %endif %description server Low-latency, high-quality voice communication for gamers. Includes game linking, so voice from other players comes from the direction of their characters, and has echo cancellation so the sound from your loudspeakers won't be audible to other players. %prep %setup -q %patch50 -p1 %if 0%{?suse_version} && 0%{?suse_version} < 1020 %patch99 -p1 %endif %if !%{with system_celt} %if 0%{?snapshot:1} tar -xzf %SOURCE50 tar -xzf %SOURCE51 for v in 0.7.0 0.11.0; do rmdir celt-$v-src mv celt-$v celt-$v-src done %endif %endif # %if 0%{?mandriva_version} #XXX: dirty hack. QT_REQUIRE_VERSION doesn't work with -Wformat-security. should be fixed qt really sed -i -e '/QT_REQUIRE_VERSION/d' src/mumble/main.cpp src/mumble11x/main.cpp %endif # %build %if 0%{?fedora_version} ln -s /usr/bin/qmake-qt4 qmake ln -s /usr/bin/lrelease-qt4 lrelease ln -s /usr/bin/lupdate-qt4 lupdate export PATH=$PATH:$PWD %endif %if 0%{?mandriva_version} > 2006 export PATH=/usr/lib/qt4/bin:$PATH export QTDIR=%{_prefix}/lib/qt4/ %endif # # %if 0 # for not having to wait for compile when testing packaging stuff.. mkdir release touch release/mumble release/murmurd release/libmumble.so.1.1.1 %else %if 0%{?mandriva_version} # HACK: mandriva forgot to package qt translations if [ ! -e /usr/lib/qt4/translations/qt_de.qm ]; then sed -i -e '/QMAKE_EXTRA_TARGETS/s/copytrans//;/PRE_TARGETDEPS/s/qt_de\.qm//' src/mumble/mumble.pro sed -i -e '/qt_.*\.qm/d' src/mumble/mumble.qrc fi %endif # # temporary hack, remove! sed -i -e '/QMAKE_CFLAGS/s/-Woverloaded-virtual -Wold-style-cast//' compiler.pri qmake \ QMAKE_CFLAGS_RELEASE="%{optflags} -Wall -fno-strict-aliasing" \ QMAKE_CXXFLAGS_RELEASE="%{optflags} -Wall -fno-strict-aliasing" \ DEFINES*=NO_UPDATE_CHECK \ DEFINES*=MUMBLE_VERSION=%version \ DEFINES*=PLUGIN_PATH=%{_libdir}/mumble/plugins \ CONFIG*=packaged \ %if 0%{?suse_version} DEFINES*=NO_SYSTEM_CA_OVERRIDE \ %endif CONFIG*=no-g15 \ CONFIG*=no-embed-qt-translations \ %if !%{with speechd} CONFIG*=no-speechd \ %endif %if !%{with ice} CONFIG*=no-ice \ %endif %if %{with system_celt} CONFIG*=no-bundled-celt \ %endif %if %{with system_speex} CONFIG*=no-bundled-speex \ %endif %if !%{with mumble11x} CONFIG*=no-11x \ %endif %if !%{with bonjour} CONFIG*=no-bonjour \ %endif %if !%{with pulseaudio} CONFIG*=no-pulseaudio \ %endif %if 0%{?suse_version} == 1110 CONFIG*=no-xinput2 \ %endif CONFIG*=no-crash-report \ -recursive \ CONFIG*=no-client # ### XXX: hack for incomplete dependencies make qmake %if 0 # that translation stuff is just broken # copy the available ones manually %if 0%{?suse_version} cp /usr/share/qt4/translations/qt_*.qm src/mumble # 10.3 doesn't have that one touch src/mumble/qt_pl.qm %endif make -C src/mumble mumble_en.qm %if !0%{?mandriva_version} make -C src/mumble qt_de.qm %endif # %endif # Include is broken for openSUSE, so fix it. sed -i "s,,," src/mumble/TextToSpeech_unix.cpp ### # # deps for *.pb.cc are broken and fail for high -j so generate # them manually first #for i in mumble murmur; do for i in murmur; do make -C src/$i -f Makefile.Release compiler_pb_make_all done make %{?_smp_mflags} %endif %install ## client #install -d -m 0755 "%{buildroot}%{_bindir}" ## hack to make loading libs from applicationDirPath work #install -D -m 0755 release/mumble %{buildroot}%{_libdir}/mumble/mumble #ln -s "%{_libdir}/mumble/mumble" "%{buildroot}%{_bindir}/mumble" ## #install -d -m 0755 "%{buildroot}%{_libdir}/mumble/plugins" #install -m 0755 release/plugins/*.so "%{buildroot}%{_libdir}/mumble/plugins" #install -m 755 scripts/mumble-overlay "%{buildroot}%{_bindir}/mumble-overlay" #install -d -m 0755 "%{buildroot}%{_mandir}/man1" #install -m 0644 man/*.1 "%{buildroot}%{_mandir}/man1" ## #install -D -m 0644 icons/mumble.xpm "%{buildroot}%{_datadir}/pixmaps/mumble.xpm" #install -D -m 0644 icons/mumble.svg "%{buildroot}%{_datadir}/icons/hicolor/scalable/apps/mumble.svg" ## #install -d -m0755 "%{buildroot}%{_libdir}/mumble" #install -m0755 release/libmumble.so.*.*.* "%{buildroot}%{_libdir}/mumble" #/sbin/ldconfig -n "%{buildroot}%{_libdir}/mumble" ## do this after ldconfig as we don't need the links #%if !%{with system_celt} #install -m 644 release/libcelt0.so.0.*.* "%{buildroot}%{_libdir}/mumble" #%endif # %if %{with mumble11x} install -D -m 0755 release/mumble11x %{buildroot}%{_bindir}/mumble11x %else # XXX /bin/rm -f "%{buildroot}%{_mandir}"/man1/mumble11x* %endif # # server install -D -m 0755 release/murmurd "%{buildroot}%{_sbindir}/murmurd" %if %{with systemd} mkdir -p %buildroot/usr/lib/tmpfiles.d cat >> %buildroot/usr/lib/tmpfiles.d/mumble-server.conf < %buildroot/%_datadir/applications/mumble.desktop #%suse_update_desktop_file mumble %else install -m 644 scripts/mumble.desktop %buildroot/%_datadir/applications/mumble.desktop %endif %if %{with mumble11x} sed -e '/^Name=/s/$/ 1.1.x/;/^Exec=/s/$/11x/' \ < %buildroot/%_datadir/applications/mumble.desktop \ > %buildroot/%_datadir/applications/mumble11x.desktop %endif mkdir -p %{buildroot}%{_docdir}/%{name} cp -a scripts LICENSE README README.Linux %{buildroot}%{_docdir}/%{name} # %pre server getent group mumble-server >/dev/null || groupadd -r mumble-server || : getent passwd mumble-server >/dev/null || \ /usr/sbin/useradd -r -d /var/lib/mumble-server -s /bin/false -c "Mumble VoIP Server" -g mumble-server mumble-server 2> /dev/null || : %if %{with systemd} %service_add_pre mumble-server.service %endif %preun server %if %{with systemd} %service_del_preun mumble-server.service %else %stop_on_removal mumble-server %endif %post server %if %{with systemd} systemd-tmpfiles --create /usr/lib/tmpfiles.d/mumble-server.conf || true %service_add_post mumble-server.service %else %fillup_and_insserv mumble-server %endif %postun server %if %{with systemd} %service_del_postun mumble-server.service %else %restart_on_update mumble-server %insserv_cleanup %endif %files %defattr(-, root, root) %exclude %{_docdir}/%{name}/scripts/murmur.ini %doc %{_docdir}/%{name} #%{_bindir}/mumble #%{_bindir}/mumble-overlay #%{_mandir}/man1/mumble-overlay.* #%{_mandir}/man1/mumble.* %if %{with mumble11x} %{_bindir}/mumble11x %{_mandir}/man1/mumble11x* %endif #%dir %{_datadir}/icons/hicolor #%dir %{_datadir}/icons/hicolor/* #%dir %{_datadir}/icons/hicolor/*/apps #%{_datadir}/icons/hicolor/*/apps/mumble.* #%{_datadir}/pixmaps/* %{_datadir}/applications/* #%{_libdir}/mumble %files server %defattr(-,root,root) %doc %{_docdir}/%{name}/scripts/murmur.ini %config %{_sysconfdir}/dbus-1/system.d/mumble-server.conf %config(noreplace) %{_sysconfdir}/mumble-server.ini %if %{with systemd} %dir /usr/lib/tmpfiles.d /usr/lib/tmpfiles.d/mumble-server.conf %{_unitdir}/mumble-server.service %else /etc/init.d/mumble-server %endif %{_sbindir}/rcmumble-server %dir /etc/apparmor.d %config /etc/apparmor.d/usr.sbin.murmurd %{_sbindir}/murmurd %{_bindir}/murmurd %{_bindir}/murmur-user-wrapper #%{_mandir}/man1/murmurd.* #%{_mandir}/man1/murmur-user-wrapper.* %dir %attr(-,mumble-server,mumble-server) /var/lib/mumble-server %dir /var/log/mumble-server %changelog * Thu Jun 18 2015 mailaender@opensuse.org - update to 1.2.9 maintenance release - remove redundant clean section - add missing service_add_pre macro - gpg key has changed * Wed Mar 18 2015 rpm@fthiessen.de - Added speech-dispatcher support for openSUSE (Text-To-Speech) * Mon Mar 16 2015 dimstar@opensuse.org - Add pkgconfig(speexdsp) BuildRequires: its presence is checked for by the build system. * Thu Feb 5 2015 lnussel@suse.de - remove gpg-offline from BuildRequires, now done by source validator automatically * Fri Nov 21 2014 lnussel@suse.de - fix murmur-user-wrapper (bnc#906416) * Sat Aug 9 2014 mailaender@opensuse.org - update to 1.2.8 + A PulseAudio issue that could cause the Mumble client to crash on launch has been fixed. + Various source-level issues that made the Mumble build fail when built with Clang has been fixed. * Tue Jul 29 2014 mrueckert@suse.de - fix build for older distros like SLE 11 - disable xinput2 support on sle 11 - add a new bcond for systemd and use that throughout the spec file for guarding systemd usage instead of spreading out the if suse_version conditional all over the place. - some systemd pieces were also done on none systemd distros. move those into the systemd blocks. * Sat Jun 14 2014 mailaender@opensuse.org - update to 1.2.7, minor bugfix * Thu May 15 2014 lnussel@suse.de - new bugfix release 1.2.6 fixes security issues (CVE-2014-3756, bnc#877971, CVE-2014-3755, bnc#877969) * Wed Mar 26 2014 lnussel@suse.de - enable rc link also for systemd * Thu Feb 6 2014 lnussel@suse.de - new version 1.2.5 fixes security issues (CVE-2014-0044, CVE-2014-0045, bnc#862527) * Sat Jan 11 2014 adler_187@yahoo.com - remove syslog.target, since it no longer exists in recent systemd versions (>202) and causes the service to fail to start (bnc#855478) * Thu Aug 1 2013 lnussel@suse.de - clean up old macros * Thu Jun 6 2013 pascal.bleser@opensuse.org - update to 1.2.4: http://mumble.sourceforge.net/1.2.4 Obsoleted patches: 0001-fix-build-error-with-capability.h.diff 0001-fix-user-switching.diff 0001-open-log-file-early-so-log-dir-can-be-root-owned.diff 0001-if-service-name-is-empty-don-t-pass-an-empty-string.diff 0001-remove-CAP_NET_ADMIN.diff 0001-fix-bonjour-support-using-avahi-compat-lib.diff mumble-1.2.3-nohardcodedcas.diff 0001-Explicitly-remove-file-permissions-for-settings-and-D.diff - systemd service file * Wed Nov 28 2012 sbrabec@suse.cz - Verify GPG signature. * Wed Nov 7 2012 opensuse@cboltz.de - install apparmor profile without x permissions * Wed Nov 7 2012 lnussel@suse.de - require lsb-release (bnc#785659) * Mon Jun 25 2012 lnussel@suse.de - allow reading /etc/ssl/openssl.cnf in apparmor profile (bnc#768692) - fix path to sed and grep due to usr move in 12.2 * Mon Feb 20 2012 lnussel@suse.de - remove read permissions for other users on local sqlite database as it may contain passwords (bnc#747833, CVE-2012-0863) * Mon Feb 13 2012 lnussel@suse.de - don't add built-in CA certificates (bnc#660784) * Wed Jul 6 2011 aj@suse.de - Use /usr/lib/tmpfiles.d instead of /etc/tmpfiles.d. * Sat Jun 11 2011 lnussel@suse.de - install mumble in libdir and put a symlink in bindir to make loading libs from applicationDirPath work. * Mon Apr 11 2011 lnussel@suse.de - fix bonjour support * Sun Apr 3 2011 lnussel@suse.de - fix plugin path * Thu Mar 24 2011 lnussel@suse.de - add apparmor profile * Wed Mar 23 2011 lnussel@suse.de - fix bonjour registration * Tue Mar 8 2011 lnussel@suse.de - change log dir owner to root - clean up init script * Mon Feb 21 2011 lnussel@suse.de - avoid duplicate libcelt libs * Mon Feb 21 2011 lnussel@suse.de - new version 1.2.3 - Improved Voice Activity Detection - Customizable Overlay with FPS counter - Recording - Priority speaker - Updated CELT Codec to version 0.11.0 * Thu Jan 27 2011 lnussel@suse.de - change license tag to BSD3c (bnc#667547) * Thu Dec 23 2010 lnussel@suse.de - fix build on sle11sp1 * Wed Dec 15 2010 lnussel@suse.de - fix some rpmlint warnings * Fri Jul 16 2010 lnussel@suse.de - fix crash with long user names (CVE-2010-2490) * Fri Apr 23 2010 lnussel@suse.de - actually enable pulseaudio * Wed Feb 10 2010 lnussel@suse.de - new version 1.2.2 * new user information dialog * new toolbar * Improved connect speed to large servers with lots of users and comments (needs updated server) through use of local caching of content * Servers using trusted certificates are now highlighted in green throughout the GUI. * CELT version bump; possible quality improvements as a result, on certain configurations * LOTRO, L4D2, and ArmA2 plugins * Replaced user-textures with avatars to make overlay more useful * Better overlay system on Win32 using the pipe method * Numerous GUI improvements, including consolidating and reorganizing the main window menus * Logitech G15 fixes and improvements * Made friend and server window icons skinnable (emblem-favorite.svg, etc, see Skinning) * server side database upgrade bug (only occured when updating from 1.1.8 directly to 1.2.1) * Bonjour LAN server discovery and resolving works again * G15 activation problems * memory leak on certain configurations * Wed Jan 13 2010 lnussel@suse.de - libcelt must be in /usr/lib/mumble rather than /usr/lib/mumble/plugins * Sun Jan 10 2010 lnussel@suse.de - enable ice for fedora 12 * Sun Jan 10 2010 lnussel@suse.de - add patch to fix 1.1.8 -> 1.2.1 server migration * Sat Jan 9 2010 lnussel@suse.de - new version 1.2.0 - add init script and user for server * Sat Dec 12 2009 lnussel@suse.de - fix certificate wizard page order for Qt 4.4 * Fri Dec 11 2009 lnussel@suse.de - new version 1.2.0 * Tue Jul 28 2009 lnussel@suse.de - fix gcc warning in overlay_gl that causes build failure in Factory * Mon Mar 30 2009 lnussel@suse.de - force use of bundled speex on 11.0 to fix build * Fri Mar 27 2009 lnussel@suse.de - new version 1.1.8 * Tue Feb 24 2009 lnussel@suse.de - mark server config as %%config * Mon Feb 23 2009 lnussel@suse.de - new version 1.1.7 * Sun Jan 25 2009 lnussel@suse.de - filter glibc private symbols - cleanup * Sat Jan 17 2009 lnussel@suse.de - add experimental patch to not use mice for shortcuts * Fri Sep 19 2008 lnussel@suse.de - new version 1.1.6 * Fri Sep 5 2008 lnussel@suse.de - enable pulseaudio on openSUSE - change requirement for 10.3 qt4 bug workaround * Sat Jun 7 2008 anschneider@suse.de - support openSUSE 10.2 * Tue May 13 2008 lnussel@suse.de - new version 1.1.4 * now with link plugin * Wed Mar 19 2008 lnussel@suse.de - split off server package * Fri Mar 14 2008 lnussel@suse.de - initial package version 1.1.3