Gentoo Archives: gentoo-commits

From: Sam James <sam@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-libs/libpulse/, media-libs/libpulse/files/
Date: Mon, 21 Feb 2022 00:52:10
Message-Id: 1645404681.f26d2e1c7abab9d7e5d1bd0f13ca5f3c06f8e6a4.sam@gentoo
1 commit: f26d2e1c7abab9d7e5d1bd0f13ca5f3c06f8e6a4
2 Author: Sam James <sam <AT> gentoo <DOT> org>
3 AuthorDate: Mon Feb 21 00:51:13 2022 +0000
4 Commit: Sam James <sam <AT> gentoo <DOT> org>
5 CommitDate: Mon Feb 21 00:51:21 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f26d2e1c
7
8 media-libs/libpulse: use tarball for patches
9
10 (I'd missed the same patches got added twice, so only fixed
11 the filesdir for pulseaudio-daemon.)
12
13 Fixes: 5c0932d5e4d591710f3299f70c2012383ab268bc
14 Signed-off-by: Sam James <sam <AT> gentoo.org>
15
16 media-libs/libpulse/Manifest | 1 +
17 ...pulseaudio-15.0-daemon-client-split-build.patch | 1987 --------------------
18 ...-15.0-move-systemd-socket-activation-code.patch | 284 ---
19 ...pulseaudio-15.0-xice-xsm-xtst-daemon-only.patch | 25 -
20 media-libs/libpulse/libpulse-15.0-r1.ebuild | 7 +-
21 5 files changed, 4 insertions(+), 2300 deletions(-)
22
23 diff --git a/media-libs/libpulse/Manifest b/media-libs/libpulse/Manifest
24 index 308d59508744..620fb8498703 100644
25 --- a/media-libs/libpulse/Manifest
26 +++ b/media-libs/libpulse/Manifest
27 @@ -1 +1,2 @@
28 DIST pulseaudio-15.0.tar.xz 1521760 BLAKE2B a6f7b74fdcfe7f2a993eafb9f465946915a24b6801d3077971b9377290d6c70b3f8640a800abd09d5901db96a20349f31b1beedd9da2249f69b591fb8392f489 SHA512 352ef20384c76c631c0faa73b08e2318902a433712e0c086a5ac7a0ae58873c8d4be8f35879bdec71a93b19ae8e2ba073cacac4d56215bcf58375a0cd9d88833
29 +DIST pulseaudio-daemon-15.0-patchset-1.tar.bz2 13739 BLAKE2B 0a9497536481b79ebb9928fc753d44cde30b331890cf7a912f0e038fc270a79e4774fdca209a52b6d50de93e32c30c6636e4d7e57e9daceb90ee80e699599ac8 SHA512 04d98d2a1862cc65cc48837bd3c9d6c8ece4591966bc9d673c8273b445fc63dcc59d8aa891ae8c802ebacacdf56e2790a3f20a95009107c5e5cf6581d1f5f996
30
31 diff --git a/media-libs/libpulse/files/pulseaudio-15.0-daemon-client-split-build.patch b/media-libs/libpulse/files/pulseaudio-15.0-daemon-client-split-build.patch
32 deleted file mode 100644
33 index 8e3fbae40767..000000000000
34 --- a/media-libs/libpulse/files/pulseaudio-15.0-daemon-client-split-build.patch
35 +++ /dev/null
36 @@ -1,1987 +0,0 @@
37 -From 36a1aab8e61cf846a4ee571c19cf1ce8fd7eca9d Mon Sep 17 00:00:00 2001
38 -From: Mart Raudsepp <mart@××××.tech>
39 -Date: Fri, 24 Sep 2021 00:02:40 +0300
40 -Subject: [PATCH 1/8] build-sys: meson: Relax sanity checks for daemonless
41 - builds
42 -
43 -Echo canceller, udev and speex resampling is only used by the daemon, so
44 -don't error or warn about those in -Ddaemon=false builds.
45 -
46 -Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/659>
47 ----
48 - meson.build | 6 +++---
49 - 1 file changed, 3 insertions(+), 3 deletions(-)
50 -
51 -diff --git a/meson.build b/meson.build
52 -index a95fefcd4..d1c419ac2 100644
53 ---- a/meson.build
54 -+++ b/meson.build
55 -@@ -961,7 +961,7 @@ message('\n '.join(summary))
56 -
57 - # Sanity checks
58 -
59 --if not speex_dep.found() and not webrtc_dep.found() and not get_option('adrian-aec')
60 -+if get_option('daemon') and not speex_dep.found() and not webrtc_dep.found() and not get_option('adrian-aec')
61 - error('At least one echo canceller implementation must be available!')
62 - endif
63 -
64 -@@ -981,7 +981,7 @@ if host_machine.system() != 'windows'
65 - ]
66 - warning('\n' + '\n'.join(message))
67 - endif
68 -- if host_machine.system() == 'linux' and not udev_dep.found()
69 -+ if host_machine.system() == 'linux' and not udev_dep.found() and get_option('daemon')
70 - message = [
71 - 'You do not have udev support enabled. It is strongly recommended',
72 - 'that you enable udev support if your platform supports it as it is',
73 -@@ -990,7 +990,7 @@ if host_machine.system() != 'windows'
74 - ]
75 - warning('\n' + '\n'.join(message))
76 - endif
77 -- if not speex_dep.found()
78 -+ if not speex_dep.found() and get_option('daemon')
79 - message = [
80 - 'You do not have speex support enabled. It is strongly recommended',
81 - 'that you enable speex support if your platform supports it as it is',
82 ---
83 -2.35.1
84 -
85 -
86 -From f63f3a9d7f311720dddef1f46e7c7431e3068c38 Mon Sep 17 00:00:00 2001
87 -From: Mart Raudsepp <mart@××××.tech>
88 -Date: Fri, 24 Sep 2021 15:19:05 +0300
89 -Subject: [PATCH 2/8] build-sys: meson: Allow building the daemon only
90 -
91 -Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/659>
92 ----
93 - man/meson.build | 2 ++
94 - meson.build | 23 ++++++++++++++++++++---
95 - meson_options.txt | 3 +++
96 - po/meson.build | 3 ---
97 - shell-completion/bash/meson.build | 2 ++
98 - src/daemon/meson.build | 4 ++--
99 - src/meson.build | 11 +++++++++++
100 - src/modules/gsettings/meson.build | 3 +--
101 - src/tests/meson.build | 9 +++++++--
102 - src/utils/meson.build | 10 ++++++----
103 - 10 files changed, 54 insertions(+), 16 deletions(-)
104 -
105 -diff --git a/man/meson.build b/man/meson.build
106 -index 31c581a8f..c12ad5e6a 100644
107 ---- a/man/meson.build
108 -+++ b/man/meson.build
109 -@@ -14,6 +14,7 @@ if get_option('daemon')
110 - ]
111 - endif
112 -
113 -+if not get_option('daemon-only')
114 - manpages += [
115 - ['pacat', '1', ['paplay', 'parec', 'parecord', 'pamon']],
116 - ['pactl', '1'],
117 -@@ -31,6 +32,7 @@ if x11_dep.found()
118 - ['pax11publish', '1'],
119 - ]
120 - endif
121 -+endif
122 -
123 - # FIXME: Add esdcompat if HAVE_ESOUND
124 - #manpages += ['esdcompat', '1'],
125 -diff --git a/meson.build b/meson.build
126 -index d1c419ac2..b610a159c 100644
127 ---- a/meson.build
128 -+++ b/meson.build
129 -@@ -53,6 +53,8 @@ libpulse_mainloop_glib_version = '@0@.@1@.@2@'.format(
130 - libpulse_mainloop_glib_version_info[1],
131 - )
132 -
133 -+i18n = import('i18n')
134 -+
135 - # Paths
136 -
137 - prefix = get_option('prefix')
138 -@@ -68,6 +70,7 @@ localedir = join_paths(prefix, get_option('localedir'))
139 - localstatedir = join_paths(prefix, get_option('localstatedir'))
140 - sysconfdir = join_paths(prefix, get_option('sysconfdir'))
141 - privlibdir = join_paths(libdir, 'pulseaudio')
142 -+po_dir = join_paths(meson.current_source_dir(), 'po')
143 -
144 - if host_machine.system() == 'windows'
145 - # Windows only supports loading libraries from the same dir as the executable
146 -@@ -796,20 +799,28 @@ check_dep = dependency('check', version : '>= 0.9.10', required : get_option('te
147 - if get_option('doxygen')
148 - subdir('doxygen')
149 - endif
150 --subdir('po')
151 -+if not get_option('daemon-only')
152 -+ subdir('po')
153 -+endif
154 - if get_option('man')
155 - subdir('man')
156 - endif
157 - subdir('shell-completion/bash')
158 --subdir('shell-completion/zsh')
159 -+if not get_option('daemon-only')
160 -+ subdir('shell-completion/zsh')
161 -+endif
162 - subdir('src')
163 --subdir('vala')
164 -+if not get_option('daemon-only')
165 -+ subdir('vala')
166 -+endif
167 -
168 - # Now generate config.h from everything above
169 - configure_file(output : 'config.h', configuration : cdata)
170 -
171 - # pkg-config files
172 -
173 -+if not get_option('daemon-only')
174 -+
175 - pc_cdata = configuration_data()
176 -
177 - pc_cdata.set('prefix', prefix)
178 -@@ -842,8 +853,12 @@ foreach file : pc_files
179 - install_dir : pkgconfigdir)
180 - endforeach
181 -
182 -+endif # !daemon-only
183 -+
184 - # CMake files
185 -
186 -+if not get_option('daemon-only')
187 -+
188 - m4 = find_program('m4', required: true)
189 -
190 - cmakedir = join_paths(libdir, 'cmake', 'PulseAudio')
191 -@@ -872,6 +887,8 @@ configure_file(
192 - install_dir : cmakedir,
193 - )
194 -
195 -+endif # !daemon-only
196 -+
197 - ############################################################
198 -
199 - # Final summary
200 -diff --git a/meson_options.txt b/meson_options.txt
201 -index bb41a42a7..62828ac5c 100644
202 ---- a/meson_options.txt
203 -+++ b/meson_options.txt
204 -@@ -1,6 +1,9 @@
205 - option('daemon',
206 - type : 'boolean', value : true,
207 - description : 'Enable building and installation of pulseaudio daemon and supporting configuration files')
208 -+option('daemon-only',
209 -+ type : 'boolean', value : false,
210 -+ description : 'Build and install only the pulseaudio daemon and supporting configuration files, relying on a system installation of libpulse')
211 - option('doxygen',
212 - type : 'boolean', value : true,
213 - description : 'Enable building and installation of documentation generated with doxygen')
214 -diff --git a/po/meson.build b/po/meson.build
215 -index 34278db47..33429373c 100644
216 ---- a/po/meson.build
217 -+++ b/po/meson.build
218 -@@ -1,4 +1,3 @@
219 --i18n = import('i18n')
220 - i18n.gettext(
221 - meson.project_name(),
222 - preset: 'glib',
223 -@@ -7,5 +6,3 @@ i18n.gettext(
224 - args: ['--msgid-bugs-address=https://gitlab.freedesktop.org/pulseaudio/pulseaudio/issues/new',
225 - '--width=90'],
226 - )
227 --
228 --po_dir = meson.current_source_dir()
229 -diff --git a/shell-completion/bash/meson.build b/shell-completion/bash/meson.build
230 -index 3ba5cb16f..83d90b94b 100644
231 ---- a/shell-completion/bash/meson.build
232 -+++ b/shell-completion/bash/meson.build
233 -@@ -8,6 +8,7 @@ if bashcompletiondir != 'no'
234 - ]
235 - endif
236 -
237 -+ if not get_option('daemon-only')
238 - aliases += [
239 - 'pacat',
240 - 'pactl',
241 -@@ -16,6 +17,7 @@ if bashcompletiondir != 'no'
242 - 'parec',
243 - 'parecord',
244 - ]
245 -+ endif
246 -
247 - install_data('pulseaudio', install_dir : bashcompletiondir)
248 -
249 -diff --git a/src/daemon/meson.build b/src/daemon/meson.build
250 -index 262e193b2..e8f70a453 100644
251 ---- a/src/daemon/meson.build
252 -+++ b/src/daemon/meson.build
253 -@@ -30,8 +30,8 @@ executable('pulseaudio',
254 - install_rpath : privlibdir,
255 - include_directories : [configinc, topinc],
256 - link_args : ['-ffast-math'],
257 -- link_with : [libpulsecore, libpulsecommon, libpulse],
258 -- dependencies : [ltdl_dep, cap_dep, dbus_dep, libsystemd_dep, dl_dep, libintl_dep, platform_dep, platform_socket_dep],
259 -+ link_with : [libpulsecore],
260 -+ dependencies : [ltdl_dep, cap_dep, dbus_dep, libsystemd_dep, dl_dep, libintl_dep, platform_dep, platform_socket_dep, libpulsecommon_dep, libpulse_dep],
261 - c_args : pa_c_args,
262 - )
263 -
264 -diff --git a/src/meson.build b/src/meson.build
265 -index 59a9b16bf..ce56dbfe3 100644
266 ---- a/src/meson.build
267 -+++ b/src/meson.build
268 -@@ -186,6 +186,15 @@ else
269 - endif
270 - # FIXME: Do SIMD things
271 -
272 -+if get_option('daemon-only')
273 -+ libpulsecommon_dep = cc.find_library('pulsecommon-' + pa_version_major_minor, dirs : privlibdir, required : true)
274 -+ libpulse_dep = dependency('libpulse', required : true)
275 -+ libpulse_simple_dep = dependency('libpulse-simple', required : true)
276 -+ if glib_dep.found()
277 -+ libpulse_mainloop_glib_dep = dependency('libpulse-mainloop-glib', required : true)
278 -+ endif
279 -+else
280 -+
281 - libpulsecommon = shared_library('pulsecommon-' + pa_version_major_minor,
282 - libpulsecommon_sources,
283 - libpulsecommon_headers,
284 -@@ -205,6 +214,8 @@ libpulsecommon = shared_library('pulsecommon-' + pa_version_major_minor,
285 - libpulsecommon_dep = declare_dependency(link_with: libpulsecommon)
286 -
287 - subdir('pulse')
288 -+endif
289 -+
290 - if get_option('daemon')
291 - subdir('pulsecore')
292 - subdir('daemon')
293 -diff --git a/src/modules/gsettings/meson.build b/src/modules/gsettings/meson.build
294 -index 68a72c3ff..9604699e7 100644
295 ---- a/src/modules/gsettings/meson.build
296 -+++ b/src/modules/gsettings/meson.build
297 -@@ -8,8 +8,7 @@ gsettings_helper = executable('gsettings-helper',
298 - gsettings_helper_sources,
299 - c_args : pa_c_args,
300 - include_directories : [configinc, topinc],
301 -- link_with : [libpulsecommon, libpulse],
302 -- dependencies : [gio_dep],
303 -+ dependencies : [gio_dep, libpulsecommon_dep, libpulse_dep],
304 - install_dir : pulselibexecdir,
305 - install_rpath : privlibdir,
306 - install : true,
307 -diff --git a/src/tests/meson.build b/src/tests/meson.build
308 -index acd301037..56d71299f 100644
309 ---- a/src/tests/meson.build
310 -+++ b/src/tests/meson.build
311 -@@ -20,8 +20,6 @@ default_tests += [
312 - [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
313 - [ 'json-test', 'json-test.c',
314 - [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
315 -- [ 'mainloop-test', 'mainloop-test.c',
316 -- [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
317 - [ 'proplist-test', 'proplist-test.c',
318 - [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
319 - [ 'thread-mainloop-test', 'thread-mainloop-test.c',
320 -@@ -32,6 +30,13 @@ default_tests += [
321 - [ check_dep, libm_dep, libpulse_dep, libpulsecommon_dep ] ],
322 - ]
323 -
324 -+if not get_option('daemon-only')
325 -+ default_tests += [
326 -+ [ 'mainloop-test', 'mainloop-test.c',
327 -+ [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
328 -+ ]
329 -+endif
330 -+
331 - if get_option('daemon')
332 - default_tests += [
333 - [ 'asyncmsgq-test', 'asyncmsgq-test.c',
334 -diff --git a/src/utils/meson.build b/src/utils/meson.build
335 -index c9635fdb6..7ed6e738f 100644
336 ---- a/src/utils/meson.build
337 -+++ b/src/utils/meson.build
338 -@@ -1,3 +1,4 @@
339 -+if not get_option('daemon-only')
340 - pacat_sources = [
341 - 'pacat.c',
342 - ]
343 -@@ -41,6 +42,7 @@ executable('pactl',
344 - dependencies : [sndfile_dep, libintl_dep],
345 - c_args : pa_c_args,
346 - )
347 -+endif
348 -
349 - if get_option('daemon')
350 - if host_machine.system() != 'windows'
351 -@@ -53,8 +55,7 @@ if get_option('daemon')
352 - install: true,
353 - install_rpath : privlibdir,
354 - include_directories : [configinc, topinc],
355 -- link_with : [libpulsecommon, libpulse],
356 -- dependencies: [libintl_dep],
357 -+ dependencies: [libintl_dep, libpulsecommon_dep, libpulse_dep],
358 - c_args : pa_c_args,
359 - )
360 -
361 -@@ -67,13 +68,13 @@ if get_option('daemon')
362 - install: true,
363 - install_rpath : privlibdir,
364 - include_directories : [configinc, topinc],
365 -- link_with : [libpulsecommon, libpulse],
366 -- dependencies: [libintl_dep],
367 -+ dependencies: [libintl_dep, libpulsecommon_dep, libpulse_dep],
368 - c_args : pa_c_args,
369 - )
370 - endif
371 - endif
372 -
373 -+if not get_option('daemon-only')
374 - if x11_dep.found()
375 - pax11publish_sources = [
376 - 'pax11publish.c',
377 -@@ -121,3 +122,4 @@ if dbus_dep.found() and fftw_dep.found()
378 - endif
379 -
380 - install_data('pa-info', install_dir : bindir)
381 -+endif
382 ---
383 -2.35.1
384 -
385 -
386 -From c3dba1988c18c59a49a2e3e3fa1451f4fa5db0ce Mon Sep 17 00:00:00 2001
387 -From: "Igor V. Kovalenko" <igor.v.kovalenko@×××××.com>
388 -Date: Thu, 4 Nov 2021 16:35:19 +0300
389 -Subject: [PATCH 3/8] build-sys: meson: change daemon-only to client
390 -
391 -Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/659>
392 ----
393 - man/meson.build | 2 +-
394 - meson.build | 14 +++++++-------
395 - meson_options.txt | 6 +++---
396 - shell-completion/bash/meson.build | 2 +-
397 - src/meson.build | 2 +-
398 - src/tests/meson.build | 2 +-
399 - src/utils/meson.build | 4 ++--
400 - 7 files changed, 16 insertions(+), 16 deletions(-)
401 -
402 -diff --git a/man/meson.build b/man/meson.build
403 -index c12ad5e6a..9b42c2a69 100644
404 ---- a/man/meson.build
405 -+++ b/man/meson.build
406 -@@ -14,7 +14,7 @@ if get_option('daemon')
407 - ]
408 - endif
409 -
410 --if not get_option('daemon-only')
411 -+if get_option('client')
412 - manpages += [
413 - ['pacat', '1', ['paplay', 'parec', 'parecord', 'pamon']],
414 - ['pactl', '1'],
415 -diff --git a/meson.build b/meson.build
416 -index b610a159c..ded6669b1 100644
417 ---- a/meson.build
418 -+++ b/meson.build
419 -@@ -799,18 +799,18 @@ check_dep = dependency('check', version : '>= 0.9.10', required : get_option('te
420 - if get_option('doxygen')
421 - subdir('doxygen')
422 - endif
423 --if not get_option('daemon-only')
424 -+if get_option('client')
425 - subdir('po')
426 - endif
427 - if get_option('man')
428 - subdir('man')
429 - endif
430 - subdir('shell-completion/bash')
431 --if not get_option('daemon-only')
432 -+if get_option('client')
433 - subdir('shell-completion/zsh')
434 - endif
435 - subdir('src')
436 --if not get_option('daemon-only')
437 -+if get_option('client')
438 - subdir('vala')
439 - endif
440 -
441 -@@ -819,7 +819,7 @@ configure_file(output : 'config.h', configuration : cdata)
442 -
443 - # pkg-config files
444 -
445 --if not get_option('daemon-only')
446 -+if get_option('client')
447 -
448 - pc_cdata = configuration_data()
449 -
450 -@@ -853,11 +853,11 @@ foreach file : pc_files
451 - install_dir : pkgconfigdir)
452 - endforeach
453 -
454 --endif # !daemon-only
455 -+endif # client
456 -
457 - # CMake files
458 -
459 --if not get_option('daemon-only')
460 -+if get_option('client')
461 -
462 - m4 = find_program('m4', required: true)
463 -
464 -@@ -887,7 +887,7 @@ configure_file(
465 - install_dir : cmakedir,
466 - )
467 -
468 --endif # !daemon-only
469 -+endif # client
470 -
471 - ############################################################
472 -
473 -diff --git a/meson_options.txt b/meson_options.txt
474 -index 62828ac5c..f7e413d1f 100644
475 ---- a/meson_options.txt
476 -+++ b/meson_options.txt
477 -@@ -1,9 +1,9 @@
478 - option('daemon',
479 - type : 'boolean', value : true,
480 - description : 'Enable building and installation of pulseaudio daemon and supporting configuration files')
481 --option('daemon-only',
482 -- type : 'boolean', value : false,
483 -- description : 'Build and install only the pulseaudio daemon and supporting configuration files, relying on a system installation of libpulse')
484 -+option('client',
485 -+ type : 'boolean', value : true,
486 -+ description : 'Build and install pulseaudio client libraries and utilities')
487 - option('doxygen',
488 - type : 'boolean', value : true,
489 - description : 'Enable building and installation of documentation generated with doxygen')
490 -diff --git a/shell-completion/bash/meson.build b/shell-completion/bash/meson.build
491 -index 83d90b94b..1d5a8cdab 100644
492 ---- a/shell-completion/bash/meson.build
493 -+++ b/shell-completion/bash/meson.build
494 -@@ -8,7 +8,7 @@ if bashcompletiondir != 'no'
495 - ]
496 - endif
497 -
498 -- if not get_option('daemon-only')
499 -+ if get_option('client')
500 - aliases += [
501 - 'pacat',
502 - 'pactl',
503 -diff --git a/src/meson.build b/src/meson.build
504 -index ce56dbfe3..f285fdf45 100644
505 ---- a/src/meson.build
506 -+++ b/src/meson.build
507 -@@ -186,7 +186,7 @@ else
508 - endif
509 - # FIXME: Do SIMD things
510 -
511 --if get_option('daemon-only')
512 -+if not get_option('client')
513 - libpulsecommon_dep = cc.find_library('pulsecommon-' + pa_version_major_minor, dirs : privlibdir, required : true)
514 - libpulse_dep = dependency('libpulse', required : true)
515 - libpulse_simple_dep = dependency('libpulse-simple', required : true)
516 -diff --git a/src/tests/meson.build b/src/tests/meson.build
517 -index 56d71299f..b76da26cb 100644
518 ---- a/src/tests/meson.build
519 -+++ b/src/tests/meson.build
520 -@@ -30,7 +30,7 @@ default_tests += [
521 - [ check_dep, libm_dep, libpulse_dep, libpulsecommon_dep ] ],
522 - ]
523 -
524 --if not get_option('daemon-only')
525 -+if get_option('client')
526 - default_tests += [
527 - [ 'mainloop-test', 'mainloop-test.c',
528 - [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
529 -diff --git a/src/utils/meson.build b/src/utils/meson.build
530 -index 7ed6e738f..f67cff4a9 100644
531 ---- a/src/utils/meson.build
532 -+++ b/src/utils/meson.build
533 -@@ -1,4 +1,4 @@
534 --if not get_option('daemon-only')
535 -+if get_option('client')
536 - pacat_sources = [
537 - 'pacat.c',
538 - ]
539 -@@ -74,7 +74,7 @@ if get_option('daemon')
540 - endif
541 - endif
542 -
543 --if not get_option('daemon-only')
544 -+if get_option('client')
545 - if x11_dep.found()
546 - pax11publish_sources = [
547 - 'pax11publish.c',
548 ---
549 -2.35.1
550 -
551 -
552 -From 1cb8c867c7cfff71f29f4eb508b92c5139669f33 Mon Sep 17 00:00:00 2001
553 -From: "Igor V. Kovalenko" <igor.v.kovalenko@×××××.com>
554 -Date: Thu, 4 Nov 2021 19:33:32 +0300
555 -Subject: [PATCH 4/8] build-sys: meson: Move remaining tests under daemon and
556 - client builds
557 -
558 -Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/659>
559 ----
560 - src/tests/meson.build | 126 +++++++++++++++++++++---------------------
561 - 1 file changed, 62 insertions(+), 64 deletions(-)
562 -
563 -diff --git a/src/tests/meson.build b/src/tests/meson.build
564 -index b76da26cb..05922a582 100644
565 ---- a/src/tests/meson.build
566 -+++ b/src/tests/meson.build
567 -@@ -9,32 +9,47 @@
568 -
569 - default_tests = []
570 -
571 --default_tests += [
572 -- [ 'channelmap-test', 'channelmap-test.c',
573 -- [ check_dep, libpulse_dep ] ],
574 -- [ 'core-util-test', 'core-util-test.c',
575 -- [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
576 -- [ 'get-binary-name-test', 'get-binary-name-test.c',
577 -- [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
578 -- [ 'hashmap-test', 'hashmap-test.c',
579 -- [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
580 -- [ 'json-test', 'json-test.c',
581 -- [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
582 -- [ 'proplist-test', 'proplist-test.c',
583 -- [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
584 -- [ 'thread-mainloop-test', 'thread-mainloop-test.c',
585 -- [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
586 -- [ 'utf8-test', 'utf8-test.c',
587 -- [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
588 -- [ 'volume-test', 'volume-test.c',
589 -- [ check_dep, libm_dep, libpulse_dep, libpulsecommon_dep ] ],
590 --]
591 --
592 - if get_option('client')
593 -+ default_tests += [
594 -+ [ 'channelmap-test', 'channelmap-test.c',
595 -+ [ check_dep, libpulse_dep ] ],
596 -+ [ 'core-util-test', 'core-util-test.c',
597 -+ [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
598 -+ [ 'get-binary-name-test', 'get-binary-name-test.c',
599 -+ [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
600 -+ [ 'hashmap-test', 'hashmap-test.c',
601 -+ [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
602 -+ [ 'json-test', 'json-test.c',
603 -+ [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
604 -+ [ 'proplist-test', 'proplist-test.c',
605 -+ [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
606 -+ [ 'thread-mainloop-test', 'thread-mainloop-test.c',
607 -+ [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
608 -+ [ 'utf8-test', 'utf8-test.c',
609 -+ [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
610 -+ [ 'volume-test', 'volume-test.c',
611 -+ [ check_dep, libm_dep, libpulse_dep, libpulsecommon_dep ] ],
612 -+ ]
613 -+
614 - default_tests += [
615 - [ 'mainloop-test', 'mainloop-test.c',
616 - [ check_dep, libpulse_dep, libpulsecommon_dep ] ],
617 - ]
618 -+
619 -+ if cc.has_header('sys/eventfd.h')
620 -+ default_tests += [
621 -+ [ 'srbchannel-test', 'srbchannel-test.c',
622 -+ [ check_dep, libpulse_dep, libpulsecommon_dep ] ]
623 -+ ]
624 -+ endif
625 -+
626 -+ if glib_dep.found()
627 -+ default_tests += [
628 -+ [ 'mainloop-test-glib', 'mainloop-test.c',
629 -+ [ check_dep, glib_dep, libpulse_dep, libpulsecommon_dep, libpulse_mainloop_glib_dep ],
630 -+ [], ['-DGLIB_MAIN_LOOP'] ]
631 -+ ]
632 -+ endif
633 - endif
634 -
635 - if get_option('daemon')
636 -@@ -101,16 +116,6 @@ if get_option('daemon')
637 - ]
638 - endif
639 -
640 --endif
641 --
642 --if cc.has_header('sys/eventfd.h')
643 -- default_tests += [
644 -- [ 'srbchannel-test', 'srbchannel-test.c',
645 -- [ check_dep, libpulse_dep, libpulsecommon_dep ] ]
646 -- ]
647 --endif
648 --
649 --if get_option('daemon')
650 - if alsa_dep.found()
651 - default_tests += [
652 - [ 'alsa-mixer-path-test', 'alsa-mixer-path-test.c',
653 -@@ -120,23 +125,24 @@ if get_option('daemon')
654 - endif
655 - endif
656 -
657 --if glib_dep.found()
658 -- default_tests += [
659 -- [ 'mainloop-test-glib', 'mainloop-test.c',
660 -- [ check_dep, glib_dep, libpulse_dep, libpulsecommon_dep, libpulse_mainloop_glib_dep ],
661 -- [], ['-DGLIB_MAIN_LOOP'] ]
662 -- ]
663 --endif
664 --
665 - # No-run tests
666 - norun_tests = []
667 -
668 --norun_tests += [
669 -- [ 'pacat-simple', 'pacat-simple.c',
670 -- [ libpulse_dep, libpulse_simple_dep ] ],
671 -- [ 'parec-simple', 'parec-simple.c',
672 -- [ libpulse_dep, libpulse_simple_dep ] ],
673 --]
674 -+if get_option('client')
675 -+ norun_tests += [
676 -+ [ 'pacat-simple', 'pacat-simple.c',
677 -+ [ libpulse_dep, libpulse_simple_dep ] ],
678 -+ [ 'parec-simple', 'parec-simple.c',
679 -+ [ libpulse_dep, libpulse_simple_dep ] ],
680 -+ ]
681 -+
682 -+ if gtk_dep.found() and glib_dep.found()
683 -+ norun_tests += [
684 -+ [ 'gtk-test', 'gtk-test.c',
685 -+ [ gtk_dep, libpulse_dep, libpulse_mainloop_glib_dep ] ]
686 -+ ]
687 -+ endif
688 -+endif
689 -
690 - if get_option('daemon')
691 - norun_tests += [
692 -@@ -182,26 +188,18 @@ if get_option('daemon')
693 - ]
694 - endif
695 -
696 --endif
697 --
698 --if cc.has_function('pthread_setaffinity_np', dependencies : thread_dep)
699 -- norun_tests += [
700 -- [ 'atomic-test', 'atomic-test.c',
701 -- [ check_dep, libpulsecommon_dep, thread_dep ] ]
702 -- ]
703 --endif
704 --
705 --if alsa_dep.found()
706 -- norun_tests += [
707 -- [ 'alsa-time-test', 'alsa-time-test.c', [ alsa_dep, thread_dep ] ]
708 -- ]
709 --endif
710 -+ if cc.has_function('pthread_setaffinity_np', dependencies : thread_dep)
711 -+ norun_tests += [
712 -+ [ 'atomic-test', 'atomic-test.c',
713 -+ [ check_dep, libpulsecommon_dep, thread_dep ] ]
714 -+ ]
715 -+ endif
716 -
717 --if gtk_dep.found() and glib_dep.found()
718 -- norun_tests += [
719 -- [ 'gtk-test', 'gtk-test.c',
720 -- [ gtk_dep, libpulse_dep, libpulse_mainloop_glib_dep ] ]
721 -- ]
722 -+ if alsa_dep.found()
723 -+ norun_tests += [
724 -+ [ 'alsa-time-test', 'alsa-time-test.c', [ alsa_dep, thread_dep ] ]
725 -+ ]
726 -+ endif
727 - endif
728 -
729 - # Generate tests
730 ---
731 -2.35.1
732 -
733 -
734 -From c283edc0bac45b2f5efba810e2ccd1d37b54b2ae Mon Sep 17 00:00:00 2001
735 -From: "Igor V. Kovalenko" <igor.v.kovalenko@×××××.com>
736 -Date: Thu, 4 Nov 2021 20:12:03 +0300
737 -Subject: [PATCH 5/8] build-sys: meson: Rearrange dependencies under client and
738 - daemon options
739 -
740 -Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/659>
741 ----
742 - meson.build | 492 +++++++++++++++++++++++++-----------------------
743 - src/meson.build | 3 -
744 - 2 files changed, 258 insertions(+), 237 deletions(-)
745 -
746 -diff --git a/meson.build b/meson.build
747 -index ded6669b1..3afc31c9b 100644
748 ---- a/meson.build
749 -+++ b/meson.build
750 -@@ -568,227 +568,237 @@ if host_machine.cpu_family() == 'arm'
751 - endif
752 - # NEON checks are automatically done by the unstable-simd module
753 -
754 --if get_option('daemon')
755 -- # FIXME: make sure it's >= 2.2
756 -- ltdl_dep = cc.find_library('ltdl', required : true)
757 --endif
758 --
759 --# FIXME: can meson support libtool -dlopen/-dlpreopen things?
760 --# and do we still want to support this at all?
761 --cdata.set('DISABLE_LIBTOOL_PRELOAD', 1)
762 --
763 --if get_option('database') == 'tdb'
764 -- database_dep = dependency('tdb')
765 --elif get_option('database') == 'gdbm'
766 -- database_dep = cc.find_library('gdbm', required : true)
767 --else
768 -- database_dep = dependency('', required: false)
769 --endif
770 -+# Dependencies common to client, daemon and modules
771 -
772 - if get_option('ipv6')
773 - cdata.set('HAVE_IPV6', 1)
774 - endif
775 -
776 --if get_option('legacy-database-entry-format')
777 -- cdata.set('ENABLE_LEGACY_DATABASE_ENTRY_FORMAT', 1)
778 --endif
779 --
780 --if get_option('stream-restore-clear-old-devices')
781 -- cdata.set('STREAM_RESTORE_CLEAR_OLD_DEVICES', 1)
782 --endif
783 --
784 --if get_option('running-from-build-tree')
785 -- cdata.set('HAVE_RUNNING_FROM_BUILD_TREE', 1)
786 --endif
787 --
788 --alsa_dep = dependency('alsa', version : '>= 1.0.24', required : get_option('alsa'))
789 --if alsa_dep.found()
790 -- cdata.set('HAVE_ALSA', 1)
791 -- cdata.set('HAVE_ALSA_UCM', 1)
792 --endif
793 --
794 --asyncns_dep = dependency('libasyncns', version : '>= 0.1', required : get_option('asyncns'))
795 --if asyncns_dep.found()
796 -- cdata.set('HAVE_LIBASYNCNS', 1)
797 --endif
798 --
799 - dbus_dep = dependency('dbus-1', version : '>= 1.4.12', required : get_option('dbus'))
800 - if dbus_dep.found()
801 - cdata.set('HAVE_DBUS', 1)
802 - endif
803 -
804 --gio_dep = dependency('gio-2.0', version : '>= 2.26.0')
805 --if get_option('gsettings').enabled()
806 -- assert(gio_dep.found(), 'GSettings support needs glib I/O library (GIO)')
807 -- cdata.set('HAVE_GSETTINGS', 1)
808 --else
809 -- cdata.set('HAVE_GSETTINGS', 0)
810 --endif
811 --
812 --glib_dep = dependency('glib-2.0', version : '>= 2.28.0', required: get_option('glib'))
813 --if glib_dep.found()
814 -- cdata.set('HAVE_GLIB', 1)
815 --endif
816 --
817 --gtk_dep = dependency('gtk+-3.0', required : get_option('gtk'))
818 --if gtk_dep.found()
819 -- cdata.set('HAVE_GTK', 1)
820 --endif
821 --
822 --have_orcc = false
823 --orcc_args = []
824 --orc_dep = dependency('orc-0.4', version : '>= 0.4.11', required : get_option('orc'))
825 --orcc = find_program('orcc', required : get_option('orc'))
826 --if orc_dep.found() and orcc.found()
827 -- have_orcc = true
828 -- orcc_args = [orcc]
829 -- #orcc_args = [orcc, '--include', 'glib.h']
830 -- cdata.set('HAVE_ORC', 1)
831 --else
832 -- cdata.set('DISABLE_ORC', 1)
833 --endif
834 --
835 --samplerate_dep = dependency('samplerate', version : '>= 0.1.0', required : get_option('samplerate'))
836 --if samplerate_dep.found()
837 -- cdata.set('HAVE_LIBSAMPLERATE', 1)
838 --endif
839 --
840 - sndfile_dep = dependency('sndfile', version : '>= 1.0.20')
841 -
842 --soxr_dep = dependency('soxr', version : '>= 0.1.1', required : get_option('soxr'))
843 --if soxr_dep.found()
844 -- cdata.set('HAVE_SOXR', 1)
845 --endif
846 --
847 - libsystemd_dep = dependency('libsystemd', required : get_option('systemd'))
848 - if libsystemd_dep.found()
849 - cdata.set('HAVE_SYSTEMD_DAEMON', 1)
850 - cdata.set('HAVE_SYSTEMD_LOGIN', 1)
851 - cdata.set('HAVE_SYSTEMD_JOURNAL', 1)
852 - endif
853 --systemd_dep = dependency('systemd', required : get_option('systemd'))
854 --if systemd_dep.found() and systemduserunitdir == ''
855 -- systemduserunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir')
856 --endif
857 --
858 --libelogind_dep = dependency('libelogind', required : get_option('elogind'))
859 --if libelogind_dep.found()
860 -- cdata.set('HAVE_SYSTEMD_LOGIN', 1)
861 --endif
862 --
863 --tcpwrap_dep = cc.find_library('wrap', required: get_option('tcpwrap'))
864 --if cc.has_header('tcpd.h') and cc.has_function('hosts_access', dependencies : tcpwrap_dep)
865 -- cdata.set('HAVE_LIBWRAP', 1)
866 --endif
867 -
868 - x11_dep = dependency('x11-xcb', required : get_option('x11'))
869 --if x11_dep.found()
870 -- xcb_dep = dependency('xcb', required : true, version : '>= 1.6')
871 -- ice_dep = dependency('ice', required : get_option('daemon'))
872 -- sm_dep = dependency('sm', required : get_option('daemon'))
873 -- xtst_dep = dependency('xtst', required : get_option('daemon'))
874 -- cdata.set('HAVE_X11', 1)
875 -- if cc.has_function('XSetIOErrorExitHandler', dependencies: x11_dep)
876 -- cdata.set('HAVE_XSETIOERROREXITHANDLER', 1)
877 -- endif
878 --endif
879 -
880 --# Module dependencies
881 -+# OSS support
882 - if cc.has_header('sys/soundcard.h', required: get_option('oss-output'))
883 -+ # OSS output via daemon module-detect
884 - cdata.set('HAVE_OSS_OUTPUT', 1)
885 -+ # OSS wrapper
886 - cdata.set('HAVE_OSS_WRAPPER', 1)
887 - cdata.set('PULSEDSP_LOCATION', pulsedsp_location)
888 - endif
889 -
890 --if get_option('hal-compat')
891 -- cdata.set('HAVE_HAL_COMPAT', 1)
892 --endif
893 -+# Client library dependencies
894 -
895 --avahi_dep = dependency('avahi-client', version : '>= 0.6.0', required : get_option('avahi'), disabler : true)
896 --if avahi_dep.found()
897 -- cdata.set('HAVE_AVAHI', 1)
898 --else
899 -- cdata.set('HAVE_AVAHI', 0)
900 -+if get_option('client')
901 -+ asyncns_dep = dependency('libasyncns', version : '>= 0.1', required : get_option('asyncns'))
902 -+ if asyncns_dep.found()
903 -+ cdata.set('HAVE_LIBASYNCNS', 1)
904 -+ endif
905 -+
906 -+ glib_dep = dependency('glib-2.0', version : '>= 2.28.0', required: get_option('glib'))
907 -+ if glib_dep.found()
908 -+ cdata.set('HAVE_GLIB', 1)
909 -+ cdata.set('HAVE_GLIB20', 1) # to match the AM_CONDITIONAL for CMake file generation
910 -+ endif
911 -+
912 -+ gtk_dep = dependency('gtk+-3.0', required : get_option('gtk'))
913 -+ if gtk_dep.found()
914 -+ cdata.set('HAVE_GTK', 1)
915 -+ endif
916 - endif
917 -
918 --sbc_dep = dependency('sbc', version : '>= 1.0', required : false)
919 -+# Daemon and module dependencies
920 -
921 --bluez_dep = dependency('bluez', required : get_option('bluez5'))
922 -+if get_option('daemon')
923 -+ # FIXME: make sure it's >= 2.2
924 -+ ltdl_dep = cc.find_library('ltdl', required : true)
925 -
926 --if bluez_dep.found()
927 -- assert(dbus_dep.found(), 'BlueZ requires D-Bus support')
928 -- assert(sbc_dep.found(), 'BlueZ requires SBC support')
929 -- cdata.set('HAVE_SBC', 1)
930 -- cdata.set('HAVE_BLUEZ', 1)
931 -- cdata.set('HAVE_BLUEZ_5', 1)
932 -- if get_option('bluez5-native-headset')
933 -- cdata.set('HAVE_BLUEZ_5_NATIVE_HEADSET', 1)
934 -+ # FIXME: can meson support libtool -dlopen/-dlpreopen things?
935 -+ # and do we still want to support this at all?
936 -+ cdata.set('DISABLE_LIBTOOL_PRELOAD', 1)
937 -+
938 -+ if get_option('database') == 'tdb'
939 -+ database_dep = dependency('tdb')
940 -+ elif get_option('database') == 'gdbm'
941 -+ database_dep = cc.find_library('gdbm', required : true)
942 -+ else
943 -+ database_dep = dependency('', required: false)
944 - endif
945 -- if get_option('bluez5-ofono-headset')
946 -- cdata.set('HAVE_BLUEZ_5_OFONO_HEADSET', 1)
947 -+
948 -+ if get_option('legacy-database-entry-format')
949 -+ cdata.set('ENABLE_LEGACY_DATABASE_ENTRY_FORMAT', 1)
950 - endif
951 --endif
952 -
953 --fftw_dep = dependency('fftw3f', required : get_option('fftw'))
954 --if fftw_dep.found()
955 -- cdata.set('HAVE_FFTW', 1)
956 --endif
957 -+ if get_option('stream-restore-clear-old-devices')
958 -+ cdata.set('STREAM_RESTORE_CLEAR_OLD_DEVICES', 1)
959 -+ endif
960 -
961 --jack_dep = dependency('jack', version : '>= 0.117.0', required : get_option('jack'))
962 --if jack_dep.found()
963 -- cdata.set('HAVE_JACK', 1)
964 --endif
965 -+ if get_option('running-from-build-tree')
966 -+ cdata.set('HAVE_RUNNING_FROM_BUILD_TREE', 1)
967 -+ endif
968 -
969 --lirc_dep = dependency('lirc', required : get_option('lirc'))
970 --if lirc_dep.found()
971 -- cdata.set('HAVE_LIRC', 1)
972 --endif
973 -+ alsa_dep = dependency('alsa', version : '>= 1.0.24', required : get_option('alsa'))
974 -+ if alsa_dep.found()
975 -+ cdata.set('HAVE_ALSA', 1)
976 -+ cdata.set('HAVE_ALSA_UCM', 1)
977 -+ endif
978 -
979 --openssl_dep = dependency('openssl', version : '>= 0.9', required : get_option('openssl'))
980 --if openssl_dep.found()
981 -- cdata.set('HAVE_OPENSSL', 1)
982 --endif
983 -+ gio_dep = dependency('gio-2.0', version : '>= 2.26.0')
984 -+ if get_option('gsettings').enabled()
985 -+ assert(gio_dep.found(), 'GSettings support needs glib I/O library (GIO)')
986 -+ cdata.set('HAVE_GSETTINGS', 1)
987 -+ else
988 -+ cdata.set('HAVE_GSETTINGS', 0)
989 -+ endif
990 -
991 --speex_dep = dependency('speexdsp', version : '>= 1.2', required : get_option('speex'))
992 --if speex_dep.found()
993 -- cdata.set('HAVE_SPEEX', 1)
994 --endif
995 -+ have_orcc = false
996 -+ orcc_args = []
997 -+ orc_dep = dependency('orc-0.4', version : '>= 0.4.11', required : get_option('orc'))
998 -+ orcc = find_program('orcc', required : get_option('orc'))
999 -+ if orc_dep.found() and orcc.found()
1000 -+ have_orcc = true
1001 -+ orcc_args = [orcc]
1002 -+ #orcc_args = [orcc, '--include', 'glib.h']
1003 -+ cdata.set('HAVE_ORC', 1)
1004 -+ else
1005 -+ cdata.set('DISABLE_ORC', 1)
1006 -+ endif
1007 -
1008 --udev_dep = dependency('libudev', version : '>= 143', required : get_option('udev'))
1009 --if udev_dep.found()
1010 -- cdata.set('HAVE_UDEV', 1)
1011 --endif
1012 -+ samplerate_dep = dependency('samplerate', version : '>= 0.1.0', required : get_option('samplerate'))
1013 -+ if samplerate_dep.found()
1014 -+ cdata.set('HAVE_LIBSAMPLERATE', 1)
1015 -+ endif
1016 -
1017 --webrtc_dep = dependency('webrtc-audio-processing', version : '>= 0.2', required : get_option('webrtc-aec'))
1018 --if webrtc_dep.found()
1019 -- cdata.set('HAVE_WEBRTC', 1)
1020 --endif
1021 -+ speex_dep = dependency('speexdsp', version : '>= 1.2', required : get_option('speex'))
1022 -+ if speex_dep.found()
1023 -+ cdata.set('HAVE_SPEEX', 1)
1024 -+ endif
1025 -
1026 --gst_dep = dependency('gstreamer-1.0', version : '>= 1.14', required : get_option('gstreamer'))
1027 --gstapp_dep = dependency('gstreamer-app-1.0', required : get_option('gstreamer'))
1028 --gstrtp_dep = dependency('gstreamer-rtp-1.0', required : get_option('gstreamer'))
1029 -+ soxr_dep = dependency('soxr', version : '>= 0.1.1', required : get_option('soxr'))
1030 -+ if soxr_dep.found()
1031 -+ cdata.set('HAVE_SOXR', 1)
1032 -+ endif
1033 -
1034 --have_gstreamer = false
1035 --if gst_dep.found() and gstapp_dep.found() and gstrtp_dep.found()
1036 -- assert(gio_dep.found(), 'GStreamer-based RTP needs glib I/O library (GIO)')
1037 -- have_gstreamer = true
1038 --endif
1039 -+ webrtc_dep = dependency('webrtc-audio-processing', version : '>= 0.2', required : get_option('webrtc-aec'))
1040 -+ if webrtc_dep.found()
1041 -+ cdata.set('HAVE_WEBRTC', 1)
1042 -+ endif
1043 -
1044 --bluez5_gst_dep = dependency('gstreamer-1.0', version : '>= 1.14', required : get_option('bluez5-gstreamer'))
1045 --bluez5_gstapp_dep = dependency('gstreamer-app-1.0', required : get_option('bluez5-gstreamer'))
1046 --have_bluez5_gstreamer = false
1047 --if bluez5_gst_dep.found() and bluez5_gstapp_dep.found()
1048 -- have_bluez5_gstreamer = true
1049 -- cdata.set('HAVE_GSTLDAC', 1)
1050 -- cdata.set('HAVE_GSTAPTX', 1)
1051 -+ systemd_dep = dependency('systemd', required : get_option('systemd'))
1052 -+ if systemd_dep.found() and systemduserunitdir == ''
1053 -+ systemduserunitdir = systemd_dep.get_pkgconfig_variable('systemduserunitdir')
1054 -+ endif
1055 -+
1056 -+ libelogind_dep = dependency('libelogind', required : get_option('elogind'))
1057 -+ if libelogind_dep.found()
1058 -+ cdata.set('HAVE_SYSTEMD_LOGIN', 1)
1059 -+ endif
1060 -+
1061 -+ tcpwrap_dep = cc.find_library('wrap', required: get_option('tcpwrap'))
1062 -+ if cc.has_header('tcpd.h') and cc.has_function('hosts_access', dependencies : tcpwrap_dep)
1063 -+ cdata.set('HAVE_LIBWRAP', 1)
1064 -+ endif
1065 -+
1066 -+ if x11_dep.found()
1067 -+ xcb_dep = dependency('xcb', required : true, version : '>= 1.6')
1068 -+ ice_dep = dependency('ice', required : true)
1069 -+ sm_dep = dependency('sm', required : true)
1070 -+ xtst_dep = dependency('xtst', required : true)
1071 -+ cdata.set('HAVE_X11', 1)
1072 -+ if cc.has_function('XSetIOErrorExitHandler', dependencies: x11_dep)
1073 -+ cdata.set('HAVE_XSETIOERROREXITHANDLER', 1)
1074 -+ endif
1075 -+ endif
1076 -+
1077 -+ avahi_dep = dependency('avahi-client', version : '>= 0.6.0', required : get_option('avahi'), disabler : true)
1078 -+ if avahi_dep.found()
1079 -+ cdata.set('HAVE_AVAHI', 1)
1080 -+ else
1081 -+ cdata.set('HAVE_AVAHI', 0)
1082 -+ endif
1083 -+
1084 -+ sbc_dep = dependency('sbc', version : '>= 1.0', required : false)
1085 -+
1086 -+ bluez_dep = dependency('bluez', required : get_option('bluez5'))
1087 -+
1088 -+ if bluez_dep.found()
1089 -+ assert(dbus_dep.found(), 'BlueZ requires D-Bus support')
1090 -+ assert(sbc_dep.found(), 'BlueZ requires SBC support')
1091 -+ cdata.set('HAVE_SBC', 1)
1092 -+ cdata.set('HAVE_BLUEZ', 1)
1093 -+ cdata.set('HAVE_BLUEZ_5', 1)
1094 -+ if get_option('bluez5-native-headset')
1095 -+ cdata.set('HAVE_BLUEZ_5_NATIVE_HEADSET', 1)
1096 -+ endif
1097 -+ if get_option('bluez5-ofono-headset')
1098 -+ cdata.set('HAVE_BLUEZ_5_OFONO_HEADSET', 1)
1099 -+ endif
1100 -+ endif
1101 -+
1102 -+ fftw_dep = dependency('fftw3f', required : get_option('fftw'))
1103 -+ if fftw_dep.found()
1104 -+ cdata.set('HAVE_FFTW', 1)
1105 -+ endif
1106 -+
1107 -+ jack_dep = dependency('jack', version : '>= 0.117.0', required : get_option('jack'))
1108 -+ if jack_dep.found()
1109 -+ cdata.set('HAVE_JACK', 1)
1110 -+ endif
1111 -+
1112 -+ lirc_dep = dependency('lirc', required : get_option('lirc'))
1113 -+ if lirc_dep.found()
1114 -+ cdata.set('HAVE_LIRC', 1)
1115 -+ endif
1116 -+
1117 -+ openssl_dep = dependency('openssl', version : '>= 0.9', required : get_option('openssl'))
1118 -+ if openssl_dep.found()
1119 -+ cdata.set('HAVE_OPENSSL', 1)
1120 -+ endif
1121 -+
1122 -+ udev_dep = dependency('libudev', version : '>= 143', required : get_option('udev'))
1123 -+ if udev_dep.found()
1124 -+ cdata.set('HAVE_UDEV', 1)
1125 -+ endif
1126 -+
1127 -+ if get_option('hal-compat')
1128 -+ cdata.set('HAVE_HAL_COMPAT', 1)
1129 -+ endif
1130 -+
1131 -+ gst_dep = dependency('gstreamer-1.0', version : '>= 1.14', required : get_option('gstreamer'))
1132 -+ gstapp_dep = dependency('gstreamer-app-1.0', required : get_option('gstreamer'))
1133 -+ gstrtp_dep = dependency('gstreamer-rtp-1.0', required : get_option('gstreamer'))
1134 -+
1135 -+ have_gstreamer = false
1136 -+ if gst_dep.found() and gstapp_dep.found() and gstrtp_dep.found()
1137 -+ assert(gio_dep.found(), 'GStreamer-based RTP needs glib I/O library (GIO)')
1138 -+ have_gstreamer = true
1139 -+ endif
1140 -+
1141 -+ bluez5_gst_dep = dependency('gstreamer-1.0', version : '>= 1.14', required : get_option('bluez5-gstreamer'))
1142 -+ bluez5_gstapp_dep = dependency('gstreamer-app-1.0', required : get_option('bluez5-gstreamer'))
1143 -+ have_bluez5_gstreamer = false
1144 -+ if bluez5_gst_dep.found() and bluez5_gstapp_dep.found()
1145 -+ have_bluez5_gstreamer = true
1146 -+ cdata.set('HAVE_GSTLDAC', 1)
1147 -+ cdata.set('HAVE_GSTAPTX', 1)
1148 -+ endif
1149 - endif
1150 -
1151 - # These are required for the CMake file generation
1152 - cdata.set('PA_LIBDIR', libdir)
1153 - cdata.set('PA_INCDIR', includedir)
1154 --if glib_dep.found()
1155 -- cdata.set('HAVE_GLIB20', 1) # to match the AM_CONDITIONAL for CMake file generation
1156 --endif
1157 -
1158 - # Test dependencies
1159 -
1160 -@@ -817,10 +827,10 @@ endif
1161 - # Now generate config.h from everything above
1162 - configure_file(output : 'config.h', configuration : cdata)
1163 -
1164 --# pkg-config files
1165 --
1166 - if get_option('client')
1167 -
1168 -+# pkg-config files
1169 -+
1170 - pc_cdata = configuration_data()
1171 -
1172 - pc_cdata.set('prefix', prefix)
1173 -@@ -853,12 +863,8 @@ foreach file : pc_files
1174 - install_dir : pkgconfigdir)
1175 - endforeach
1176 -
1177 --endif # client
1178 --
1179 - # CMake files
1180 -
1181 --if get_option('client')
1182 --
1183 - m4 = find_program('m4', required: true)
1184 -
1185 - cmakedir = join_paths(libdir, 'cmake', 'PulseAudio')
1186 -@@ -918,49 +924,66 @@ summary = [
1187 - # 'LIBS: @0@'.format(${LIBS}),
1188 - '',
1189 - 'Enable pulseaudio daemon: @0@'.format(get_option('daemon')),
1190 -+ 'Enable pulseaudio client: @0@'.format(get_option('client')),
1191 - '',
1192 - 'Enable memfd shared memory: @0@'.format(cdata.has('HAVE_MEMFD')),
1193 - 'Enable X11: @0@'.format(x11_dep.found()),
1194 -- ' Safe X11 I/O errors: @0@'.format(cdata.has('HAVE_XSETIOERROREXITHANDLER')),
1195 -- 'Enable OSS Output: @0@'.format(cdata.has('HAVE_OSS_OUTPUT')),
1196 -+ 'Enable D-Bus: @0@'.format(dbus_dep.found()),
1197 -+ 'Enable systemd integration: @0@'.format(libsystemd_dep.found()),
1198 -+ 'Enable IPv6: @0@'.format(get_option('ipv6')),
1199 -+ 'Enable Gcov coverage: @0@'.format(get_option('gcov')),
1200 -+ 'Enable Valgrind: @0@'.format(cdata.has('HAVE_VALGRIND_MEMCHECK_H')),
1201 -+ 'Enable man pages: @0@'.format(get_option('man')),
1202 -+ 'Enable unit tests: @0@'.format(get_option('tests')),
1203 -+]
1204 -+
1205 -+if get_option('client')
1206 -+summary += [
1207 -+ '',
1208 -+ '--- Pulseaudio client features ---',
1209 -+ '',
1210 -+ 'Enable GLib 2: @0@'.format(glib_dep.found()),
1211 -+ 'Enable Gtk+ 3: @0@'.format(gtk_dep.found()),
1212 -+ 'Enable Async DNS: @0@'.format(asyncns_dep.found()),
1213 - 'Enable OSS Wrapper: @0@'.format(cdata.has('HAVE_OSS_WRAPPER')),
1214 -+]
1215 -+endif
1216 -+
1217 -+if get_option('daemon')
1218 -+summary += [
1219 -+ '',
1220 -+ '--- Pulseaudio daemon features ---',
1221 -+ '',
1222 -+ 'Safe X11 I/O errors: @0@'.format(cdata.has('HAVE_XSETIOERROREXITHANDLER')),
1223 -+ 'Enable Avahi: @0@'.format(avahi_dep.found()),
1224 -+ 'Enable OSS Output: @0@'.format(cdata.has('HAVE_OSS_OUTPUT')),
1225 - # 'Enable EsounD: @0@'.format(${ENABLE_ESOUND}),
1226 - 'Enable Alsa: @0@'.format(alsa_dep.found()),
1227 -+ 'Enable Jack: @0@'.format(jack_dep.found()),
1228 -+ 'Enable LIRC: @0@'.format(lirc_dep.found()),
1229 - # 'Enable CoreAudio: @0@'.format(${ENABLE_COREAUDIO}),
1230 - # 'Enable Solaris: @0@'.format(${ENABLE_SOLARIS}),
1231 - # 'Enable WaveOut: @0@'.format(${ENABLE_WAVEOUT}),
1232 -- 'Enable GLib 2: @0@'.format(glib_dep.found()),
1233 - 'Enable GSettings: @0@'.format(gio_dep.found()),
1234 -- 'Enable Gtk+ 3: @0@'.format(gtk_dep.found()),
1235 -- 'Enable Avahi: @0@'.format(avahi_dep.found()),
1236 -- 'Enable Jack: @0@'.format(jack_dep.found()),
1237 -- 'Enable Async DNS: @0@'.format(asyncns_dep.found()),
1238 -- 'Enable LIRC: @0@'.format(lirc_dep.found()),
1239 -- 'Enable D-Bus: @0@'.format(dbus_dep.found()),
1240 -- ' Enable BlueZ 5: @0@'.format(cdata.has('HAVE_BLUEZ_5')),
1241 -- ' Enable native headsets: @0@'.format(cdata.has('HAVE_BLUEZ_5_NATIVE_HEADSET')),
1242 -- ' Enable ofono headsets: @0@'.format(cdata.has('HAVE_BLUEZ_5_OFONO_HEADSET')),
1243 -- ' Enable GStreamer based codecs: @0@'.format(have_bluez5_gstreamer),
1244 -- 'Enable udev: @0@'.format(udev_dep.found()),
1245 -- ' Enable HAL->udev compat: @0@'.format(get_option('hal-compat')),
1246 -- 'Enable systemd: @0@'.format(libsystemd_dep.found()),
1247 -- 'Enable elogind: @0@'.format(libelogind_dep.found()),
1248 -- 'Enable TCP Wrappers: @0@'.format(tcpwrap_dep.found()),
1249 -+ 'Enable BlueZ 5: @0@'.format(cdata.has('HAVE_BLUEZ_5')),
1250 -+ ' Enable native headsets: @0@'.format(cdata.has('HAVE_BLUEZ_5_NATIVE_HEADSET')),
1251 -+ ' Enable ofono headsets: @0@'.format(cdata.has('HAVE_BLUEZ_5_OFONO_HEADSET')),
1252 -+ ' Enable GStreamer based codecs: @0@'.format(have_bluez5_gstreamer),
1253 -+ 'Enable GStreamer: @0@'.format(have_gstreamer),
1254 - 'Enable libsamplerate: @0@'.format(samplerate_dep.found()),
1255 -- 'Enable IPv6: @0@'.format(get_option('ipv6')),
1256 -- 'Enable OpenSSL (for Airtunes): @0@'.format(openssl_dep.found()),
1257 - 'Enable FFTW: @0@'.format(fftw_dep.found()),
1258 - 'Enable ORC: @0@'.format(have_orcc),
1259 -- 'Enable GStreamer: @0@'.format(have_gstreamer),
1260 - 'Enable Adrian echo canceller: @0@'.format(get_option('adrian-aec')),
1261 - 'Enable Speex (resampler, AEC): @0@'.format(speex_dep.found()),
1262 - 'Enable SoXR (resampler): @0@'.format(soxr_dep.found()),
1263 - 'Enable WebRTC echo canceller: @0@'.format(webrtc_dep.found()),
1264 -- 'Enable Gcov coverage: @0@'.format(get_option('gcov')),
1265 -- 'Enable Valgrind: @0@'.format(cdata.has('HAVE_VALGRIND_MEMCHECK_H')),
1266 -- 'Enable man pages: @0@'.format(get_option('man')),
1267 -- 'Enable unit tests: @0@'.format(get_option('tests')),
1268 - '',
1269 -+ 'Enable udev: @0@'.format(udev_dep.found()),
1270 -+ ' Enable HAL->udev compat: @0@'.format(get_option('hal-compat')),
1271 -+ 'Enable systemd units: @0@'.format(systemd_dep.found()),
1272 -+ 'Enable elogind: @0@'.format(libelogind_dep.found()),
1273 -+ 'Enable TCP Wrappers: @0@'.format(tcpwrap_dep.found()),
1274 -+ 'Enable OpenSSL (for Airtunes): @0@'.format(openssl_dep.found()),
1275 - 'Database: @0@'.format(get_option('database')),
1276 - 'Legacy Database Entry Support: @0@'.format(get_option('legacy-database-entry-format')),
1277 - 'module-stream-restore:',
1278 -@@ -973,6 +996,7 @@ summary = [
1279 - # 'Force preopen: @0@'.format(${FORCE_PREOPEN}),
1280 - # 'Preopened modules: @0@'.format(${PREOPEN_MODS}),
1281 - ]
1282 -+endif
1283 -
1284 - message('\n '.join(summary))
1285 -
1286 -@@ -982,38 +1006,38 @@ if get_option('daemon') and not speex_dep.found() and not webrtc_dep.found() and
1287 - error('At least one echo canceller implementation must be available!')
1288 - endif
1289 -
1290 --if samplerate_dep.found()
1291 -+if get_option('daemon') and samplerate_dep.found()
1292 - warning('Support for libsamplerate is DEPRECATED')
1293 - endif
1294 -
1295 --if host_machine.system() != 'windows'
1296 -- if not dbus_dep.found()
1297 -- message = [
1298 -- 'You do not have D-Bus support enabled. It is strongly recommended',
1299 -- 'that you enable D-Bus support if your platform supports it.',
1300 -- 'Many parts of PulseAudio use D-Bus, from ConsoleKit interaction',
1301 -- 'to the Device Reservation Protocol to speak to JACK, Bluetooth',
1302 -- 'support and even a native control protocol for communicating and',
1303 -- 'controlling the PulseAudio daemon itself.',
1304 -- ]
1305 -- warning('\n' + '\n'.join(message))
1306 -- endif
1307 -- if host_machine.system() == 'linux' and not udev_dep.found() and get_option('daemon')
1308 -- message = [
1309 -- 'You do not have udev support enabled. It is strongly recommended',
1310 -- 'that you enable udev support if your platform supports it as it is',
1311 -- 'the primary method used to detect hardware audio devices (on Linux)',
1312 -- 'and is thus a critical part of PulseAudio on that platform.',
1313 -- ]
1314 -- warning('\n' + '\n'.join(message))
1315 -- endif
1316 -- if not speex_dep.found() and get_option('daemon')
1317 -- message = [
1318 -- 'You do not have speex support enabled. It is strongly recommended',
1319 -- 'that you enable speex support if your platform supports it as it is',
1320 -- 'the primary method used for audio resampling and is thus a critical',
1321 -- 'part of PulseAudio on that platform.',
1322 -- ]
1323 -- warning('\n' + '\n'.join(message))
1324 -- endif
1325 -+if host_machine.system() != 'windows' and not dbus_dep.found()
1326 -+ message = [
1327 -+ 'You do not have D-Bus support enabled. It is strongly recommended',
1328 -+ 'that you enable D-Bus support if your platform supports it.',
1329 -+ 'Many parts of PulseAudio use D-Bus, from ConsoleKit interaction',
1330 -+ 'to the Device Reservation Protocol to speak to JACK, Bluetooth',
1331 -+ 'support and even a native control protocol for communicating and',
1332 -+ 'controlling the PulseAudio daemon itself.',
1333 -+ ]
1334 -+ warning('\n' + '\n'.join(message))
1335 -+endif
1336 -+
1337 -+if get_option('daemon') and host_machine.system() == 'linux' and not udev_dep.found()
1338 -+ message = [
1339 -+ 'You do not have udev support enabled. It is strongly recommended',
1340 -+ 'that you enable udev support if your platform supports it as it is',
1341 -+ 'the primary method used to detect hardware audio devices (on Linux)',
1342 -+ 'and is thus a critical part of PulseAudio on that platform.',
1343 -+ ]
1344 -+ warning('\n' + '\n'.join(message))
1345 -+endif
1346 -+
1347 -+if get_option('daemon') and host_machine.system() != 'windows' and not speex_dep.found()
1348 -+ message = [
1349 -+ 'You do not have speex support enabled. It is strongly recommended',
1350 -+ 'that you enable speex support if your platform supports it as it is',
1351 -+ 'the primary method used for audio resampling and is thus a critical',
1352 -+ 'part of PulseAudio on that platform.',
1353 -+ ]
1354 -+ warning('\n' + '\n'.join(message))
1355 - endif
1356 -diff --git a/src/meson.build b/src/meson.build
1357 -index f285fdf45..956350afb 100644
1358 ---- a/src/meson.build
1359 -+++ b/src/meson.build
1360 -@@ -190,9 +190,6 @@ if not get_option('client')
1361 - libpulsecommon_dep = cc.find_library('pulsecommon-' + pa_version_major_minor, dirs : privlibdir, required : true)
1362 - libpulse_dep = dependency('libpulse', required : true)
1363 - libpulse_simple_dep = dependency('libpulse-simple', required : true)
1364 -- if glib_dep.found()
1365 -- libpulse_mainloop_glib_dep = dependency('libpulse-mainloop-glib', required : true)
1366 -- endif
1367 - else
1368 -
1369 - libpulsecommon = shared_library('pulsecommon-' + pa_version_major_minor,
1370 ---
1371 -2.35.1
1372 -
1373 -
1374 -From 75e8621ae7d3cd0bf5341def3452ffef6dbce540 Mon Sep 17 00:00:00 2001
1375 -From: "Igor V. Kovalenko" <igor.v.kovalenko@×××××.com>
1376 -Date: Fri, 5 Nov 2021 00:34:26 +0300
1377 -Subject: [PATCH 6/8] build-sys: meson: Rearrange shell completion between
1378 - daemon and client
1379 -
1380 -Rename bash completion file to pactl and install it with client build.
1381 -Completions specific to daemon are now just symlinks, create target directory
1382 -first to install them.
1383 -
1384 -Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/659>
1385 ----
1386 - meson.build | 4 +--
1387 - shell-completion/bash/meson.build | 28 +++++++++++++--------
1388 - shell-completion/bash/{pulseaudio => pactl} | 0
1389 - shell-completion/zsh/meson.build | 6 +++--
1390 - 4 files changed, 22 insertions(+), 16 deletions(-)
1391 - rename shell-completion/bash/{pulseaudio => pactl} (100%)
1392 -
1393 -diff --git a/meson.build b/meson.build
1394 -index 3afc31c9b..0c4d9689c 100644
1395 ---- a/meson.build
1396 -+++ b/meson.build
1397 -@@ -816,9 +816,7 @@ if get_option('man')
1398 - subdir('man')
1399 - endif
1400 - subdir('shell-completion/bash')
1401 --if get_option('client')
1402 -- subdir('shell-completion/zsh')
1403 --endif
1404 -+subdir('shell-completion/zsh')
1405 - subdir('src')
1406 - if get_option('client')
1407 - subdir('vala')
1408 -diff --git a/shell-completion/bash/meson.build b/shell-completion/bash/meson.build
1409 -index 1d5a8cdab..fb406551b 100644
1410 ---- a/shell-completion/bash/meson.build
1411 -+++ b/shell-completion/bash/meson.build
1412 -@@ -3,27 +3,33 @@ if bashcompletiondir != 'no'
1413 -
1414 - if get_option('daemon')
1415 - aliases += [
1416 -+ 'pulseaudio',
1417 - 'pacmd',
1418 - 'pasuspender',
1419 - ]
1420 -+
1421 -+ # Create target directory for symlinks
1422 -+ if meson.version().version_compare('>= 0.60.0')
1423 -+ install_emptydir(bashcompletiondir)
1424 -+ else
1425 -+ meson.add_install_script('sh', '-c', 'mkdir -p $DESTDIR@0@'.format(bashcompletiondir))
1426 -+ endif
1427 - endif
1428 -
1429 - if get_option('client')
1430 -- aliases += [
1431 -- 'pacat',
1432 -- 'pactl',
1433 -- 'padsp',
1434 -- 'paplay',
1435 -- 'parec',
1436 -- 'parecord',
1437 -- ]
1438 -+ aliases += [
1439 -+ 'pacat',
1440 -+ 'padsp',
1441 -+ 'paplay',
1442 -+ 'parec',
1443 -+ 'parecord',
1444 -+ ]
1445 -+ install_data('pactl', install_dir : bashcompletiondir)
1446 - endif
1447 -
1448 -- install_data('pulseaudio', install_dir : bashcompletiondir)
1449 --
1450 - foreach alias : aliases
1451 - dst = join_paths(bashcompletiondir, alias)
1452 -- cmd = 'ln -fs @0@ $DESTDIR@1@'.format('pulseaudio', dst)
1453 -+ cmd = 'ln -fs @0@ $DESTDIR@1@'.format('pactl', dst)
1454 - meson.add_install_script('sh', '-c', cmd)
1455 - endforeach
1456 - endif
1457 -diff --git a/shell-completion/bash/pulseaudio b/shell-completion/bash/pactl
1458 -similarity index 100%
1459 -rename from shell-completion/bash/pulseaudio
1460 -rename to shell-completion/bash/pactl
1461 -diff --git a/shell-completion/zsh/meson.build b/shell-completion/zsh/meson.build
1462 -index 489be569c..3f133b186 100644
1463 ---- a/shell-completion/zsh/meson.build
1464 -+++ b/shell-completion/zsh/meson.build
1465 -@@ -1,3 +1,5 @@
1466 --if zshcompletiondir != 'no'
1467 -- install_data('_pulseaudio', install_dir : zshcompletiondir)
1468 -+if get_option('client')
1469 -+ if zshcompletiondir != 'no'
1470 -+ install_data('_pulseaudio', install_dir : zshcompletiondir)
1471 -+ endif
1472 - endif
1473 ---
1474 -2.35.1
1475 -
1476 -
1477 -From 748451220c5c9dbf7110071167b830ba43eea2f0 Mon Sep 17 00:00:00 2001
1478 -From: "Igor V. Kovalenko" <igor.v.kovalenko@×××××.com>
1479 -Date: Fri, 5 Nov 2021 01:52:38 +0300
1480 -Subject: [PATCH 7/8] build-sys: meson: Fix indentation in daemon/client blocks
1481 -
1482 -Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/659>
1483 ----
1484 - man/meson.build | 28 +++----
1485 - meson.build | 110 ++++++++++++++--------------
1486 - src/meson.build | 35 +++++----
1487 - src/utils/meson.build | 166 +++++++++++++++++++++---------------------
1488 - 4 files changed, 169 insertions(+), 170 deletions(-)
1489 -
1490 -diff --git a/man/meson.build b/man/meson.build
1491 -index 9b42c2a69..d72b3cf96 100644
1492 ---- a/man/meson.build
1493 -+++ b/man/meson.build
1494 -@@ -15,23 +15,23 @@ if get_option('daemon')
1495 - endif
1496 -
1497 - if get_option('client')
1498 --manpages += [
1499 -- ['pacat', '1', ['paplay', 'parec', 'parecord', 'pamon']],
1500 -- ['pactl', '1'],
1501 -- ['pulse-client.conf', '5'],
1502 --]
1503 --
1504 --if cdata.has('HAVE_OSS_WRAPPER')
1505 - manpages += [
1506 -- ['padsp', '1'],
1507 -+ ['pacat', '1', ['paplay', 'parec', 'parecord', 'pamon']],
1508 -+ ['pactl', '1'],
1509 -+ ['pulse-client.conf', '5'],
1510 - ]
1511 --endif
1512 -
1513 --if x11_dep.found()
1514 -- manpages += [
1515 -- ['pax11publish', '1'],
1516 -- ]
1517 --endif
1518 -+ if cdata.has('HAVE_OSS_WRAPPER')
1519 -+ manpages += [
1520 -+ ['padsp', '1'],
1521 -+ ]
1522 -+ endif
1523 -+
1524 -+ if x11_dep.found()
1525 -+ manpages += [
1526 -+ ['pax11publish', '1'],
1527 -+ ]
1528 -+ endif
1529 - endif
1530 -
1531 - # FIXME: Add esdcompat if HAVE_ESOUND
1532 -diff --git a/meson.build b/meson.build
1533 -index 0c4d9689c..178e0cae8 100644
1534 ---- a/meson.build
1535 -+++ b/meson.build
1536 -@@ -827,69 +827,69 @@ configure_file(output : 'config.h', configuration : cdata)
1537 -
1538 - if get_option('client')
1539 -
1540 --# pkg-config files
1541 --
1542 --pc_cdata = configuration_data()
1543 --
1544 --pc_cdata.set('prefix', prefix)
1545 --pc_cdata.set('exec_prefix', prefix)
1546 --pc_cdata.set('libdir', libdir)
1547 --pc_cdata.set('includedir', includedir)
1548 --pc_cdata.set('modlibexecdir', modlibexecdir)
1549 --pc_cdata.set('PACKAGE_VERSION', pa_version_str)
1550 --pc_cdata.set('PA_MAJORMINOR', pa_version_major_minor)
1551 --# FIXME: the line below is wrong. Currently the meson thread dep lacks documentation,
1552 --# and doesn't allow introspection, ie. none of get_pkgconfig_variable() or
1553 --# get_configtool_variable() work with it, so we have no way to get this flag right,
1554 --# unless we do all the work ourselves. See current work in glib, also meson #553.
1555 --pc_cdata.set('PTHREAD_LIBS', '-pthread')
1556 --
1557 --pc_files = [
1558 -- 'libpulse.pc',
1559 -- 'libpulse-simple.pc',
1560 --]
1561 -+ # pkg-config files
1562 -+
1563 -+ pc_cdata = configuration_data()
1564 -+
1565 -+ pc_cdata.set('prefix', prefix)
1566 -+ pc_cdata.set('exec_prefix', prefix)
1567 -+ pc_cdata.set('libdir', libdir)
1568 -+ pc_cdata.set('includedir', includedir)
1569 -+ pc_cdata.set('modlibexecdir', modlibexecdir)
1570 -+ pc_cdata.set('PACKAGE_VERSION', pa_version_str)
1571 -+ pc_cdata.set('PA_MAJORMINOR', pa_version_major_minor)
1572 -+ # FIXME: the line below is wrong. Currently the meson thread dep lacks documentation,
1573 -+ # and doesn't allow introspection, ie. none of get_pkgconfig_variable() or
1574 -+ # get_configtool_variable() work with it, so we have no way to get this flag right,
1575 -+ # unless we do all the work ourselves. See current work in glib, also meson #553.
1576 -+ pc_cdata.set('PTHREAD_LIBS', '-pthread')
1577 -+
1578 -+ pc_files = [
1579 -+ 'libpulse.pc',
1580 -+ 'libpulse-simple.pc',
1581 -+ ]
1582 -
1583 --if glib_dep.found()
1584 -- pc_files += 'libpulse-mainloop-glib.pc'
1585 --endif
1586 -+ if glib_dep.found()
1587 -+ pc_files += 'libpulse-mainloop-glib.pc'
1588 -+ endif
1589 -
1590 --foreach file : pc_files
1591 -- configure_file(
1592 -- input : file + '.in',
1593 -- output : file,
1594 -- configuration : pc_cdata,
1595 -- install_dir : pkgconfigdir)
1596 --endforeach
1597 -+ foreach file : pc_files
1598 -+ configure_file(
1599 -+ input : file + '.in',
1600 -+ output : file,
1601 -+ configuration : pc_cdata,
1602 -+ install_dir : pkgconfigdir)
1603 -+ endforeach
1604 -
1605 --# CMake files
1606 -+ # CMake files
1607 -
1608 --m4 = find_program('m4', required: true)
1609 -+ m4 = find_program('m4', required: true)
1610 -
1611 --cmakedir = join_paths(libdir, 'cmake', 'PulseAudio')
1612 -+ cmakedir = join_paths(libdir, 'cmake', 'PulseAudio')
1613 -
1614 --cmake_template_file = configure_file(
1615 -- input : 'PulseAudioConfig.cmake.in',
1616 -- output : 'PulseAudioConfig.cmake.tmp',
1617 -- configuration: cdata,
1618 --)
1619 -+ cmake_template_file = configure_file(
1620 -+ input : 'PulseAudioConfig.cmake.in',
1621 -+ output : 'PulseAudioConfig.cmake.tmp',
1622 -+ configuration: cdata,
1623 -+ )
1624 -
1625 --custom_target('PulseAudioConfig.cmake',
1626 -- input : cmake_template_file,
1627 -- output : 'PulseAudioConfig.cmake',
1628 -- capture : true,
1629 -- command : [m4, '@INPUT@'],
1630 -- build_by_default : true,
1631 -- install : true,
1632 -- install_dir : cmakedir,
1633 --)
1634 -+ custom_target('PulseAudioConfig.cmake',
1635 -+ input : cmake_template_file,
1636 -+ output : 'PulseAudioConfig.cmake',
1637 -+ capture : true,
1638 -+ command : [m4, '@INPUT@'],
1639 -+ build_by_default : true,
1640 -+ install : true,
1641 -+ install_dir : cmakedir,
1642 -+ )
1643 -
1644 --configure_file(
1645 -- input : 'PulseAudioConfigVersion.cmake.in',
1646 -- output : 'PulseAudioConfigVersion.cmake',
1647 -- configuration: cdata,
1648 -- install : true,
1649 -- install_dir : cmakedir,
1650 --)
1651 -+ configure_file(
1652 -+ input : 'PulseAudioConfigVersion.cmake.in',
1653 -+ output : 'PulseAudioConfigVersion.cmake',
1654 -+ configuration: cdata,
1655 -+ install : true,
1656 -+ install_dir : cmakedir,
1657 -+ )
1658 -
1659 - endif # client
1660 -
1661 -diff --git a/src/meson.build b/src/meson.build
1662 -index 956350afb..f191d7f0e 100644
1663 ---- a/src/meson.build
1664 -+++ b/src/meson.build
1665 -@@ -191,26 +191,25 @@ if not get_option('client')
1666 - libpulse_dep = dependency('libpulse', required : true)
1667 - libpulse_simple_dep = dependency('libpulse-simple', required : true)
1668 - else
1669 -+ libpulsecommon = shared_library('pulsecommon-' + pa_version_major_minor,
1670 -+ libpulsecommon_sources,
1671 -+ libpulsecommon_headers,
1672 -+ include_directories : [configinc, topinc],
1673 -+ c_args : [pa_c_args],
1674 -+ link_args : [nodelete_link_args],
1675 -+ install : true,
1676 -+ install_dir : privlibdir,
1677 -+ dependencies : [
1678 -+ libm_dep, thread_dep, dl_dep, shm_dep, iconv_dep, sndfile_dep, dbus_dep,
1679 -+ x11_dep, libsystemd_dep, glib_dep.partial_dependency(compile_args: true),
1680 -+ gtk_dep.partial_dependency(compile_args: true), asyncns_dep, libintl_dep,
1681 -+ platform_dep, platform_socket_dep, execinfo_dep,
1682 -+ ],
1683 -+ implicit_include_directories : false)
1684 -
1685 --libpulsecommon = shared_library('pulsecommon-' + pa_version_major_minor,
1686 -- libpulsecommon_sources,
1687 -- libpulsecommon_headers,
1688 -- include_directories : [configinc, topinc],
1689 -- c_args : [pa_c_args],
1690 -- link_args : [nodelete_link_args],
1691 -- install : true,
1692 -- install_dir : privlibdir,
1693 -- dependencies : [
1694 -- libm_dep, thread_dep, dl_dep, shm_dep, iconv_dep, sndfile_dep, dbus_dep,
1695 -- x11_dep, libsystemd_dep, glib_dep.partial_dependency(compile_args: true),
1696 -- gtk_dep.partial_dependency(compile_args: true), asyncns_dep, libintl_dep,
1697 -- platform_dep, platform_socket_dep, execinfo_dep,
1698 -- ],
1699 -- implicit_include_directories : false)
1700 -+ libpulsecommon_dep = declare_dependency(link_with: libpulsecommon)
1701 -
1702 --libpulsecommon_dep = declare_dependency(link_with: libpulsecommon)
1703 --
1704 --subdir('pulse')
1705 -+ subdir('pulse')
1706 - endif
1707 -
1708 - if get_option('daemon')
1709 -diff --git a/src/utils/meson.build b/src/utils/meson.build
1710 -index f67cff4a9..28e1fc10a 100644
1711 ---- a/src/utils/meson.build
1712 -+++ b/src/utils/meson.build
1713 -@@ -1,47 +1,47 @@
1714 - if get_option('client')
1715 --pacat_sources = [
1716 -- 'pacat.c',
1717 --]
1718 --
1719 --pacat_aliases = [
1720 -- 'pamon',
1721 -- 'paplay',
1722 -- 'parec',
1723 -- 'parecord',
1724 --]
1725 --
1726 --executable('pacat',
1727 -- pacat_sources,
1728 -- install: true,
1729 -- install_rpath : privlibdir,
1730 -- include_directories : [configinc, topinc],
1731 -- link_with : [libpulsecommon, libpulse],
1732 -- dependencies : [sndfile_dep, libintl_dep],
1733 -- c_args : pa_c_args,
1734 --)
1735 --
1736 --# Windows doesn't support symbolic links.
1737 --if host_machine.system() != 'windows'
1738 -- foreach alias : pacat_aliases
1739 -- dst = join_paths(bindir, alias)
1740 -- cmd = 'ln -fs @0@ $DESTDIR@1@'.format('pacat', dst)
1741 -- meson.add_install_script('sh', '-c', cmd)
1742 -- endforeach
1743 --endif
1744 -+ pacat_sources = [
1745 -+ 'pacat.c',
1746 -+ ]
1747 -+
1748 -+ pacat_aliases = [
1749 -+ 'pamon',
1750 -+ 'paplay',
1751 -+ 'parec',
1752 -+ 'parecord',
1753 -+ ]
1754 -+
1755 -+ executable('pacat',
1756 -+ pacat_sources,
1757 -+ install: true,
1758 -+ install_rpath : privlibdir,
1759 -+ include_directories : [configinc, topinc],
1760 -+ link_with : [libpulsecommon, libpulse],
1761 -+ dependencies : [sndfile_dep, libintl_dep],
1762 -+ c_args : pa_c_args,
1763 -+ )
1764 -+
1765 -+ # Windows doesn't support symbolic links.
1766 -+ if host_machine.system() != 'windows'
1767 -+ foreach alias : pacat_aliases
1768 -+ dst = join_paths(bindir, alias)
1769 -+ cmd = 'ln -fs @0@ $DESTDIR@1@'.format('pacat', dst)
1770 -+ meson.add_install_script('sh', '-c', cmd)
1771 -+ endforeach
1772 -+ endif
1773 -
1774 --pactl_sources = [
1775 -- 'pactl.c',
1776 --]
1777 --
1778 --executable('pactl',
1779 -- pactl_sources,
1780 -- install: true,
1781 -- install_rpath : privlibdir,
1782 -- include_directories : [configinc, topinc],
1783 -- link_with : [libpulsecommon, libpulse],
1784 -- dependencies : [sndfile_dep, libintl_dep],
1785 -- c_args : pa_c_args,
1786 --)
1787 -+ pactl_sources = [
1788 -+ 'pactl.c',
1789 -+ ]
1790 -+
1791 -+ executable('pactl',
1792 -+ pactl_sources,
1793 -+ install: true,
1794 -+ install_rpath : privlibdir,
1795 -+ include_directories : [configinc, topinc],
1796 -+ link_with : [libpulsecommon, libpulse],
1797 -+ dependencies : [sndfile_dep, libintl_dep],
1798 -+ c_args : pa_c_args,
1799 -+ )
1800 - endif
1801 -
1802 - if get_option('daemon')
1803 -@@ -75,51 +75,51 @@ if get_option('daemon')
1804 - endif
1805 -
1806 - if get_option('client')
1807 --if x11_dep.found()
1808 -- pax11publish_sources = [
1809 -- 'pax11publish.c',
1810 -- ]
1811 -+ if x11_dep.found()
1812 -+ pax11publish_sources = [
1813 -+ 'pax11publish.c',
1814 -+ ]
1815 -
1816 -- executable('pax11publish',
1817 -- pax11publish_sources,
1818 -- install: true,
1819 -- install_rpath : privlibdir,
1820 -- include_directories : [configinc, topinc],
1821 -- link_with : [libpulsecommon, libpulse],
1822 -- dependencies : [x11_dep, libintl_dep],
1823 -- c_args : pa_c_args,
1824 -- )
1825 --endif
1826 -+ executable('pax11publish',
1827 -+ pax11publish_sources,
1828 -+ install: true,
1829 -+ install_rpath : privlibdir,
1830 -+ include_directories : [configinc, topinc],
1831 -+ link_with : [libpulsecommon, libpulse],
1832 -+ dependencies : [x11_dep, libintl_dep],
1833 -+ c_args : pa_c_args,
1834 -+ )
1835 -+ endif
1836 -
1837 --if cdata.has('HAVE_OSS_WRAPPER')
1838 -- libpulsecommon_sources = [
1839 -- 'padsp.c',
1840 -- ]
1841 -+ if cdata.has('HAVE_OSS_WRAPPER')
1842 -+ libpulsecommon_sources = [
1843 -+ 'padsp.c',
1844 -+ ]
1845 -
1846 -- libpulsedsp = shared_library('pulsedsp',
1847 -- libpulsecommon_sources,
1848 -- install: true,
1849 -- install_dir : padsplibdir,
1850 -- install_rpath : privlibdir,
1851 -- include_directories : [configinc, topinc],
1852 -- link_with : [libpulsecommon, libpulse],
1853 -- link_args : [nodelete_link_args],
1854 -- dependencies: [thread_dep, dl_dep],
1855 -- c_args : [pa_c_args, '-Wno-nonnull-compare']
1856 -- )
1857 -+ libpulsedsp = shared_library('pulsedsp',
1858 -+ libpulsecommon_sources,
1859 -+ install: true,
1860 -+ install_dir : padsplibdir,
1861 -+ install_rpath : privlibdir,
1862 -+ include_directories : [configinc, topinc],
1863 -+ link_with : [libpulsecommon, libpulse],
1864 -+ link_args : [nodelete_link_args],
1865 -+ dependencies: [thread_dep, dl_dep],
1866 -+ c_args : [pa_c_args, '-Wno-nonnull-compare']
1867 -+ )
1868 -
1869 -- configure_file(
1870 -- input : 'padsp.in',
1871 -- output : 'padsp',
1872 -- configuration : cdata,
1873 -- install : true,
1874 -- install_dir : bindir,
1875 -- )
1876 --endif
1877 -+ configure_file(
1878 -+ input : 'padsp.in',
1879 -+ output : 'padsp',
1880 -+ configuration : cdata,
1881 -+ install : true,
1882 -+ install_dir : bindir,
1883 -+ )
1884 -+ endif
1885 -
1886 --if dbus_dep.found() and fftw_dep.found()
1887 -- install_data('qpaeq', install_dir : bindir)
1888 --endif
1889 -+ if dbus_dep.found() and fftw_dep.found()
1890 -+ install_data('qpaeq', install_dir : bindir)
1891 -+ endif
1892 -
1893 --install_data('pa-info', install_dir : bindir)
1894 -+ install_data('pa-info', install_dir : bindir)
1895 - endif
1896 ---
1897 -2.35.1
1898 -
1899 -
1900 -From 18a81ce6f15e3fd07ed2369f506b342f90c1908a Mon Sep 17 00:00:00 2001
1901 -From: "Igor V. Kovalenko" <igor.v.kovalenko@×××××.com>
1902 -Date: Thu, 11 Nov 2021 01:44:30 +0300
1903 -Subject: [PATCH 8/8] build-sys: meson: Make glib and fftw common dependencies
1904 -
1905 -GSettings module (daemon) requires both gio and glib, move glib to common block.
1906 -qpaeq requires fftw, move fftw to common block.
1907 -
1908 -Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/659>
1909 ----
1910 - meson.build | 26 +++++++++++++-------------
1911 - src/modules/gsettings/meson.build | 2 +-
1912 - src/modules/meson.build | 2 +-
1913 - 3 files changed, 15 insertions(+), 15 deletions(-)
1914 -
1915 -diff --git a/meson.build b/meson.build
1916 -index 178e0cae8..bb829eabc 100644
1917 ---- a/meson.build
1918 -+++ b/meson.build
1919 -@@ -579,6 +579,12 @@ if dbus_dep.found()
1920 - cdata.set('HAVE_DBUS', 1)
1921 - endif
1922 -
1923 -+glib_dep = dependency('glib-2.0', version : '>= 2.28.0', required: get_option('glib'))
1924 -+if glib_dep.found()
1925 -+ cdata.set('HAVE_GLIB', 1)
1926 -+ cdata.set('HAVE_GLIB20', 1) # to match the AM_CONDITIONAL for CMake file generation
1927 -+endif
1928 -+
1929 - sndfile_dep = dependency('sndfile', version : '>= 1.0.20')
1930 -
1931 - libsystemd_dep = dependency('libsystemd', required : get_option('systemd'))
1932 -@@ -599,6 +605,11 @@ if cc.has_header('sys/soundcard.h', required: get_option('oss-output'))
1933 - cdata.set('PULSEDSP_LOCATION', pulsedsp_location)
1934 - endif
1935 -
1936 -+fftw_dep = dependency('fftw3f', required : get_option('fftw'))
1937 -+if fftw_dep.found()
1938 -+ cdata.set('HAVE_FFTW', 1)
1939 -+endif
1940 -+
1941 - # Client library dependencies
1942 -
1943 - if get_option('client')
1944 -@@ -607,12 +618,6 @@ if get_option('client')
1945 - cdata.set('HAVE_LIBASYNCNS', 1)
1946 - endif
1947 -
1948 -- glib_dep = dependency('glib-2.0', version : '>= 2.28.0', required: get_option('glib'))
1949 -- if glib_dep.found()
1950 -- cdata.set('HAVE_GLIB', 1)
1951 -- cdata.set('HAVE_GLIB20', 1) # to match the AM_CONDITIONAL for CMake file generation
1952 -- endif
1953 --
1954 - gtk_dep = dependency('gtk+-3.0', required : get_option('gtk'))
1955 - if gtk_dep.found()
1956 - cdata.set('HAVE_GTK', 1)
1957 -@@ -747,11 +752,6 @@ if get_option('daemon')
1958 - endif
1959 - endif
1960 -
1961 -- fftw_dep = dependency('fftw3f', required : get_option('fftw'))
1962 -- if fftw_dep.found()
1963 -- cdata.set('HAVE_FFTW', 1)
1964 -- endif
1965 --
1966 - jack_dep = dependency('jack', version : '>= 0.117.0', required : get_option('jack'))
1967 - if jack_dep.found()
1968 - cdata.set('HAVE_JACK', 1)
1969 -@@ -927,7 +927,9 @@ summary = [
1970 - 'Enable memfd shared memory: @0@'.format(cdata.has('HAVE_MEMFD')),
1971 - 'Enable X11: @0@'.format(x11_dep.found()),
1972 - 'Enable D-Bus: @0@'.format(dbus_dep.found()),
1973 -+ 'Enable GLib 2: @0@'.format(glib_dep.found()),
1974 - 'Enable systemd integration: @0@'.format(libsystemd_dep.found()),
1975 -+ 'Enable FFTW: @0@'.format(fftw_dep.found()),
1976 - 'Enable IPv6: @0@'.format(get_option('ipv6')),
1977 - 'Enable Gcov coverage: @0@'.format(get_option('gcov')),
1978 - 'Enable Valgrind: @0@'.format(cdata.has('HAVE_VALGRIND_MEMCHECK_H')),
1979 -@@ -940,7 +942,6 @@ summary += [
1980 - '',
1981 - '--- Pulseaudio client features ---',
1982 - '',
1983 -- 'Enable GLib 2: @0@'.format(glib_dep.found()),
1984 - 'Enable Gtk+ 3: @0@'.format(gtk_dep.found()),
1985 - 'Enable Async DNS: @0@'.format(asyncns_dep.found()),
1986 - 'Enable OSS Wrapper: @0@'.format(cdata.has('HAVE_OSS_WRAPPER')),
1987 -@@ -969,7 +970,6 @@ summary += [
1988 - ' Enable GStreamer based codecs: @0@'.format(have_bluez5_gstreamer),
1989 - 'Enable GStreamer: @0@'.format(have_gstreamer),
1990 - 'Enable libsamplerate: @0@'.format(samplerate_dep.found()),
1991 -- 'Enable FFTW: @0@'.format(fftw_dep.found()),
1992 - 'Enable ORC: @0@'.format(have_orcc),
1993 - 'Enable Adrian echo canceller: @0@'.format(get_option('adrian-aec')),
1994 - 'Enable Speex (resampler, AEC): @0@'.format(speex_dep.found()),
1995 -diff --git a/src/modules/gsettings/meson.build b/src/modules/gsettings/meson.build
1996 -index 9604699e7..32177e3ec 100644
1997 ---- a/src/modules/gsettings/meson.build
1998 -+++ b/src/modules/gsettings/meson.build
1999 -@@ -8,7 +8,7 @@ gsettings_helper = executable('gsettings-helper',
2000 - gsettings_helper_sources,
2001 - c_args : pa_c_args,
2002 - include_directories : [configinc, topinc],
2003 -- dependencies : [gio_dep, libpulsecommon_dep, libpulse_dep],
2004 -+ dependencies : [gio_dep, glib_dep, libpulsecommon_dep, libpulse_dep],
2005 - install_dir : pulselibexecdir,
2006 - install_rpath : privlibdir,
2007 - install : true,
2008 -diff --git a/src/modules/meson.build b/src/modules/meson.build
2009 -index be72c3b9b..ccc06d001 100644
2010 ---- a/src/modules/meson.build
2011 -+++ b/src/modules/meson.build
2012 -@@ -161,7 +161,7 @@ if dbus_dep.found() and fftw_dep.found()
2013 - ]
2014 - endif
2015 -
2016 --if get_option('gsettings').enabled() and gio_dep.found()
2017 -+if get_option('gsettings').enabled() and glib_dep.found() and gio_dep.found()
2018 - subdir('gsettings')
2019 - all_modules += [
2020 - [ 'module-gsettings',
2021 ---
2022 -2.35.1
2023 -
2024
2025 diff --git a/media-libs/libpulse/files/pulseaudio-15.0-move-systemd-socket-activation-code.patch b/media-libs/libpulse/files/pulseaudio-15.0-move-systemd-socket-activation-code.patch
2026 deleted file mode 100644
2027 index 51f1314c9b34..000000000000
2028 --- a/media-libs/libpulse/files/pulseaudio-15.0-move-systemd-socket-activation-code.patch
2029 +++ /dev/null
2030 @@ -1,284 +0,0 @@
2031 -commit 733969ac1917f02923e2a5869a8e14a582e0ba2e
2032 -Author: Igor V. Kovalenko <igor.v.kovalenko@×××××.com>
2033 -Date: Sat Sep 25 13:22:09 2021 +0300
2034 -
2035 - socket-server: Move systemd socket activation code to pulsecore
2036 -
2037 - There is no need to support server sockets in client library. Move all related
2038 - code and tcp-wrappers dependency to pulsecore library.
2039 -
2040 - Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/640>
2041 -
2042 -diff --git a/src/meson.build b/src/meson.build
2043 -index e2860811b..59a9b16bf 100644
2044 ---- a/src/meson.build
2045 -+++ b/src/meson.build
2046 -@@ -57,7 +57,6 @@ libpulsecommon_sources = [
2047 - 'pulsecore/shm.c',
2048 - 'pulsecore/bitset.c',
2049 - 'pulsecore/socket-client.c',
2050 -- 'pulsecore/socket-server.c',
2051 - 'pulsecore/socket-util.c',
2052 - 'pulsecore/strbuf.c',
2053 - 'pulsecore/strlist.c',
2054 -@@ -136,7 +135,6 @@ libpulsecommon_headers = [
2055 - 'pulsecore/shm.h',
2056 - 'pulsecore/bitset.h',
2057 - 'pulsecore/socket-client.h',
2058 -- 'pulsecore/socket-server.h',
2059 - 'pulsecore/socket-util.h',
2060 - 'pulsecore/strbuf.h',
2061 - 'pulsecore/strlist.h',
2062 -@@ -200,7 +198,7 @@ libpulsecommon = shared_library('pulsecommon-' + pa_version_major_minor,
2063 - libm_dep, thread_dep, dl_dep, shm_dep, iconv_dep, sndfile_dep, dbus_dep,
2064 - x11_dep, libsystemd_dep, glib_dep.partial_dependency(compile_args: true),
2065 - gtk_dep.partial_dependency(compile_args: true), asyncns_dep, libintl_dep,
2066 -- platform_dep, tcpwrap_dep, platform_socket_dep, execinfo_dep,
2067 -+ platform_dep, platform_socket_dep, execinfo_dep,
2068 - ],
2069 - implicit_include_directories : false)
2070 -
2071 -diff --git a/src/pulsecore/meson.build b/src/pulsecore/meson.build
2072 -index d7f9ef2cf..b30264b3a 100644
2073 ---- a/src/pulsecore/meson.build
2074 -+++ b/src/pulsecore/meson.build
2075 -@@ -44,6 +44,7 @@ libpulsecore_sources = [
2076 - 'sink.c',
2077 - 'sink-input.c',
2078 - 'sioman.c',
2079 -+ 'socket-server.c',
2080 - 'sound-file-stream.c',
2081 - 'sound-file.c',
2082 - 'source.c',
2083 -@@ -101,6 +102,7 @@ libpulsecore_headers = [
2084 - 'sink-input.h',
2085 - 'sink.h',
2086 - 'sioman.h',
2087 -+ 'socket-server.h',
2088 - 'sound-file-stream.h',
2089 - 'sound-file.h',
2090 - 'source-output.h',
2091 -@@ -222,7 +224,7 @@ libpulsecore = shared_library('pulsecore-' + pa_version_major_minor,
2092 - install_rpath : privlibdir,
2093 - install_dir : privlibdir,
2094 - link_with : libpulsecore_simd_lib,
2095 -- dependencies : [libm_dep, libpulsecommon_dep, ltdl_dep, shm_dep, sndfile_dep, database_dep, dbus_dep, libatomic_ops_dep, orc_dep, samplerate_dep, soxr_dep, speex_dep, x11_dep, libintl_dep, platform_dep, platform_socket_dep,],
2096 -+ dependencies : [libm_dep, libpulsecommon_dep, ltdl_dep, shm_dep, sndfile_dep, database_dep, dbus_dep, libatomic_ops_dep, orc_dep, samplerate_dep, soxr_dep, speex_dep, x11_dep, libsystemd_dep, libintl_dep, platform_dep, tcpwrap_dep, platform_socket_dep,],
2097 - implicit_include_directories : false)
2098 -
2099 - libpulsecore_dep = declare_dependency(link_with: libpulsecore)
2100 -diff --git a/src/pulsecore/socket-server.c b/src/pulsecore/socket-server.c
2101 -index 13d8a99f7..b13012b6d 100644
2102 ---- a/src/pulsecore/socket-server.c
2103 -+++ b/src/pulsecore/socket-server.c
2104 -@@ -642,3 +642,83 @@ char *pa_socket_server_get_address(pa_socket_server *s, char *c, size_t l) {
2105 - return NULL;
2106 - }
2107 - }
2108 -+
2109 -+#ifdef HAVE_SYS_UN_H
2110 -+
2111 -+int pa_unix_socket_is_stale(const char *fn) {
2112 -+ struct sockaddr_un sa;
2113 -+ int fd = -1, ret = -1;
2114 -+
2115 -+ pa_assert(fn);
2116 -+
2117 -+ if ((fd = pa_socket_cloexec(PF_UNIX, SOCK_STREAM, 0)) < 0) {
2118 -+ pa_log("socket(): %s", pa_cstrerror(errno));
2119 -+ goto finish;
2120 -+ }
2121 -+
2122 -+ sa.sun_family = AF_UNIX;
2123 -+ strncpy(sa.sun_path, fn, sizeof(sa.sun_path)-1);
2124 -+ sa.sun_path[sizeof(sa.sun_path) - 1] = 0;
2125 -+
2126 -+ if (connect(fd, (struct sockaddr*) &sa, sizeof(sa)) < 0) {
2127 -+#if !defined(OS_IS_WIN32)
2128 -+ if (errno == ECONNREFUSED)
2129 -+ ret = 1;
2130 -+#else
2131 -+ if (WSAGetLastError() == WSAECONNREFUSED || WSAGetLastError() == WSAEINVAL)
2132 -+ ret = 1;
2133 -+#endif
2134 -+ } else
2135 -+ ret = 0;
2136 -+
2137 -+finish:
2138 -+ if (fd >= 0)
2139 -+ pa_close(fd);
2140 -+
2141 -+ return ret;
2142 -+}
2143 -+
2144 -+int pa_unix_socket_remove_stale(const char *fn) {
2145 -+ int r;
2146 -+
2147 -+ pa_assert(fn);
2148 -+
2149 -+#ifdef HAVE_SYSTEMD_DAEMON
2150 -+ {
2151 -+ int n = sd_listen_fds(0);
2152 -+ if (n > 0) {
2153 -+ for (int i = 0; i < n; ++i) {
2154 -+ if (sd_is_socket_unix(SD_LISTEN_FDS_START + i, SOCK_STREAM, 1, fn, 0) > 0) {
2155 -+ /* This is a socket activated socket, therefore do not consider
2156 -+ * it stale. */
2157 -+ return 0;
2158 -+ }
2159 -+ }
2160 -+ }
2161 -+ }
2162 -+#endif
2163 -+
2164 -+ if ((r = pa_unix_socket_is_stale(fn)) < 0)
2165 -+ return errno != ENOENT ? -1 : 0;
2166 -+
2167 -+ if (!r)
2168 -+ return 0;
2169 -+
2170 -+ /* Yes, here is a race condition. But who cares? */
2171 -+ if (unlink(fn) < 0)
2172 -+ return -1;
2173 -+
2174 -+ return 0;
2175 -+}
2176 -+
2177 -+#else /* HAVE_SYS_UN_H */
2178 -+
2179 -+int pa_unix_socket_is_stale(const char *fn) {
2180 -+ return -1;
2181 -+}
2182 -+
2183 -+int pa_unix_socket_remove_stale(const char *fn) {
2184 -+ return -1;
2185 -+}
2186 -+
2187 -+#endif /* HAVE_SYS_UN_H */
2188 -diff --git a/src/pulsecore/socket-server.h b/src/pulsecore/socket-server.h
2189 -index 0793baf44..b1f093921 100644
2190 ---- a/src/pulsecore/socket-server.h
2191 -+++ b/src/pulsecore/socket-server.h
2192 -@@ -50,4 +50,7 @@ void pa_socket_server_set_callback(pa_socket_server*s, pa_socket_server_on_conne
2193 -
2194 - char *pa_socket_server_get_address(pa_socket_server *s, char *c, size_t l);
2195 -
2196 -+int pa_unix_socket_is_stale(const char *fn);
2197 -+int pa_unix_socket_remove_stale(const char *fn);
2198 -+
2199 - #endif
2200 -diff --git a/src/pulsecore/socket-util.c b/src/pulsecore/socket-util.c
2201 -index f2c8c3c31..4ede0439e 100644
2202 ---- a/src/pulsecore/socket-util.c
2203 -+++ b/src/pulsecore/socket-util.c
2204 -@@ -50,9 +50,6 @@
2205 - #ifdef HAVE_NETDB_H
2206 - #include <netdb.h>
2207 - #endif
2208 --#ifdef HAVE_SYSTEMD_DAEMON
2209 --#include <systemd/sd-daemon.h>
2210 --#endif
2211 -
2212 - #include <pulsecore/core-error.h>
2213 - #include <pulsecore/core-util.h>
2214 -@@ -221,86 +218,6 @@ int pa_socket_set_sndbuf(int fd, size_t l) {
2215 - return 0;
2216 - }
2217 -
2218 --#ifdef HAVE_SYS_UN_H
2219 --
2220 --int pa_unix_socket_is_stale(const char *fn) {
2221 -- struct sockaddr_un sa;
2222 -- int fd = -1, ret = -1;
2223 --
2224 -- pa_assert(fn);
2225 --
2226 -- if ((fd = pa_socket_cloexec(PF_UNIX, SOCK_STREAM, 0)) < 0) {
2227 -- pa_log("socket(): %s", pa_cstrerror(errno));
2228 -- goto finish;
2229 -- }
2230 --
2231 -- sa.sun_family = AF_UNIX;
2232 -- strncpy(sa.sun_path, fn, sizeof(sa.sun_path)-1);
2233 -- sa.sun_path[sizeof(sa.sun_path) - 1] = 0;
2234 --
2235 -- if (connect(fd, (struct sockaddr*) &sa, sizeof(sa)) < 0) {
2236 --#if !defined(OS_IS_WIN32)
2237 -- if (errno == ECONNREFUSED)
2238 -- ret = 1;
2239 --#else
2240 -- if (WSAGetLastError() == WSAECONNREFUSED || WSAGetLastError() == WSAEINVAL)
2241 -- ret = 1;
2242 --#endif
2243 -- } else
2244 -- ret = 0;
2245 --
2246 --finish:
2247 -- if (fd >= 0)
2248 -- pa_close(fd);
2249 --
2250 -- return ret;
2251 --}
2252 --
2253 --int pa_unix_socket_remove_stale(const char *fn) {
2254 -- int r;
2255 --
2256 -- pa_assert(fn);
2257 --
2258 --#ifdef HAVE_SYSTEMD_DAEMON
2259 -- {
2260 -- int n = sd_listen_fds(0);
2261 -- if (n > 0) {
2262 -- for (int i = 0; i < n; ++i) {
2263 -- if (sd_is_socket_unix(SD_LISTEN_FDS_START + i, SOCK_STREAM, 1, fn, 0) > 0) {
2264 -- /* This is a socket activated socket, therefore do not consider
2265 -- * it stale. */
2266 -- return 0;
2267 -- }
2268 -- }
2269 -- }
2270 -- }
2271 --#endif
2272 --
2273 -- if ((r = pa_unix_socket_is_stale(fn)) < 0)
2274 -- return errno != ENOENT ? -1 : 0;
2275 --
2276 -- if (!r)
2277 -- return 0;
2278 --
2279 -- /* Yes, here is a race condition. But who cares? */
2280 -- if (unlink(fn) < 0)
2281 -- return -1;
2282 --
2283 -- return 0;
2284 --}
2285 --
2286 --#else /* HAVE_SYS_UN_H */
2287 --
2288 --int pa_unix_socket_is_stale(const char *fn) {
2289 -- return -1;
2290 --}
2291 --
2292 --int pa_unix_socket_remove_stale(const char *fn) {
2293 -- return -1;
2294 --}
2295 --
2296 --#endif /* HAVE_SYS_UN_H */
2297 --
2298 - bool pa_socket_address_is_local(const struct sockaddr *sa) {
2299 - pa_assert(sa);
2300 -
2301 -diff --git a/src/pulsecore/socket-util.h b/src/pulsecore/socket-util.h
2302 -index f12076936..83c730bd9 100644
2303 ---- a/src/pulsecore/socket-util.h
2304 -+++ b/src/pulsecore/socket-util.h
2305 -@@ -35,9 +35,6 @@ void pa_make_udp_socket_low_delay(int fd);
2306 - int pa_socket_set_sndbuf(int fd, size_t l);
2307 - int pa_socket_set_rcvbuf(int fd, size_t l);
2308 -
2309 --int pa_unix_socket_is_stale(const char *fn);
2310 --int pa_unix_socket_remove_stale(const char *fn);
2311 --
2312 - bool pa_socket_address_is_local(const struct sockaddr *sa);
2313 - bool pa_socket_is_local(int fd);
2314 -
2315
2316 diff --git a/media-libs/libpulse/files/pulseaudio-15.0-xice-xsm-xtst-daemon-only.patch b/media-libs/libpulse/files/pulseaudio-15.0-xice-xsm-xtst-daemon-only.patch
2317 deleted file mode 100644
2318 index f3df62031d34..000000000000
2319 --- a/media-libs/libpulse/files/pulseaudio-15.0-xice-xsm-xtst-daemon-only.patch
2320 +++ /dev/null
2321 @@ -1,25 +0,0 @@
2322 -https://bugs.gentoo.org/806052
2323 -
2324 -commit 42af3ee08381faa5807fde68d4c8ec0d7ad5e9a5
2325 -Author: Igor V. Kovalenko <igor.v.kovalenko@×××××.com>
2326 -Date: Tue Aug 3 09:43:32 2021 +0300
2327 -
2328 - build-sys: meson: Require xice, xsm and xtst for daemon only
2329 -
2330 - Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/613>
2331 -
2332 ---- a/meson.build
2333 -+++ b/meson.build
2334 -@@ -681,9 +681,9 @@ endif
2335 - x11_dep = dependency('x11-xcb', required : get_option('x11'))
2336 - if x11_dep.found()
2337 - xcb_dep = dependency('xcb', required : true, version : '>= 1.6')
2338 -- ice_dep = dependency('ice', required : true)
2339 -- sm_dep = dependency('sm', required : true)
2340 -- xtst_dep = dependency('xtst', required : true)
2341 -+ ice_dep = dependency('ice', required : get_option('daemon'))
2342 -+ sm_dep = dependency('sm', required : get_option('daemon'))
2343 -+ xtst_dep = dependency('xtst', required : get_option('daemon'))
2344 - cdata.set('HAVE_X11', 1)
2345 - if cc.has_function('XSetIOErrorExitHandler', dependencies: x11_dep)
2346 - cdata.set('HAVE_XSETIOERROREXITHANDLER', 1)
2347
2348 diff --git a/media-libs/libpulse/libpulse-15.0-r1.ebuild b/media-libs/libpulse/libpulse-15.0-r1.ebuild
2349 index 2457ca28651b..2aeb87d7a189 100644
2350 --- a/media-libs/libpulse/libpulse-15.0-r1.ebuild
2351 +++ b/media-libs/libpulse/libpulse-15.0-r1.ebuild
2352 @@ -5,7 +5,7 @@ EAPI="7"
2353
2354 MY_PV="${PV/_pre*}"
2355 MY_P="pulseaudio-${MY_PV}"
2356 -
2357 +MY_PATCHSET="pulseaudio-daemon-15.0-patchset-1"
2358 inherit bash-completion-r1 gnome2-utils meson-multilib optfeature systemd tmpfiles udev
2359
2360 DESCRIPTION="Libraries for PulseAudio clients"
2361 @@ -17,6 +17,7 @@ if [[ ${PV} = 9999 ]]; then
2362 EGIT_REPO_URI="https://gitlab.freedesktop.org/pulseaudio/pulseaudio"
2363 else
2364 SRC_URI="https://freedesktop.org/software/pulseaudio/releases/${MY_P}.tar.xz"
2365 + SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/pulseaudio-daemon/${MY_PATCHSET}.tar.bz2"
2366 KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
2367 fi
2368
2369 @@ -73,9 +74,7 @@ DOCS=( NEWS README )
2370
2371 # patches merged upstream, to be removed with 16.0 bump
2372 PATCHES=(
2373 - "${FILESDIR}"/pulseaudio-15.0-xice-xsm-xtst-daemon-only.patch
2374 - "${FILESDIR}"/pulseaudio-15.0-move-systemd-socket-activation-code.patch
2375 - "${FILESDIR}"/pulseaudio-15.0-daemon-client-split-build.patch
2376 + "${WORKDIR}"/${MY_PATCHSET}/
2377 )
2378
2379 src_prepare() {