1 %define udev_dir %{_prefix}/lib/udev
2 %global _vpath_builddir build
5 Summary: Improved Linux sound server
8 Group: Multimedia/Audio
10 URL: http://pulseaudio.org
11 Source0: http://www.freedesktop.org/software/pulseaudio/releases/%{name}-%{version}.tar.gz
12 Source1001: pulseaudio.manifest
13 BuildRequires: libtool-ltdl-devel
14 BuildRequires: libtool
15 BuildRequires: intltool
17 BuildRequires: meson >= 0.50.0
18 BuildRequires: pkgconfig(speexdsp)
19 BuildRequires: pkgconfig(sndfile)
20 BuildRequires: pkgconfig(alsa)
21 BuildRequires: pkgconfig(glib-2.0)
22 %if "%{tizen_profile_name}" != "tv"
23 BuildRequires: pkgconfig(sbc)
25 BuildRequires: pkgconfig(dbus-1)
26 BuildRequires: pkgconfig(libudev)
27 BuildRequires: pkgconfig(openssl3)
28 BuildRequires: pkgconfig(json-c)
29 BuildRequires: pkgconfig(dlog)
30 BuildRequires: pkgconfig(cynara-client)
31 BuildRequires: pkgconfig(cynara-creds-socket)
32 BuildRequires: pkgconfig(cynara-session)
33 BuildRequires: pkgconfig(vconf)
34 BuildRequires: systemd-devel
35 BuildRequires: libcap-devel
36 BuildRequires: doxygen
37 %if "%{tizen_profile_name}" == "tv"
38 BuildRequires: pkgconfig(lwipc)
39 BuildRequires: pkgconfig(capi-boost-tv)
40 BuildRequires: pkgconfig(capi-system-info)
43 Requires(post): /sbin/ldconfig
44 Requires(postun): /sbin/ldconfig
47 PulseAudio is a sound server for Linux and other Unix like operating
48 systems. It is intended to be an improved drop-in replacement for the
49 Enlightened Sound Daemon (ESOUND).
52 Summary: PulseAudio client libraries
53 Group: Multimedia/Audio
55 %description -n libpulse
56 Client libraries used by applications that access a PulseAudio sound server
57 via PulseAudio's native interface.
59 %package -n libpulse-mainloop-glib
61 Group: Multimedia/Audio
63 %description -n libpulse-mainloop-glib
64 pulseaudio is a networked sound server for Linux and other Unix like
65 operating systems and Microsoft Windows. It is intended to be an
66 improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
68 This package contains the GLIB Main Loop bindings for the PulseAudio
71 %package -n libpulse-devel
72 Summary: PulseAudio client development headers and libraries
73 Group: Multimedia/Development
74 Requires: libpulse = %{version}
75 Requires: libpulse-mainloop-glib = %{version}
77 %description -n libpulse-devel
78 Headers and libraries for developing applications that access a PulseAudio
79 sound server via PulseAudio's native interface
82 Summary: Command line tools for the PulseAudio sound server
83 Group: Multimedia/Audio
84 Requires: %{name} = %{version}-%{release}
87 These tools provide command line access to various features of the
88 PulseAudio sound server. Included tools are:
89 pabrowse - Browse available PulseAudio servers on the local network.
90 paplay - Playback a WAV file via a PulseAudio sink.
91 pacat - Cat raw audio data to a PulseAudio sink.
92 parec - Cat raw audio data from a PulseAudio source.
93 pacmd - Connect to PulseAudio's built-in command line control interface.
94 pactl - Send a control command to a PulseAudio server.
95 padsp - /dev/dsp wrapper to transparently support OSS applications.
96 pax11publish - Store/retrieve PulseAudio default server/sink/source
97 settings in the X11 root window.
99 %package module-bluetooth
100 Summary: Bluetooth module for PulseAudio sound server
101 Group: Multimedia/Audio
102 Requires: %{name} = %{version}-%{release}
104 %description module-bluetooth
105 This module enables PulseAudio to work with bluetooth devices, like headset
109 Summary: PA default configuration
110 Group: System Environment/Configuration
113 Default configuration for PulseAudio.
116 Summary: PA module-raop
117 Group: Multimedia/Audio
119 %description module-raop
120 PulseAudio module-raop.
122 %package module-augment-properties
123 Summary: PA module-augment-properties
124 Group: Multimedia/Audio
126 %description module-augment-properties
127 PulseAudio module-augment-properties.
129 %package module-dbus-protocol
130 Summary: PA module-dbus-protocol
131 Group: Multimedia/Audio
133 %description module-dbus-protocol
134 PulseAudio module-dbus-protocol.
136 %package module-switch-on-connect
137 Summary: PA module-swich-on-connect
138 Group: Multimedia/Audio
140 %description module-switch-on-connect
141 PulseAudio module-swich-on-connect.
143 %package vala-bindings
144 Summary: PA Vala bindings
145 Group: Multimedia/Audio
146 Requires: %{name} = %{version}-%{release}
148 %description vala-bindings
149 PulseAudio Vala bindings.
151 %package realtime-scheduling
152 Summary: PA realtime scheduling
153 Group: Multimedia/Audio
154 Requires: %{name} = %{version}-%{release}
155 Requires: libcap-tools
157 %description realtime-scheduling
158 PulseAudio realtime-scheduling.
162 echo "%{version}" > .tarball-version
164 %if "%{tizen_profile_name}" == "tv"
165 cp src/daemon/systemd/system/pulseaudio-tv.service.in src/daemon/systemd/system/pulseaudio.service.in
169 export CFLAGS="%{optflags} -fno-strict-aliasing -D__TIZEN__ -DTIZEN_BT_A2DP_MULTISTREAM -D__TIZEN_BT__ -D__TIZEN_LOG__ %{?asan:-ldl -fPIC }"
170 %if 0%{?sec_build_binary_debug_enable}
171 export CFLAGS+=" -DTIZEN_DEBUG_ENABLE"
172 export CXXFLAGS="$CXXFLAGS -DTIZEN_DEBUG_ENABLE"
173 export FFLAGS="$FFLAGS -DTIZEN_DEBUG_ENABLE"
176 %if "%{tizen_profile_name}" == "mobile"
177 echo "tizen profile mobile"
178 export CFLAGS+=" -DTIZEN_PROFILE_MOBILE "
181 %if "%{tizen_profile_name}" == "wearable"
182 echo "tizen profile wearable"
183 export CFLAGS+=" -DTIZEN_PROFILE_WEARABLE"
186 %if "%{tizen_profile_name}" == "tv"
187 echo "tizen profile tv"
188 export CFLAGS+=" -DTIZEN_TV_PROD "
191 export LD_AS_NEEDED=0
193 mkdir -p %{_vpath_builddir}
194 %meson --auto-features=auto \
195 -Dhal-datadir=%{_hal_datadir} \
196 -Dhal-sysconfdir=%{_hal_sysconfdir} \
199 -Dbluez5-native-headset=false \
200 -Dgsettings=disabled \
203 %if "%{tizen_profile_name}" == "tv"
207 -Dcpu-boosting=true \
209 -Doss-output=disabled \
210 -Dudevrulesdir=%{udev_dir}/rules.d
218 rm -rf %{buildroot}%{_sysconfdir}/xdg/autostart/pulseaudio-kde.desktop
219 rm -rf %{buildroot}%{_bindir}/start-pulseaudio-kde
220 rm -rf %{buildroot}%{_bindir}/start-pulseaudio-x11
221 rm -rf %{buildroot}%{_libdir}/pulse-%{version}/modules/module-device-manager.so
222 rm -rf %{buildroot}%{_libdir}/pulse-%{version}/modules/module-systemd-login.so
223 mkdir -p %{buildroot}%{_includedir}/pulsecore/filter
224 cp %{buildroot}%{_includedir}/pulsecore/lfe-filter.h %{buildroot}%{_includedir}/pulsecore/filter
226 %if "%{tizen_profile_name}" == "tv"
227 mkdir -p %{buildroot}%{_unitdir}/sysinit.target.wants/
228 ln -s ../pulseaudio.service %{buildroot}%{_unitdir}/sysinit.target.wants/pulseaudio.service
230 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants/
231 ln -s ../pulseaudio.service %{buildroot}%{_unitdir}/multi-user.target.wants/pulseaudio.service
234 fdupes %{buildroot}%{_hal_datadir}
235 fdupes %{buildroot}%{_includedir}
237 # get rid of *.la files
238 rm -f %{buildroot}%{_libdir}/*.la
239 rm -f %{buildroot}%{_libdir}/pulseaudio/*.la
246 %postun -p /sbin/ldconfig
248 %post -n libpulse -p /sbin/ldconfig
249 %postun -n libpulse -p /sbin/ldconfig
251 %post -n libpulse-mainloop-glib -p /sbin/ldconfig
252 %postun -n libpulse-mainloop-glib -p /sbin/ldconfig
254 %post realtime-scheduling
255 setcap cap_sys_nice+ep /usr/bin/pulseaudio
257 %postun realtime-scheduling
258 setcap -r /usr/bin/pulseaudio
263 %manifest %{name}.manifest
264 %defattr(-,root,root,-)
265 %license LICENSE LGPL
266 %{_bindir}/pulseaudio
267 %{_libdir}/pulseaudio/libpulsecore-%{version}.so
268 %{udev_dir}/rules.d/90-pulseaudio.rules
269 %config(noreplace) /etc/dbus-1/system.d/pulseaudio-system.conf
271 %{_libdir}/pulse-%{version}/modules/libalsa-util.so
272 %{_libdir}/pulse-%{version}/modules/libcli.so
273 %{_libdir}/pulse-%{version}/modules/libprotocol-cli.so
274 %{_libdir}/pulse-%{version}/modules/libprotocol-http.so
275 %{_libdir}/pulse-%{version}/modules/libprotocol-native.so
276 %{_libdir}/pulse-%{version}/modules/libprotocol-simple.so
277 %{_libdir}/pulse-%{version}/modules/librtp.so
278 %{_libdir}/pulse-%{version}/modules/module-allow-passthrough.so
279 %{_libdir}/pulse-%{version}/modules/module-alsa-card.so
280 %{_libdir}/pulse-%{version}/modules/module-alsa-sink.so
281 %{_libdir}/pulse-%{version}/modules/module-alsa-source.so
282 %{_libdir}/pulse-%{version}/modules/module-always-sink.so
283 %{_libdir}/pulse-%{version}/modules/module-always-source.so
284 %{_libdir}/pulse-%{version}/modules/module-card-restore.so
285 %{_libdir}/pulse-%{version}/modules/module-cli-protocol-tcp.so
286 %{_libdir}/pulse-%{version}/modules/module-cli-protocol-unix.so
287 %{_libdir}/pulse-%{version}/modules/module-cli.so
288 %{_libdir}/pulse-%{version}/modules/module-combine.so
289 %{_libdir}/pulse-%{version}/modules/module-combine-sink.so
290 %{_libdir}/pulse-%{version}/modules/module-console-kit.so
291 %{_libdir}/pulse-%{version}/modules/module-default-device-restore.so
292 %{_libdir}/pulse-%{version}/modules/module-detect.so
293 %{_libdir}/pulse-%{version}/modules/module-device-restore.so
294 %{_libdir}/pulse-%{version}/modules/module-echo-cancel.so
295 %{_libdir}/pulse-%{version}/modules/module-filter-apply.so
296 %{_libdir}/pulse-%{version}/modules/module-filter-heuristics.so
297 %{_libdir}/pulse-%{version}/modules/module-http-protocol-tcp.so
298 %{_libdir}/pulse-%{version}/modules/module-http-protocol-unix.so
299 %{_libdir}/pulse-%{version}/modules/module-intended-roles.so
300 %{_libdir}/pulse-%{version}/modules/module-ladspa-sink.so
301 %{_libdir}/pulse-%{version}/modules/module-loopback.so
302 %{_libdir}/pulse-%{version}/modules/module-match.so
303 %{_libdir}/pulse-%{version}/modules/module-mmkbd-evdev.so
304 %{_libdir}/pulse-%{version}/modules/module-native-protocol-fd.so
305 %{_libdir}/pulse-%{version}/modules/module-native-protocol-tcp.so
306 %{_libdir}/pulse-%{version}/modules/module-native-protocol-unix.so
307 %{_libdir}/pulse-%{version}/modules/module-null-sink.so
308 %{_libdir}/pulse-%{version}/modules/module-null-source.so
309 %{_libdir}/pulse-%{version}/modules/module-pipe-sink.so
310 %{_libdir}/pulse-%{version}/modules/module-pipe-source.so
311 %{_libdir}/pulse-%{version}/modules/module-position-event-sounds.so
312 %{_libdir}/pulse-%{version}/modules/module-remap-sink.so
313 %{_libdir}/pulse-%{version}/modules/module-remap-source.so
314 %{_libdir}/pulse-%{version}/modules/module-rescue-streams.so
315 %{_libdir}/pulse-%{version}/modules/module-role-ducking.so
316 %{_libdir}/pulse-%{version}/modules/module-role-cork.so
317 %{_libdir}/pulse-%{version}/modules/module-rtp-recv.so
318 %{_libdir}/pulse-%{version}/modules/module-rtp-send.so
319 %{_libdir}/pulse-%{version}/modules/module-rygel-media-server.so
320 %{_libdir}/pulse-%{version}/modules/module-simple-protocol-tcp.so
321 %{_libdir}/pulse-%{version}/modules/module-simple-protocol-unix.so
322 %{_libdir}/pulse-%{version}/modules/module-sine.so
323 %{_libdir}/pulse-%{version}/modules/module-sine-source.so
324 %{_libdir}/pulse-%{version}/modules/module-stream-restore.so
325 %{_libdir}/pulse-%{version}/modules/module-suspend-on-idle.so
326 %{_libdir}/pulse-%{version}/modules/module-switch-on-port-available.so
327 %{_libdir}/pulse-%{version}/modules/module-tunnel-sink.so
328 %{_libdir}/pulse-%{version}/modules/module-tunnel-sink-new.so
329 %{_libdir}/pulse-%{version}/modules/module-tunnel-source.so
330 %{_libdir}/pulse-%{version}/modules/module-tunnel-source-new.so
331 %{_libdir}/pulse-%{version}/modules/module-udev-detect.so
332 %{_libdir}/pulse-%{version}/modules/module-virtual-sink.so
333 %{_libdir}/pulse-%{version}/modules/module-virtual-source.so
334 %{_libdir}/pulse-%{version}/modules/module-volume-restore.so
337 %exclude %{_unitdir_user}/pulseaudio.service
338 %exclude %{_unitdir_user}/pulseaudio.socket
339 %exclude %{_unitdir_user}/pulseaudio-x11.service
340 %{_unitdir}/pulseaudio.service
341 %if "%{tizen_profile_name}" == "tv"
342 %{_unitdir}/sysinit.target.wants/pulseaudio.service
344 %{_unitdir}/multi-user.target.wants/pulseaudio.service
346 %exclude %{_hal_datadir}/bash-completion/completions/*
347 %exclude %{_hal_datadir}/zsh/site-functions/_pulseaudio
351 %manifest %{name}.manifest
352 %license LICENSE LGPL
353 %defattr(-,root,root,-)
354 %{_libdir}/libpulse.so.*
355 %{_libdir}/libpulse-simple.so.*
356 %{_libdir}/pulseaudio/libpulsecommon-*.so
358 %files -n libpulse-devel
359 %manifest %{name}.manifest
360 %defattr(-,root,root,-)
361 %{_includedir}/pulse/*
362 %{_includedir}/pulsecore/*
363 %{_includedir}/pulsecore/filter/*
364 %{_libdir}/libpulse.so
365 %{_libdir}/libpulse-simple.so
366 %{_libdir}/libpulse-mainloop-glib.so
367 %{_libdir}/pkgconfig/libpulse*.pc
368 %{_libdir}/pkgconfig/pulsecore.pc
369 %{_hal_datadir}/vala/vapi/libpulse.vapi
371 %{_libdir}/cmake/PulseAudio/PulseAudioConfig.cmake
372 %{_libdir}/cmake/PulseAudio/PulseAudioConfigVersion.cmake
374 %files -n libpulse-mainloop-glib
375 %manifest %{name}.manifest
376 %defattr(-,root,root)
377 %{_libdir}/libpulse-mainloop-glib.so.*
380 %manifest %{name}.manifest
381 %license LICENSE LGPL
382 %defattr(-,root,root,-)
383 %doc %{_mandir}/man1/*
384 %doc %{_mandir}/man5/*
392 %{_bindir}/pasuspender
393 %exclude %{_bindir}/pa-info
395 %files module-bluetooth
396 %manifest %{name}.manifest
397 %license LICENSE LGPL
398 %if "%{tizen_profile_name}" != "tv"
399 %defattr(-,root,root,-)
400 %{_libdir}/pulse-%{version}/modules/module-bluetooth-discover.so
401 %{_libdir}/pulse-%{version}/modules/module-bluetooth-policy.so
402 %{_libdir}/pulse-%{version}/modules/module-bluez5-discover.so
403 %{_libdir}/pulse-%{version}/modules/module-bluez5-device.so
404 %{_libdir}/pulse-%{version}/modules/libbluez5-util.so
408 %manifest %{name}.manifest
409 %defattr(-,root,root,-)
410 %{_libdir}/pulse-%{version}/modules/libraop.so
411 %{_libdir}/pulse-%{version}/modules/module-raop*.so
413 %files module-augment-properties
414 %manifest %{name}.manifest
415 %defattr(-,root,root,-)
416 %{_libdir}/pulse-%{version}/modules/module-augment-properties.so
418 %files module-dbus-protocol
419 %manifest %{name}.manifest
420 %defattr(-,root,root,-)
421 %{_libdir}/pulse-%{version}/modules/module-dbus-protocol.so
423 %files module-switch-on-connect
424 %manifest %{name}.manifest
425 %defattr(-,root,root,-)
426 %{_libdir}/pulse-%{version}/modules/module-switch-on-connect.so
429 %manifest %{name}.manifest
430 %defattr(-,root,root,-)
431 %config(noreplace) %{_hal_sysconfdir}/pulse/daemon.conf
432 %config(noreplace) %{_hal_sysconfdir}/pulse/default.pa
433 %config(noreplace) %{_hal_sysconfdir}/pulse/client.conf
434 %config(noreplace) %{_hal_sysconfdir}/pulse/system.pa
436 %{_hal_datadir}/pulseaudio/alsa-mixer/paths/*
437 %{_hal_datadir}/pulseaudio/alsa-mixer/profile-sets/*
440 %manifest %{name}.manifest
441 %defattr(-,root,root,-)
442 %{_hal_datadir}/vala/vapi/*
444 %files realtime-scheduling
445 %defattr(-,root,root,-)