AgeCommit message (Collapse)AuthorFilesLines
7 hoursbuild-sys: meson: do not install manpages for disabled partsHEADmasterIgor V. Kovalenko1-2/+12
Part-of: <>
7 hoursbuild-sys: meson: allow building client libraries onlyIgor V. Kovalenko9-190/+293
Part-of: <>
2021-03-15build-sys: meson: fix meson dist versionIgor V. Kovalenko3-0/+12
Part-of: <>
2021-03-01buildsys/autotools: add pulseaudio-x11.service.inFaidon Liambotis4-1/+6
Commit 4868fcf5f344af613172f61d9105c02f3f07e1ab ("daemon: Rely on systemd unit file for X11 plugin initialization") added a new systemd unit file, pulseaudio-x11.service, generated from a respective .in file. Unfortunately, this was only hooked up to meson, and is not currently installed by autotools. Among other breakage, "make dist" produces a tarball that meson is then unable to build (because a file is missing). Signed-off-by: Faidon Liambotis <> Part-of: <>
2021-02-12build-sys: meson: support elogind alternative for module-systemd-loginIgor V. Kovalenko3-2/+11
Part-of: <>
2021-02-12build-sys: meson: add tcp-wrappersIgor V. Kovalenko3-2/+10
Part-of: <>
2021-01-19bluetooth: Prevent registration of an unavailable codec at runtimeSanchayan Maity2-6/+20
When it comes to codecs provided via GStreamer, we register all codecs if GStreamer option is enabled for bluez5 via meson. However, the GStreamer plugin required for the codec might not be present on the system. This results in the codec being available for registration with the bluez stack or selection by the user, but, trying to use the said codec then fails. To prevent the above, we now use the can_be_supported codec API to check if the codec is usable and if not, we do not register the said codec and also prevent users from switching to it. Part-of: <>
2021-01-18buildsys: meson: implement update-map-file targetIgor V. Kovalenko2-1/+28
Part-of: <>
2021-01-18build-sys: meson: only warn about lack of udev on LinuxGreg V1-1/+1
Part-of: <>
2021-01-18build-sys: meson: support memfd without SYS_memfd_create (FreeBSD 13)Greg V1-1/+2
Part-of: <>
2021-01-18build-sys: meson: add execinfo dependency for FreeBSDGreg V2-1/+4
For 'backtrace' and related symbols Part-of: <>
2021-01-18build-sys: meson: add missing pthread dependency on alsa testsGreg V1-1/+1
For symbol 'pthread_setschedparam' Part-of: <>
2021-01-18build-sys: meson: check for shm_open even if it's in libc (FreeBSD), not librtGreg V1-1/+1
Part-of: <>
2021-01-18build-sys: meson: when libc iconv is used, tell libiconv header to pretend ↵Greg V1-0/+2
to be libc's iconv The libiconv header on FreeBSD would be preferred by include path, but we don't want to link to libiconv, so tell its header to act like the system header. Part-of: <>
2021-01-18build-sys: meson: set HAVE_DLADDR even if it's in libc (FreeBSD), not libdlGreg V1-1/+1
Part-of: <>
2021-01-13win32: Fix WSAStartup issuesPatrick Gaskin3-57/+21
WSAStartup was not being called for pacat and pactl built with meson, causing them to fail in pa_mainloop_new with "cannot create wakeup pipe". This issue also affects other applications linking to libpulse other than the pulseaudio daemon, which calls WSAStartup itself. When built with autotools, WSAStartup would have been called in DllMain, which is recommended against by the documentation [1]. To fix these issues, the WSAStartup/WSACleanup calls can be moved into pa_mainloop_new/pa_mainloop_free. [1] Part-of: <>
2021-01-07database: use existing database matching same architecture prefixIgor V. Kovalenko3-2/+41
State database binary file format may depend on system architecture, for instance gdbm binary format depends on architecture word size, making x86 and x64 gdbm files incompatible. If this is the case, it is handled by adding system architecture name to database file name using automatically configured CANONICAL_HOST string. Meson build define CANONICAL_HOST to be system architecture name, while autotools build extends this with vendor and and operating system components. Switch autotools build to use host_cpu for CANONICAL_HOST to match Meson configuration. For backwards compatibility always use existing database file matching CANONICAL_HOST prefix if it exists. Part-of: <>
2020-12-16win32: Fix meson build system for Windows.Edward Lee7-55/+127
Part-of: <>
2020-12-14build-sys: meson: change oss-output boolean to Meson featureIgor V. Kovalenko4-7/+6
Part-of: <>
2020-12-09build-sys: Add an option for enabling/disabling ValgrindTanu Kaskinen2-1/+8
In OpenEmbedded the PulseAudio recipe currently disables Valgrind support by passing "ac_cv_header_valgrind_memcheck_h=no" to the configure script (this was added to make it deterministic whether Valgrdind support gets enabled or not). I'm converting the PulseAudio recipe to use Meson, and I needed an option to disable Valgrind.
2020-11-30build-sys: meson: use target_machine.cpu_family() for CANONICAL_HOSTIgor V. Kovalenko1-1/+1
target_machine provides information about the machine on which the compiled binary's output will run. cpu_family() returns CPU family name (such as x86_64, not more specific amd64) Part-of: <>
2020-11-28build-sys: meson: add oss-output option for OSS output supportIgor V. Kovalenko4-5/+8
Restore an option to disable OSS output available with autotools.
2020-11-23Add folder supportSanchayan Maity4-0/+12
The .include meta command already supports specifying a directory and when including a directory, all files with the extension '.pa' in that directory will be parsed in alphabetical order. This feature can be used to add support for directory, so that packages for other applications or users can just drop in a file for configuration without changing the which is shipped. We use the PA_DEFAULT_CONFIG_DIR for this, however, since meson quotes this build variable, introduce an unquoted version for this purpose and use it with .include. Fixes: Signed-off-by: Sanchayan Maity <>
2020-11-23build-sys: Disable GStreamer by default with AutotoolsTanu Kaskinen1-2/+2
With Meson GStreamer is already disabled by default, let's match that with Autotools.
2020-10-20build-sys: meson: adjust path to gsettings-helper runing from build treeIgor V. Kovalenko1-0/+4
2020-10-20build-sys: meson: Add libm dep to raop moduleArun Raghavan1-1/+1
This is required for using pow().
2020-09-20build-sys: Add doxygen/ to distfilesArun Raghavan1-0/+1
2020-08-10meson: Add doxygen targetTanu Kaskinen2-0/+12
The documentation can be generated with "ninja -C build doxygen". The output will go to "doxygen/html" under the build directory.
2020-08-10build-sys: Configure a bit differentlyTanu Kaskinen2-32/+39
This change prepares for adding a doxygen target to the Meson build system. The DOXYGEN_OUTPUT_DIRECTORY substitution variable is needed so that the output will go to the build directory. I also replaced @srcdir@ with @top_srcdir@. I think it looks cleaner, since the ".." parent directory traversal is avoided. It also happened to make writing the Meson rules easier.
2020-08-09meson: Add missing thread_dep to atomic-testJan Alexander Steffens (heftig)1-1/+1
Otherwise it won't link. /usr/bin/ld: /tmp/atomic-test.uzrv5D.ltrans0.ltrans.o: undefined reference to symbol 'pthread_setaffinity_np@@GLIBC_2.3.4'
2020-08-04meson: Build atomic-testTanu Kaskinen1-0/+7
The test was missing from the build system.
2020-07-11build-sys: meson: bump protocol versionTanu Kaskinen1-1/+1
This was forgotten in commit 861836c5f72de32ec0debcf8fc3a76c4e2c014e6.
2020-06-17build-sys: meson: Fix detection of SYS_memfd_createJan Alexander Steffens (heftig)1-1/+1
It's a define resolving to a number, not a function.
2020-06-04raop-sink: Fix compiler warningsTanu Kaskinen1-3/+4
There were three maybe-uninitialized warnings when building with Autotools (for some reason I don't see these with Meson): modules/raop/raop-sink.c: In function ‘thread_func’: modules/raop/raop-sink.c:543:16: warning: ‘intvl’ may be used uninitialized in this function [-Wmaybe-uninitialized] if (intvl < now + u->block_usec) { ^ In file included from ./pulsecore/macro.h:270, from ./pulsecore/cpu-x86.h:25, from ./pulsecore/cpu.h:23, from ./pulsecore/core.h:26, from modules/raop/raop-sink.c:48: ./pulsecore/log.h:129:28: warning: ‘check_timing_count’ may be used uninitialized in this function [-Wmaybe-uninitialized] #define pa_log_warn(...) pa_log_level_meta(PA_LOG_WARN, __FILE__, __LINE__, __func__, __VA_ARGS__) ^~~~~~~~~~~~~~~~~ modules/raop/raop-sink.c:404:14: note: ‘check_timing_count’ was declared here uint32_t check_timing_count; ^~~~~~~~~~~~~~~~~~ modules/raop/raop-sink.c:500:27: warning: ‘last_timing’ may be used uninitialized in this function [-Wmaybe-uninitialized] pa_usec_t since = now - last_timing; ^~~~~ I moved the intvl variable initialization out of the for loop, because it looked like the variable value is supposed to be remembered between the iterations. I don't know if the variable declaration (without initialization) in the beginning of the loop caused the compiler to touch the variable between iterations, probably not, but I'm pretty sure that's undefined behaviour. Other than that maybe-undefined behaviour, these compiler warnings may be false positives, since the variables are initialized when u->first is true. I initialized the three variables in to the same value as what is used when resetting them when u->first is true. I didn't test these changes, but they look safe to me.
2020-06-01stream-restore: Forget pre-14.0 stream routingTanu Kaskinen4-1/+59
Prior to commits f899d5f4669dcd536cc142cee99fe359dd8af3d6 and f62a49b8cf109c011a9818d2358beb6834e6ec25, GNOME's sound settings overwrote the routing for all entries in the stream-restore database when selecting a device. Now we prevent that from happening (see the aforementioned commits), but the old overwritten settings can still be in the database after updating to PulseAudio 14.0, and they can cause problems, as documented here: We can't distinguish between devices set by GNOME's sound settings and devices set by the user, so this patch discards all old device settings, even though that is going to cause PulseAudio to forget routing settings for many users. This is less bad than keeping the incorrect routing settings in the database, because it's difficult for users to figure out how to fix the situation when e.g. speaker test tones go to the internal speakers no matter what device is selected as the default, whereas old manual configuration can be restored restored by doing the manual configuration again. Also, it's probably more common to have at some point changed the default device in GNOME's sound settings than it is to have any manual per-stream routing settings. This is disabled by default, because this causes data loss, but distributions that use GNOME are recommended to enable this with the --enable-stream-restore-clear-old-devices (Autotools) or -Dstream-restore-clear-old-devices=true (Meson) build option. Fixes:
2020-04-09meson: Remove libpulse dep from libpulsecoreTanu Kaskinen2-1/+5
libpulsecore is not supposed to depend on the client library. Removing the dependency caused build failures, which are fixed by adding more stuff to libpulsecommon.
2019-11-14meson: convert to install_headersDavid Heidelberg1-2/+2
Instead of install_data use correct install_headers Signed-off-by: David Heidelberg <>
2019-11-14meson: convert to pythonDavid Heidelberg4-14/+16
Inspired by: Signed-off-by: David Heidelberg <>
2019-11-07meson: allow to disable installing completionsTimo Gurr3-19/+23
2019-09-25meson: link libintl if it's not provided by libcRasmus Thomsen12-14/+22
This fixes the build on musl with external gettext
2019-09-20alsa-mixer-path-test: Hide unused functions when building with MesonTanu Kaskinen1-0/+5
Silences these warnings: [509/574] Compiling C object 'src/tests/a4ccf2d@@alsa-mixer-path-test@exe/alsa-mixer-path-test.c.o'. ../src/tests/alsa-mixer-path-test.c:24:20: warning: ‘load_makefile’ defined but not used [-Wunused-function] static pa_strlist *load_makefile() { ^~~~~~~~~~~~~ ../src/tests/alsa-mixer-path-test.c:17:20: warning: ‘get_default_paths_dir’ defined but not used [-Wunused-function] static const char *get_default_paths_dir(void) { ^~~~~~~~~~~~~~~~~~~~~
2019-09-20meson: Define TUNNEL_SINK for module-tunnel-sinkJan Alexander Steffens (heftig)1-1/+1
This was missing, so it was building another tunnel-source instead. Fixes
2019-08-22build-sys: meson: Process subdirectories before generating configurationArun Raghavan1-11/+11
Subdirectories add to the top-level cdata (specifically, the SIMD detection happens in the pulsecore, so we were missing HAVE_MMX/SSE2/NEON defines without this fix.
2019-08-22build-sys: meson: Fixes for some ARM compiler checksArun Raghavan1-8/+11
2019-08-17build-sys: meson: Give ourselves a little more timeout headroomArun Raghavan1-1/+1
We're seeing CI failures due to once-test sometimes taking long. Let's give ourselves a little more space per test (2 min -> 5 min) to avoid this.
2019-08-15build-sys: meson: Add a bunch of missing checksArun Raghavan1-0/+10
2019-08-15build-sys: meson: Add mkfifo checks for module-pipe-*Arun Raghavan2-2/+8
2019-08-15build-sys: meson: Add some missing declaration checksArun Raghavan1-0/+14
2019-08-15build-sys: meson: Add a check for fast 64-bit operationsArun Raghavan1-0/+4
2019-08-15build-sys: meson: Add ARMv6 instruction checkArun Raghavan1-0/+24