pulseaudio/pulseaudio.spec

528 lines
20 KiB
RPMSpec

#
# spec file for package pulseaudio (Version 0.9.15)
#
# Copyright (c) 2009 SUSE LINUX Products 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/
#
# norootforbuild
Name: pulseaudio
%define drvver 0.9.15
Summary: A Networked Sound Server
Version: 0.9.15
Release: 5
License: GPL v2 or later ; LGPL v2.1 or later
Group: System/Sound Daemons
Source: %{name}-%{version}.tar.bz2
Source2: setup-pulseaudio
# PATCH-FIX-UPSTREAM pulseaudio-bnc480113-default-sink.patch bnc#480113 sreeves@novell.com
Patch1: pulseaudio-bnc480113-default-sink.patch
# PATCH-FIX-OPENSUSE pulseaudio-work-with-old-alsa.patch
Patch2: pulseaudio-work-with-old-alsa.patch
# PATCH-FIX-UPSTREAM pulseaudio-am111.patch automake 1.11 support coolo@novell.com
Patch0: pulseaudio-am111.patch
# These 28 patches are backported from upstream git. Drop them when we move to 0.9.16
Patch3: 0001-alsa-allow-configuration-of-fallback-device-strings.patch
Patch4: 0002-util-if-NULL-is-passed-to-pa_path_get_filename-ju.patch
Patch5: 0003-alsa-don-t-hit-an-assert-when-invalid-module-argume.patch
Patch6: 0004-alsa-fix-wording-we-are-speaking-of-card-profiles.patch
Patch7: 0005-alsa-initialize-buffer-size-before-number-of-period.patch
Patch8: 0006-conf-remove-obsolete-module-idle-time-directive-fro.patch
Patch9: 0007-core-make-sure-soft-mute-status-stays-in-sync-with.patch
Patch10: 0008-endian-fix-LE-BE-order-for-24-bit-accessor-function.patch
Patch11: 0009-log-print-file-name-only-when-we-have-it.patch
Patch12: 0010-man-document-24bit-sample-types-in-man-page.patch
Patch13: 0011-man-document-log-related-daemon.conf-options.patch
Patch14: 0012-man-document-that-tsched-doesn-t-use-fragment-setti.patch
Patch15: 0013-mutex-when-we-fail-to-fill-in-mutex-into-static-mut.patch
Patch16: 0014-oss-don-t-deadlock-when-we-try-to-resume-an-OSS-dev.patch
Patch17: 0015-simple-protocol-don-t-hit-an-assert-when-we-call-co.patch
Patch18: 0016-idxset-add-enumeration-macro-PA_IDXSET_FOREACH.patch
Patch19: 0017-rescue-streams-when-one-stream-move-fails-try-to-co.patch
Patch20: 0018-sample-correctly-pass-s24-32-formats.patch
Patch21: 0019-sample-util-fix-iteration-loop-when-adjusting-volum.patch
Patch22: 0020-sample-util-properly-allocate-silence-block-for-s24.patch
Patch23: 0021-sconv-fix-a-few-minor-conversion-issues.patch
Patch24: 0022-alsa-be-a-bit-more-verbose-when-a-hwparam-call-fail.patch
Patch25: 0023-rescue-make-we-don-t-end-up-in-an-endless-loop-when.patch
Patch26: 0024-core-introduce-pa_-sink-source-_set_fixed_latency.patch
Patch27: 0025-core-cache-requested-latency-only-when-we-are-runni.patch
Patch28: 0026-sample-fix-build-on-BE-archs.patch
Patch29: 0027-alsa-properly-convert-return-values-of-snd_strerror.patch
Patch30: 0028-alsa-remove-debug-code.patch
Url: http://pulseaudio.org
BuildRoot: %{_tmppath}/%{name}-%{version}-build
BuildRequires: PolicyKit-devel
BuildRequires: alsa-devel
BuildRequires: bluez-devel
BuildRequires: doxygen
BuildRequires: gconf2-devel
BuildRequires: gdbm-devel
BuildRequires: glib2-devel
BuildRequires: gtk2-devel
BuildRequires: hal-devel
BuildRequires: intltool
BuildRequires: jack-devel
BuildRequires: libatomic-ops-devel
BuildRequires: libavahi-devel
BuildRequires: liboil-devel
BuildRequires: libopenssl-devel
BuildRequires: libsamplerate-devel
BuildRequires: libsndfile-devel
BuildRequires: libtool
BuildRequires: lirc-devel
BuildRequires: libudev-devel
BuildRequires: speex-devel
BuildRequires: tcpd-devel
BuildRequires: update-desktop-files
BuildRequires: xorg-x11-devel
PreReq: pwdutils
Recommends: alsa-plugins-pulse
Requires: %{name}-lang = %{version}
Obsoletes: libpulsecore9 <= 0.9.14
Obsoletes: libpulsecore7 <= 0.9.12
%description
pulseaudio is a networked sound server for Linux and other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
%package esound-compat
License: GPL v2 or later ; LGPL v2.1 or later
Summary: ESOUND compatibility for PulseAudio
Group: System/Sound Daemons
Requires: %{name} = %{version}
Provides: esound-daemon = 0.2.41
Obsoletes: esound-daemon <= 0.2.38
%description esound-compat
pulseaudio is a networked sound server for Linux and other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
This package provides the compatibility layer for drop-in replacement
of ESOUND.
%package module-lirc
License: GPL v2 or later ; LGPL v2.1 or later
Summary: LIRC module for PulseAudio
Group: System/Sound Daemons
Requires: %{name} = %{version}
%description module-lirc
pulseaudio is a networked sound server for Linux and other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
%package module-x11
License: GPL v2 or later ; LGPL v2.1 or later
Summary: X11 module for PulseAudio
Group: System/Sound Daemons
Requires: %{name} = %{version}
%description module-x11
pulseaudio is a networked sound server for Linux and other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
%package module-zeroconf
License: GPL v2 or later ; LGPL v2.1 or later
Summary: Zeroconf module for PulseAudio
Group: System/Sound Daemons
Requires: %{name} = %{version}
%description module-zeroconf
pulseaudio is a networked sound server for Linux and other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
%package module-jack
License: GPL v2 or later ; LGPL v2.1 or later
Summary: JACK support for the PulseAudio sound server
Group: System/Sound Daemons
Requires: %{name} = %{version}
%description module-jack
pulseaudio is a networked sound server for Linux and other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
This package includes support for Jack-based applications.
%package module-bluetooth
License: GPL v2 or later ; LGPL v2.1 or later
Summary: Bluetooth proximity support for the PulseAudio sound server
Group: System/Sound Daemons
Requires: %{name} = %{version}
Requires: bluez >= 4.34
%description module-bluetooth
pulseaudio is a networked sound server for Linux and other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
This package includes support for Bluetooth-based sound devices.
%package module-gconf
License: GPL v2 or later ; LGPL v2.1 or later
Summary: GCONF module for PulseAudio
Group: System/Sound Daemons
Requires: %{name} = %{version}
%description module-gconf
pulseaudio is a networked sound server for Linux and other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
%package -n libpulse0
Summary: Client interface to PulseAudio
License: GPL v2 or later ; LGPL v2.1 or later
Group: System/Libraries
Provides: pulseaudio-libs = %{version}-%{release}
Obsoletes: pulseaudio-libs < %{version}
%description -n libpulse0
pulseaudio is a networked sound server for Linux and other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
This package contains the system libraries for clients of pulseaudio
sound server.
%package -n libpulse-mainloop-glib0
Summary: GLIB 2.0 Main Loop wrapper for PulseAudio
License: GPL v2 or later ; LGPL v2.1 or later
Group: System/Sound Daemons
Provides: pulseaudio-libs-glib2 = %{version}-%{release}
Obsoletes: pulseaudio-libs-glib2 < %{version}
%description -n libpulse-mainloop-glib0
pulseaudio is a networked sound server for Linux and other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
%package -n libpulse-browse0
Summary: PulseAudio network browsing API
License: GPL v2 or later ; LGPL v2.1 or later
Group: System/Sound Daemons
Provides: pulseaudio-libs-zeroconf = %{version}-%{release}
Obsoletes: pulseaudio-libs-zeroconf < %{version}
%description -n libpulse-browse0
pulseaudio is a networked sound server for Linux and other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
%package -n libpulse-devel
Summary: Development package for the pulseaudio library
License: GPL v2 or later ; LGPL v2.1 or later
Group: Development/Libraries/C and C++
Requires: libpulse0 = %{version}
Requires: libpulse-mainloop-glib0 = %{version}
Requires: libpulse-browse0 = %{version}
Requires: pkgconfig glib2-devel
Provides: pulseaudio-devel = %{version}-%{release}
Obsoletes: pulseaudio-devel < %{version}
%description -n libpulse-devel
pulseaudio is a networked sound server for Linux and other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
This package contains the files needed to compile programs that use the
pulseaudio library.
%package utils
Summary: PulseAudio utilities
License: GPL v2 or later ; LGPL v2.1 or later
Group: System/Sound Daemons
Requires: %{name} = %{version}
Requires: libpulse0 = %{version}
Requires: libpulse-browse0 = %{version}
Requires: libpulse-mainloop-glib0 = %{version}
%description utils
pulseaudio is a networked sound server for Linux and other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
%lang_package
%prep
%setup -q -T -b0
%patch1 -p1
%patch2 -p1
%patch0 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%patch7 -p1
%patch8 -p1
%patch9 -p1
%patch10 -p1
%patch11 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1
%patch16 -p1
%patch17 -p1
%patch18 -p1
%patch19 -p1
%patch20 -p1
%patch21 -p1
%patch22 -p1
%patch23 -p1
%patch24 -p1
%patch25 -p1
%patch26 -p1
%patch27 -p1
%patch28 -p1
%patch29 -p1
%patch30 -p1
%build
%if %suse_version >= 1110
autoreconf -fi
%endif
export CFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing"
# libpulse and libpulsecommon need each other - no way with as-needed
export SUSE_ASNEEDED=0
%configure \
--disable-static \
--disable-rpath \
--with-system-user=pulse \
--with-system-group=pulse \
--with-realtime-group=pulse-rt \
--with-access-group=pulse-access
make %{?jobs:-j%jobs}
make doxygen
%install
%makeinstall
rm -rf $RPM_BUILD_ROOT%{_libdir}/*.la $RPM_BUILD_ROOT%{_libdir}/pulse-%{drvver}/modules/*.la
# configure --disable-static had no effect; delete manually.
rm -rf $RPM_BUILD_ROOT%{_libdir}/*.a
%suse_update_desktop_file pulseaudio
%find_lang %{name}
chmod 755 $RPM_BUILD_ROOT%{_bindir}/pulseaudio
install %SOURCE2 $RPM_BUILD_ROOT%{_bindir}
chmod 755 $RPM_BUILD_ROOT%{_bindir}/setup-pulseaudio
ln -s esdcompat $RPM_BUILD_ROOT%{_bindir}/esd
%clean
rm -rf $RPM_BUILD_ROOT
%pre
groupadd -r pulse &>/dev/null || :
useradd -r -c 'PulseAudio daemon' \
-s /sbin/nologin -d /var/lib/pulseaudio -g pulse -G audio pulse &>/dev/null || :
groupadd -r pulse-rt &>/dev/null || :
groupadd -r pulse-access &>/dev/null || :
%post -n libpulse0 -p /sbin/ldconfig
%postun -n libpulse0 -p /sbin/ldconfig
%post -n libpulse-mainloop-glib0 -p /sbin/ldconfig
%postun -n libpulse-mainloop-glib0 -p /sbin/ldconfig
%post -n libpulse-browse0 -p /sbin/ldconfig
%postun -n libpulse-browse0 -p /sbin/ldconfig
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%defattr(-,root,root)
%doc README LICENSE GPL LGPL
%dir %{_sysconfdir}/pulse/
%config(noreplace) %{_sysconfdir}/pulse/daemon.conf
%config(noreplace) %{_sysconfdir}/pulse/default.pa
%config(noreplace) %{_sysconfdir}/pulse/system.pa
#%attr(4755,root,root) %{_bindir}/pulseaudio
%{_bindir}/pulseaudio
%{_bindir}/setup-pulseaudio
%dir %{_libdir}/pulse-%{drvver}/
%dir %{_libdir}/pulse-%{drvver}/modules/
%{_libdir}/libpulsecore-%{drvver}.so
%{_libdir}/libpulsedsp.so
%{_libdir}/pulse-%{drvver}/modules/libalsa-util.so
%{_libdir}/pulse-%{drvver}/modules/libcli.so
%{_libdir}/pulse-%{drvver}/modules/liboss-util.so
%{_libdir}/pulse-%{drvver}/modules/libprotocol-cli.so
%{_libdir}/pulse-%{drvver}/modules/libprotocol-esound.so
%{_libdir}/pulse-%{drvver}/modules/libprotocol-http.so
%{_libdir}/pulse-%{drvver}/modules/libprotocol-native.so
%{_libdir}/pulse-%{drvver}/modules/libprotocol-simple.so
%{_libdir}/pulse-%{drvver}/modules/librtp.so
%{_libdir}/pulse-%{drvver}/modules/module-alsa-sink.so
%{_libdir}/pulse-%{drvver}/modules/module-alsa-source.so
%{_libdir}/pulse-%{drvver}/modules/module-alsa-card.so
%{_libdir}/pulse-%{drvver}/modules/module-always-sink.so
%{_libdir}/pulse-%{drvver}/modules/module-cli-protocol-tcp.so
%{_libdir}/pulse-%{drvver}/modules/module-cli-protocol-unix.so
%{_libdir}/pulse-%{drvver}/modules/module-cli.so
%{_libdir}/pulse-%{drvver}/modules/module-combine.so
%{_libdir}/pulse-%{drvver}/modules/module-console-kit.so
%{_libdir}/pulse-%{drvver}/modules/module-detect.so
%{_libdir}/pulse-%{drvver}/modules/module-device-restore.so
%{_libdir}/pulse-%{drvver}/modules/module-esound-compat-spawnfd.so
%{_libdir}/pulse-%{drvver}/modules/module-esound-compat-spawnpid.so
%{_libdir}/pulse-%{drvver}/modules/module-esound-protocol-tcp.so
%{_libdir}/pulse-%{drvver}/modules/module-esound-protocol-unix.so
%{_libdir}/pulse-%{drvver}/modules/module-esound-sink.so
%{_libdir}/pulse-%{drvver}/modules/module-hal-detect.so
%{_libdir}/pulse-%{drvver}/modules/module-http-protocol-tcp.so
%{_libdir}/pulse-%{drvver}/modules/module-http-protocol-unix.so
%{_libdir}/pulse-%{drvver}/modules/module-match.so
%{_libdir}/pulse-%{drvver}/modules/module-mmkbd-evdev.so
%{_libdir}/pulse-%{drvver}/modules/module-native-protocol-fd.so
%{_libdir}/pulse-%{drvver}/modules/module-native-protocol-tcp.so
%{_libdir}/pulse-%{drvver}/modules/module-native-protocol-unix.so
%{_libdir}/pulse-%{drvver}/modules/module-null-sink.so
%{_libdir}/pulse-%{drvver}/modules/module-oss.so
%{_libdir}/pulse-%{drvver}/modules/module-pipe-sink.so
%{_libdir}/pulse-%{drvver}/modules/module-pipe-source.so
%{_libdir}/pulse-%{drvver}/modules/module-position-event-sounds.so
%{_libdir}/pulse-%{drvver}/modules/module-rescue-streams.so
%{_libdir}/pulse-%{drvver}/modules/module-rtp-recv.so
%{_libdir}/pulse-%{drvver}/modules/module-rtp-send.so
%{_libdir}/pulse-%{drvver}/modules/module-simple-protocol-tcp.so
%{_libdir}/pulse-%{drvver}/modules/module-simple-protocol-unix.so
%{_libdir}/pulse-%{drvver}/modules/module-stream-restore.so
%{_libdir}/pulse-%{drvver}/modules/module-card-restore.so
%{_libdir}/pulse-%{drvver}/modules/module-sine.so
%{_libdir}/pulse-%{drvver}/modules/module-tunnel-sink.so
%{_libdir}/pulse-%{drvver}/modules/module-tunnel-source.so
%{_libdir}/pulse-%{drvver}/modules/module-volume-restore.so
%{_libdir}/pulse-%{drvver}/modules/module-suspend-on-idle.so
%{_libdir}/pulse-%{drvver}/modules/module-default-device-restore.so
%{_libdir}/pulse-%{drvver}/modules/module-ladspa-sink.so
%{_libdir}/pulse-%{drvver}/modules/module-remap-sink.so
%{_libdir}/pulse-%{drvver}/modules/module-augment-properties.so
%{_libdir}/pulse-%{drvver}/modules/module-cork-music-on-phone.so
%{_libdir}/pulse-%{drvver}/modules/module-sine-source.so
%if %suse_version >= 1100
%{_datadir}/PolicyKit/policy/org.pulseaudio.policy
%endif
%{_mandir}/man1/pulseaudio.1.gz
%{_mandir}/man5/default.pa.5.gz
%{_mandir}/man5/pulse-client.conf.5.gz
%{_mandir}/man5/pulse-daemon.conf.5.gz
%files esound-compat
%defattr(-,root,root)
%{_bindir}/esdcompat
%{_bindir}/esd
%{_mandir}/man1/esdcompat.1.gz
%files module-lirc
%defattr(-,root,root)
%{_libdir}/pulse-%{drvver}/modules/module-lirc.so
%files module-x11
%defattr(-,root,root)
%{_sysconfdir}/xdg/autostart/pulseaudio.desktop
%{_bindir}/start-pulseaudio-x11
%{_libdir}/pulse-%{drvver}/modules/module-x11-bell.so
%{_libdir}/pulse-%{drvver}/modules/module-x11-publish.so
%{_libdir}/pulse-%{drvver}/modules/module-x11-xsmp.so
%{_libdir}/pulse-%{drvver}/modules/module-x11-cork-request.so
%files module-zeroconf
%defattr(-,root,root)
%{_libdir}/pulse-%{drvver}/modules/libavahi-wrap.so
%{_libdir}/pulse-%{drvver}/modules/module-zeroconf-publish.so
%{_libdir}/pulse-%{drvver}/modules/module-zeroconf-discover.so
%{_libdir}/pulse-%{drvver}/modules/libraop.so
%{_libdir}/pulse-%{drvver}/modules/module-raop-discover.so
%{_libdir}/pulse-%{drvver}/modules/module-raop-sink.so
%files module-jack
%defattr(-,root,root)
%{_libdir}/pulse-%{drvver}/modules/module-jack-sink.so
%{_libdir}/pulse-%{drvver}/modules/module-jack-source.so
%files module-bluetooth
%defattr(-,root,root)
%{_libdir}/pulse-%{drvver}/modules/libbluetooth-ipc.so
%{_libdir}/pulse-%{drvver}/modules/libbluetooth-sbc.so
%{_libdir}/pulse-%{drvver}/modules/libbluetooth-util.so
%{_libdir}/pulse-%{drvver}/modules/module-bluetooth-device.so
%{_libdir}/pulse-%{drvver}/modules/module-bluetooth-discover.so
%{_libdir}/pulse-%{drvver}/modules/module-bluetooth-proximity.so
%attr(0755,root,root) %{_libexecdir}/pulse/proximity-helper
%files module-gconf
%defattr(-,root,root)
%dir %{_libexecdir}/pulse
%{_libdir}/pulse-%{drvver}/modules/module-gconf.so
%{_libexecdir}/pulse/gconf-helper
%files -n libpulse0
%defattr(-,root,root)
%doc README LICENSE GPL LGPL
%dir %{_sysconfdir}/pulse/
%config(noreplace) %{_sysconfdir}/pulse/client.conf
%{_libdir}/libpulse.so.*
%{_libdir}/libpulsecommon-%{drvver}.so
%{_libdir}/libpulse-simple.so.*
%files -n libpulse-mainloop-glib0
%defattr(-,root,root)
%{_libdir}/libpulse-mainloop-glib.so.*
%files -n libpulse-browse0
%defattr(-,root,root)
%{_bindir}/pabrowse
%{_libdir}/libpulse-browse.so.*
%files -n libpulse-devel
%defattr(-,root,root)
%doc doxygen/html
%{_includedir}/pulse/
%{_libdir}/libpulse.so
%{_libdir}/libpulse-mainloop-glib.so
%{_libdir}/libpulse-simple.so
%{_libdir}/libpulse-browse.so
%{_libdir}/pkgconfig/libpulse*.pc
%files utils
%defattr(-,root,root)
%{_bindir}/pacat
%{_bindir}/pacmd
%{_bindir}/pactl
%{_bindir}/paplay
%{_bindir}/parec
%{_bindir}/pax11publish
%{_bindir}/padsp
%{_bindir}/pasuspender
%{_mandir}/man1/pabrowse.1.gz
%{_mandir}/man1/pacat.1.gz
%{_mandir}/man1/pacmd.1.gz
%{_mandir}/man1/pactl.1.gz
%{_mandir}/man1/paplay.1.gz
%{_mandir}/man1/pasuspender.1.gz
%{_mandir}/man1/padsp.1.gz
%{_mandir}/man1/pax11publish.1.gz
%files lang -f %{name}.lang
%changelog