1 %bcond_with pulseaudio_pmapi
2 %bcond_without pulseaudio_dlog
3 %bcond_with pulseaudio_bt_profile_set
4 %bcond_without pulseaudio_udev_with_usb_only
5 %bcond_with pulseaudio_with_bluez5
7 %bcond_without pcm_dump
9 %define udev_dir %{_prefix}/lib/udev
12 Summary: Improved Linux sound server
15 Group: Multimedia/Audio
17 URL: http://pulseaudio.org
18 Source0: http://www.freedesktop.org/software/pulseaudio/releases/%{name}-%{version}.tar.gz
19 Source99: baselibs.conf
20 Source1001: pulseaudio.manifest
21 BuildRequires: libtool-ltdl-devel
22 BuildRequires: libtool
23 BuildRequires: intltool
25 BuildRequires: pkgconfig(speexdsp)
26 BuildRequires: pkgconfig(sndfile)
27 BuildRequires: pkgconfig(alsa)
28 BuildRequires: pkgconfig(glib-2.0)
29 %if "%{?tizen_target_name}" != "hawkp"
30 BuildRequires: pkgconfig(sbc)
32 BuildRequires: pkgconfig(dbus-1)
34 BuildRequires: pkgconfig(xi)
36 BuildRequires: pkgconfig(libudev)
37 BuildRequires: pkgconfig(openssl)
38 BuildRequires: pkgconfig(json-c)
39 BuildRequires: pkgconfig(vconf)
40 BuildRequires: systemd-devel
41 BuildRequires: libcap-devel
42 BuildRequires: pkgconfig(cynara-client)
43 BuildRequires: pkgconfig(cynara-creds-socket)
44 BuildRequires: pkgconfig(cynara-session)
45 %if %{with pulseaudio_dlog}
46 BuildRequires: pkgconfig(dlog)
48 %if "%{?TIZEN_PRODUCT_TV}" == "1"
49 BuildRequires: pkgconfig(lwipc)
52 Requires(post): /sbin/ldconfig
53 Requires(postun): /sbin/ldconfig
56 PulseAudio is a sound server for Linux and other Unix like operating
57 systems. It is intended to be an improved drop-in replacement for the
58 Enlightened Sound Daemon (ESOUND).
61 Summary: PulseAudio client libraries
62 Group: Multimedia/Audio
64 %description -n libpulse
65 Client libraries used by applications that access a PulseAudio sound server
66 via PulseAudio's native interface.
68 %package -n libpulse-mainloop-glib
70 Group: Multimedia/Audio
72 %description -n libpulse-mainloop-glib
73 pulseaudio is a networked sound server for Linux and other Unix like
74 operating systems and Microsoft Windows. It is intended to be an
75 improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
77 This package contains the GLIB Main Loop bindings for the PulseAudio
80 %package -n libpulse-devel
81 Summary: PulseAudio client development headers and libraries
82 Group: Multimedia/Development
83 Requires: libpulse = %{version}
84 Requires: libpulse-mainloop-glib = %{version}
86 %description -n libpulse-devel
87 Headers and libraries for developing applications that access a PulseAudio
88 sound server via PulseAudio's native interface
91 Summary: Command line tools for the PulseAudio sound server
92 Group: Multimedia/Audio
93 Requires: %{name} = %{version}-%{release}
96 These tools provide command line access to various features of the
97 PulseAudio sound server. Included tools are:
98 pabrowse - Browse available PulseAudio servers on the local network.
99 paplay - Playback a WAV file via a PulseAudio sink.
100 pacat - Cat raw audio data to a PulseAudio sink.
101 parec - Cat raw audio data from a PulseAudio source.
102 pacmd - Connect to PulseAudio's built-in command line control interface.
103 pactl - Send a control command to a PulseAudio server.
104 padsp - /dev/dsp wrapper to transparently support OSS applications.
105 pax11publish - Store/retrieve PulseAudio default server/sink/source
106 settings in the X11 root window.
108 %package module-bluetooth
109 Summary: Bluetooth module for PulseAudio sound server
110 Group: Multimedia/Audio
111 Requires: %{name} = %{version}-%{release}
113 %description module-bluetooth
114 This module enables PulseAudio to work with bluetooth devices, like headset
117 %package module-devel
118 Summary: Headers and libraries for PulseAudio module development
120 Group: Multimedia/Development
121 Requires: libpulse-devel = %{version}
123 %description module-devel
124 Headers and libraries for developing pulseaudio modules outside
128 Summary: PA default configuration
129 Group: System Environment/Configuration
132 Default configuration for PulseAudio.
134 %package cascaded-setup
135 Summary: Configuration for enabling the "cascaded" PulseAudio setup
136 Group: Multimedia/Audio
138 %description cascaded-setup
139 This package enables the system PulseAudio instance, and changes the user
140 instance configuration so that user instances access the hardware via the
141 system instance instead of accessing the hardware directly. This allows
142 multiple users to use the hardware simultaneously.
145 Summary: PA module-raop
146 Group: Multimedia/Audio
148 %description module-raop
149 PulseAudio module-raop.
151 %package module-augment-properties
152 Summary: PA module-augment-properties
153 Group: Multimedia/Audio
155 %description module-augment-properties
156 PulseAudio module-augment-properties.
158 %package module-dbus-protocol
159 Summary: PA module-dbus-protocol
160 Group: Multimedia/Audio
162 %description module-dbus-protocol
163 PulseAudio module-dbus-protocol.
165 %package module-switch-on-connect
166 Summary: PA module-swich-on-connect
167 Group: Multimedia/Audio
169 %description module-switch-on-connect
170 PulseAudio module-swich-on-connect.
172 %package vala-bindings
173 Summary: PA Vala bindings
174 Group: Multimedia/Audio
175 Requires: %{name} = %{version}-%{release}
177 %description vala-bindings
178 PulseAudio Vala bindings.
180 %package realtime-scheduling
181 Summary: PA realtime scheduling
182 Group: Multimedia/Audio
183 Requires: %{name} = %{version}-%{release}
184 Requires: libcap-tools
186 %description realtime-scheduling
187 PulseAudio realtime-scheduling.
191 echo "%{version}" > .tarball-version
193 %if "%{?tizen_profile_name}" == "tv"
194 cp src/daemon/systemd/system/pulseaudio-tv.service.in src/daemon/systemd/system/pulseaudio.service.in
198 export CFLAGS="%{optflags} -fno-strict-aliasing -D__TIZEN__ -D__TIZEN_BT__ -D__TIZEN_LOG__ -DBLUETOOTH_APTX_SUPPORT %{?asan:-ldl }"
199 %if 0%{?sec_build_binary_debug_enable}
200 export CFLAGS+=" -DTIZEN_DEBUG_ENABLE"
201 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
202 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
205 %if "%{?tizen_profile_name}" == "mobile"
206 echo "tizen profile mobile"
207 export CFLAGS+=" -DTIZEN_PROFILE_MOBILE "
210 %if "%{?tizen_profile_name}" == "wearable"
211 echo "tizen profile werable"
212 export CFLAGS+=" -DTIZEN_PROFILE_WEARABLE -DADJUST_ANDROID_BITPOOL"
215 %if "%{?tizen_profile_name}" == "tv"
216 echo "tizen profile tv"
217 export CFLAGS+=" -DTIZEN_PROFILE_TV "
218 %if "%{?TIZEN_PRODUCT_TV}" == "1"
219 export CFLAGS+=" -DTIZEN_FEATURE_TV_PROD "
223 export LD_AS_NEEDED=0
224 NOCONFIGURE=yes ./bootstrap.sh
225 %configure --prefix=%{_prefix} \
229 --disable-oss-output \
230 --disable-oss-wrapper \
232 --disable-hal-compat \
238 %if "%{?tizen_target_name}" != "hawkp"
242 --with-bluetooth-headset-backend=ofono \
244 %if %{with pulseaudio_dlog}
247 %if %{with pulseaudio_pmapi}
250 %if %{with pulseaudio_bt_profile_set}
251 --enable-bt-profile-set \
253 %if %{with pulseaudio_udev_with_usb_only}
254 --enable-udev-with-usb-only \
259 %if "%{?TIZEN_PRODUCT_TV}" == "1"
263 --with-udev-rules-dir=%{udev_dir}/rules.d \
264 --with-system-user=pulse \
265 --with-system-group=pulse \
266 --with-access-group=pulse-access \
270 %__make %{?_smp_mflags} V=0
277 cd %{buildroot}%{_sysconfdir}/pulse/filter
278 ln -sf filter_8000_44100.dat filter_11025_44100.dat
279 ln -sf filter_8000_44100.dat filter_12000_44100.dat
280 ln -sf filter_8000_44100.dat filter_16000_44100.dat
281 ln -sf filter_8000_44100.dat filter_22050_44100.dat
282 ln -sf filter_8000_44100.dat filter_24000_44100.dat
283 ln -sf filter_8000_44100.dat filter_32000_44100.dat
286 rm -rf %{buildroot}%{_sysconfdir}/xdg/autostart/pulseaudio-kde.desktop
287 rm -rf %{buildroot}%{_bindir}/start-pulseaudio-kde
288 rm -rf %{buildroot}%{_bindir}/start-pulseaudio-x11
289 rm -rf %{buildroot}%{_libdir}/pulse-%{version}/modules/module-device-manager.so
291 mkdir -p %{buildroot}%{_includedir}/pulsemodule/pulse
292 mkdir -p %{buildroot}%{_includedir}/pulsemodule/pulsecore
294 cp %{buildroot}%{_includedir}/pulse/*.h %{buildroot}%{_includedir}/pulsemodule/pulse
296 %if "%{?tizen_profile_name}" == "tv"
297 mkdir -p %{buildroot}%{_unitdir}/sysinit.target.wants/
298 ln -s ../pulseaudio.service %{buildroot}%{_unitdir}/sysinit.target.wants/pulseaudio.service
300 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants/
301 ln -s ../pulseaudio.service %{buildroot}%{_unitdir}/multi-user.target.wants/pulseaudio.service
304 fdupes %{buildroot}%{_datadir}
305 fdupes %{buildroot}%{_includedir}
307 # get rid of *.la files
308 rm -f %{buildroot}%{_libdir}/*.la
309 rm -f %{buildroot}%{_libdir}/pulseaudio/*.la
316 %postun -p /sbin/ldconfig
318 %post -n libpulse -p /sbin/ldconfig
319 %postun -n libpulse -p /sbin/ldconfig
321 %post -n libpulse-mainloop-glib -p /sbin/ldconfig
322 %postun -n libpulse-mainloop-glib -p /sbin/ldconfig
324 %post realtime-scheduling
325 setcap cap_sys_nice+ep /usr/bin/pulseaudio
327 %postun realtime-scheduling
328 setcap -r /usr/bin/pulseaudio
331 # TODO: Check if there's a macro in Tizen for doing this.
332 if [ $1 -eq 1 ] ; then
333 # Initial installation
334 systemctl preset pulseaudio.service >/dev/null 2>&1 || :
337 %preun cascaded-setup
338 # TODO: Check if there's a macro in Tizen for doing this.
339 if [ $1 -eq 0 ] ; then
340 # Package removal, not upgrade
341 systemctl --no-reload disable pulseaudio.service >/dev/null 2>&1 || :
342 systemctl stop pulseaudio.service >/dev/null 2>&1 || :
345 %postun cascaded-setup
346 # TODO: Check if there's a macro in Tizen for doing this.
347 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
348 if [ $1 -ge 1 ] ; then
349 # Package upgrade, not uninstall
350 systemctl try-restart pulseaudio.service >/dev/null 2>&1 || :
356 %manifest %{name}.manifest
357 %defattr(-,root,root,-)
358 %license LICENSE LGPL
359 %config %{_sysconfdir}/pulse/filter/*.dat
360 %exclude %{_bindir}/esdcompat
361 %{_bindir}/pulseaudio
362 %{_libdir}/libpulsecore-%{version}.so
363 %{udev_dir}/rules.d/90-pulseaudio.rules
364 %config(noreplace) /etc/dbus-1/system.d/pulseaudio-system.conf
366 %{_libdir}/pulse-%{version}/modules/libalsa-util.so
367 %{_libdir}/pulse-%{version}/modules/libcli.so
368 %{_libdir}/pulse-%{version}/modules/liblogind.so
369 %{_libdir}/pulse-%{version}/modules/libprotocol-cli.so
370 %{_libdir}/pulse-%{version}/modules/libprotocol-http.so
371 %{_libdir}/pulse-%{version}/modules/libprotocol-native.so
372 %{_libdir}/pulse-%{version}/modules/libprotocol-simple.so
373 %{_libdir}/pulse-%{version}/modules/librtp.so
374 %{_libdir}/pulse-%{version}/modules/libtunnel-manager.so
375 %{_libdir}/pulse-%{version}/modules/module-alsa-sink.so
376 %{_libdir}/pulse-%{version}/modules/module-alsa-source.so
377 %{_libdir}/pulse-%{version}/modules/module-always-sink.so
378 %{_libdir}/pulse-%{version}/modules/module-console-kit.so
379 %{_libdir}/pulse-%{version}/modules/module-device-restore.so
380 %{_libdir}/pulse-%{version}/modules/module-stream-restore.so
381 %{_libdir}/pulse-%{version}/modules/module-tunnel-manager.so
382 %{_libdir}/pulse-%{version}/modules/module-cli-protocol-tcp.so
383 %{_libdir}/pulse-%{version}/modules/module-cli-protocol-unix.so
384 %{_libdir}/pulse-%{version}/modules/module-cli.so
385 %{_libdir}/pulse-%{version}/modules/module-combine.so
386 %{_libdir}/pulse-%{version}/modules/module-combine-sink.so
387 %{_libdir}/pulse-%{version}/modules/module-default-device-restore.so
388 %{_libdir}/pulse-%{version}/modules/module-detect.so
389 %{_libdir}/pulse-%{version}/modules/module-echo-cancel.so
390 %{_libdir}/pulse-%{version}/modules/module-esound-sink.so
391 %{_libdir}/pulse-%{version}/modules/module-filter-apply.so
392 %{_libdir}/pulse-%{version}/modules/module-filter-heuristics.so
393 %{_libdir}/pulse-%{version}/modules/module-http-protocol-tcp.so
394 %{_libdir}/pulse-%{version}/modules/module-http-protocol-unix.so
395 %{_libdir}/pulse-%{version}/modules/module-intended-roles.so
396 %{_libdir}/pulse-%{version}/modules/module-ladspa-sink.so
397 %{_libdir}/pulse-%{version}/modules/module-match.so
398 %{_libdir}/pulse-%{version}/modules/module-mmkbd-evdev.so
399 %{_libdir}/pulse-%{version}/modules/module-native-protocol-fd.so
400 %{_libdir}/pulse-%{version}/modules/module-native-protocol-tcp.so
401 %{_libdir}/pulse-%{version}/modules/module-native-protocol-unix.so
402 %{_libdir}/pulse-%{version}/modules/module-null-sink.so
403 %{_libdir}/pulse-%{version}/modules/module-null-source.so
404 %{_libdir}/pulse-%{version}/modules/module-pipe-sink.so
405 %{_libdir}/pulse-%{version}/modules/module-pipe-source.so
406 %{_libdir}/pulse-%{version}/modules/module-position-event-sounds.so
407 %{_libdir}/pulse-%{version}/modules/module-remap-sink.so
408 %{_libdir}/pulse-%{version}/modules/module-remap-source.so
409 %{_libdir}/pulse-%{version}/modules/module-rescue-streams.so
410 %{_libdir}/pulse-%{version}/modules/module-rtp-recv.so
411 %{_libdir}/pulse-%{version}/modules/module-rtp-send.so
412 %{_libdir}/pulse-%{version}/modules/module-simple-protocol-tcp.so
413 %{_libdir}/pulse-%{version}/modules/module-simple-protocol-unix.so
414 %{_libdir}/pulse-%{version}/modules/module-sine.so
415 %{_libdir}/pulse-%{version}/modules/module-tunnel-sink.so
416 %{_libdir}/pulse-%{version}/modules/module-tunnel-sink-new.so
417 %{_libdir}/pulse-%{version}/modules/module-tunnel-source.so
418 %{_libdir}/pulse-%{version}/modules/module-tunnel-source-new.so
419 %{_libdir}/pulse-%{version}/modules/module-suspend-on-idle.so
420 %{_libdir}/pulse-%{version}/modules/module-volume-restore.so
421 %{_libdir}/pulse-%{version}/modules/module-alsa-card.so
422 %{_libdir}/pulse-%{version}/modules/module-card-restore.so
423 %{_libdir}/pulse-%{version}/modules/module-sine-source.so
424 %{_libdir}/pulse-%{version}/modules/module-loopback.so
425 %{_libdir}/pulse-%{version}/modules/module-rygel-media-server.so
426 %{_libdir}/pulse-%{version}/modules/module-virtual-sink.so
427 %{_libdir}/pulse-%{version}/modules/module-virtual-source.so
428 %{_libdir}/pulse-%{version}/modules/libprotocol-esound.so
429 %{_libdir}/pulse-%{version}/modules/module-esound-compat-spawnfd.so
430 %{_libdir}/pulse-%{version}/modules/module-esound-compat-spawnpid.so
431 %{_libdir}/pulse-%{version}/modules/module-esound-protocol-tcp.so
432 %{_libdir}/pulse-%{version}/modules/module-esound-protocol-unix.so
433 %{_libdir}/pulse-%{version}/modules/module-udev-detect.so
434 %{_libdir}/pulse-%{version}/modules/module-role-cork.so
435 %{_libdir}/pulse-%{version}/modules/module-switch-on-port-available.so
436 %{_libdir}/pulse-%{version}/modules/module-virtual-surround-sink.so
437 %{_libdir}/pulse-%{version}/modules/module-role-ducking.so
438 %{_libdir}/pulse-%{version}/modules/module-systemd-login.so
439 %{_unitdir_user}/pulseaudio.service
440 %{_unitdir_user}/pulseaudio.socket
441 %{_unitdir}/pulseaudio.service
442 %if "%{?tizen_profile_name}" == "tv"
443 %{_unitdir}/sysinit.target.wants/pulseaudio.service
445 %{_unitdir}/multi-user.target.wants/pulseaudio.service
448 %exclude %config(noreplace) /etc/bash_completion.d/pulseaudio-bash-completion.sh
451 %manifest %{name}.manifest
452 %license LICENSE LGPL
453 %defattr(-,root,root,-)
454 %{_libdir}/libpulse.so.*
455 %{_libdir}/libpulse-simple.so.*
456 %{_libdir}/pulseaudio/libpulsecommon-*.so
458 %files -n libpulse-devel
459 %manifest %{name}.manifest
460 %defattr(-,root,root,-)
461 %{_includedir}/pulse/*
462 %{_includedir}/pulsecore/*
463 %{_libdir}/libpulse.so
464 %{_libdir}/libpulse-simple.so
465 %{_libdir}/libpulse-mainloop-glib.so
466 %{_libdir}/pkgconfig/libpulse*.pc
467 %{_libdir}/pkgconfig/pulsecore.pc
468 %{_datadir}/vala/vapi/libpulse.vapi
470 %{_libdir}/cmake/PulseAudio/PulseAudioConfig.cmake
471 %{_libdir}/cmake/PulseAudio/PulseAudioConfigVersion.cmake
473 %files -n libpulse-mainloop-glib
474 %manifest %{name}.manifest
475 %defattr(-,root,root)
476 %{_libdir}/libpulse-mainloop-glib.so.*
479 %manifest %{name}.manifest
480 %license LICENSE LGPL
481 %defattr(-,root,root,-)
482 %doc %{_mandir}/man1/*
483 %doc %{_mandir}/man5/*
491 %{_bindir}/pasuspender
493 %files module-bluetooth
494 %manifest %{name}.manifest
495 %license LICENSE LGPL
496 %if "%{?tizen_target_name}" != "hawkp"
497 %defattr(-,root,root,-)
498 %{_libdir}/pulse-%{version}/modules/module-bluetooth-discover.so
499 %{_libdir}/pulse-%{version}/modules/module-bluetooth-policy.so
500 %{_libdir}/pulse-%{version}/modules/module-bluez5-discover.so
501 %{_libdir}/pulse-%{version}/modules/module-bluez5-device.so
502 %{_libdir}/pulse-%{version}/modules/libbluez5-util.so
506 %manifest %{name}.manifest
507 %defattr(-,root,root,-)
508 %{_libdir}/pulse-%{version}/modules/libraop.so
509 %{_libdir}/pulse-%{version}/modules/module-raop*.so
511 %files module-augment-properties
512 %manifest %{name}.manifest
513 %defattr(-,root,root,-)
514 %{_libdir}/pulse-%{version}/modules/module-augment-properties.so
516 %files module-dbus-protocol
517 %manifest %{name}.manifest
518 %defattr(-,root,root,-)
519 %{_libdir}/pulse-%{version}/modules/module-dbus-protocol.so
521 %files module-switch-on-connect
522 %manifest %{name}.manifest
523 %defattr(-,root,root,-)
524 %{_libdir}/pulse-%{version}/modules/module-switch-on-connect.so
527 %manifest %{name}.manifest
528 %defattr(-,root,root,-)
529 %config(noreplace) %{_sysconfdir}/pulse/daemon.conf
530 %config(noreplace) %{_sysconfdir}/pulse/default.pa
531 %config(noreplace) %{_sysconfdir}/pulse/client.conf
532 %config(noreplace) %{_sysconfdir}/pulse/system.pa
534 %{_datadir}/pulseaudio/alsa-mixer/paths/*
535 %{_datadir}/pulseaudio/alsa-mixer/profile-sets/*
537 %files cascaded-setup
538 %config(noreplace) %{_sysconfdir}/pulse/cascaded.pa
539 %config(noreplace) %{_sysconfdir}/pulse/tunnel-manager.conf
540 %{_unitdir}/pulseaudio.service
541 %{_unitdir}/pulseaudio.socket
544 %manifest %{name}.manifest
545 %defattr(-,root,root)
546 %{_includedir}/pulsemodule/pulsecore/*.h
547 %{_includedir}/pulsemodule/pulse/*.h
548 %{_libdir}/pkgconfig/pulseaudio-module-devel.pc
551 %manifest %{name}.manifest
552 %defattr(-,root,root,-)
553 %{_datadir}/vala/vapi/*
555 %files realtime-scheduling
556 %defattr(-,root,root,-)