-after updating to poky master i get issues picking the right udev provider
-add a backport patch to fix libsdl2 build with pipewire enabled
-allow native/nativesdk build
Signed-off-by: Markus Volk
---
.../0001-spa-fix-c90-header-include.patch | 47 +++
.../pipewire/pipewire_0.3.50.bb | 16 +--
2 files changed, 58 insertions(+), 5 deletions(-)
create mode 100644
meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch
diff --git
a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch
b/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch
new file mode 100644
index 0..ad6448a10
--- /dev/null
+++
b/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch
@@ -0,0 +1,47 @@
+From d3ea3142e1a4de206e616bc18f63a529e6b4986a Mon Sep 17 00:00:00 2001
+From: psykose
+Date: Wed, 13 Apr 2022 21:57:49 +
+Subject: [PATCH 001/154] spa: fix c90 header include
+
+placing declarations after code is invalid under ISO c90
+
+Fixes !1211
+
+Patch-Status: Backport
+---
+ spa/include/spa/utils/string.h | 6 --
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/spa/include/spa/utils/string.h b/spa/include/spa/utils/string.h
+index e80434537..43d19616c 100644
+--- a/spa/include/spa/utils/string.h
b/spa/include/spa/utils/string.h
+@@ -276,10 +276,11 @@ static inline int spa_scnprintf(char *buffer, size_t
size, const char *format, .
+ static inline float spa_strtof(const char *str, char **endptr)
+ {
+ static locale_t locale = NULL;
++ locale_t prev;
+ float v;
+ if (SPA_UNLIKELY(locale == NULL))
+ locale = newlocale(LC_ALL_MASK, "C", NULL);
+- locale_t prev = uselocale(locale);
++ prev = uselocale(locale);
+ v = strtof(str, endptr);
+ uselocale(prev);
+ return v;
+@@ -319,10 +320,11 @@ static inline bool spa_atof(const char *str, float *val)
+ static inline double spa_strtod(const char *str, char **endptr)
+ {
+ static locale_t locale = NULL;
++ locale_t prev;
+ double v;
+ if (SPA_UNLIKELY(locale == NULL))
+ locale = newlocale(LC_ALL_MASK, "C", NULL);
+- locale_t prev = uselocale(locale);
++ prev = uselocale(locale);
+ v = strtod(str, endptr);
+ uselocale(prev);
+ return v;
+--
+2.25.1
+
diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb
b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb
index 0d725b9ee..850c5a7c8 100644
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb
@@ -14,7 +14,10 @@ LIC_FILES_CHKSUM = " \
DEPENDS = "dbus ncurses"
SRCREV = "64cf5e80e6240284e6b757907b900507fe56f1b5"
-SRC_URI =
"git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https"
+SRC_URI = " \
+
git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https
\
+ file://0001-spa-fix-c90-header-include.patch \
+"
S = "${WORKDIR}/git"
@@ -76,13 +79,14 @@ PACKAGECONFIG ??= "\
${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)} \
gstreamer jack libusb pw-cat raop sndfile v4l2 \
"
+UDEV_PROVIDER = "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd',
'eudev', d)}"
# "jack" and "pipewire-jack" packageconfigs cannot be both enabled,
# since "jack" imports libjack, and "pipewire-jack" generates
# libjack.so* files, thus colliding with the libpack package. This
# is why these two are marked in their respective packageconfigs
# as being in conflict.
-PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev"
+PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib
${UDEV_PROVIDER}"
PACKAGECONFIG[avahi] = "-Davahi=enabled,-Davahi=disabled,avahi"
PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc"
PACKAGECONFIG[bluez-aac] =
"-Dbluez5-codec-aac=enabled,-Dbluez5-codec-aac=disabled,fdk-aac"
@@ -100,13 +104,13 @@ PACKAGECONFIG[raop] =
"-Draop=enabled,-Draop=disabled,openssl"
PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2"
PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1"
PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd"
-PACKAGECONFIG[systemd-system-service] =
"-Dsystemd-system-service=enabled,-Dsystemd-system-service=disabled,systemd"
+PACKAGECONFIG[systemd-system-service] =
"-Dsystemd-system-service=enabled,-Dsystemd-system-service=disabled"
# "systemd-user-service" packageconfig will only install service
# files to rootfs but not enable them as systemd.bbclass
# currently lacks the feature of enabling user services.
-PACKAGECONFIG[systemd-user-service] =
"-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd"
+PACKAGECONFIG[systemd-user-service] =
"-Dsystemd-user-serv