-%define pulseversion 2.1
-
-Name: pulseaudio
-Summary: Improved Linux sound server
-Version: 2.1
-Release: 0
-Group: Multimedia/PulseAudio
-License: LGPLv2+
-URL: http://pulseaudio.org
-Source0: http://127.0.0.1/pulseaudio-2.1.tar.gz
-Requires: udev
-Requires(post): /sbin/ldconfig
-Requires(postun): /sbin/ldconfig
-Requires: pulseaudio-config
-BuildRequires: pkgconfig(speexdsp)
-BuildRequires: pkgconfig(sndfile)
+Name: pulseaudio
+Version: 2.1
+Release: 0
+%define drvver 2.1
+%define soname 0
+Summary: A Networked Sound Server
+License: GPL-2.0+ ; LGPL-2.1+
+Group: System/Sound Daemons
+Url: http://pulseaudio.org
+Source: http://www.freedesktop.org/software/pulseaudio/releases/%{name}-%{version}.tar.xz
+Source1: default.pa-for-gdm
+Source2: setup-pulseaudio
+Source3: sysconfig.sound-pulseaudio
+Source99: baselibs.conf
BuildRequires: pkgconfig(alsa)
-BuildRequires: pkgconfig(glib-2.0)
-BuildRequires: pkgconfig(gconf-2.0)
-BuildRequires: pkgconfig(bluez)
-BuildRequires: pkgconfig(dbus-1)
-BuildRequires: pkgconfig(xi)
-BuildRequires: pkgconfig(libudev)
-BuildRequires: pkgconfig(vconf)
-BuildRequires: libatomic_ops-devel
-BuildRequires: pkgconfig(openssl)
-BuildRequires: json-c-devel
-BuildRequires: m4
-BuildRequires: libtool-ltdl-devel
-BuildRequires: libtool
-BuildRequires: intltool
+BuildRequires: bluez-devel
BuildRequires: fdupes
-
+BuildRequires: gdbm-devel
+BuildRequires: intltool
+#BuildRequires: jack-devel
+#BuildRequires: libavahi-devel
+BuildRequires: libopenssl-devel
+#BuildRequires: libsamplerate-devel
+BuildRequires: libsndfile-devel
+#our libtdb-devel does not have a .pc file
+#BuildRequires: libtdb-devel
+BuildRequires: libtool
+BuildRequires: libudev-devel >= 143
+BuildRequires: orc
+BuildRequires: speex-devel
+#BuildRequires: tcpd-devel
+#BuildRequires: translation-update-upstream
+BuildRequires: update-desktop-files
+#BuildRequires: xorg-x11-devel
+BuildRequires: pkgconfig(x11)
+BuildRequires: pkgconfig(xi)
+BuildRequires: pkgconfig(x11-xcb)
+BuildRequires: pkgconfig(xcb) >= 1.6
+BuildRequires: pkgconfig(ice)
+BuildRequires: pkgconfig(sm)
+BuildRequires: pkgconfig(xtst)
+BuildRequires: pkgconfig(dbus-1)
+#BuildRequires: pkgconfig(avahi-client)
+BuildRequires: libcap-devel
+BuildRequires: orc
+# Only needed because we don't (and won't) support building xz tarballs by default... See bnc#697467
+BuildRequires: xz
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(json) >= 0.9
+Requires(pre): pwdutils
+#Requires: rtkit
+Requires: udev >= 146
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
%description
-PulseAudio is a sound server for Linux and other Unix like operating
-systems. It is intended to be an improved drop-in replacement for the
-Enlightened Sound Daemon (ESOUND).
-
-%package libs
-Summary: PulseAudio client libraries
-Group: Multimedia/PulseAudio
-Requires: %{name} = %{version}-%{release}
-
-%description libs
-Client libraries used by applications that access a PulseAudio sound server
-via PulseAudio's native interface.
-
+pulseaudio is a networked sound server for Linux, 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 libs-devel
-Summary: PulseAudio client development headers and libraries
-Group: Development/Libraries
-Requires: %{name} = %{version}-%{release}
+%package esound-compat
+Summary: ESOUND compatibility for PulseAudio
+Group: System/Sound Daemons
+Requires: %{name} = %{version}
-%description libs-devel
-Headers and libraries for developing applications that access a PulseAudio
-sound server via PulseAudio's native interface
+%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).
-
-%package utils
-Summary: Command line tools for the PulseAudio sound server
-Group: Multimedia/PulseAudio
-Requires: %{name} = %{version}-%{release}
-
-%description utils
-These tools provide command line access to various features of the
-PulseAudio sound server. Included tools are:
-pabrowse - Browse available PulseAudio servers on the local network.
-paplay - Playback a WAV file via a PulseAudio sink.
-pacat - Cat raw audio data to a PulseAudio sink.
-parec - Cat raw audio data from a PulseAudio source.
-pacmd - Connect to PulseAudio's built-in command line control interface.
-pactl - Send a control command to a PulseAudio server.
-padsp - /dev/dsp wrapper to transparently support OSS applications.
-pax11publish - Store/retrieve PulseAudio default server/sink/source
-settings in the X11 root window.
+This package provides the compatibility layer for drop-in replacement
+of ESOUND.
-%package module-bluetooth
-Summary: Bluetooth module for PulseAudio sound server
-Group: Multimedia/PulseAudio
-Requires: %{name} = %{version}-%{release}
+%package module-x11
+Summary: X11 module for PulseAudio
+Group: System/Sound Daemons
+Requires: %{name} = %{version}
+Requires: %{name}-utils = %{version}
-%description module-bluetooth
-This module enables PulseAudio to work with bluetooth devices, like headset
-or audio gatewa
+%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-devel
-Summary: Headers and libraries for PulseAudio module development
-License: LGPLv2+
-Group: Development/Libraries
-Requires: %{name}-libs-devel = %{version}-%{release}
+This package provides the components needed to automatically start
+the PulseAudio sound server on X11 startup.
-%package config
-Summary: Default configuration for PulseAudio.
-Group: System Environment/Configuration
+%package module-zeroconf
+Summary: Zeroconf module for PulseAudio
+Group: System/Sound Daemons
+Requires: %{name} = %{version}
-%description config
-Default configuration for PulseAudio.
+%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).
-%description module-devel
-Headers and libraries for developing pulseaudio modules
+This package provides zeroconf network support for the PulseAudio sound server
-#%package module-zeroconf
-#Summary: PA module-zeroconf
-#Group: Multimedia/PulseAudio
-#
-#%description module-zeroconf
-#PA module-zeroconf.
+%package module-jack
+Summary: JACK support for the PulseAudio sound server
+Group: System/Sound Daemons
+Requires: %{name} = %{version}
-%package module-raop
-Summary: PA module-raop
-Group: Multimedia/PulseAudio
+%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).
-%description module-raop
-PA module-raop.
+This package includes support for Jack-based applications.
-%package module-filter
-Summary: PA module-filter
-Group: Multimedia/PulseAudio
+%package module-bluetooth
+Summary: Bluetooth support for the PulseAudio sound server
+Group: System/Sound Daemons
+Requires: %{name} = %{version}
+Requires: bluez >= 4.34
-%description module-filter
-PA module-filter.
+%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).
-%package module-combine-sink
-Summary: PA module-combine-sink
-Group: Multimedia/PulseAudio
+Contains Bluetooth audio (A2DP/HSP/HFP) support for the PulseAudio sound server.
-%description module-combine-sink
-PA module-combine-sink.
+%package module-gconf
+Summary: GCONF module for PulseAudio
+Group: System/Sound Daemons
+Requires: %{name} = %{version}
-%package module-augment-properties
-Summary: PA module-augment-properties
-Group: Multimedia/PulseAudio
+%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).
-%description module-augment-properties
-PA module-augment-properties.
+This package provides gconf storage of PulseAudio sound server settings.
-%package module-dbus-protocol
-Summary: PA module-dbus-protocol
-Group: Multimedia/PulseAudio
+%package -n libpulse
+Summary: Client interface to PulseAudio
+Group: System/Libraries
-%description module-dbus-protocol
-PA module-dbus-protocol.
+%description -n libpulse
+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-null-source
-Summary: PA module-null-source
-Group: Multimedia/PulseAudio
+This package contains the system libraries for clients of pulseaudio
+sound server.
-%description module-null-source
-PA module-null-source.
+%package -n libpulse-mainloop-glib
+Summary: GLIB 2.0 Main Loop wrapper for PulseAudio
+Group: System/Sound Daemons
-%package module-switch-on-connect
-Summary: PA module-swich-on-connect
-Group: Multimedia/PulseAudio
+%description -n libpulse-mainloop-glib
+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).
-%description module-switch-on-connect
-PA module-swich-on-connect.
+This package contains the GLIB Main Loop bindings for the PulseAudio
+sound server.
-%package localization
-Summary: PA localization files.
-Group: Multimedia/PulseAudio
-Requires: %{name} = %{version}-%{release}
+%package -n libpulse-devel
+Summary: Development package for the pulseaudio library
+Group: Development/Libraries/C and C++
+Requires: libpulse = %{version}
+Requires: libpulse-mainloop-glib = %{version}
+Requires: pkgconfig
+Requires: pkgconfig(glib-2.0)
-%description localization
-PA localization files.
+%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).
-%package vala-bindings
-Summary: PA Vala bindings.
-Group: Multimedia/PulseAudio
-Requires: %{name} = %{version}-%{release}
+This package contains the files needed to compile programs that use the
+pulseaudio library.
-%description vala-bindings
-PA Vala bindings.
+%package utils
+Summary: PulseAudio utilities
+Group: System/Sound Daemons
+Requires: %{name} = %{version}
+Requires: libpulse-mainloop-glib = %{version}
+Requires: libpulse = %{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).
+
+This package provides utilies for making use of the PulseAudio sound
+server.
+
+%package gdm-hooks
+Summary: PulseAudio GDM integration
+Group: Productivity/Multimedia/Other
+Requires: %{name} = %{version}
+Requires: gdm >= 2.22
+#for the gdm user
+Requires(pre): gdm
+#avoid cycle
+#!BuildIgnore: gdm
+
+%description gdm-hooks
+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 GDM integration hooks for the PulseAudio sound server.
%prep
-%setup -q
-echo "%{version}" > .tarball-version
-./bootstrap.sh
+%setup -q -T -b0
%build
-CPUS="`cat /proc/cpuinfo | grep ^processor | wc -l`"
-JOBS="-j$(($CPUS + 1))"
-
-unset LD_AS_NEEDED
-export LDFLAGS+="-Wl,--no-as-needed"
-%configure --disable-static --enable-alsa --disable-ipv6 --disable-oss-output --disable-oss-wrapper --enable-bluez --disable-x11 --disable-hal --disable-hal-compat --disable-lirc --disable-avahi --disable-jack --without-fftw --disable-xen --enable-spolicy
-make $JOBS
+%autogen
+export CFLAGS="%{optflags} -fno-strict-aliasing"
+# libpulse and libpulsecommon need each other - no way with as-needed
+export LD_AS_NEEDED=0
+%configure \
+ --disable-static \
+ --disable-rpath \
+ --with-system-user=pulse \
+ --with-system-group=pulse \
+ --with-access-group=pulse-access \
+ --disable-hal
+make %{?_smp_mflags} V=1
%install
-rm -rf %{buildroot}
%make_install
+#tizen_update_desktop_file pulseaudio
+#tizen_update_desktop_file pulseaudio-kde
+%find_lang %{name}
+install %{SOURCE2} %{buildroot}%{_bindir}
+chmod 755 %{buildroot}%{_bindir}/setup-pulseaudio
+#install -d %{buildroot}%{_localstatedir}/adm/fillup-templates
+#install -m 0644 %{SOURCE3} %{buildroot}%{_localstatedir}/adm/fillup-templates
+mkdir -p %{buildroot}%{_sysconfdir}/profile.d
+touch %{buildroot}%{_sysconfdir}/profile.d/pulseaudio.sh
+touch %{buildroot}%{_sysconfdir}/profile.d/pulseaudio.csh
+mkdir -p %{buildroot}%{_localstatedir}/lib/gdm/.pulse
+cp $RPM_SOURCE_DIR/default.pa-for-gdm %{buildroot}%{_localstatedir}/lib/gdm/.pulse/default.pa
+ln -s esdcompat %{buildroot}%{_bindir}/esd
+rm -rf %{buildroot}/etc/xdg/autostart/pulseaudio-kde.desktop
+
+%clean
+rm -rf %{buildroot}
-install -D -m0755 pulseaudio.sh.in %{buildroot}%{_sysconfdir}/rc.d/init.d/pulseaudio.sh
-
-install -d %{buildroot}/%{_libdir}/systemd/system
-install -m 644 pulseaudio.service %{buildroot}/%{_libdir}/systemd/system/pulseaudio.service
-mkdir -p %{buildroot}/%{_libdir}/systemd/system/multi-user.target.wants
-ln -s ../pulseaudio.service %{buildroot}/%{_libdir}/systemd/system/multi-user.target.wants/pulseaudio.service
-
-rm -rf %{buildroot}/etc/xdg/autostart/pulseaudio-kde.desktop
-rm -rf %{buildroot}/usr/bin/start-pulseaudio-kde
-rm -rf %{buildroot}/%{_libdir}/pulse-%{version}/modules/module-device-manager.so
-
-mkdir -p %{buildroot}/%{_includedir}/pulsemodule/pulse
-mkdir -p %{buildroot}/%{_includedir}/pulsemodule/pulsecore
+%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-access &>/dev/null || :
-cp %{buildroot}/%{_includedir}/pulse/*.h %{buildroot}/%{_includedir}/pulsemodule/pulse
-mv %{buildroot}/%{_includedir}/pulsecore %{buildroot}/%{_includedir}/pulsemodule/
+%post -n libpulse -p /sbin/ldconfig
-%find_lang pulseaudio
-fdupes %{buildroot}/%{_datadir}
-fdupes %{buildroot}/%{_includedir}
+%postun -n libpulse -p /sbin/ldconfig
-# get rid of *.la files
-rm -f %{buildroot}/%{_libdir}/*.la
-rm -f %{buildroot}/%{_libdir}/pulseaudio/*.la
+%post -n libpulse-mainloop-glib -p /sbin/ldconfig
-# put the default configuration file in place
-install -m 644 src/default.pa %{buildroot}/%{_sysconfdir}/pulse
+%postun -n libpulse-mainloop-glib -p /sbin/ldconfig
%post
/sbin/ldconfig
-ln -s /etc/rc.d/init.d/pulseaudio.sh /etc/rc.d/rc3.d/S20pulseaudio
-ln -s /etc/rc.d/init.d/pulseaudio.sh /etc/rc.d/rc4.d/S20pulseaudio
-
-%postun
-/sbin/ldconfig
-rm -f %{_sysconfdir}/rc.d/rc3.d/S20pulseaudio
-rm -f %{_sysconfdir}/rc.d/rc4.d/S20pulseaudio
-
-%post libs -p /sbin/ldconfig
-
-%postun libs -p /sbin/ldconfig
-
-
-%post module-bluetooth -p /sbin/ldconfig
-%postun module-bluetooth -p /sbin/ldconfig
+# Update the /etc/profile.d/pulseaudio.* files
+setup-pulseaudio --auto > /dev/null
-
-%docs_package
+%postun -p /sbin/ldconfig
%lang_package
-
%files
-%defattr(-,root,root,-)
-%doc LICENSE GPL LGPL
-%dir %{_sysconfdir}/pulse/
-%{_bindir}/esdcompat
+%defattr(-,root,root)
+%doc README LICENSE GPL LGPL
%{_bindir}/pulseaudio
-%dir %{_libexecdir}/pulse
-%{_libexecdir}/pulse/*
-%{_libdir}/libpulsecore-%{version}.so
-%{_libdir}/libpulse-mainloop-glib.so.*
+%{_bindir}/setup-pulseaudio
+#%{_bindir}/qpaeq
+%dir %{_datadir}/pulseaudio
+%{_datadir}/pulseaudio/alsa-mixer
+%{_libdir}/libpulsecore-%{drvver}.so
+%dir %{_libdir}/pulseaudio
+%{_libdir}/pulseaudio/libpulsedsp.so
+%dir %{_libdir}/pulse-%{drvver}/
+%dir %{_libdir}/pulse-%{drvver}/modules/
+%{_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-card.so
+%{_libdir}/pulse-%{drvver}/modules/module-alsa-sink.so
+%{_libdir}/pulse-%{drvver}/modules/module-alsa-source.so
+%{_libdir}/pulse-%{drvver}/modules/module-always-sink.so
+%{_libdir}/pulse-%{drvver}/modules/module-augment-properties.so
+%{_libdir}/pulse-%{drvver}/modules/module-card-restore.so
+%{_libdir}/pulse-%{drvver}/modules/module-cli.so
+%{_libdir}/pulse-%{drvver}/modules/module-cli-protocol-tcp.so
+%{_libdir}/pulse-%{drvver}/modules/module-cli-protocol-unix.so
+%{_libdir}/pulse-%{drvver}/modules/module-combine.so
+%{_libdir}/pulse-%{drvver}/modules/module-combine-sink.so
+%{_libdir}/pulse-%{drvver}/modules/module-console-kit.so
+%{_libdir}/pulse-%{drvver}/modules/module-dbus-protocol.so
+%{_libdir}/pulse-%{drvver}/modules/module-default-device-restore.so
+%{_libdir}/pulse-%{drvver}/modules/module-detect.so
+%{_libdir}/pulse-%{drvver}/modules/module-device-manager.so
+%{_libdir}/pulse-%{drvver}/modules/module-device-restore.so
+%{_libdir}/pulse-%{drvver}/modules/module-echo-cancel.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-equalizer-sink.so
+%{_libdir}/pulse-%{drvver}/modules/module-filter-apply.so
+%{_libdir}/pulse-%{drvver}/modules/module-filter-heuristics.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-intended-roles.so
+%{_libdir}/pulse-%{drvver}/modules/module-ladspa-sink.so
+%{_libdir}/pulse-%{drvver}/modules/libraop.so
+%{_libdir}/pulse-%{drvver}/modules/module-raop-sink.so
+%{_libdir}/pulse-%{drvver}/modules/module-loopback.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-null-source.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-remap-sink.so
+%{_libdir}/pulse-%{drvver}/modules/module-rescue-streams.so
+%{_libdir}/pulse-%{drvver}/modules/module-role-cork.so
+%{_libdir}/pulse-%{drvver}/modules/module-rtp-recv.so
+%{_libdir}/pulse-%{drvver}/modules/module-rtp-send.so
+%{_libdir}/pulse-%{drvver}/modules/module-rygel-media-server.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-sine-source.so
+%{_libdir}/pulse-%{drvver}/modules/module-stream-restore.so
+%{_libdir}/pulse-%{drvver}/modules/module-suspend-on-idle.so
+%{_libdir}/pulse-%{drvver}/modules/module-switch-on-connect.so
+%{_libdir}/pulse-%{drvver}/modules/module-switch-on-port-available.so
+%{_libdir}/pulse-%{drvver}/modules/module-systemd-login.so
+%{_libdir}/pulse-%{drvver}/modules/module-tunnel-sink.so
+%{_libdir}/pulse-%{drvver}/modules/module-tunnel-source.so
+%{_libdir}/pulse-%{drvver}/modules/module-udev-detect.so
+%{_libdir}/pulse-%{drvver}/modules/module-virtual-sink.so
+%{_libdir}/pulse-%{drvver}/modules/module-virtual-source.so
+%{_libdir}/pulse-%{drvver}/modules/module-virtual-surround-sink.so
+%{_libdir}/pulse-%{drvver}/modules/module-volume-restore.so
/lib/udev/rules.d/90-pulseaudio.rules
-%{_datadir}/pulseaudio/alsa-mixer/paths/*
-%{_datadir}/pulseaudio/alsa-mixer/profile-sets/*
-%{_bindir}/pamon
-/etc/dbus-1/system.d/pulseaudio-system.conf
-# cmake stuff
-%{_libdir}/cmake/PulseAudio/PulseAudioConfig.cmake
-%{_libdir}/cmake/PulseAudio/PulseAudioConfigVersion.cmake
-# list all modules
-%{_libdir}/pulse-%{version}/modules/libalsa-util.so
-%{_libdir}/pulse-%{version}/modules/libcli.so
-%{_libdir}/pulse-%{version}/modules/libprotocol-cli.so
-%{_libdir}/pulse-%{version}/modules/libprotocol-http.so
-%{_libdir}/pulse-%{version}/modules/libprotocol-native.so
-%{_libdir}/pulse-%{version}/modules/libprotocol-simple.so
-%{_libdir}/pulse-%{version}/modules/librtp.so
-%{_libdir}/pulse-%{version}/modules/module-alsa-sink.so
-%{_libdir}/pulse-%{version}/modules/module-alsa-source.so
-%{_libdir}/pulse-%{version}/modules/module-always-sink.so
-%{_libdir}/pulse-%{version}/modules/module-console-kit.so
-%{_libdir}/pulse-%{version}/modules/module-device-restore.so
-%{_libdir}/pulse-%{version}/modules/module-stream-restore.so
-%{_libdir}/pulse-%{version}/modules/module-cli-protocol-tcp.so
-%{_libdir}/pulse-%{version}/modules/module-cli-protocol-unix.so
-%{_libdir}/pulse-%{version}/modules/module-cli.so
-%{_libdir}/pulse-%{version}/modules/module-combine.so
-%{_libdir}/pulse-%{version}/modules/module-default-device-restore.so
-%{_libdir}/pulse-%{version}/modules/module-detect.so
-%{_libdir}/pulse-%{version}/modules/module-esound-sink.so
-%{_libdir}/pulse-%{version}/modules/module-http-protocol-tcp.so
-%{_libdir}/pulse-%{version}/modules/module-http-protocol-unix.so
-%{_libdir}/pulse-%{version}/modules/module-intended-roles.so
-%{_libdir}/pulse-%{version}/modules/module-ladspa-sink.so
-%{_libdir}/pulse-%{version}/modules/module-match.so
-%{_libdir}/pulse-%{version}/modules/module-mmkbd-evdev.so
-%{_libdir}/pulse-%{version}/modules/module-native-protocol-fd.so
-%{_libdir}/pulse-%{version}/modules/module-native-protocol-tcp.so
-%{_libdir}/pulse-%{version}/modules/module-native-protocol-unix.so
-%{_libdir}/pulse-%{version}/modules/module-null-sink.so
-%{_libdir}/pulse-%{version}/modules/module-pipe-sink.so
-%{_libdir}/pulse-%{version}/modules/module-pipe-source.so
-%{_libdir}/pulse-%{version}/modules/module-position-event-sounds.so
-%{_libdir}/pulse-%{version}/modules/module-remap-sink.so
-%{_libdir}/pulse-%{version}/modules/module-rescue-streams.so
-%{_libdir}/pulse-%{version}/modules/module-rtp-recv.so
-%{_libdir}/pulse-%{version}/modules/module-rtp-send.so
-%{_libdir}/pulse-%{version}/modules/module-simple-protocol-tcp.so
-%{_libdir}/pulse-%{version}/modules/module-simple-protocol-unix.so
-%{_libdir}/pulse-%{version}/modules/module-sine.so
-%{_libdir}/pulse-%{version}/modules/module-tunnel-sink.so
-%{_libdir}/pulse-%{version}/modules/module-tunnel-source.so
-%{_libdir}/pulse-%{version}/modules/module-suspend-on-idle.so
-%{_libdir}/pulse-%{version}/modules/module-volume-restore.so
-%{_libdir}/pulse-%{version}/modules/module-alsa-card.so
-%{_libdir}/pulse-%{version}/modules/module-card-restore.so
-%{_libdir}/pulse-%{version}/modules/module-sine-source.so
-%{_libdir}/pulse-%{version}/modules/module-loopback.so
-%{_libdir}/pulse-%{version}/modules/module-rygel-media-server.so
-%{_libdir}/pulse-%{version}/modules/module-echo-cancel.so
-%{_libdir}/pulse-%{version}/modules/module-virtual-sink.so
-%{_libdir}/pulse-%{version}/modules/module-virtual-source.so
-%{_libdir}/pulse-%{version}/modules/libprotocol-esound.so
-%{_libdir}/pulse-%{version}/modules/module-esound-compat-spawnfd.so
-%{_libdir}/pulse-%{version}/modules/module-esound-compat-spawnpid.so
-%{_libdir}/pulse-%{version}/modules/module-esound-protocol-tcp.so
-%{_libdir}/pulse-%{version}/modules/module-esound-protocol-unix.so
-%{_libdir}/pulse-%{version}/modules/module-gconf.so
-%{_libdir}/pulse-%{version}/modules/module-udev-detect.so
-%{_libdir}/pulse-%{version}/modules/module-role-cork.so
-%{_libdir}/pulse-%{version}/modules/module-switch-on-port-available.so
-%{_libdir}/pulse-%{version}/modules/module-virtual-surround-sink.so
-%{_libdir}/pulse-%{version}/modules/module-policy.so
-%{_libdir}/systemd/system/pulseaudio.service
-%{_libdir}/systemd/system/multi-user.target.wants/pulseaudio.service
-%{_sysconfdir}/rc.d/init.d/pulseaudio.sh
-
-%files libs
-%defattr(-,root,root,-)
-%{_libdir}/libpulse.so.*
+%dir %{_sysconfdir}/pulse/
+%config(noreplace) %{_sysconfdir}/pulse/daemon.conf
+%config(noreplace) %{_sysconfdir}/pulse/default.pa
+%config(noreplace) %{_sysconfdir}/pulse/system.pa
+%config(noreplace) %{_sysconfdir}/dbus-1/system.d/pulseaudio-system.conf
+# created by setup-pulseaudio script
+%ghost %{_sysconfdir}/profile.d/pulseaudio.sh
+%ghost %{_sysconfdir}/profile.d/pulseaudio.csh
+
+%files esound-compat
+%defattr(-,root,root)
+%{_bindir}/esdcompat
+%{_bindir}/esd
+
+%files gdm-hooks
+%defattr(-,root,root)
+%attr(0750, gdm, gdm) %dir %{_localstatedir}/lib/gdm
+%attr(0700, gdm, gdm) %dir %{_localstatedir}/lib/gdm/.pulse
+%attr(0600, gdm, gdm) %{_localstatedir}/lib/gdm/.pulse/default.pa
+
+%files -n libpulse
+%defattr(-,root,root)
+%doc README LICENSE GPL LGPL
+%dir %{_sysconfdir}/pulse/
+%config(noreplace) %{_sysconfdir}/pulse/client.conf
+%{_libdir}/libpulse.so.%{soname}
+%{_libdir}/libpulse.so.%{soname}.*
%{_libdir}/libpulse-simple.so.*
-%{_libdir}/pulseaudio/libpulsecommon-*.so
+%dir %{_libdir}/pulseaudio
+%{_libdir}/pulseaudio/libpulsecommon-%{drvver}.so
-%files libs-devel
-%defattr(-,root,root,-)
-%{_includedir}/pulse/*
+%files -n libpulse-devel
+%defattr(-,root,root)
+%{_includedir}/pulse/
%{_libdir}/libpulse.so
-%{_libdir}/libpulse-simple.so
-%{_libdir}/pkgconfig/libpulse-simple.pc
-%{_libdir}/pkgconfig/libpulse.pc
-%{_datadir}/vala/vapi/libpulse.vapi
-%{_libdir}/pkgconfig/libpulse-mainloop-glib.pc
%{_libdir}/libpulse-mainloop-glib.so
+%{_libdir}/libpulse-simple.so
+%{_libdir}/pkgconfig/libpulse*.pc
+%dir %{_libdir}/cmake
+%dir %{_libdir}/cmake/PulseAudio
+%{_libdir}/cmake/PulseAudio/PulseAudio*.cmake
+%{_datadir}/vala
+
+%files -n libpulse-mainloop-glib
+%defattr(-,root,root)
+%{_libdir}/libpulse-mainloop-glib.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 module-x11
+%defattr(-,root,root)
+%{_sysconfdir}/xdg/autostart/pulseaudio.desktop
+%{_bindir}/start-pulseaudio-x11
+%{_bindir}/start-pulseaudio-kde
+%{_libdir}/pulse-%{drvver}/modules/module-x11-bell.so
+%{_libdir}/pulse-%{drvver}/modules/module-x11-cork-request.so
+%{_libdir}/pulse-%{drvver}/modules/module-x11-publish.so
+%{_libdir}/pulse-%{drvver}/modules/module-x11-xsmp.so
+
+%files module-zeroconf
+%defattr(-,root,root)
+#%{_libdir}/pulse-%{drvver}/modules/libavahi-wrap.so
+%{_libdir}/pulse-%{drvver}/modules/libraop.so
+%{_libdir}/pulse-%{drvver}/modules/module-raop-discover.so
+%{_libdir}/pulse-%{drvver}/modules/module-raop-sink.so
+%{_libdir}/pulse-%{drvver}/modules/module-zeroconf-discover.so
+%{_libdir}/pulse-%{drvver}/modules/module-zeroconf-publish.so
%files utils
-%defattr(-,root,root,-)
-%doc %{_mandir}/man1/*
-%doc %{_mandir}/man5/*
+%defattr(-,root,root)
%{_bindir}/pacat
%{_bindir}/pacmd
%{_bindir}/pactl
%{_bindir}/parec
%{_bindir}/pamon
%{_bindir}/parecord
+%{_bindir}/pax11publish
+%{_bindir}/padsp
%{_bindir}/pasuspender
-%files module-bluetooth
-%defattr(-,root,root,-)
-%{_libdir}/pulse-%{version}/modules/module-bluetooth-proximity.so
-%{_libdir}/pulse-%{version}/modules/module-bluetooth-device.so
-%{_libdir}/pulse-%{version}/modules/module-bluetooth-discover.so
-%{_libdir}/pulse-%{version}/modules/libbluetooth-ipc.so
-%{_libdir}/pulse-%{version}/modules/libbluetooth-sbc.so
-%{_libdir}/pulse-%{version}/modules/libbluetooth-util.so
-
-#%files module-zeroconf
-#%defattr(-,root,root,-)
-#%{_libdir}/pulse-%{version}/modules/libavahi-wrap.so
-#%{_libdir}/pulse-%{version}/modules/module-zeroconf*.so
-
-%files module-raop
-%defattr(-,root,root,-)
-%{_libdir}/pulse-%{version}/modules/libraop.so
-%{_libdir}/pulse-%{version}/modules/module-raop*.so
-
-%files module-filter
-%defattr(-,root,root,-)
-%{_libdir}/pulse-%{version}/modules/module-filter-*.so
-
-%files module-combine-sink
-%defattr(-,root,root,-)
-%{_libdir}/pulse-%{version}/modules/module-combine-sink.so
-
-%files module-augment-properties
-%defattr(-,root,root,-)
-%{_libdir}/pulse-%{version}/modules/module-augment-properties.so
-
-%files module-dbus-protocol
-%defattr(-,root,root,-)
-%{_libdir}/pulse-%{version}/modules/module-dbus-protocol.so
-
-%files module-null-source
-%defattr(-,root,root,-)
-%{_libdir}/pulse-%{version}/modules/module-null-source.so
-
-%files module-switch-on-connect
-%defattr(-,root,root,-)
-%{_libdir}/pulse-%{version}/modules/module-switch-on-connect.so
-
-%files config
-%defattr(-,root,root,-)
-%{_sysconfdir}/pulse/default.pa
-%{_sysconfdir}/pulse/client.conf
-%{_sysconfdir}/pulse/default.pa
-%{_sysconfdir}/pulse/system.pa
-%{_sysconfdir}/pulse/daemon.conf
-
-%files module-devel
-%defattr(-,root,root)
-%{_includedir}/pulsemodule/pulsecore/*.h
-%{_includedir}/pulsemodule/pulse/*.h
-%{_libdir}/pkgconfig/pulseaudio-module-devel.pc
-%files localization
-%defattr(-,root,root,-)
-%{_datadir}/locale/*/LC_MESSAGES/pulseaudio.mo
-
-%files vala-bindings
-%defattr(-,root,root,-)
-%{_datadir}/vala/vapi/*
+%docs_package
+%changelog
--- /dev/null
+#!/bin/sh
+
+LIST_OF_OSS_APPS="aumix sox"
+
+show_help() {
+ echo "setup-pulseaudio [ --enable | --disable | --auto | --status ]"
+ echo ""
+ echo "Modifies configuration files of some applications for PulseAudio"
+ echo " --enable Enables PulseAudio"
+ echo " --disable Disables PulseAudio"
+ echo " --auto Automatically enables/disables PulseAudio based on configuration"
+ echo " --status Shows activation state (disabled or enabled) for PulseAudio"
+ echo ""
+ echo "You need to be root for this command to succeed"
+ echo "You may need to re-login for changes to take effect"
+ exit 1
+}
+
+check_root() {
+ id=`id -u`
+ if [ "x$id" = "x0" ]; then
+ true
+ else
+ echo "You need to be root in order to enable/disable pulseaudio"
+ false
+ fi
+}
+
+PROFNAME=/etc/profile.d/pulseaudio.sh
+CPROFNAME=/etc/profile.d/pulseaudio.csh
+
+MPLAYER_CONF=/etc/mplayer/mplayer.conf
+
+set_variable () {
+ if test -f $PROFNAME &&
+ grep -q "export $1"= $PROFNAME; then
+ sed -i -e "s|export $1=.*|export $1=$2|g" $PROFNAME
+ else
+ echo "export $1=$2" >> $PROFNAME
+ fi
+ if test -f $CPROFNAME &&
+ grep -q "setenv $1 " $CPROFNAME; then
+ sed -i -e "s|setenv $1 .*|setenv $1 $2|g" $CPROFNAME
+ else
+ echo "setenv $1 $2" >> $CPROFNAME
+ fi
+}
+
+delete_variable () {
+ if test -f $PROFNAME &&
+ grep -q "export $1"= $PROFNAME; then
+ sed -i -e "/export $1=.*/d" $PROFNAME
+ fi
+ if test -f $CPROFNAME &&
+ grep -q "setenv $1 " $CPROFNAME; then
+ sed -i -e "/setenv $1 .*/d" $CPROFNAME
+ fi
+}
+
+setup_gconf_vendor() {
+ if [ -x /usr/bin/gconftool-2 ]; then
+ /usr/bin/gconftool-2 --direct --config-source \
+ xml:readwrite:/etc/gconf/gconf.xml.vendor \
+ "$@"
+ fi
+}
+
+enable_phonon() {
+ echo "Enabling PulseAudio for Phonon..."
+ delete_variable PHONON_PULSEAUDIO_DISABLE
+}
+
+enable_kmix() {
+ echo "Enabling PulseAudio for Kmix..."
+ delete_variable KMIX_PULSEAUDIO_DISABLE
+}
+
+enable_alsa() {
+ echo "Enabling PulseAudio for ALSA..."
+ if [ -f /etc/alsa-pulse.conf ]; then
+ set_variable ALSA_CONFIG_PATH /etc/alsa-pulse.conf
+ else
+ echo "Missing /etc/alsa-pluse.conf; please install alsa-plugins-pulse package"
+ fi
+}
+
+enable_libao() {
+ echo "Enabling PulseAudio for libao..."
+ if test -f /etc/libao.conf; then
+ if grep -q "default_driver=pulse" /etc/libao.conf; then
+ echo "Default driver is pulse already in /etc/libao.conf"
+ else
+ echo "default_driver=pulse" >> /etc/libao.conf
+ fi
+ else
+ echo "default_driver=pulse" >> /etc/libao.conf
+ fi
+}
+
+enable_mplayer() {
+ echo "Enabling PulseAudio for mplayer..."
+ if test -f $MPLAYER_CONF; then
+ if grep -q '^ao *= *pulse' $MPLAYER_CONF; then
+ :
+ elif grep -q '^ao *=' $MPLAYER_CONF; then
+ sed -i -e 's/^ao *= *\(.*\)$/ao=pulse,\1/g' $MPLAYER_CONF
+ else
+ echo "ao=pulse" >> $MPLAYER_CONF
+ fi
+ fi
+
+ # FIXME: mplayerplug-in uses $HOME/.mplayer/mplayerplug-in.conf
+}
+
+enable_speechd() {
+ echo "Enabling PulseAudio for speech dispatcher..."
+ if test -f /etc/speech-dispatcher/speechd.conf; then
+ if grep -q 'AudioOutputMethod' /etc/speech-dispatcher/speechd.conf; then
+ sed -i -e "s|^.*AudioOutputMethod .*|AudioOutputMethod \"pulse\"|g" /etc/speech-dispatcher/speechd.conf
+ else
+ echo "AudioOutputMethod \"pulse\"" >> /etc/speech-dispatcher/speechd.conf
+ fi
+ fi
+}
+
+enable_openal() {
+ # nothing to do here. openal-soft is patched to prefer pulse but
+ # it won't autostart the daemon.
+ return 0
+}
+
+enable_oss() {
+ echo "Enabling PulseAudio for OSS..."
+ for app in $LIST_OF_OSS_APPS; do
+ if grep -q "alias $app='padsp $app'" $PROFNAME; then
+ echo "Application $app already setup for PulseAudio"
+ else
+ echo "alias $app='padsp $app'" >> $PROFNAME
+ fi
+ done
+}
+
+enable_sdl() {
+ echo "Enabling PulseAudio for SDL..."
+ # For SDL, we just add an environment variable, so that apps use the PA audio driver
+ set_variable SDL_AUDIODRIVER pulse
+}
+
+enable_timidity() {
+ echo "Enabling PulseAudio for Timidity..."
+ # Use esound output for timidity
+ if grep -q "alias timidity='timidity -Oe'" $PROFNAME; then
+ echo "Timidity already setup for using PulseAudio"
+ else
+ echo "alias timidity='timidity -Oe'" >> $PROFNAME
+ fi
+}
+
+enable_xine() {
+ #echo "Enabling PulseAudio for Xine..."
+ # FIXME: xine uses $HOME/.xine/config
+ return 0
+}
+
+enable_festival() {
+ test -f /etc/festival.scm || return 0
+ echo "Enabling PulseAudio for Festival..."
+ cat << EOF >> /etc/festival.scm
+;;;; Use pulseaudio to output sound
+(Parameter.set 'Audio_Command "paplay -n festival \$FILE")
+(Parameter.set 'Audio_Method 'Audio_Command)
+(Parameter.set 'Audio_Required_Format 'snd)
+EOF
+}
+
+enable_sox() {
+ echo "Enabling PulseAudio for SoX..."
+ set_variable AUDIODRIVER pulseaudio
+}
+
+enable_gstreamer() {
+ # set autoaudiosink/src, which should pick up PA
+ echo "Setting auto sink/src for gstreamer"
+ setup_gconf_vendor -s -t str \
+ /system/gstreamer/0.10/default/audiosink autoaudiosink
+ setup_gconf_vendor -s -t str \
+ /system/gstreamer/0.10/default/musicaudiosink autoaudiosink
+ setup_gconf_vendor -s -t str \
+ /system/gstreamer/0.10/default/chataudiosink autoaudiosink
+ setup_gconf_vendor -s -t str \
+ /system/gstreamer/0.10/default/audiosrc autoaudiosrc
+}
+
+enable_autospawn() {
+ echo "Enabling PulseAudio autospawn..."
+ if grep -q ^autospawn /etc/pulse/client.conf; then
+ sed -i -e "s|^autospawn.*|autospawn = yes|g" /etc/pulse/client.conf
+ else
+ echo "autospawn = yes" >> /etc/pulse/client.conf
+ fi
+}
+
+disable_alsa() {
+ echo "Disabling PulseAudio for ALSA..."
+ delete_variable ALSA_CONFIG_PATH
+}
+
+disable_phonon() {
+ echo "Disabling PulseAudio for Phonon..."
+ set_variable PHONON_PULSEAUDIO_DISABLE 1
+}
+
+disable_kmix() {
+ echo "Disabling PulseAudio for Kmix..."
+ set_variable KMIX_PULSEAUDIO_DISABLE 1
+}
+
+disable_libao() {
+ if test -f /etc/libao.conf; then
+ echo "Disabling PulseAudio for libao..."
+ sed -i -e "/default_driver=pulse/d" /etc/libao.conf
+ fi
+}
+
+disable_mplayer() {
+ if test -f $MPLAYER_CONF; then
+ echo "Disabling PulseAudio for mplayer..."
+ sed -i -e 's/^ao *= *pulse,*/ao=/g' \
+ -e 's/^ao *= *$/ao=alsa/g' $MPLAYER_CONF
+ fi
+}
+
+disable_speechd() {
+ echo "Disabling PulseAudio for speech dispatcher..."
+ if test -f /etc/speech-dispatcher/speechd.conf; then
+ if grep -q 'AudioOutputMethod' /etc/speech-dispatcher/speechd.conf; then
+ sed -i -e "s|^.*AudioOutputMethod .*|#AudioOutputMethod \"pulse\"|g" /etc/speech-dispatcher/speechd.conf
+ fi
+ fi
+}
+
+disable_openal() {
+ # nothing to do here. openal-soft is patched to prefer pulse but
+ # it won't autostart the daemon.
+ return 0
+}
+
+disable_oss() {
+ for app in $LIST_OF_OSS_APPS; do
+ sed -i -e "/alias $app='padsp $app'/d" $PROFNAME
+ done
+}
+
+disable_sdl() {
+ echo "Disabling PulseAudio for SDL..."
+ delete_variable SDL_AUDIODRIVER
+}
+
+disable_timidity() {
+ echo "Disabling PulseAudio for Timidity..."
+ sed -i -e "/alias timidity='timidity -Oe'/d" $PROFNAME
+}
+
+disable_xine() {
+ #echo "Disabling PulseAudio for Xine..."
+ # FIXME: xine uses $HOME/.xine/config
+ return 0
+}
+
+disable_festival() {
+ test -f /etc/festival.scm || return 0
+ echo "Disabling PulseAudio for Festival..."
+ /usr/bin/sed --in-place /";;;; Use pulseaudio to output sound"/d /etc/festival.scm
+ /usr/bin/sed --in-place /"(Parameter.set 'Audio_Command \"paplay -n festival \$FILE\")"/d /etc/festival.scm
+ /usr/bin/sed --in-place /"(Parameter.set 'Audio_Method 'Audio_Command)"/d /etc/festival.scm
+ /usr/bin/sed --in-place /"(Parameter.set 'Audio_Required_Format 'snd)"/d /etc/festival.scm
+}
+
+disable_sox() {
+ echo "Disabling PulseAudio for SoX..."
+ set_variable AUDIODRIVER alsa
+}
+
+disable_gstreamer() {
+ echo "Setting alsasink/src for gstreamer"
+ setup_gconf_vendor -s -t str \
+ /system/gstreamer/0.10/default/audiosink alsasink
+ setup_gconf_vendor -s -t str \
+ /system/gstreamer/0.10/default/musicaudiosink alsasink
+ setup_gconf_vendor -s -t str \
+ /system/gstreamer/0.10/default/chataudiosink alsasink
+ setup_gconf_vendor -s -t str \
+ /system/gstreamer/0.10/default/audiosrc alsasrc
+}
+
+disable_autospawn() {
+ echo "Disabling PulseAudio autospawn..."
+ if grep -q ^autospawn /etc/pulse/client.conf; then
+ sed -i -e "s|^autospawn.*|autospawn = no|g" /etc/pulse/client.conf
+ else
+ echo "autospawn = no" >> /etc/pulse/client.conf
+ fi
+ # kill leftover PA processes
+ killall pulseaudio > /dev/null 2>&1
+}
+
+enable_all() {
+ enable_alsa
+ enable_libao
+ enable_mplayer
+ enable_openal
+ enable_oss
+ enable_sdl
+ enable_timidity
+ enable_xine
+ enable_festival
+ enable_phonon
+ enable_kmix
+ enable_speechd
+ enable_sox
+ enable_gstreamer
+ enable_autospawn
+}
+
+disable_all() {
+ disable_alsa
+ disable_libao
+ disable_mplayer
+ disable_openal
+ disable_oss
+ disable_sdl
+ disable_timidity
+ disable_xine
+ disable_festival
+ disable_phonon
+ disable_kmix
+ disable_speechd
+ disable_sox
+ disable_gstreamer
+ disable_autospawn
+}
+
+case $1 in
+ --enable)
+ check_root || exit 1
+ ENABLE=1
+ enable_all
+ ;;
+ --disable)
+ check_root || exit 1
+ ENABLE=0
+ disable_all
+ ;;
+ --auto)
+ check_root || exit 1
+ if [ -f /etc/sysconfig/sound ]; then
+ . /etc/sysconfig/sound
+ fi
+ if [ "x$PULSEAUDIO_ENABLE" = "xyes" ]; then
+ enable_all
+ elif [ "x$PULSEAUDIO_ENABLE" = "xcustom" ]; then
+ echo "Custom configuration detected, doing nothing."
+ else
+ disable_all
+ fi
+ exit 0
+ ;;
+ --status)
+ if [ -f /etc/sysconfig/sound ]; then
+ . /etc/sysconfig/sound
+ fi
+ if [ "x$PULSEAUDIO_ENABLE" = "xyes" ]; then
+ echo "enabled"
+ elif [ "x$PULSEAUDIO_ENABLE" = "xcustom" ]; then
+ echo "custom configured"
+ else
+ echo "disabled"
+ fi
+ exit 0
+ ;;
+ *)
+ show_help
+ ;;
+esac
+
+# Now, update /etc/sysconfig/sound with the PA status
+if grep -q PULSEAUDIO_ENABLE /etc/sysconfig/sound; then
+ if [ "x$ENABLE" = "x1" ]; then
+ sed -i -e "s|PULSEAUDIO_ENABLE=\"no\"|PULSEAUDIO_ENABLE=\"yes\"|g" /etc/sysconfig/sound
+ else
+ sed -i -e "s|PULSEAUDIO_ENABLE=\"yes\"|PULSEAUDIO_ENABLE=\"no\"|g" /etc/sysconfig/sound
+ fi
+else
+ if [ "x$ENABLE" = "x1" ]; then
+ echo "PULSEAUDIO_ENABLE=\"yes\"" >> /etc/sysconfig/sound
+ else
+ echo "PULSEAUDIO_ENABLE=\"no\"" >> /etc/sysconfig/sound
+ fi
+fi
+exit 0