a0851cad8cdd11754e47f2211cc9ddb4308a2960
[platform/upstream/pulseaudio.git] / packaging / pulseaudio.spec
1 %define udev_dir %{_prefix}/lib/udev
2
3 Name:             pulseaudio
4 Summary:          Improved Linux sound server
5 Version:          13.0
6 Release:          26
7 Group:            Multimedia/Audio
8 License:          LGPL-2.1
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
15 BuildRequires:    fdupes
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)
22 %endif
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)
36 %endif
37 Requires:         udev
38 Requires(post):   /sbin/ldconfig
39 Requires(postun): /sbin/ldconfig
40
41 %description
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).
45
46 %package -n libpulse
47 Summary:    PulseAudio client libraries
48 Group:      Multimedia/Audio
49
50 %description -n libpulse
51 Client libraries used by applications that access a PulseAudio sound server
52 via PulseAudio's native interface.
53
54 %package -n libpulse-mainloop-glib
55 Summary:        GLIB  2
56 Group:          Multimedia/Audio
57
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).
62
63 This package contains the GLIB Main Loop bindings for the PulseAudio
64 sound server.
65
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}
71
72 %description -n libpulse-devel
73 Headers and libraries for developing applications that access a PulseAudio
74 sound server via PulseAudio's native interface
75
76 %package utils
77 Summary:    Command line tools for the PulseAudio sound server
78 Group:      Multimedia/Audio
79 Requires:   %{name} = %{version}-%{release}
80
81 %description utils
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.
93
94 %package module-bluetooth
95 Summary:    Bluetooth module for PulseAudio sound server
96 Group:      Multimedia/Audio
97 Requires:   %{name} = %{version}-%{release}
98
99 %description module-bluetooth
100 This module enables PulseAudio to work with bluetooth devices, like headset
101 or audio gateway
102
103 %package config
104 Summary: PA default configuration
105 Group: System Environment/Configuration
106
107 %description config
108 Default configuration for PulseAudio.
109
110 %package module-raop
111 Summary: PA module-raop
112 Group:   Multimedia/Audio
113
114 %description module-raop
115 PulseAudio module-raop.
116
117 %package module-augment-properties
118 Summary: PA module-augment-properties
119 Group:   Multimedia/Audio
120
121 %description module-augment-properties
122 PulseAudio module-augment-properties.
123
124 %package module-dbus-protocol
125 Summary: PA module-dbus-protocol
126 Group:   Multimedia/Audio
127
128 %description module-dbus-protocol
129 PulseAudio module-dbus-protocol.
130
131 %package module-switch-on-connect
132 Summary: PA module-swich-on-connect
133 Group:   Multimedia/Audio
134
135 %description module-switch-on-connect
136 PulseAudio module-swich-on-connect.
137
138 %package vala-bindings
139 Summary:    PA Vala bindings
140 Group:      Multimedia/Audio
141 Requires:   %{name} = %{version}-%{release}
142
143 %description vala-bindings
144 PulseAudio Vala bindings.
145
146 %package realtime-scheduling
147 Summary:    PA realtime scheduling
148 Group:      Multimedia/Audio
149 Requires:   %{name} = %{version}-%{release}
150 Requires:   libcap-tools
151
152 %description realtime-scheduling
153 PulseAudio realtime-scheduling.
154
155 %prep
156 %setup -q -T -b0
157 echo "%{version}" > .tarball-version
158 cp %{SOURCE1001} .
159 %if "%{tizen_profile_name}" == "tv"
160 cp src/daemon/systemd/system/pulseaudio-tv.service.in src/daemon/systemd/system/pulseaudio.service.in
161 %endif
162
163 %build
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"
169 %endif
170
171 %if "%{tizen_profile_name}" == "mobile"
172 echo "tizen profile mobile"
173 export CFLAGS+=" -DTIZEN_PROFILE_MOBILE "
174 %endif
175
176 %if "%{tizen_profile_name}" == "wearable"
177 echo "tizen profile wearable"
178 export CFLAGS+=" -DTIZEN_PROFILE_WEARABLE"
179 %endif
180
181 %if "%{tizen_profile_name}" == "tv"
182 echo "tizen profile tv"
183 export CFLAGS+=" -DTIZEN_TV_PROD "
184 %endif
185
186 export LD_AS_NEEDED=0
187 NOCONFIGURE=yes ./bootstrap.sh
188 %configure --prefix=%{_prefix} \
189         --disable-static \
190         --enable-alsa \
191         --disable-ipv6 \
192         --disable-oss-output \
193         --disable-oss-wrapper \
194         --disable-esound \
195         --disable-per-user-esound-socket \
196         --disable-x11 \
197         --disable-hal-compat \
198         --disable-lirc \
199         --disable-avahi \
200         --disable-jack \
201         --without-fftw \
202         --disable-systemd-login \
203         --disable-gconf \
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 \
209         --enable-dlog \
210         --enable-buffer-attr \
211         --disable-pcm-dump \
212         --enable-security \
213         --enable-udev-with-usb-only \
214         --enable-paready \
215         --enable-pa-simple-ext \
216         --enable-empty-pop \
217 %{?asan: --disable-neon-opt } \
218         --enable-filter-group \
219         --enable-volume-ramp \
220         --enable-individual-volume-ratio \
221 %if "%{tizen_profile_name}" == "tv"
222         --enable-prelink \
223         --enable-lwipc \
224 %endif
225
226 %__make %{?_smp_mflags} V=0
227
228 %install
229 %make_install
230 %find_lang %{name}
231
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
238
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
242 %else
243 mkdir -p %{buildroot}%{_unitdir}/multi-user.target.wants/
244 ln -s  ../pulseaudio.service  %{buildroot}%{_unitdir}/multi-user.target.wants/pulseaudio.service
245 %endif
246
247 fdupes  %{buildroot}%{_datadir}
248 fdupes  %{buildroot}%{_includedir}
249
250 # get rid of *.la files
251 rm -f %{buildroot}%{_libdir}/*.la
252 rm -f %{buildroot}%{_libdir}/pulseaudio/*.la
253
254 %post
255 /sbin/ldconfig
256
257 %preun
258
259 %postun -p /sbin/ldconfig
260
261 %post   -n libpulse -p /sbin/ldconfig
262 %postun -n libpulse -p /sbin/ldconfig
263
264 %post   -n libpulse-mainloop-glib -p /sbin/ldconfig
265 %postun -n libpulse-mainloop-glib -p /sbin/ldconfig
266
267 %post   realtime-scheduling
268 setcap cap_sys_nice+ep /usr/bin/pulseaudio
269
270 %postun realtime-scheduling
271 setcap -r /usr/bin/pulseaudio
272
273 %lang_package
274
275 %files
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
284 # list all modules
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
350
351
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
357 %else
358 %{_unitdir}/multi-user.target.wants/pulseaudio.service
359 %endif
360 %exclude /usr/share/bash-completion/completions/*
361 %exclude /usr/share/zsh/site-functions/_pulseaudio
362
363
364 %files -n libpulse
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
371
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
384 # cmake stuff
385 %{_libdir}/cmake/PulseAudio/PulseAudioConfig.cmake
386 %{_libdir}/cmake/PulseAudio/PulseAudioConfigVersion.cmake
387
388 %files -n libpulse-mainloop-glib
389 %manifest %{name}.manifest
390 %defattr(-,root,root)
391 %{_libdir}/libpulse-mainloop-glib.so.*
392
393 %files utils
394 %manifest %{name}.manifest
395 %license LICENSE LGPL
396 %defattr(-,root,root,-)
397 %doc %{_mandir}/man1/*
398 %doc %{_mandir}/man5/*
399 %{_bindir}/pacat
400 %{_bindir}/pacmd
401 %{_bindir}/pactl
402 %{_bindir}/paplay
403 %{_bindir}/parec
404 %{_bindir}/pamon
405 %{_bindir}/parecord
406 %{_bindir}/pasuspender
407 %exclude %{_bindir}/pa-info
408
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
419 %endif
420
421 %files module-raop
422 %manifest %{name}.manifest
423 %defattr(-,root,root,-)
424 %{_libdir}/pulse-%{version}/modules/libraop.so
425 %{_libdir}/pulse-%{version}/modules/module-raop*.so
426
427 %files module-augment-properties
428 %manifest %{name}.manifest
429 %defattr(-,root,root,-)
430 %{_libdir}/pulse-%{version}/modules/module-augment-properties.so
431
432 %files module-dbus-protocol
433 %manifest %{name}.manifest
434 %defattr(-,root,root,-)
435 %{_libdir}/pulse-%{version}/modules/module-dbus-protocol.so
436
437 %files module-switch-on-connect
438 %manifest %{name}.manifest
439 %defattr(-,root,root,-)
440 %{_libdir}/pulse-%{version}/modules/module-switch-on-connect.so
441
442 %files config
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
449
450 %{_datadir}/pulseaudio/alsa-mixer/paths/*
451 %{_datadir}/pulseaudio/alsa-mixer/profile-sets/*
452
453 %files vala-bindings
454 %manifest %{name}.manifest
455 %defattr(-,root,root,-)
456 %{_datadir}/vala/vapi/*
457
458 %files realtime-scheduling
459 %defattr(-,root,root,-)
460
461 %docs_package