#
# spec file for package pulseaudio (Version 0.9.7)
#
# Copyright (c) 2008 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
# package are under the same license as the package itself.
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#

# norootforbuild

Name:           pulseaudio
%define drvver 0.9
Summary:        A Networked Sound Server
Version:        0.9.7
Release:        17
License:        GPL v2 or later; LGPL v2.1 or later
Group:          System/Sound Daemons
Source:         %{name}-%{version}.tar.bz2
Source1:        default.pa
Url:            http://pulseaudio.org
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  alsa-devel avahi-devel doxygen gconf2-devel glib2-devel hal-devel jack-devel libatomic-ops-devel liboil-devel libsamplerate-devel libsndfile-devel lirc-devel update-desktop-files xorg-x11-devel
Requires:       libpulsecore4 = %{version}
PreReq:         pwdutils
Patch1:         pulseaudio-0.9.6-nochown.patch
Patch2:         pulseaudio-0.9.7-eof-fix-r1964.patch
Patch3:         pulseaudio-0.9.5-esd-max-samplesize.diff
Patch4:         pulseaudio-0.9.7-type-punning.diff

%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).



Authors:
--------
    Lennart Poettering
    Pierre Ossman

%package esound-compat
Summary:        ESOUND compatibility for PulseAudio
Group:          System/Sound Daemons
Requires:       %{name} = %{version}

%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.



Authors:
--------
    Lennart Poettering
    Pierre Ossman

%package module-lirc
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).



Authors:
--------
    Lennart Poettering
    Pierre Ossman

%package module-x11
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).



Authors:
--------
    Lennart Poettering
    Pierre Ossman

%package module-zeroconf
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).



Authors:
--------
    Lennart Poettering
    Pierre Ossman

%package module-gconf
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).



Authors:
--------
    Lennart Poettering
    Pierre Ossman

%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.



Authors:
--------
    Lennart Poettering
    Pierre Ossman

%package -n libpulsecore4
Summary:        System libraries for PulseAudio
License:        GPL v2 or later; LGPL v2.1 or later
Group:          System/Sound Daemons
Provides:       pulseaudio-core-libs = %{version}-%{release}
Obsoletes:      pulseaudio-core-libs < %{version}

%description -n libpulsecore4
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).



Authors:
--------
    Lennart Poettering
    Pierre Ossman

%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).



Authors:
--------
    Lennart Poettering
    Pierre Ossman

%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).



Authors:
--------
    Lennart Poettering
    Pierre Ossman

%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.



Authors:
--------
    Lennart Poettering
    Pierre Ossman

%package utils
Summary:        PulseAudio utilities
License:        GPL v2 or later; LGPL v2.1 or later
Group:          System/Sound Daemons
Requires:       libpulse0 = %{version}
Requires:       libpulsecore4 = %{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).



Authors:
--------
    Lennart Poettering
    Pierre Ossman

%prep
%setup -q -T -b0
%patch1 -p1
%patch2 -p3
%patch3 -p1
%patch4

%build
%configure --disable-ltdl-install --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
%suse_update_desktop_file pulseaudio-module-xsmp
cp %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/pulse/
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
chmod 755 $RPM_BUILD_ROOT%{_bindir}/pulseaudio
ln -s esdcompat $RPM_BUILD_ROOT%{_bindir}/esd
rm $RPM_BUILD_ROOT/%{_libdir}/libpulsecore.so

%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 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 -n libpulsecore4 -p /sbin/ldconfig

