1 %define udev_dir %{_prefix}/lib/udev
4 Summary: Improved Linux sound server
7 Group: Multimedia/Audio
9 URL: http://pulseaudio.org
10 Source0: http://www.freedesktop.org/software/pulseaudio/releases/%{name}-%{version}.tar.gz
11 Source1001: pulseaudio.manifest
12 BuildRequires: libtool-ltdl-devel
13 BuildRequires: libtool
14 BuildRequires: intltool
16 BuildRequires: pkgconfig(speexdsp)
17 BuildRequires: pkgconfig(sndfile)
18 BuildRequires: pkgconfig(alsa)
19 BuildRequires: pkgconfig(glib-2.0)
20 %if "%{tizen_profile_name}" != "tv"
21 BuildRequires: pkgconfig(sbc)
23 BuildRequires: pkgconfig(dbus-1)
24 BuildRequires: pkgconfig(libudev)
25 BuildRequires: pkgconfig(openssl1.1)
26 BuildRequires: pkgconfig(json-c)
27 BuildRequires: pkgconfig(dlog)
28 BuildRequires: pkgconfig(cynara-client)
29 BuildRequires: pkgconfig(cynara-creds-socket)
30 BuildRequires: pkgconfig(cynara-session)
31 BuildRequires: pkgconfig(vconf)
32 BuildRequires: systemd-devel
33 BuildRequires: libcap-devel
34 %if "%{tizen_profile_name}" == "tv"
35 BuildRequires: pkgconfig(lwipc)
38 Requires(post): /sbin/ldconfig
39 Requires(postun): /sbin/ldconfig
42 PulseAudio is a sound server for Linux and other Unix like operating
43 systems. It is intended to be an improved drop-in replacement for the
44 Enlightened Sound Daemon (ESOUND).
47 Summary: PulseAudio client libraries
48 Group: Multimedia/Audio
50 %description -n libpulse
51 Client libraries used by applications that access a PulseAudio sound server
52 via PulseAudio's native interface.
54 %package -n libpulse-mainloop-glib
56 Group: Multimedia/Audio
58 %description -n libpulse-mainloop-glib
59 pulseaudio is a networked sound server for Linux and other Unix like
60 operating systems and Microsoft Windows. It is intended to be an
61 improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
63 This package contains the GLIB Main Loop bindings for the PulseAudio
66 %package -n libpulse-devel
67 Summary: PulseAudio client development headers and libraries
68 Group: Multimedia/Development
69 Requires: libpulse = %{version}
70 Requires: libpulse-mainloop-glib = %{version}
72 %description -n libpulse-devel
73 Headers and libraries for developing applications that access a PulseAudio
74 sound server via PulseAudio's native interface
77 Summary: Command line tools for the PulseAudio sound server
78 Group: Multimedia/Audio
79 Requires: %{name} = %{version}-%{release}
82 These tools provide command line access to various features of the
83 PulseAudio sound server. Included tools are:
84 pabrowse - Browse available PulseAudio servers on the local network.
85 paplay - Playback a WAV file via a PulseAudio sink.
86 pacat - Cat raw audio data to a PulseAudio sink.
87 parec - Cat raw audio data from a PulseAudio source.
88 pacmd - Connect to PulseAudio's built-in command line control interface.
89 pactl - Send a control command to a PulseAudio server.
90 padsp - /dev/dsp wrapper to transparently support OSS applications.
91 pax11publish - Store/retrieve PulseAudio default server/sink/source
92 settings in the X11 root window.
94 %package module-bluetooth
95 Summary: Bluetooth module for PulseAudio sound server
96 Group: Multimedia/Audio
97 Requires: %{name} = %{version}-%{release}
99 %description module-bluetooth
100 This module enables PulseAudio to work with bluetooth devices, like headset
104 Summary: PA default configuration
105 Group: System Environment/Configuration
108 Default configuration for PulseAudio.
111 Summary: PA module-raop
112 Group: Multimedia/Audio
114 %description module-raop
115 PulseAudio module-raop.
117 %package module-augment-properties
118 Summary: PA module-augment-properties
119 Group: Multimedia/Audio
121 %description module-augment-properties
122 PulseAudio module-augment-properties.
124 %package module-dbus-protocol
125 Summary: PA module-dbus-protocol
126 Group: Multimedia/Audio
128 %description module-dbus-protocol
129 PulseAudio module-dbus-protocol.
131 %package module-switch-on-connect
132 Summary: PA module-swich-on-connect
133 Group: Multimedia/Audio
135 %description module-switch-on-connect
136 PulseAudio module-swich-on-connect.
138 %package vala-bindings
139 Summary: PA Vala bindings
140 Group: Multimedia/Audio
141 Requires: %{name} = %{version}-%{release}
143 %description vala-bindings
144 PulseAudio Vala bindings.
146 %package realtime-scheduling
147 Summary: PA realtime scheduling
148 Group: Multimedia/Audio
149 Requires: %{name} = %{version}-%{release}
150 Requires: libcap-tools
152 %description realtime-scheduling
153 PulseAudio realtime-scheduling.
157 echo "%{version}" > .tarball-version
159 %if "%{tizen_profile_name}" == "tv"
160 cp src/daemon/systemd/system/pulseaudio-tv.service.in src/daemon/systemd/system/pulseaudio.service.in
164 export CFLAGS="%{optflags} -fno-strict-aliasing -D__TIZEN__ -DTIZEN_BT_A2DP_MULTISTREAM -D__TIZEN_BT__ -D__TIZEN_LOG__ %{?asan:-ldl -fPIC }"
165 %if 0%{?sec_build_binary_debug_enable}
166 export CFLAGS+=" -DTIZEN_DEBUG_ENABLE"
167 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
168 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
171 %if "%{tizen_profile_name}" == "mobile"
172 echo "tizen profile mobile"
173 export CFLAGS+=" -DTIZEN_PROFILE_MOBILE "
176 %if "%{tizen_profile_name}" == "wearable"
177 echo "tizen profile wearable"
178 export CFLAGS+=" -DTIZEN_PROFILE_WEARABLE"
181 %if "%{tizen_profile_name}" == "tv"
182 echo "tizen profile tv"
183 export CFLAGS+=" -DTIZEN_TV_PROD "
186 export LD_AS_NEEDED=0
187 NOCONFIGURE=yes ./bootstrap.sh
188 %configure --prefix=%{_prefix} \
192 --disable-oss-output \
193 --disable-oss-wrapper \
195 --disable-per-user-esound-socket \
197 --disable-hal-compat \
202 --disable-systemd-login \
204 --disable-gsettings \
205 --with-udev-rules-dir=%{udev_dir}/rules.d \
206 --with-system-user=pulse \
207 --with-system-group=pulse \
208 --with-access-group=pulse-access \
210 --enable-buffer-attr \
213 --enable-udev-with-usb-only \
215 --enable-pa-simple-ext \
217 %{?asan: --disable-neon-opt } \
218 --enable-filter-group \
219 --enable-volume-ramp \
220 --enable-individual-volume-ratio \
221 %if "%{tizen_profile_name}" == "tv"
226 %__make %{?_smp_mflags} V=0
232 rm -rf %{buildroot}%{_sysconfdir}/xdg/autostart/pulseaudio-kde.desktop
233 rm -rf %{buildroot}%{_bindir}/start-pulseaudio-kde
234 rm -rf %{buildroot}%{_bindir}/start-pulseaudio-x11
235 rm -rf %{buildroot}%{_libdir}/pulse-%{version}/modules/module-device-manager.so
236 mkdir -p %{buildroot}%{_includedir}/pulsecore/filter
237 cp %{buildroot}%{_includedir}/pulsecore/lfe-filter.h %{buildroot}%{_includedir}/pulsecore/filter
239 %if "%{tizen_profile_name}" == "tv"
240 mkdir -p %{buildroot}%{_unitdir}/sysinit.target.wants/
241 ln -s ../pulseaudio.service %{buildroot}%{_unitdir}/sysinit.target.wants/pulseaudio.service
243 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants/
244 ln -s ../pulseaudio.service %{buildroot}%{_unitdir}/multi-user.target.wants/pulseaudio.service
247 fdupes %{buildroot}%{_datadir}
248 fdupes %{buildroot}%{_includedir}
250 # get rid of *.la files
251 rm -f %{buildroot}%{_libdir}/*.la
252 rm -f %{buildroot}%{_libdir}/pulseaudio/*.la
259 %postun -p /sbin/ldconfig
261 %post -n libpulse -p /sbin/ldconfig
262 %postun -n libpulse -p /sbin/ldconfig
264 %post -n libpulse-mainloop-glib -p /sbin/ldconfig
265 %postun -n libpulse-mainloop-glib -p /sbin/ldconfig
267 %post realtime-scheduling
268 setcap cap_sys_nice+ep /usr/bin/pulseaudio
270 %postun realtime-scheduling
271 setcap -r /usr/bin/pulseaudio
276 %manifest %{name}.manifest
277 %defattr(-,root,root,-)
278 %license LICENSE LGPL
279 %exclude %{_bindir}/esdcompat
280 %{_bindir}/pulseaudio
281 %{_libdir}/pulseaudio/libpulsecore-%{version}.so
282 %{udev_dir}/rules.d/90-pulseaudio.rules
283 %config(noreplace) /etc/dbus-1/system.d/pulseaudio-system.conf
285 %{_libdir}/pulse-%{version}/modules/libalsa-util.so
286 %{_libdir}/pulse-%{version}/modules/libcli.so
287 %{_libdir}/pulse-%{version}/modules/libprotocol-cli.so
288 %{_libdir}/pulse-%{version}/modules/libprotocol-http.so
289 %{_libdir}/pulse-%{version}/modules/libprotocol-native.so
290 %{_libdir}/pulse-%{version}/modules/libprotocol-simple.so
291 %{_libdir}/pulse-%{version}/modules/librtp.so
292 %{_libdir}/pulse-%{version}/modules/module-allow-passthrough.so
293 %{_libdir}/pulse-%{version}/modules/module-alsa-card.so
294 %{_libdir}/pulse-%{version}/modules/module-alsa-sink.so
295 %{_libdir}/pulse-%{version}/modules/module-alsa-source.so
296 %{_libdir}/pulse-%{version}/modules/module-always-sink.so
297 %{_libdir}/pulse-%{version}/modules/module-always-source.so
298 %{_libdir}/pulse-%{version}/modules/module-card-restore.so
299 %{_libdir}/pulse-%{version}/modules/module-cli-protocol-tcp.so
300 %{_libdir}/pulse-%{version}/modules/module-cli-protocol-unix.so
301 %{_libdir}/pulse-%{version}/modules/module-cli.so
302 %{_libdir}/pulse-%{version}/modules/module-combine.so
303 %{_libdir}/pulse-%{version}/modules/module-combine-sink.so
304 %{_libdir}/pulse-%{version}/modules/module-console-kit.so
305 %{_libdir}/pulse-%{version}/modules/module-default-device-restore.so
306 %{_libdir}/pulse-%{version}/modules/module-detect.so
307 %{_libdir}/pulse-%{version}/modules/module-device-restore.so
308 %{_libdir}/pulse-%{version}/modules/module-echo-cancel.so
309 %{_libdir}/pulse-%{version}/modules/module-filter-apply.so
310 %{_libdir}/pulse-%{version}/modules/module-filter-heuristics.so
311 %{_libdir}/pulse-%{version}/modules/module-http-protocol-tcp.so
312 %{_libdir}/pulse-%{version}/modules/module-http-protocol-unix.so
313 %{_libdir}/pulse-%{version}/modules/module-intended-roles.so
314 %{_libdir}/pulse-%{version}/modules/module-ladspa-sink.so
315 %{_libdir}/pulse-%{version}/modules/module-loopback.so
316 %{_libdir}/pulse-%{version}/modules/module-match.so
317 %{_libdir}/pulse-%{version}/modules/module-mmkbd-evdev.so
318 %{_libdir}/pulse-%{version}/modules/module-native-protocol-fd.so
319 %{_libdir}/pulse-%{version}/modules/module-native-protocol-tcp.so
320 %{_libdir}/pulse-%{version}/modules/module-native-protocol-unix.so
321 %{_libdir}/pulse-%{version}/modules/module-null-sink.so
322 %{_libdir}/pulse-%{version}/modules/module-null-source.so
323 %{_libdir}/pulse-%{version}/modules/module-pipe-sink.so
324 %{_libdir}/pulse-%{version}/modules/module-pipe-source.so
325 %{_libdir}/pulse-%{version}/modules/module-position-event-sounds.so
326 %{_libdir}/pulse-%{version}/modules/module-remap-sink.so
327 %{_libdir}/pulse-%{version}/modules/module-remap-source.so
328 %{_libdir}/pulse-%{version}/modules/module-rescue-streams.so
329 %{_libdir}/pulse-%{version}/modules/module-role-ducking.so
330 %{_libdir}/pulse-%{version}/modules/module-role-cork.so
331 %{_libdir}/pulse-%{version}/modules/module-rtp-recv.so
332 %{_libdir}/pulse-%{version}/modules/module-rtp-send.so
333 %{_libdir}/pulse-%{version}/modules/module-rygel-media-server.so
334 %{_libdir}/pulse-%{version}/modules/module-simple-protocol-tcp.so
335 %{_libdir}/pulse-%{version}/modules/module-simple-protocol-unix.so
336 %{_libdir}/pulse-%{version}/modules/module-sine.so
337 %{_libdir}/pulse-%{version}/modules/module-sine-source.so
338 %{_libdir}/pulse-%{version}/modules/module-stream-restore.so
339 %{_libdir}/pulse-%{version}/modules/module-suspend-on-idle.so
340 %{_libdir}/pulse-%{version}/modules/module-switch-on-port-available.so
341 %{_libdir}/pulse-%{version}/modules/module-tunnel-sink.so
342 %{_libdir}/pulse-%{version}/modules/module-tunnel-sink-new.so
343 %{_libdir}/pulse-%{version}/modules/module-tunnel-source.so
344 %{_libdir}/pulse-%{version}/modules/module-tunnel-source-new.so
345 %{_libdir}/pulse-%{version}/modules/module-udev-detect.so
346 %{_libdir}/pulse-%{version}/modules/module-virtual-sink.so
347 %{_libdir}/pulse-%{version}/modules/module-virtual-source.so
348 %{_libdir}/pulse-%{version}/modules/module-virtual-surround-sink.so
349 %{_libdir}/pulse-%{version}/modules/module-volume-restore.so
352 %exclude %{_unitdir_user}/pulseaudio.service
353 %exclude %{_unitdir_user}/pulseaudio.socket
354 %{_unitdir}/pulseaudio.service
355 %if "%{tizen_profile_name}" == "tv"
356 %{_unitdir}/sysinit.target.wants/pulseaudio.service
358 %{_unitdir}/multi-user.target.wants/pulseaudio.service
360 %exclude /usr/share/bash-completion/completions/*
361 %exclude /usr/share/zsh/site-functions/_pulseaudio
365 %manifest %{name}.manifest
366 %license LICENSE LGPL
367 %defattr(-,root,root,-)
368 %{_libdir}/libpulse.so.*
369 %{_libdir}/libpulse-simple.so.*
370 %{_libdir}/pulseaudio/libpulsecommon-*.so
372 %files -n libpulse-devel
373 %manifest %{name}.manifest
374 %defattr(-,root,root,-)
375 %{_includedir}/pulse/*
376 %{_includedir}/pulsecore/*
377 %{_includedir}/pulsecore/filter/*
378 %{_libdir}/libpulse.so
379 %{_libdir}/libpulse-simple.so
380 %{_libdir}/libpulse-mainloop-glib.so
381 %{_libdir}/pkgconfig/libpulse*.pc
382 %{_libdir}/pkgconfig/pulsecore.pc
383 %{_datadir}/vala/vapi/libpulse.vapi
385 %{_libdir}/cmake/PulseAudio/PulseAudioConfig.cmake
386 %{_libdir}/cmake/PulseAudio/PulseAudioConfigVersion.cmake
388 %files -n libpulse-mainloop-glib
389 %manifest %{name}.manifest
390 %defattr(-,root,root)
391 %{_libdir}/libpulse-mainloop-glib.so.*
394 %manifest %{name}.manifest
395 %license LICENSE LGPL
396 %defattr(-,root,root,-)
397 %doc %{_mandir}/man1/*
398 %doc %{_mandir}/man5/*
406 %{_bindir}/pasuspender
407 %exclude %{_bindir}/pa-info
409 %files module-bluetooth
410 %manifest %{name}.manifest
411 %license LICENSE LGPL
412 %if "%{tizen_profile_name}" != "tv"
413 %defattr(-,root,root,-)
414 %{_libdir}/pulse-%{version}/modules/module-bluetooth-discover.so
415 %{_libdir}/pulse-%{version}/modules/module-bluetooth-policy.so
416 %{_libdir}/pulse-%{version}/modules/module-bluez5-discover.so
417 %{_libdir}/pulse-%{version}/modules/module-bluez5-device.so
418 %{_libdir}/pulse-%{version}/modules/libbluez5-util.so
422 %manifest %{name}.manifest
423 %defattr(-,root,root,-)
424 %{_libdir}/pulse-%{version}/modules/libraop.so
425 %{_libdir}/pulse-%{version}/modules/module-raop*.so
427 %files module-augment-properties
428 %manifest %{name}.manifest
429 %defattr(-,root,root,-)
430 %{_libdir}/pulse-%{version}/modules/module-augment-properties.so
432 %files module-dbus-protocol
433 %manifest %{name}.manifest
434 %defattr(-,root,root,-)
435 %{_libdir}/pulse-%{version}/modules/module-dbus-protocol.so
437 %files module-switch-on-connect
438 %manifest %{name}.manifest
439 %defattr(-,root,root,-)
440 %{_libdir}/pulse-%{version}/modules/module-switch-on-connect.so
443 %manifest %{name}.manifest
444 %defattr(-,root,root,-)
445 %config(noreplace) %{_sysconfdir}/pulse/daemon.conf
446 %config(noreplace) %{_sysconfdir}/pulse/default.pa
447 %config(noreplace) %{_sysconfdir}/pulse/client.conf
448 %config(noreplace) %{_sysconfdir}/pulse/system.pa
450 %{_datadir}/pulseaudio/alsa-mixer/paths/*
451 %{_datadir}/pulseaudio/alsa-mixer/profile-sets/*
454 %manifest %{name}.manifest
455 %defattr(-,root,root,-)
456 %{_datadir}/vala/vapi/*
458 %files realtime-scheduling
459 %defattr(-,root,root,-)