1 %bcond_with pulseaudio_pmapi
2 %bcond_with pulseaudio_dlog
3 %bcond_with pulseaudio_bt_profile_set
4 %bcond_with pulseaudio_udev_with_usb_only
5 %bcond_with pulseaudio_with_bluez5
6 %bcond_with pulseaudio_samsung_policy
10 Summary: Improved Linux sound server
13 Group: Multimedia/Audio
14 License: GPL-2.0+ and LGPL-2.1+
15 URL: http://pulseaudio.org
16 Source0: http://www.freedesktop.org/software/pulseaudio/releases/%{name}-%{version}.tar.gz
17 Source99: baselibs.conf
18 Source1001: pulseaudio.manifest
19 BuildRequires: libtool-ltdl-devel
20 BuildRequires: libtool
21 BuildRequires: intltool
23 BuildRequires: pkgconfig(speexdsp)
24 BuildRequires: pkgconfig(sndfile)
25 BuildRequires: pkgconfig(alsa)
26 BuildRequires: pkgconfig(glib-2.0)
27 BuildRequires: pkgconfig(gconf-2.0)
28 BuildRequires: pkgconfig(bluez)
29 BuildRequires: pkgconfig(sbc)
30 BuildRequires: pkgconfig(dbus-1)
32 BuildRequires: pkgconfig(xi)
34 BuildRequires: pkgconfig(libudev)
35 BuildRequires: pkgconfig(openssl)
36 BuildRequires: pkgconfig(json)
37 BuildRequires: pkgconfig(tdb)
38 BuildRequires: pkgconfig(vconf)
39 BuildRequires: systemd-devel
40 BuildRequires: libcap-devel
41 %if %{with pulseaudio_dlog}
42 BuildRequires: pkgconfig(dlog)
45 Requires(post): /sbin/ldconfig
46 Requires(postun): /sbin/ldconfig
49 PulseAudio is a sound server for Linux and other Unix like operating
50 systems. It is intended to be an improved drop-in replacement for the
51 Enlightened Sound Daemon (ESOUND).
54 Summary: PulseAudio client libraries
55 Group: Multimedia/Audio
57 %description -n libpulse
58 Client libraries used by applications that access a PulseAudio sound server
59 via PulseAudio's native interface.
61 %package -n libpulse-mainloop-glib
63 Group: Multimedia/Audio
65 %description -n libpulse-mainloop-glib
66 pulseaudio is a networked sound server for Linux and other Unix like
67 operating systems and Microsoft Windows. It is intended to be an
68 improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
70 This package contains the GLIB Main Loop bindings for the PulseAudio
73 %package -n libpulse-devel
74 Summary: PulseAudio client development headers and libraries
75 Group: Multimedia/Development
76 Requires: libpulse = %{version}
77 Requires: libpulse-mainloop-glib = %{version}
79 %description -n libpulse-devel
80 Headers and libraries for developing applications that access a PulseAudio
81 sound server via PulseAudio's native interface
84 Summary: Command line tools for the PulseAudio sound server
85 Group: Multimedia/Audio
86 Requires: %{name} = %{version}-%{release}
89 These tools provide command line access to various features of the
90 PulseAudio sound server. Included tools are:
91 pabrowse - Browse available PulseAudio servers on the local network.
92 paplay - Playback a WAV file via a PulseAudio sink.
93 pacat - Cat raw audio data to a PulseAudio sink.
94 parec - Cat raw audio data from a PulseAudio source.
95 pacmd - Connect to PulseAudio's built-in command line control interface.
96 pactl - Send a control command to a PulseAudio server.
97 padsp - /dev/dsp wrapper to transparently support OSS applications.
98 pax11publish - Store/retrieve PulseAudio default server/sink/source
99 settings in the X11 root window.
101 %package module-bluetooth
102 Summary: Bluetooth module for PulseAudio sound server
103 Group: Multimedia/Audio
104 Requires: %{name} = %{version}-%{release}
106 %description module-bluetooth
107 This module enables PulseAudio to work with bluetooth devices, like headset
110 %package module-devel
111 Summary: Headers and libraries for PulseAudio module development
113 Group: Multimedia/Development
114 Requires: libpulse-devel = %{version}
116 %description module-devel
117 Headers and libraries for developing pulseaudio modules outside
121 Summary: PA default configuration
122 Group: System Environment/Configuration
125 Default configuration for PulseAudio.
128 Summary: PA module-raop
129 Group: Multimedia/Audio
131 %description module-raop
132 PulseAudio module-raop.
134 %package module-filter
135 Summary: PA module-filter
136 Group: Multimedia/Audio
138 %description module-filter
139 PulseAudio module-filter.
141 %package module-combine-sink
142 Summary: PA module-combine-sink
143 Group: Multimedia/Audio
145 %description module-combine-sink
146 PulseAudio module-combine-sink.
148 %package module-augment-properties
149 Summary: PA module-augment-properties
150 Group: Multimedia/Audio
152 %description module-augment-properties
153 PulseAudio module-augment-properties.
155 %package module-dbus-protocol
156 Summary: PA module-dbus-protocol
157 Group: Multimedia/Audio
159 %description module-dbus-protocol
160 PulseAudio module-dbus-protocol.
162 %package module-null-source
163 Summary: PA module-null-source
164 Group: Multimedia/Audio
166 %description module-null-source
167 PulseAudio module-null-source.
169 %package module-switch-on-connect
170 Summary: PA module-swich-on-connect
171 Group: Multimedia/Audio
173 %description module-switch-on-connect
174 PulseAudio module-swich-on-connect.
176 %package vala-bindings
177 Summary: PA Vala bindings
178 Group: Multimedia/Audio
179 Requires: %{name} = %{version}-%{release}
181 %description vala-bindings
182 PulseAudio Vala bindings.
184 %package realtime-scheduling
185 Summary: PA realtime scheduling
186 Group: Multimedia/Audio
187 Requires: %{name} = %{version}-%{release}
188 Requires: libcap-tools
190 %description realtime-scheduling
191 PulseAudio realtime-scheduling.
195 echo "%{version}" > .tarball-version
199 export CFLAGS="%{optflags} -fno-strict-aliasing"
200 export LD_AS_NEEDED=0
201 NOCONFIGURE=yes ./bootstrap.sh
202 %configure --prefix=%{_prefix} \
206 --disable-oss-output \
207 --disable-oss-wrapper \
209 --disable-hal-compat \
217 --with-bluetooth-headset-backend=ofono \
219 --with-database=tdb \
220 %if %{with pulseaudio_dlog}
223 %if %{with pulseaudio_pmapi}
226 %if %{with pulseaudio_bt_profile_set}
227 --enable-bt-profile-set \
229 %if %{with pulseaudio_udev_with_usb_only}
230 --enable-udev-with-usb-only \
232 %if %{with pulseaudio_samsung_policy}
233 --enable-samsung-policy \
235 --with-udev-rules-dir=%{_libdir}/udev/rules.d \
236 --with-system-user=pulse \
237 --with-system-group=pulse \
238 --with-access-group=pulse-access
240 %__make %{?_smp_mflags} V=0
247 cd %{buildroot}%{_sysconfdir}/pulse/filter
248 ln -sf filter_8000_44100.dat filter_11025_44100.dat
249 ln -sf filter_8000_44100.dat filter_12000_44100.dat
250 ln -sf filter_8000_44100.dat filter_16000_44100.dat
251 ln -sf filter_8000_44100.dat filter_22050_44100.dat
252 ln -sf filter_8000_44100.dat filter_24000_44100.dat
253 ln -sf filter_8000_44100.dat filter_32000_44100.dat
256 rm -rf %{buildroot}%{_sysconfdir}/xdg/autostart/pulseaudio-kde.desktop
257 rm -rf %{buildroot}%{_bindir}/start-pulseaudio-kde
258 rm -rf %{buildroot}%{_bindir}/start-pulseaudio-x11
259 rm -rf %{buildroot}%{_libdir}/pulse-%{version}/modules/module-device-manager.so
261 mkdir -p %{buildroot}%{_includedir}/pulsemodule/pulse
262 mkdir -p %{buildroot}%{_includedir}/pulsemodule/pulsecore
264 cp %{buildroot}%{_includedir}/pulse/*.h %{buildroot}%{_includedir}/pulsemodule/pulse
266 fdupes %{buildroot}%{_datadir}
267 fdupes %{buildroot}%{_includedir}
269 # get rid of *.la files
270 rm -f %{buildroot}%{_libdir}/*.la
271 rm -f %{buildroot}%{_libdir}/pulseaudio/*.la
275 if [ $1 -eq 1 ] ; then
276 # Initial installation
277 systemctl --user --global preset pulseaudio.socket >/dev/null 2>&1 || :
281 if [ $1 -eq 0 ] ; then
282 # Package removal, not upgrade
283 systemctl --no-reload --user --global disable pulseaudio.socket > /dev/null 2>&1 || :
286 %postun -p /sbin/ldconfig
288 %post -n libpulse -p /sbin/ldconfig
289 %postun -n libpulse -p /sbin/ldconfig
291 %post -n libpulse-mainloop-glib -p /sbin/ldconfig
292 %postun -n libpulse-mainloop-glib -p /sbin/ldconfig
294 %post realtime-scheduling
295 setcap cap_sys_nice+ep /usr/bin/pulseaudio
297 %postun realtime-scheduling
298 setcap -r /usr/bin/pulseaudio
303 %manifest %{name}.manifest
304 %defattr(-,root,root,-)
305 %license LICENSE GPL LGPL
306 %config %{_sysconfdir}/pulse/filter/*.dat
308 %{_bindir}/pulseaudio
309 %{_libexecdir}/pulse/*
310 %{_libdir}/libpulsecore-%{version}.so
311 %{_libdir}/udev/rules.d/90-pulseaudio.rules
312 %config(noreplace) /etc/dbus-1/system.d/pulseaudio-system.conf
314 %{_libdir}/pulse-%{version}/modules/libalsa-util.so
315 %{_libdir}/pulse-%{version}/modules/libcli.so
316 %{_libdir}/pulse-%{version}/modules/libprotocol-cli.so
317 %{_libdir}/pulse-%{version}/modules/libprotocol-http.so
318 %{_libdir}/pulse-%{version}/modules/libprotocol-native.so
319 %{_libdir}/pulse-%{version}/modules/libprotocol-simple.so
320 %{_libdir}/pulse-%{version}/modules/librtp.so
321 %{_libdir}/pulse-%{version}/modules/module-alsa-sink.so
322 %{_libdir}/pulse-%{version}/modules/module-alsa-source.so
323 %{_libdir}/pulse-%{version}/modules/module-always-sink.so
324 %{_libdir}/pulse-%{version}/modules/module-console-kit.so
325 %{_libdir}/pulse-%{version}/modules/module-device-restore.so
326 %{_libdir}/pulse-%{version}/modules/module-stream-restore.so
327 %{_libdir}/pulse-%{version}/modules/module-cli-protocol-tcp.so
328 %{_libdir}/pulse-%{version}/modules/module-cli-protocol-unix.so
329 %{_libdir}/pulse-%{version}/modules/module-cli.so
330 %{_libdir}/pulse-%{version}/modules/module-combine.so
331 %{_libdir}/pulse-%{version}/modules/module-default-device-restore.so
332 %{_libdir}/pulse-%{version}/modules/module-detect.so
333 %{_libdir}/pulse-%{version}/modules/module-esound-sink.so
334 %{_libdir}/pulse-%{version}/modules/module-http-protocol-tcp.so
335 %{_libdir}/pulse-%{version}/modules/module-http-protocol-unix.so
336 %{_libdir}/pulse-%{version}/modules/module-intended-roles.so
337 %{_libdir}/pulse-%{version}/modules/module-ladspa-sink.so
338 %{_libdir}/pulse-%{version}/modules/module-match.so
339 %{_libdir}/pulse-%{version}/modules/module-mmkbd-evdev.so
340 %{_libdir}/pulse-%{version}/modules/module-native-protocol-fd.so
341 %{_libdir}/pulse-%{version}/modules/module-native-protocol-tcp.so
342 %{_libdir}/pulse-%{version}/modules/module-native-protocol-unix.so
343 %{_libdir}/pulse-%{version}/modules/module-null-sink.so
344 %{_libdir}/pulse-%{version}/modules/module-pipe-sink.so
345 %{_libdir}/pulse-%{version}/modules/module-pipe-source.so
346 %{_libdir}/pulse-%{version}/modules/module-position-event-sounds.so
347 %{_libdir}/pulse-%{version}/modules/module-remap-sink.so
348 %{_libdir}/pulse-%{version}/modules/module-remap-source.so
349 %{_libdir}/pulse-%{version}/modules/module-rescue-streams.so
350 %{_libdir}/pulse-%{version}/modules/module-rtp-recv.so
351 %{_libdir}/pulse-%{version}/modules/module-rtp-send.so
352 %{_libdir}/pulse-%{version}/modules/module-simple-protocol-tcp.so
353 %{_libdir}/pulse-%{version}/modules/module-simple-protocol-unix.so
354 %{_libdir}/pulse-%{version}/modules/module-sine.so
355 %{_libdir}/pulse-%{version}/modules/module-tunnel-sink.so
356 %{_libdir}/pulse-%{version}/modules/module-tunnel-sink-new.so
357 %{_libdir}/pulse-%{version}/modules/module-tunnel-source.so
358 %{_libdir}/pulse-%{version}/modules/module-tunnel-source-new.so
359 %{_libdir}/pulse-%{version}/modules/module-suspend-on-idle.so
360 %{_libdir}/pulse-%{version}/modules/module-volume-restore.so
361 %{_libdir}/pulse-%{version}/modules/module-alsa-card.so
362 %{_libdir}/pulse-%{version}/modules/module-card-restore.so
363 %{_libdir}/pulse-%{version}/modules/module-sine-source.so
364 %{_libdir}/pulse-%{version}/modules/module-loopback.so
365 %{_libdir}/pulse-%{version}/modules/module-rygel-media-server.so
366 %{_libdir}/pulse-%{version}/modules/module-echo-cancel.so
367 %{_libdir}/pulse-%{version}/modules/module-virtual-sink.so
368 %{_libdir}/pulse-%{version}/modules/module-virtual-source.so
369 %{_libdir}/pulse-%{version}/modules/libprotocol-esound.so
370 %{_libdir}/pulse-%{version}/modules/module-esound-compat-spawnfd.so
371 %{_libdir}/pulse-%{version}/modules/module-esound-compat-spawnpid.so
372 %{_libdir}/pulse-%{version}/modules/module-esound-protocol-tcp.so
373 %{_libdir}/pulse-%{version}/modules/module-esound-protocol-unix.so
374 %{_libdir}/pulse-%{version}/modules/module-gconf.so
375 %{_libdir}/pulse-%{version}/modules/module-udev-detect.so
376 %{_libdir}/pulse-%{version}/modules/module-role-cork.so
377 %{_libdir}/pulse-%{version}/modules/module-switch-on-port-available.so
378 %{_libdir}/pulse-%{version}/modules/module-virtual-surround-sink.so
379 %{_libdir}/pulse-%{version}/modules/module-role-ducking.so
380 %{_libdir}/pulse-%{version}/modules/module-systemd-login.so
381 %{_unitdir_user}/pulseaudio.service
382 %{_unitdir_user}/pulseaudio.socket
383 %if %{with pulseaudio_samsung_policy}
384 %{_libdir}/pulse-%{version}/modules/module-policy.so
386 %{_libdir}/pulse-%{version}/modules/libvolume-api.so
387 %{_libdir}/pulse-%{version}/modules/libmain-volume-policy.so
388 %{_libdir}/pulse-%{version}/modules/module-volume-api.so
389 %{_libdir}/pulse-%{version}/modules/module-main-volume-policy.so
390 %{_libdir}/pulse-%{version}/modules/module-audio-groups.so
392 %config(noreplace) /etc/bash_completion.d/pulseaudio-bash-completion.sh
395 %manifest %{name}.manifest
396 %defattr(-,root,root,-)
397 %{_libdir}/libpulse.so.*
398 %{_libdir}/libpulse-simple.so.*
399 %{_libdir}/pulseaudio/libpulsecommon-*.so
401 %files -n libpulse-devel
402 %manifest %{name}.manifest
403 %defattr(-,root,root,-)
404 %{_includedir}/pulse/*
405 %{_libdir}/libpulse.so
406 %{_libdir}/libpulse-simple.so
407 %{_libdir}/libpulse-mainloop-glib.so
408 %{_libdir}/pkgconfig/libpulse*.pc
409 %{_datadir}/vala/vapi/libpulse.vapi
411 %{_libdir}/cmake/PulseAudio/PulseAudioConfig.cmake
412 %{_libdir}/cmake/PulseAudio/PulseAudioConfigVersion.cmake
414 %files -n libpulse-mainloop-glib
415 %manifest %{name}.manifest
416 %defattr(-,root,root)
417 %{_libdir}/libpulse-mainloop-glib.so.*
420 %manifest %{name}.manifest
421 %defattr(-,root,root,-)
422 %doc %{_mandir}/man1/*
423 %doc %{_mandir}/man5/*
431 %{_bindir}/pasuspender
433 %files module-bluetooth
434 %manifest %{name}.manifest
435 %defattr(-,root,root,-)
436 %{_libdir}/pulse-%{version}/modules/module-bluetooth-discover.so
437 %{_libdir}/pulse-%{version}/modules/module-bluetooth-policy.so
438 %{_libdir}/pulse-%{version}/modules/module-bluez5-discover.so
439 %{_libdir}/pulse-%{version}/modules/module-bluez5-device.so
440 %{_libdir}/pulse-%{version}/modules/libbluez5-util.so
443 %manifest %{name}.manifest
444 %defattr(-,root,root,-)
445 %{_libdir}/pulse-%{version}/modules/libraop.so
446 %{_libdir}/pulse-%{version}/modules/module-raop*.so
449 %manifest %{name}.manifest
450 %defattr(-,root,root,-)
451 %{_libdir}/pulse-%{version}/modules/module-filter-*.so
453 %files module-combine-sink
454 %manifest %{name}.manifest
455 %defattr(-,root,root,-)
456 %{_libdir}/pulse-%{version}/modules/module-combine-sink.so
458 %files module-augment-properties
459 %manifest %{name}.manifest
460 %defattr(-,root,root,-)
461 %{_libdir}/pulse-%{version}/modules/module-augment-properties.so
463 %files module-dbus-protocol
464 %manifest %{name}.manifest
465 %defattr(-,root,root,-)
466 %{_libdir}/pulse-%{version}/modules/module-dbus-protocol.so
468 %files module-null-source
469 %manifest %{name}.manifest
470 %defattr(-,root,root,-)
471 %{_libdir}/pulse-%{version}/modules/module-null-source.so
473 %files module-switch-on-connect
474 %manifest %{name}.manifest
475 %defattr(-,root,root,-)
476 %{_libdir}/pulse-%{version}/modules/module-switch-on-connect.so
479 %manifest %{name}.manifest
480 %defattr(-,root,root,-)
481 %config(noreplace) %{_sysconfdir}/pulse/daemon.conf
482 %config(noreplace) %{_sysconfdir}/pulse/default.pa
483 %config(noreplace) %{_sysconfdir}/pulse/client.conf
484 %config(noreplace) %{_sysconfdir}/pulse/system.pa
485 %config(noreplace) %{_sysconfdir}/pulse/audio-groups.conf
486 %config(noreplace) %{_sysconfdir}/pulse/main-volume-policy.conf
488 %{_datadir}/pulseaudio/alsa-mixer/paths/*
489 %{_datadir}/pulseaudio/alsa-mixer/profile-sets/*
492 %manifest %{name}.manifest
493 %defattr(-,root,root)
494 %{_includedir}/pulsemodule/pulsecore/*.h
495 %{_includedir}/pulsemodule/pulse/*.h
496 %{_includedir}/pulsemodule/modules/main-volume-policy/*.h
497 %{_includedir}/pulsemodule/modules/volume-api/*.h
498 %{_libdir}/pkgconfig/pulseaudio-module-devel.pc
501 %manifest %{name}.manifest
502 %defattr(-,root,root,-)
503 %{_datadir}/vala/vapi/*
505 %files realtime-scheduling
506 %defattr(-,root,root,-)