%postun -n libpulsecore4 -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
#%attr(4755,root,root) %{_bindir}/pulseaudio
%{_bindir}/pulseaudio
%dir %{_libdir}/pulse-%{drvver}/
%dir %{_libdir}/pulse-%{drvver}/modules/
%{_libdir}/pulse-%{drvver}/modules/libalsa-util.so
%{_libdir}/pulse-%{drvver}/modules/libauthkey-prop.so
%{_libdir}/pulse-%{drvver}/modules/libauthkey.so
%{_libdir}/pulse-%{drvver}/modules/libcli.so
%{_libdir}/pulse-%{drvver}/modules/libdbus-util.so
%{_libdir}/pulse-%{drvver}/modules/libiochannel.so
%{_libdir}/pulse-%{drvver}/modules/libioline.so
%{_libdir}/pulse-%{drvver}/modules/libipacl.so
%{_libdir}/pulse-%{drvver}/modules/liboss-util.so
%{_libdir}/pulse-%{drvver}/modules/libpacket.so
%{_libdir}/pulse-%{drvver}/modules/libparseaddr.so
%{_libdir}/pulse-%{drvver}/modules/libpdispatch.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/libpstream-util.so
%{_libdir}/pulse-%{drvver}/modules/libpstream.so
%{_libdir}/pulse-%{drvver}/modules/librtp.so
%{_libdir}/pulse-%{drvver}/modules/libsocket-client.so
%{_libdir}/pulse-%{drvver}/modules/libsocket-server.so
%{_libdir}/pulse-%{drvver}/modules/libsocket-util.so
%{_libdir}/pulse-%{drvver}/modules/libstrlist.so
%{_libdir}/pulse-%{drvver}/modules/libtagstruct.so
%{_libdir}/pulse-%{drvver}/modules/module-alsa-sink.so
%{_libdir}/pulse-%{drvver}/modules/module-alsa-source.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-detect.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-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-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

%files esound-compat
%defattr(-,root,root)
%{_bindir}/esdcompat
%{_bindir}/esd

%files module-lirc
%defattr(-,root,root)
%{_libdir}/pulse-%{drvver}/modules/module-lirc.so

%files module-x11
%defattr(-,root,root)
%{_libdir}/pulse-%{drvver}/modules/libx11prop.so
%{_libdir}/pulse-%{drvver}/modules/libx11wrap.so
%{_libdir}/pulse-%{drvver}/modules/module-x11-bell.so
%{_libdir}/pulse-%{drvver}/modules/module-x11-publish.so
%{_libdir}/pulse-%{drvver}/modules/module-x11-xsmp.so
%config %{_sysconfdir}/xdg/autostart/pulseaudio-module-xsmp.desktop

%files module-zeroconf
%defattr(-,root,root)
%{_libdir}/pulse-%{drvver}/modules/libavahi-wrap.so
%{_libdir}/pulse-%{drvver}/modules/module-zeroconf-publish.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-gconf
%defattr(-,root,root)
%dir %{_libdir}/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}/libpulse-simple.so.*

%files -n libpulsecore4
%defattr(-,root,root)
%{_libdir}/libpulsecore.so.*
%{_libdir}/libpulsedsp.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

%changelog
* Wed Jan 09 2008 - rodrigo@suse.de
- Renamed libs packages to follow shared lib policy
- Added better descriptions for subpackages
- Use tar.bz2 instead of tar.gz
- Fixed unversioned self-provides and obsoletes
- Use update-desktop-files for .desktop file
- PreRequire pwdutils for groupadd/del
- Moved libpulsedsp.so to libpusecore4 to avoid rpmlint errors
* Tue Jan 08 2008 - rodrigo@suse.de
- Don't remove users/groups on %%postun
* Tue Jan 08 2008 - rodrigo@suse.de
- Removed 'rm -rf $RPM_BUILD_ROOT' from %%install
* Mon Dec 24 2007 - rodrigo@suse.de
- Use /var/lib/pulseaudio as home dir for pulseaudio user.
* Tue Dec 11 2007 - rodrigo@suse.de
- Removed special permissions for pulseaudio binary to make it
  buildable until the permissions thing is solved.
