03032d9889
mumble 1.2.13 OBS-URL: https://build.opensuse.org/request/show/353089 OBS-URL: https://build.opensuse.org/package/show/games:tools/mumble?expand=0&rev=79
457 lines
14 KiB
RPMSpec
457 lines
14 KiB
RPMSpec
#
|
|
# spec file for package mumble
|
|
#
|
|
# Copyright (c) 2016 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_without 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
|
|
Version: 1.2.13%{?snapshot:_%{snapshot}}
|
|
Release: 0
|
|
Summary: Voice Communication Client for Gamers
|
|
License: BSD-3-Clause
|
|
Group: Productivity/Multimedia/Sound/Utilities
|
|
Url: http://mumble.sourceforge.net/
|
|
Source2: mumble-server.init
|
|
Source3: murmur.apparmor
|
|
# http://mumble.info/gpg/gpg.txt
|
|
Source4: https://raw.githubusercontent.com/mumble-voip/mumble-gpg-signatures/05e43a6c04d9c58bd0cd0cf95a99bf5b46f1e12d/mumble-auto-build-2016.asc#/%{name}.keyring
|
|
Source5: mumble-server.service
|
|
Source6: baselibs.conf
|
|
Patch0: mumble-1.2.2-buildcompare.diff
|
|
# PATCH-FIX-UPSTREAM mumble-1.2.11-desktop_fix.diff -- https://github.com/mumble-voip/mumble/pull/1960
|
|
Patch1: mumble-1.2.11-desktop_fix.diff
|
|
BuildRequires: boost-devel
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: libcap-devel
|
|
BuildRequires: libogg-devel
|
|
BuildRequires: libsndfile-devel
|
|
BuildRequires: protobuf-devel
|
|
Requires: lsb-release
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
%if %{with bonjour}
|
|
%if 0%{?suse_version}
|
|
BuildRequires: avahi-compat-mDNSResponder-devel
|
|
%else
|
|
BuildRequires: avahi-compat-libdns_sd-devel
|
|
%endif
|
|
%endif
|
|
%if %{with system_celt}
|
|
BuildRequires: libcelt-devel
|
|
Requires: libcelt0 > 0.7.0
|
|
%endif
|
|
%if %{with system_speex}
|
|
BuildRequires: speex-devel
|
|
BuildRequires: pkgconfig(speexdsp)
|
|
%endif
|
|
%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
|
|
%if 0%{!?snapshot:1}
|
|
Source: https://github.com/mumble-voip/mumble/releases/download/%{version}/%{name}-%{version}.tar.gz
|
|
Source1: https://github.com/mumble-voip/mumble/releases/download/%{version}/%{name}-%{version}.tar.gz.sig
|
|
%endif
|
|
%if 0%{?suse_version}
|
|
Requires: qt-sql-sqlite
|
|
%else
|
|
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
|
|
Requires(pre): %{_sbindir}/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
|
|
%patch0 -p1
|
|
%patch1 -p1
|
|
%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 %{_bindir}/qmake-qt4 qmake
|
|
ln -s %{_bindir}/lrelease-qt4 lrelease
|
|
ln -s %{_bindir}/lupdate-qt4 lupdate
|
|
export PATH=$PATH:$PWD
|
|
%endif
|
|
%if 0%{?mandriva_version} > 2006
|
|
export PATH=%{_libexecdir}/qt4/bin:$PATH
|
|
export QTDIR=%{_libexecdir}/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 %{_libexecdir}/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
|
|
#
|
|
### XXX: hack for incomplete dependencies
|
|
make %{?_smp_mflags} qmake
|
|
%if 0
|
|
# that translation stuff is just broken
|
|
# copy the available ones manually
|
|
%if 0%{?suse_version}
|
|
cp %{_datadir}/qt4/translations/qt_*.qm src/mumble
|
|
# 10.3 doesn't have that one
|
|
touch src/mumble/qt_pl.qm
|
|
%endif
|
|
make %{?_smp_mflags} -C src/mumble mumble_en.qm
|
|
%if !0%{?mandriva_version}
|
|
make %{?_smp_mflags} -C src/mumble qt_de.qm
|
|
%endif
|
|
#
|
|
%endif
|
|
# Include is broken for openSUSE, so fix it.
|
|
sed -i "s,<libspeechd.h>,<speech-dispatcher/libspeechd.h>," 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
|
|
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}%{_libexecdir}/tmpfiles.d
|
|
cat >> %{buildroot}%{_libexecdir}/tmpfiles.d/mumble-server.conf <<EOF
|
|
d %{_localstatedir}/run/mumble-server 0755 mumble-server mumble-server -
|
|
EOF
|
|
#
|
|
install -D -m 0644 %{SOURCE5} %{buildroot}%{_unitdir}/mumble-server.service
|
|
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcmumble-server
|
|
%else
|
|
install -D -m 0755 %{SOURCE2} %{buildroot}%{_initddir}/mumble-server
|
|
ln -s %{_initddir}/mumble-server %{buildroot}%{_sbindir}/rcmumble-server
|
|
%endif
|
|
install -D -m 0644 %{SOURCE3} %{buildroot}%{_sysconfdir}/apparmor.d/usr.sbin.murmurd
|
|
%if 0%{?suse_version} < 1220
|
|
sed -i -e 's,%{_bindir}/grep,/bin/grep,;s,%{_bindir}/sed,/bin/sed,' %{buildroot}%{_sysconfdir}/apparmor.d/usr.sbin.murmurd
|
|
%endif
|
|
install -d -m 0755 %{buildroot}%{_bindir}
|
|
# can be launched as user too but apparmor profile doesn't make
|
|
# sense in that case. So use link to avoid the profile.
|
|
ln -s %{_sbindir}/murmurd %{buildroot}%{_bindir}/murmurd
|
|
install -D -m 0644 scripts/murmur.conf %{buildroot}%{_sysconfdir}/dbus-1/system.d/mumble-server.conf
|
|
install -D -m 0644 scripts/murmur.ini %{buildroot}%{_sysconfdir}/mumble-server.ini
|
|
# fix up config file
|
|
sed -i -e 's/^dbus=session/dbus=system/' \
|
|
-e 's/#uname=/uname=mumble-server/' \
|
|
-e 's@#pidfile=@pidfile=%{_localstatedir}/run/mumble-server/mumble-server.pid@' \
|
|
-e 's@#logfile=@logfile=%{_localstatedir}/log/mumble-server/@' \
|
|
%{buildroot}%{_sysconfdir}/mumble-server.ini
|
|
install -D -m 0755 scripts/murmur-user-wrapper %{buildroot}%{_bindir}/murmur-user-wrapper
|
|
sed -i -e '/^SYSDIR=/s@=.*@=%{_docdir}/%{name}/scripts@' %{buildroot}%{_bindir}/murmur-user-wrapper
|
|
for i in log lib run; do
|
|
install -d -m755 %{buildroot}%{_localstatedir}/$i/mumble-server
|
|
done
|
|
#
|
|
install -d %{buildroot}/%{_datadir}/applications
|
|
%if 0%{?suse_version}
|
|
sed 's/^Categories.*/Categories=X-SuSE-Core-Game;/' \
|
|
< scripts/mumble.desktop \
|
|
> %{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 || \
|
|
%{_sbindir}/useradd -r -d %{_localstatedir}/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 %{_libexecdir}/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 %{_libexecdir}/tmpfiles.d
|
|
%{_libexecdir}/tmpfiles.d/mumble-server.conf
|
|
%{_unitdir}/mumble-server.service
|
|
%else
|
|
%{_initddir}/mumble-server
|
|
%endif
|
|
%{_sbindir}/rcmumble-server
|
|
%dir %{_sysconfdir}/apparmor.d
|
|
%config %{_sysconfdir}/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) %{_localstatedir}/lib/mumble-server
|
|
%dir %{_localstatedir}/log/mumble-server
|
|
|
|
%changelog
|