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
8 %define udev_dir %{_prefix}/lib/udev
9 %define upgrade_script_dir %{_datadir}/upgrade/scripts
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 Source1: 500.pulseaudio-upgrade.patch.sh
22 BuildRequires: libtool-ltdl-devel
23 BuildRequires: libtool
24 BuildRequires: intltool
26 BuildRequires: pkgconfig(speexdsp)
27 BuildRequires: pkgconfig(sndfile)
28 BuildRequires: pkgconfig(alsa)
29 BuildRequires: pkgconfig(glib-2.0)
30 %if "%{?tizen_target_name}" != "hawkp"
31 BuildRequires: pkgconfig(bluez)
32 BuildRequires: pkgconfig(sbc)
34 BuildRequires: pkgconfig(dbus-1)
36 BuildRequires: pkgconfig(xi)
38 BuildRequires: pkgconfig(libudev)
39 BuildRequires: pkgconfig(openssl)
40 BuildRequires: pkgconfig(json-c)
41 BuildRequires: pkgconfig(vconf)
42 BuildRequires: systemd-devel
43 BuildRequires: libcap-devel
44 BuildRequires: pkgconfig(cynara-client)
45 BuildRequires: pkgconfig(cynara-creds-socket)
46 BuildRequires: pkgconfig(cynara-session)
47 %if %{with pulseaudio_dlog}
48 BuildRequires: pkgconfig(dlog)
50 %if "%{?TIZEN_PRODUCT_TV}" == "1"
51 BuildRequires: pkgconfig(lwipc)
54 Requires(post): /sbin/ldconfig
55 Requires(postun): /sbin/ldconfig
58 PulseAudio is a sound server for Linux and other Unix like operating
59 systems. It is intended to be an improved drop-in replacement for the
60 Enlightened Sound Daemon (ESOUND).
63 Summary: PulseAudio client libraries
64 Group: Multimedia/Audio
66 %description -n libpulse
67 Client libraries used by applications that access a PulseAudio sound server
68 via PulseAudio's native interface.
70 %package -n libpulse-mainloop-glib
72 Group: Multimedia/Audio
74 %description -n libpulse-mainloop-glib
75 pulseaudio is a networked sound server for Linux and other Unix like
76 operating systems and Microsoft Windows. It is intended to be an
77 improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
79 This package contains the GLIB Main Loop bindings for the PulseAudio
82 %package -n libpulse-devel
83 Summary: PulseAudio client development headers and libraries
84 Group: Multimedia/Development
85 Requires: libpulse = %{version}
86 Requires: libpulse-mainloop-glib = %{version}
88 %description -n libpulse-devel
89 Headers and libraries for developing applications that access a PulseAudio
90 sound server via PulseAudio's native interface
93 Summary: Command line tools for the PulseAudio sound server
94 Group: Multimedia/Audio
95 Requires: %{name} = %{version}-%{release}
98 These tools provide command line access to various features of the
99 PulseAudio sound server. Included tools are:
100 pabrowse - Browse available PulseAudio servers on the local network.
101 paplay - Playback a WAV file via a PulseAudio sink.
102 pacat - Cat raw audio data to a PulseAudio sink.
103 parec - Cat raw audio data from a PulseAudio source.
104 pacmd - Connect to PulseAudio's built-in command line control interface.
105 pactl - Send a control command to a PulseAudio server.
106 padsp - /dev/dsp wrapper to transparently support OSS applications.
107 pax11publish - Store/retrieve PulseAudio default server/sink/source
108 settings in the X11 root window.
110 %package module-bluetooth
111 Summary: Bluetooth module for PulseAudio sound server
112 Group: Multimedia/Audio
113 Requires: %{name} = %{version}-%{release}
115 %description module-bluetooth
116 This module enables PulseAudio to work with bluetooth devices, like headset
119 %package module-devel
120 Summary: Headers and libraries for PulseAudio module development
122 Group: Multimedia/Development
123 Requires: libpulse-devel = %{version}
125 %description module-devel
126 Headers and libraries for developing pulseaudio modules outside
130 Summary: PA default configuration
131 Group: System Environment/Configuration
134 Default configuration for PulseAudio.
136 %package cascaded-setup
137 Summary: Configuration for enabling the "cascaded" PulseAudio setup
138 Group: Multimedia/Audio
140 %description cascaded-setup
141 This package enables the system PulseAudio instance, and changes the user
142 instance configuration so that user instances access the hardware via the
143 system instance instead of accessing the hardware directly. This allows
144 multiple users to use the hardware simultaneously.
147 Summary: PA module-raop
148 Group: Multimedia/Audio
150 %description module-raop
151 PulseAudio module-raop.
153 %package module-filter
154 Summary: PA module-filter
155 Group: Multimedia/Audio
157 %description module-filter
158 PulseAudio module-filter.
160 %package module-augment-properties
161 Summary: PA module-augment-properties
162 Group: Multimedia/Audio
164 %description module-augment-properties
165 PulseAudio module-augment-properties.
167 %package module-dbus-protocol
168 Summary: PA module-dbus-protocol
169 Group: Multimedia/Audio
171 %description module-dbus-protocol
172 PulseAudio module-dbus-protocol.
174 %package module-switch-on-connect
175 Summary: PA module-swich-on-connect
176 Group: Multimedia/Audio
178 %description module-switch-on-connect
179 PulseAudio module-swich-on-connect.
181 %package vala-bindings
182 Summary: PA Vala bindings
183 Group: Multimedia/Audio
184 Requires: %{name} = %{version}-%{release}
186 %description vala-bindings
187 PulseAudio Vala bindings.
189 %package realtime-scheduling
190 Summary: PA realtime scheduling
191 Group: Multimedia/Audio
192 Requires: %{name} = %{version}-%{release}
193 Requires: libcap-tools
195 %description realtime-scheduling
196 PulseAudio realtime-scheduling.
200 echo "%{version}" > .tarball-version
202 %if "%{?tizen_profile_name}" == "tv"
203 cp src/daemon/systemd/system/pulseaudio-tv.service.in src/daemon/systemd/system/pulseaudio.service.in
207 export CFLAGS="%{optflags} -fno-strict-aliasing -D__TIZEN__ -D__TIZEN_BT__ -D__TIZEN_LOG__ -DBLUETOOTH_APTX_SUPPORT"
208 %if 0%{?sec_build_binary_debug_enable}
209 export CFLAGS+=" -DTIZEN_DEBUG_ENABLE"
210 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
211 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
214 %if "%{?tizen_profile_name}" == "mobile"
215 echo "tizen profile mobile"
216 export CFLAGS+=" -DTIZEN_PROFILE_MOBILE "
219 %if "%{?tizen_profile_name}" == "wearable"
220 echo "tizen profile werable"
221 export CFLAGS+=" -DTIZEN_PROFILE_WEARABLE -DADJUST_ANDROID_BITPOOL"
224 %if "%{?tizen_profile_name}" == "tv"
225 echo "tizen profile tv"
226 export CFLAGS+=" -DTIZEN_PROFILE_TV "
229 export LD_AS_NEEDED=0
230 NOCONFIGURE=yes ./bootstrap.sh
231 %configure --prefix=%{_prefix} \
235 --disable-oss-output \
236 --disable-oss-wrapper \
238 --disable-hal-compat \
244 %if "%{?tizen_target_name}" != "hawkp"
248 --with-bluetooth-headset-backend=ofono \
250 %if %{with pulseaudio_dlog}
253 %if %{with pulseaudio_pmapi}
256 %if %{with pulseaudio_bt_profile_set}
257 --enable-bt-profile-set \
259 %if %{with pulseaudio_udev_with_usb_only}
260 --enable-udev-with-usb-only \
262 %if "%{?TIZEN_PRODUCT_TV}" == "1"
266 --with-udev-rules-dir=%{udev_dir}/rules.d \
267 --with-system-user=pulse \
268 --with-system-group=pulse \
269 --with-access-group=pulse-access \
273 %__make %{?_smp_mflags} V=0
280 cd %{buildroot}%{_sysconfdir}/pulse/filter
281 ln -sf filter_8000_44100.dat filter_11025_44100.dat
282 ln -sf filter_8000_44100.dat filter_12000_44100.dat
283 ln -sf filter_8000_44100.dat filter_16000_44100.dat
284 ln -sf filter_8000_44100.dat filter_22050_44100.dat
285 ln -sf filter_8000_44100.dat filter_24000_44100.dat
286 ln -sf filter_8000_44100.dat filter_32000_44100.dat
289 rm -rf %{buildroot}%{_sysconfdir}/xdg/autostart/pulseaudio-kde.desktop
290 rm -rf %{buildroot}%{_bindir}/start-pulseaudio-kde
291 rm -rf %{buildroot}%{_bindir}/start-pulseaudio-x11
292 rm -rf %{buildroot}%{_libdir}/pulse-%{version}/modules/module-device-manager.so
294 mkdir -p %{buildroot}%{_includedir}/pulsemodule/pulse
295 mkdir -p %{buildroot}%{_includedir}/pulsemodule/pulsecore
297 cp %{buildroot}%{_includedir}/pulse/*.h %{buildroot}%{_includedir}/pulsemodule/pulse
299 %if "%{?tizen_profile_name}" == "tv"
300 mkdir -p %{buildroot}%{_unitdir}/sysinit.target.wants/
301 ln -s ../pulseaudio.service %{buildroot}%{_unitdir}/sysinit.target.wants/pulseaudio.service
303 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants/
304 ln -s ../pulseaudio.service %{buildroot}%{_unitdir}/multi-user.target.wants/pulseaudio.service
307 mkdir -p %{buildroot}%{upgrade_script_dir}
308 cp %{SOURCE1} %{buildroot}%{upgrade_script_dir}/
310 fdupes %{buildroot}%{_datadir}
311 fdupes %{buildroot}%{_includedir}
313 # get rid of *.la files
314 rm -f %{buildroot}%{_libdir}/*.la
315 rm -f %{buildroot}%{_libdir}/pulseaudio/*.la
319 if [ $1 -eq 1 ] ; then
320 # Initial installation
321 systemctl --user --global preset pulseaudio.socket >/dev/null 2>&1 || :
325 if [ $1 -eq 0 ] ; then
326 # Package removal, not upgrade
327 systemctl --no-reload --user --global disable pulseaudio.socket > /dev/null 2>&1 || :
331 %postun -p /sbin/ldconfig
333 %post -n libpulse -p /sbin/ldconfig
334 %postun -n libpulse -p /sbin/ldconfig
336 %post -n libpulse-mainloop-glib -p /sbin/ldconfig
337 %postun -n libpulse-mainloop-glib -p /sbin/ldconfig
339 %post realtime-scheduling
340 setcap cap_sys_nice+ep /usr/bin/pulseaudio
342 %postun realtime-scheduling
343 setcap -r /usr/bin/pulseaudio
346 # TODO: Check if there's a macro in Tizen for doing this.
347 if [ $1 -eq 1 ] ; then
348 # Initial installation
349 systemctl preset pulseaudio.service >/dev/null 2>&1 || :
352 %preun cascaded-setup
353 # TODO: Check if there's a macro in Tizen for doing this.
354 if [ $1 -eq 0 ] ; then
355 # Package removal, not upgrade
356 systemctl --no-reload disable pulseaudio.service >/dev/null 2>&1 || :
357 systemctl stop pulseaudio.service >/dev/null 2>&1 || :
360 %postun cascaded-setup
361 # TODO: Check if there's a macro in Tizen for doing this.
362 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
363 if [ $1 -ge 1 ] ; then
364 # Package upgrade, not uninstall
365 systemctl try-restart pulseaudio.service >/dev/null 2>&1 || :
371 %manifest %{name}.manifest
372 %defattr(-,root,root,-)
373 %license LICENSE LGPL
374 %config %{_sysconfdir}/pulse/filter/*.dat
375 %exclude %{_bindir}/esdcompat
376 %{_bindir}/pulseaudio
377 %{_libdir}/libpulsecore-%{version}.so
378 %{udev_dir}/rules.d/90-pulseaudio.rules
379 %config(noreplace) /etc/dbus-1/system.d/pulseaudio-system.conf
381 %{_libdir}/pulse-%{version}/modules/libalsa-util.so
382 %{_libdir}/pulse-%{version}/modules/libcli.so
383 %{_libdir}/pulse-%{version}/modules/liblogind.so
384 %{_libdir}/pulse-%{version}/modules/libprotocol-cli.so
385 %{_libdir}/pulse-%{version}/modules/libprotocol-http.so
386 %{_libdir}/pulse-%{version}/modules/libprotocol-native.so
387 %{_libdir}/pulse-%{version}/modules/libprotocol-simple.so
388 %{_libdir}/pulse-%{version}/modules/librtp.so
389 %{_libdir}/pulse-%{version}/modules/libtunnel-manager.so
390 %{_libdir}/pulse-%{version}/modules/module-alsa-sink.so
391 %{_libdir}/pulse-%{version}/modules/module-alsa-source.so
392 %{_libdir}/pulse-%{version}/modules/module-always-sink.so
393 %{_libdir}/pulse-%{version}/modules/module-console-kit.so
394 %{_libdir}/pulse-%{version}/modules/module-device-restore.so
395 %{_libdir}/pulse-%{version}/modules/module-stream-restore.so
396 %{_libdir}/pulse-%{version}/modules/module-tunnel-manager.so
397 %{_libdir}/pulse-%{version}/modules/module-cli-protocol-tcp.so
398 %{_libdir}/pulse-%{version}/modules/module-cli-protocol-unix.so
399 %{_libdir}/pulse-%{version}/modules/module-cli.so
400 %{_libdir}/pulse-%{version}/modules/module-combine.so
401 %{_libdir}/pulse-%{version}/modules/module-combine-sink.so
402 %{_libdir}/pulse-%{version}/modules/module-default-device-restore.so
403 %{_libdir}/pulse-%{version}/modules/module-detect.so
404 %{_libdir}/pulse-%{version}/modules/module-esound-sink.so
405 %{_libdir}/pulse-%{version}/modules/module-http-protocol-tcp.so
406 %{_libdir}/pulse-%{version}/modules/module-http-protocol-unix.so
407 %{_libdir}/pulse-%{version}/modules/module-intended-roles.so
408 %{_libdir}/pulse-%{version}/modules/module-ladspa-sink.so
409 %{_libdir}/pulse-%{version}/modules/module-match.so
410 %{_libdir}/pulse-%{version}/modules/module-mmkbd-evdev.so
411 %{_libdir}/pulse-%{version}/modules/module-native-protocol-fd.so
412 %{_libdir}/pulse-%{version}/modules/module-native-protocol-tcp.so
413 %{_libdir}/pulse-%{version}/modules/module-native-protocol-unix.so
414 %{_libdir}/pulse-%{version}/modules/module-null-sink.so
415 %{_libdir}/pulse-%{version}/modules/module-null-source.so
416 %{_libdir}/pulse-%{version}/modules/module-pipe-sink.so
417 %{_libdir}/pulse-%{version}/modules/module-pipe-source.so
418 %{_libdir}/pulse-%{version}/modules/module-position-event-sounds.so
419 %{_libdir}/pulse-%{version}/modules/module-remap-sink.so
420 %{_libdir}/pulse-%{version}/modules/module-remap-source.so
421 %{_libdir}/pulse-%{version}/modules/module-rescue-streams.so
422 %{_libdir}/pulse-%{version}/modules/module-rtp-recv.so
423 %{_libdir}/pulse-%{version}/modules/module-rtp-send.so
424 %{_libdir}/pulse-%{version}/modules/module-simple-protocol-tcp.so
425 %{_libdir}/pulse-%{version}/modules/module-simple-protocol-unix.so
426 %{_libdir}/pulse-%{version}/modules/module-sine.so
427 %{_libdir}/pulse-%{version}/modules/module-tunnel-sink.so
428 %{_libdir}/pulse-%{version}/modules/module-tunnel-sink-new.so
429 %{_libdir}/pulse-%{version}/modules/module-tunnel-source.so
430 %{_libdir}/pulse-%{version}/modules/module-tunnel-source-new.so
431 %{_libdir}/pulse-%{version}/modules/module-suspend-on-idle.so
432 %{_libdir}/pulse-%{version}/modules/module-volume-restore.so
433 %{_libdir}/pulse-%{version}/modules/module-alsa-card.so
434 %{_libdir}/pulse-%{version}/modules/module-card-restore.so
435 %{_libdir}/pulse-%{version}/modules/module-sine-source.so
436 %{_libdir}/pulse-%{version}/modules/module-loopback.so
437 %{_libdir}/pulse-%{version}/modules/module-rygel-media-server.so
438 %{_libdir}/pulse-%{version}/modules/module-echo-cancel.so
439 %{_libdir}/pulse-%{version}/modules/module-virtual-sink.so
440 %{_libdir}/pulse-%{version}/modules/module-virtual-source.so
441 %{_libdir}/pulse-%{version}/modules/libprotocol-esound.so
442 %{_libdir}/pulse-%{version}/modules/module-esound-compat-spawnfd.so
443 %{_libdir}/pulse-%{version}/modules/module-esound-compat-spawnpid.so
444 %{_libdir}/pulse-%{version}/modules/module-esound-protocol-tcp.so
445 %{_libdir}/pulse-%{version}/modules/module-esound-protocol-unix.so
446 %{_libdir}/pulse-%{version}/modules/module-udev-detect.so
447 %{_libdir}/pulse-%{version}/modules/module-role-cork.so
448 %{_libdir}/pulse-%{version}/modules/module-switch-on-port-available.so
449 %{_libdir}/pulse-%{version}/modules/module-virtual-surround-sink.so
450 %{_libdir}/pulse-%{version}/modules/module-role-ducking.so
451 %{_libdir}/pulse-%{version}/modules/module-systemd-login.so
452 %{_unitdir_user}/pulseaudio.service
453 %{_unitdir_user}/pulseaudio.socket
454 %{_unitdir}/pulseaudio.service
455 %if "%{?tizen_profile_name}" == "tv"
456 %{_unitdir}/sysinit.target.wants/pulseaudio.service
458 %{_unitdir}/multi-user.target.wants/pulseaudio.service
460 %{_libdir}/pulse-%{version}/modules/libvolume-api.so
461 %{_libdir}/pulse-%{version}/modules/libmain-volume-policy.so
462 %{_libdir}/pulse-%{version}/modules/module-volume-api.so
463 %{_libdir}/pulse-%{version}/modules/module-main-volume-policy.so
464 %{_libdir}/pulse-%{version}/modules/module-audio-groups.so
466 %exclude %config(noreplace) /etc/bash_completion.d/pulseaudio-bash-completion.sh
468 %{upgrade_script_dir}/500.pulseaudio-upgrade.patch.sh
471 %manifest %{name}.manifest
472 %defattr(-,root,root,-)
473 %{_libdir}/libpulse.so.*
474 %{_libdir}/libpulse-simple.so.*
475 %{_libdir}/pulseaudio/libpulsecommon-*.so
477 %files -n libpulse-devel
478 %manifest %{name}.manifest
479 %defattr(-,root,root,-)
480 %{_includedir}/pulse/*
481 %{_includedir}/pulsecore/*
482 %{_libdir}/libpulse.so
483 %{_libdir}/libpulse-simple.so
484 %{_libdir}/libpulse-mainloop-glib.so
485 %{_libdir}/pkgconfig/libpulse*.pc
486 %{_libdir}/pkgconfig/pulsecore.pc
487 %{_datadir}/vala/vapi/libpulse.vapi
489 %{_libdir}/cmake/PulseAudio/PulseAudioConfig.cmake
490 %{_libdir}/cmake/PulseAudio/PulseAudioConfigVersion.cmake
492 %files -n libpulse-mainloop-glib
493 %manifest %{name}.manifest
494 %defattr(-,root,root)
495 %{_libdir}/libpulse-mainloop-glib.so.*
498 %manifest %{name}.manifest
499 %defattr(-,root,root,-)
500 %doc %{_mandir}/man1/*
501 %doc %{_mandir}/man5/*
509 %{_bindir}/pasuspender
511 %files module-bluetooth
512 %manifest %{name}.manifest
513 %if "%{?tizen_target_name}" != "hawkp"
514 %defattr(-,root,root,-)
515 %{_libdir}/pulse-%{version}/modules/module-bluetooth-discover.so
516 %{_libdir}/pulse-%{version}/modules/module-bluetooth-policy.so
517 %{_libdir}/pulse-%{version}/modules/module-bluez5-discover.so
518 %{_libdir}/pulse-%{version}/modules/module-bluez5-device.so
519 %{_libdir}/pulse-%{version}/modules/libbluez5-util.so
523 %manifest %{name}.manifest
524 %defattr(-,root,root,-)
525 %{_libdir}/pulse-%{version}/modules/libraop.so
526 %{_libdir}/pulse-%{version}/modules/module-raop*.so
529 %manifest %{name}.manifest
530 %defattr(-,root,root,-)
531 %{_libdir}/pulse-%{version}/modules/module-filter-*.so
533 %files module-augment-properties
534 %manifest %{name}.manifest
535 %defattr(-,root,root,-)
536 %{_libdir}/pulse-%{version}/modules/module-augment-properties.so
538 %files module-dbus-protocol
539 %manifest %{name}.manifest
540 %defattr(-,root,root,-)
541 %{_libdir}/pulse-%{version}/modules/module-dbus-protocol.so
543 %files module-switch-on-connect
544 %manifest %{name}.manifest
545 %defattr(-,root,root,-)
546 %{_libdir}/pulse-%{version}/modules/module-switch-on-connect.so
549 %manifest %{name}.manifest
550 %defattr(-,root,root,-)
551 %config(noreplace) %{_sysconfdir}/pulse/daemon.conf
552 %config(noreplace) %{_sysconfdir}/pulse/default.pa
553 %config(noreplace) %{_sysconfdir}/pulse/client.conf
554 %config(noreplace) %{_sysconfdir}/pulse/system.pa
555 %config(noreplace) %{_sysconfdir}/pulse/audio-groups.conf
556 %config(noreplace) %{_sysconfdir}/pulse/main-volume-policy.conf
558 %{_datadir}/pulseaudio/alsa-mixer/paths/*
559 %{_datadir}/pulseaudio/alsa-mixer/profile-sets/*
561 %files cascaded-setup
562 %config(noreplace) %{_sysconfdir}/pulse/cascaded.pa
563 %config(noreplace) %{_sysconfdir}/pulse/tunnel-manager.conf
564 %{_unitdir}/pulseaudio.service
565 %{_unitdir}/pulseaudio.socket
568 %manifest %{name}.manifest
569 %defattr(-,root,root)
570 %{_includedir}/pulsemodule/pulsecore/*.h
571 %{_includedir}/pulsemodule/pulse/*.h
572 %{_includedir}/pulsemodule/modules/main-volume-policy/*.h
573 %{_includedir}/pulsemodule/modules/volume-api/*.h
574 %{_libdir}/pkgconfig/pulseaudio-module-devel.pc
577 %manifest %{name}.manifest
578 %defattr(-,root,root,-)
579 %{_datadir}/vala/vapi/*
581 %files realtime-scheduling
582 %defattr(-,root,root,-)