* Tue Dec 11 2007 - rodrigo@suse.de
- Merged with package from home:rodrigomoya:pulseaudio BS project.
* Thu Nov 22 2007 - cyberorg@cyberorg.info
- Remove Provides and Obsoletes from esound compat package
* Wed Nov 21 2007 - cyberorg@cyberorg.info
- Restructured spec file to build more subpackages, like in Fedora 8.
* Wed Oct 31 2007 - tiwai@suse.de
- updated to version 0.9.7:
  * New threaded lock-free (mostly at least) core
  * New module for automatic discovery of zeroconf audio devices
  * Reworked JACK module for better real-time compatibility
  * PA now suspends access to all audio devices if idle
  * module-combine is now beefedup to automatically pick up local hw devices
  * make use of gcc intrinsics for atomic ops, byteswap, tls, where possible
  * use speex resampler by default
  * use mmap access by default for ALSA devices
  * fold OSS mmap driver into normal OSS driver
  * add LADSPA plugin
  * add plugin for splitting or remapping channel maps
  * Use Linux eventfd() if available, instead of hacks around FIFOs
  * make use of PTHREAD_PRIO_INHERIT for some mutexes, wher it makes sense
  * cleanup dead SHM frags from /dev/shm, where applicable
  * automatically store/restore default audio device
  * add new tool pasuspender tool
  * X11 session management support
  * allow global configuration for fragment settings/sizes
  * PA (if HAL is enabled) now ignores modem sound devices by default
  * Lots of bug fixes and other improvements
* Thu Oct 11 2007 - sbrabec@suse.cz
- Use binding specific avahi package.
* Tue Jun 19 2007 - tiwai@suse.de
- fixed default.pa (typo of rtp.monitor).
* Tue Jun 12 2007 - tiwai@suse.de
- disable flist-test that doesn't pass with ppc (libatomic-ops
  problem)
* Fri Jun 08 2007 - tiwai@suse.de
- updated to version 0.9.6:
  * bugfixes, including previous patches
  * use lock-free algorith with libatomic-ops
- add avahi-devel, xorg-x11-devel, glib2-devel and hal-devel to
  buildrequires
- prefer Master volume to PCM volume
* Tue May 29 2007 - tiwai@suse.de
- fix possible remote DoS (#260326)
- fix wrong endian conversion of float data
- add a workaround for firefox with LD_PRELOAD wrapper
- add the missing support of ioctls for JavaSound
- increase ESD max samplesize
* Tue Apr 24 2007 - tiwai@suse.de
- disable static library, don't use ltdl install
- fix requires of devel package
- fix post and postun
- build documents via doxygen
- fix suspend/resume with alsa backend
- fix the frame size handling in alsa backend
- fix possible NULL dereference
* Mon Oct 16 2006 - schwab@suse.de
- Make sure config.rpath is present.
* Wed Sep 06 2006 - tiwai@suse.de
- updated to version 0.9.5:
  * add module-hal-detect module
  * shared memory transfer method for local clients
  * update module-volume-restore to automatically restore the output device
  * add a new module module-rescue-streams
  * add support for moving streams "hot" between sinks/sources
  * reduce memory consumption and CPU load
  * add new module module-gconf for reading additional configuration
  * fix module-tunnel to work with the latest protocol
  * miscellaneous fixes
* Thu Aug 17 2006 - tiwai@suse.de
- move libpulsedsp.so to the main package from devel sub package
  (#199735).
* Mon Jul 31 2006 - tiwai@suse.de
- updated to version 0.9.4:
  * support for system-wide pulseaudio daemon.
  * add authentication by IP address range ACL (auth-ip-acl=)
  * support to set resource limits on platforms
  * remove loopback= argument for module-*-protocol-tcp
  * remove obsolete GLIB event loop adapter
  * add an API to check whether a source/sink is hardware or virtual
  * remove warning about SIGPIPE in client apps
  * improve latency calculation of NULL sink
  * port Zeroconf code from the HOWL API to the native Avahi API
  * fix broken time event handling in GLIB
  * Some valgrind/massif fixes
  * Fix pkg-config files for AMD64
* Wed Jul 12 2006 - tiwai@suse.de
- renamed from polypaudio to pulseaudio (the project name was
  changed)
- update to version 0.9.2:
  * increase maximum number of concurrent connections
  * fix latency interpolation
  * add support for reverse endian sound cards
  * add support for recording in padsp
  * reenable CPU load limiter
  * other bugfixes