From c6c96da6a153baa745586e355401c7a14868e35a Mon Sep 17 00:00:00 2001 From: schmonz Date: Thu, 16 Sep 2021 13:02:34 +0000 Subject: [PATCH] Fix some (not all) of the macOS build failures. NFCI elsewhere. --- audio/pulseaudio/distinfo | 7 +-- audio/pulseaudio/patches/patch-meson.build | 45 +++++++++++++++++-- .../patches/patch-src_pulsecore_creds.h | 8 ++-- .../patches/patch-src_pulsecore_iochannel.c | 15 +++++++ 4 files changed, 65 insertions(+), 10 deletions(-) create mode 100644 audio/pulseaudio/patches/patch-src_pulsecore_iochannel.c diff --git a/audio/pulseaudio/distinfo b/audio/pulseaudio/distinfo index 293ed6ffe9a2..86789700f7fa 100644 --- a/audio/pulseaudio/distinfo +++ b/audio/pulseaudio/distinfo @@ -1,16 +1,17 @@ -$NetBSD: distinfo,v 1.79 2021/07/30 12:21:06 ryoon Exp $ +$NetBSD: distinfo,v 1.80 2021/09/16 13:02:34 schmonz Exp $ SHA1 (pulseaudio-15.0.tar.xz) = 41e9f001770ccf7b47dc228311a99a09bb579563 RMD160 (pulseaudio-15.0.tar.xz) = ed6607183e7c137e5df10cee31e1567c76aa6da1 SHA512 (pulseaudio-15.0.tar.xz) = 352ef20384c76c631c0faa73b08e2318902a433712e0c086a5ac7a0ae58873c8d4be8f35879bdec71a93b19ae8e2ba073cacac4d56215bcf58375a0cd9d88833 Size (pulseaudio-15.0.tar.xz) = 1521760 bytes -SHA1 (patch-meson.build) = f5916ceee1e17923073c009778c4d9dd7b3fae74 +SHA1 (patch-meson.build) = e8414f6b3246ce0fc9fe3957f14826dabdad851c SHA1 (patch-src_daemon_meson.build) = 20f2909ceaea27d43ef2cb5fb228952f8376fb3c SHA1 (patch-src_modules_module-detect.c) = 72605c7d9392be7217dab2fbd9ecc85ed02021aa SHA1 (patch-src_modules_oss_module-oss.c) = d373b855138a931640be7bf5271a33b402b549e5 SHA1 (patch-src_modules_raop_raop-client.h) = 9fb7ae86a6852022f53aee3765777bd136250ffb SHA1 (patch-src_pulse_meson.build) = 56b5f1d4fc9d617a9bee95f9cbaa8a6d529996e6 -SHA1 (patch-src_pulsecore_creds.h) = a73c9669e00ff7625bc645c54e45403f20ac389b +SHA1 (patch-src_pulsecore_creds.h) = a22cd7fa038cb3424f3ce6e4ce48fd86de6f0d9d +SHA1 (patch-src_pulsecore_iochannel.c) = d227e379d9b09612f84b9071f9378dbc66cfa4ac SHA1 (patch-src_pulsecore_mix__neon.c) = 6f6d33d38024d65045d637d48276e1ba92b81342 SHA1 (patch-src_pulsecore_shm.c) = c7079e8ac3461f5069e1415a2816784781aaa59c SHA1 (patch-src_tests_rtpoll-test.c) = 3584aeda2b6f7eb14af9cb5c665a31d972a306ae diff --git a/audio/pulseaudio/patches/patch-meson.build b/audio/pulseaudio/patches/patch-meson.build index 65d6c348e2a4..66c9cb6405fc 100644 --- a/audio/pulseaudio/patches/patch-meson.build +++ b/audio/pulseaudio/patches/patch-meson.build @@ -1,11 +1,41 @@ -$NetBSD: patch-meson.build,v 1.1 2021/07/30 12:21:06 ryoon Exp $ +$NetBSD: patch-meson.build,v 1.2 2021/09/16 13:02:34 schmonz Exp $ * Non-MS Windows case uses libintl for dgettext. Fix build under NetBSD. +* Apply proposed upstream commit 390e5f02 to fix non-x86 clang builds. +* Omit unsupported linker arguments on macOS. ---- meson.build.orig 2021-07-27 20:02:27.711868000 +0000 +--- meson.build.orig 2021-07-27 20:02:27.000000000 +0000 +++ meson.build -@@ -348,7 +349,7 @@ if cc.has_header_symbol('sys/syscall.h', +@@ -216,7 +216,6 @@ endif + check_headers = [ + 'arpa/inet.h', + 'byteswap.h', +- 'cpuid.h', + 'dlfcn.h', + 'execinfo.h', + 'grp.h', +@@ -276,6 +275,19 @@ if cc.has_header_symbol('pthread.h', 'PT + cdata.set('HAVE_PTHREAD_PRIO_INHERIT', 1) + endif + ++# Headers which are usable ++ ++check_usable_headers = [ ++ 'cpuid.h', ++] ++ ++foreach h : check_usable_headers ++ if cc.check_header(h) ++ define = 'HAVE_' + h.underscorify().to_upper() ++ cdata.set(define, 1) ++ endif ++endforeach ++ + # Functions + + check_functions = [ +@@ -348,7 +360,7 @@ if cc.has_header_symbol('sys/syscall.h', endif if cc.has_function('dgettext') @@ -14,3 +44,12 @@ $NetBSD: patch-meson.build,v 1.1 2021/07/30 12:21:06 ryoon Exp $ libintl_dep = [] else libintl_dep = cc.find_library('intl') +@@ -404,7 +416,7 @@ cdata.set('MESON_BUILD', 1) + # so we request the nodelete flag to be enabled. + # On other systems, we don't really know how to do that, but it's welcome if somebody can tell. + # Windows doesn't support this flag. +-if host_machine.system() != 'windows' ++if host_machine.system() != 'windows' and host_machine.system() != 'darwin' + nodelete_link_args = ['-Wl,-z,nodelete'] + else + nodelete_link_args = [] diff --git a/audio/pulseaudio/patches/patch-src_pulsecore_creds.h b/audio/pulseaudio/patches/patch-src_pulsecore_creds.h index 5c054f793ece..c7f1f71ed884 100644 --- a/audio/pulseaudio/patches/patch-src_pulsecore_creds.h +++ b/audio/pulseaudio/patches/patch-src_pulsecore_creds.h @@ -1,15 +1,15 @@ -$NetBSD: patch-src_pulsecore_creds.h,v 1.1 2021/07/30 12:21:06 ryoon Exp $ +$NetBSD: patch-src_pulsecore_creds.h,v 1.2 2021/09/16 13:02:34 schmonz Exp $ -* Disable ucred for NetBSD. +* Disable ucred for NetBSD and macOS. ---- src/pulsecore/creds.h.orig 2021-07-27 20:02:27.821869100 +0000 +--- src/pulsecore/creds.h.orig 2021-07-27 20:02:27.000000000 +0000 +++ src/pulsecore/creds.h @@ -34,7 +34,7 @@ typedef struct pa_creds pa_creds; typedef struct pa_cmsg_ancil_data pa_cmsg_ancil_data; -#if defined(SCM_CREDENTIALS) || defined(SCM_CREDS) -+#if (defined(SCM_CREDENTIALS) || defined(SCM_CREDS)) && !defined(__NetBSD__) ++#if (defined(SCM_CREDENTIALS) || defined(SCM_CREDS)) && !defined(__NetBSD__) && !defined(__APPLE__) #define HAVE_CREDS 1 diff --git a/audio/pulseaudio/patches/patch-src_pulsecore_iochannel.c b/audio/pulseaudio/patches/patch-src_pulsecore_iochannel.c new file mode 100644 index 000000000000..37a8aa1324f1 --- /dev/null +++ b/audio/pulseaudio/patches/patch-src_pulsecore_iochannel.c @@ -0,0 +1,15 @@ +$NetBSD: patch-src_pulsecore_iochannel.c,v 1.1 2021/09/16 13:02:34 schmonz Exp $ + +No SO_PASSCRED on macOS either. + +--- src/pulsecore/iochannel.c.orig 2021-07-27 20:02:27.000000000 +0000 ++++ src/pulsecore/iochannel.c +@@ -298,7 +298,7 @@ int pa_iochannel_creds_enable(pa_iochann + pa_assert(io); + pa_assert(io->ifd >= 0); + +-#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) ++#if !defined(__FreeBSD__) && !defined(__FreeBSD_kernel__) && !defined(__APPLE__) + if (setsockopt(io->ifd, SOL_SOCKET, SO_PASSCRED, &t, sizeof(t)) < 0) { + pa_log_error("setsockopt(SOL_SOCKET, SO_PASSCRED): %s", pa_cstrerror(errno)); + return -1;