From patchwork Fri May 20 12:53:12 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Markus Volk X-Patchwork-Id: 8307 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 62C10C43217 for ; Fri, 20 May 2022 12:53:32 +0000 (UTC) Received: from mailout12.t-online.de (mailout12.t-online.de [194.25.134.22]) by mx.groups.io with SMTP id smtpd.web08.8302.1653051208990163559 for ; Fri, 20 May 2022 05:53:29 -0700 Authentication-Results: mx.groups.io; dkim=missing; spf=none, err=SPF record not found (domain: t-online.de, ip: 194.25.134.22, mailfrom: f_l_k@t-online.de) Received: from fwd73.dcpf.telekom.de (fwd73.aul.t-online.de [10.223.144.99]) by mailout12.t-online.de (Postfix) with SMTP id 69F3819BEA for ; Fri, 20 May 2022 14:53:27 +0200 (CEST) Received: from localhost.localdomain ([84.154.173.254]) by fwd73.t-online.de with (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384 encrypted) esmtp id 1ns28F-1OuYO90; Fri, 20 May 2022 14:53:27 +0200 From: Markus Volk To: openembedded-devel@lists.openembedded.org Cc: Markus Volk Subject: [oe-core][RFC PATCH 1/2] pipewire: fix build Date: Fri, 20 May 2022 14:53:12 +0200 Message-Id: <20220520125313.4115361-1-f_l_k@t-online.de> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-TOI-EXPURGATEID: 150726::1653051207-0000C4DD-738A1D3B/0/0 CLEAN NORMAL X-TOI-MSGID: 0664f86e-0f8b-4e19-96dc-168f9df41a6c List-Id: X-Webhook-Received: from li982-79.members.linode.com [45.33.32.79] by aws-us-west-2-korg-lkml-1.web.codeaurora.org with HTTPS for ; Fri, 20 May 2022 12:53:32 -0000 X-Groupsio-URL: https://lists.openembedded.org/g/openembedded-devel/message/97212 -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 000000000..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 +0000 +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-service=enabled,-Dsystemd-user-service=disabled" # pw-cat needs sndfile packageconfig to be enabled -PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev" +PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,${UDEV_PROVIDER}" PACKAGECONFIG[webrtc-echo-cancelling] = "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing" PACKAGESPLITFUNCS:prepend = " split_dynamic_packages " @@ -335,3 +339,5 @@ FILES:${PN}-v4l2 += " \ FILES:gstreamer1.0-pipewire = " \ ${libdir}/gstreamer-1.0/* \ " + +BBCLASSEXTEND = "native nativesdk"