diff mbox series

[meta-multimedia,PATCHv4] pipewire: update to v0.3.56

Message ID 20220819170627.17921-1-f_l_k@t-online.de
State Superseded
Headers show
Series [meta-multimedia,PATCHv4] pipewire: update to v0.3.56 | expand

Commit Message

Markus Volk Aug. 19, 2022, 5:06 p.m. UTC
Add the configuration to make pipewire work as a drop-in replacement for pulseaudio-server.

Add pipewire-media-session as a standalone recipe, since pipewire would fetch the code as a
subproject at do_configure.

Signed-off-by: Markus Volk <f_l_k@t-online.de>
---
 .../pipewire/pipewire-media-session_0.4.1.bb  | 22 +++++++++
 .../0001-spa-fix-c90-header-include.patch     | 47 -------------------
 ...{pipewire_0.3.50.bb => pipewire_0.3.56.bb} | 41 +++++++++++-----
 3 files changed, 52 insertions(+), 58 deletions(-)
 create mode 100644 meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb
 delete mode 100644 meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch
 rename meta-multimedia/recipes-multimedia/pipewire/{pipewire_0.3.50.bb => pipewire_0.3.56.bb} (87%)

Comments

Markus Volk Aug. 19, 2022, 5:07 p.m. UTC | #1
v4 removes a duplicate line

Am Fr, 19. Aug 2022 um 19:06:27 +0200 schrieb Markus Volk 
<f_l_k@t-online.de>:
> Add the configuration to make pipewire work as a drop-in replacement 
> for pulseaudio-server.
> 
> Add pipewire-media-session as a standalone recipe, since pipewire 
> would fetch the code as a
> subproject at do_configure.
> 
> Signed-off-by: Markus Volk <f_l_k@t-online.de 
> <mailto:f_l_k@t-online.de>>
> ---
>  .../pipewire/pipewire-media-session_0.4.1.bb  | 22 +++++++++
>  .../0001-spa-fix-c90-header-include.patch     | 47 
> -------------------
>  ...{pipewire_0.3.50.bb => pipewire_0.3.56.bb} | 41 +++++++++++-----
>  3 files changed, 52 insertions(+), 58 deletions(-)
>  create mode 100644 
> meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb
>  delete mode 100644 
> meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch
>  rename 
> meta-multimedia/recipes-multimedia/pipewire/{pipewire_0.3.50.bb => 
> pipewire_0.3.56.bb} (87%)
> 
> diff --git 
> a/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb 
> b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb
> new file mode 100644
> index 000000000..5dd1eb160
> --- /dev/null
> +++ 
> b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb
> @@ -0,0 +1,22 @@
> +SUMMARY = "PipeWire Media Session is an example session manager for 
> PipeWire"
> +HOMEPAGE = "<https://gitlab.freedesktop.org/pipewire/media-session>"
> +LICENSE = "MIT"
> +
> +LIC_FILES_CHKSUM = 
> "file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a" 
> <file://copying;md5=97be96ca4fab23e9657ffa590b931c1a/>
> +
> +DEPENDS = " \
> +	pipewire \
> +	alsa-lib \
> +	dbus \
> +"
> +
> +RRECOMMENDS:${PN} += "pipewire"
> +
> +SRC_URI = 
> "git://gitlab.freedesktop.org/pipewire/media-session.git;protocol=https;branch=master"
> +
> +S = "${WORKDIR}/git"
> +SRCREV = "e5d5cf2404786af8bcc40bdb8a2962bef4ec18b6"
> +
> +inherit meson pkgconfig
> +
> +FILES:${PN} += "${libdir} ${datadir}"
> 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
> deleted file mode 100644
> index ad6448a10..000000000
> --- 
> a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch
> +++ /dev/null
> @@ -1,47 +0,0 @@
> -From d3ea3142e1a4de206e616bc18f63a529e6b4986a Mon Sep 17 00:00:00 
> 2001
> -From: psykose <alice@ayaya.dev <mailto:alice@ayaya.dev>>
> -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.56.bb
> similarity index 87%
> rename from 
> meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb
> rename to 
> meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.56.bb
> index c176c6eeb..b5ceeb12c 100644
> --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb
> +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.56.bb
> @@ -13,10 +13,9 @@ LIC_FILES_CHKSUM = " \
> 
>  DEPENDS = "dbus ncurses"
> 
> -SRCREV = "64cf5e80e6240284e6b757907b900507fe56f1b5"
> +SRCREV = "f274e53d25ee8f483ac6fce9e516bb1830abe88b"
>  SRC_URI = " \
>  
> 	git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https 
> \
> -	file://0001-spa-fix-c90-header-include.patch 
> <file://0001-spa-fix-c90-header-include.patch/> \
>  "
> 
>  S = "${WORKDIR}/git"
> @@ -62,7 +61,6 @@ EXTRA_OEMESON += " \
>      -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \
>      -Dsystemd-system-unit-dir=${systemd_system_unitdir} \
>      -Dsystemd-user-unit-dir=${systemd_user_unitdir} \
> -    -Dvulkan=disabled \
>      -Dman=disabled \
>      -Dsession-managers='[]' \
>      -Dlv2=disabled \
> @@ -72,12 +70,26 @@ EXTRA_OEMESON += " \
>      -Dlegacy-rtkit=false \
>  "
> 
> -PACKAGECONFIG:class-target ??= "\
> +# spa alsa plugin code uses typedef redefinition, which is 
> officially a C11 feature.
> +# Pipewire builds with 'c_std=gnu99' by default. Recent versions of 
> gcc don't issue this warning in gnu99
> +# mode but it looks like clang still does
> +CFLAGS:append = " -Wno-typedef-redefinition"
> +
> +# According to wireplumber documentation only one session manager 
> should be installed at a time
> +# Possible options are media-session, which has fewer dependencies 
> but is very simple,
> +# or wireplumber, which is more powerful.
> +PIPEWIRE_SESSION_MANAGER ??= "media-session"
> +
> +BLUETOOTH_AAC = "${@bb.utils.contains 
> <mailto:${@bb.utils.contains>('LICENSE_FLAGS_ACCEPTED', 'commercial', 
> 'bluez-aac', '', d)}"
> +
> +PACKAGECONFIG:class-target ??= " \
> +    ${@bb.utils.contains 
> <mailto:${@bb.utils.contains>('DISTRO_FEATURES', 'gstreamer', 
> 'gstreamer', 'ffmpeg', d)} \
>      ${@bb.utils.contains 
> <mailto:${@bb.utils.contains>('DISTRO_FEATURES', 'zeroconf', 'avahi', 
> '', d)} \
> -    ${@bb.utils.contains 
> <mailto:${@bb.utils.contains>('DISTRO_FEATURES', 'bluetooth', 
> 'bluez', '', d)} \
> -    ${@bb.utils.contains 
> <mailto:${@bb.utils.contains>('DISTRO_FEATURES', 'systemd', 'systemd 
> systemd-system-service', '', d)} \
> -    ${@bb.utils.filter 
> <mailto:${@bb.utils.filter>('DISTRO_FEATURES', 'alsa', d)} \
> -    gstreamer jack libusb pw-cat raop sndfile v4l2 \
> +    ${@bb.utils.contains 
> <mailto:${@bb.utils.contains>('DISTRO_FEATURES', 'bluetooth', 'bluez 
> ${BLUETOOTH_AAC}', '', d)} \
> +    ${@bb.utils.contains 
> <mailto:${@bb.utils.contains>('DISTRO_FEATURES', 'systemd', 'systemd 
> systemd-system-service systemd-user-service', '', d)} \
> +    ${@bb.utils.filter 
> <mailto:${@bb.utils.filter>('DISTRO_FEATURES', 'alsa dbus vulkan 
> pulseaudio', d)} \
> +    ${PIPEWIRE_SESSION_MANAGER} \
> +    jack libusb pw-cat raop sndfile v4l2 udev volume \
>  "
> 
>  # "jack" and "pipewire-jack" packageconfigs cannot be both enabled,
> @@ -96,6 +108,8 @@ PACKAGECONFIG[jack] = 
> "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack"
>  PACKAGECONFIG[libcamera] = 
> "-Dlibcamera=enabled,-Dlibcamera=disabled,libcamera"
>  PACKAGECONFIG[libcanberra] = 
> "-Dlibcanberra=enabled,-Dlibcanberra=disabled,libcanberra"
>  PACKAGECONFIG[libusb] = "-Dlibusb=enabled,-Dlibusb=disabled,libusb"
> +PACKAGECONFIG[media-session] = ",,,pipewire-media-session"
> +PACKAGECONFIG[pulseaudio] = 
> "-Dlibpulse=enabled,-Dlibpulse=disabled,pulseaudio"
>  PACKAGECONFIG[pipewire-alsa] = 
> "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib"
>  PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled 
> -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,,jack"
>  PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled"
> @@ -109,8 +123,12 @@ PACKAGECONFIG[systemd-system-service] = 
> "-Dsystemd-system-service=enabled,-Dsyst
>  # currently lacks the feature of enabling user services.
>  PACKAGECONFIG[systemd-user-service] = 
> "-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd"
>  # pw-cat needs sndfile packageconfig to be enabled
> +PACKAGECONFIG[udev] = "-Dudev=enabled,-Dudev=disabled,udev"
>  PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev"
> +PACKAGECONFIG[volume] = "-Dvolume=enabled,-Dvolume=disabled"
> +PACKAGECONFIG[vulkan] = 
> "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-headers vulkan-loader"
>  PACKAGECONFIG[webrtc-echo-cancelling] = 
> "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing"
> +PACKAGECONFIG[wireplumber] = ",,,wireplumber"
> 
>  PACKAGESPLITFUNCS:prepend = " split_dynamic_packages "
>  PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends "
> @@ -227,10 +245,11 @@ PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* 
> ^${PN}-modules.*"
>  SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains 
> <mailto:${@bb.utils.contains>('PACKAGECONFIG', 
> 'systemd-system-service', 'pipewire.service', '', d)}"
>  CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf"
>  FILES:${PN} = " \
> -    ${datadir}/pipewire/pipewire.conf \
> -    ${systemd_system_unitdir}/pipewire.* \
> -    ${systemd_user_unitdir}/pipewire.* \
> +    ${datadir}/pipewire \
> +    ${systemd_system_unitdir}/pipewire* \
> +    ${systemd_user_unitdir}/pipewire* \
>      ${bindir}/pipewire \
> +    ${bindir}/pipewire-avb \
>  "
> 
>  FILES:${PN}-dev += " \
> --
> 2.34.1
>
Khem Raj Aug. 19, 2022, 7:25 p.m. UTC | #2
Thanks for rework. I am seeing a build error on mips

https://errors.yoctoproject.org/Errors/Details/668845/

On Fri, Aug 19, 2022 at 10:08 AM Markus Volk <f_l_k@t-online.de> wrote:
>
> v4 removes a duplicate line
>
> Am Fr, 19. Aug 2022 um 19:06:27 +0200 schrieb Markus Volk <f_l_k@t-online.de>:
>
> Add the configuration to make pipewire work as a drop-in replacement for pulseaudio-server. Add pipewire-media-session as a standalone recipe, since pipewire would fetch the code as a subproject at do_configure. Signed-off-by: Markus Volk <f_l_k@t-online.de> --- .../pipewire/pipewire-media-session_0.4.1.bb | 22 +++++++++ .../0001-spa-fix-c90-header-include.patch | 47 ------------------- ...{pipewire_0.3.50.bb => pipewire_0.3.56.bb} | 41 +++++++++++----- 3 files changed, 52 insertions(+), 58 deletions(-) create mode 100644 meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb delete mode 100644 meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch rename meta-multimedia/recipes-multimedia/pipewire/{pipewire_0.3.50.bb => pipewire_0.3.56.bb} (87%) diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb new file mode 100644 index 000000000..5dd1eb160 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb @@ -0,0 +1,22 @@ +SUMMARY = "PipeWire Media Session is an example session manager for PipeWire" +HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/media-session" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a" + +DEPENDS = " \ + pipewire \ + alsa-lib \ + dbus \ +" + +RRECOMMENDS:${PN} += "pipewire" + +SRC_URI = "git://gitlab.freedesktop.org/pipewire/media-session.git;protocol=https;branch=master" + +S = "${WORKDIR}/git" +SRCREV = "e5d5cf2404786af8bcc40bdb8a2962bef4ec18b6" + +inherit meson pkgconfig + +FILES:${PN} += "${libdir} ${datadir}" 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 deleted file mode 100644 index ad6448a10..000000000 --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch +++ /dev/null @@ -1,47 +0,0 @@ -From d3ea3142e1a4de206e616bc18f63a529e6b4986a Mon Sep 17 00:00:00 2001 -From: psykose <alice@ayaya.dev> -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.56.bb similarity index 87% rename from meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb rename to meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.56.bb index c176c6eeb..b5ceeb12c 100644 --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.56.bb @@ -13,10 +13,9 @@ LIC_FILES_CHKSUM = " \ DEPENDS = "dbus ncurses" -SRCREV = "64cf5e80e6240284e6b757907b900507fe56f1b5" +SRCREV = "f274e53d25ee8f483ac6fce9e516bb1830abe88b" SRC_URI = " \ git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https \ - file://0001-spa-fix-c90-header-include.patch \ " S = "${WORKDIR}/git" @@ -62,7 +61,6 @@ EXTRA_OEMESON += " \ -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \ -Dsystemd-system-unit-dir=${systemd_system_unitdir} \ -Dsystemd-user-unit-dir=${systemd_user_unitdir} \ - -Dvulkan=disabled \ -Dman=disabled \ -Dsession-managers='[]' \ -Dlv2=disabled \ @@ -72,12 +70,26 @@ EXTRA_OEMESON += " \ -Dlegacy-rtkit=false \ " -PACKAGECONFIG:class-target ??= "\ +# spa alsa plugin code uses typedef redefinition, which is officially a C11 feature. +# Pipewire builds with 'c_std=gnu99' by default. Recent versions of gcc don't issue this warning in gnu99 +# mode but it looks like clang still does +CFLAGS:append = " -Wno-typedef-redefinition" + +# According to wireplumber documentation only one session manager should be installed at a time +# Possible options are media-session, which has fewer dependencies but is very simple, +# or wireplumber, which is more powerful. +PIPEWIRE_SESSION_MANAGER ??= "media-session" + +BLUETOOTH_AAC = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'bluez-aac', '', d)}" + +PACKAGECONFIG:class-target ??= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'gstreamer', 'gstreamer', 'ffmpeg', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)} \ - gstreamer jack libusb pw-cat raop sndfile v4l2 \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez ${BLUETOOTH_AAC}', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa dbus vulkan pulseaudio', d)} \ + ${PIPEWIRE_SESSION_MANAGER} \ + jack libusb pw-cat raop sndfile v4l2 udev volume \ " # "jack" and "pipewire-jack" packageconfigs cannot be both enabled, @@ -96,6 +108,8 @@ PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack" PACKAGECONFIG[libcamera] = "-Dlibcamera=enabled,-Dlibcamera=disabled,libcamera" PACKAGECONFIG[libcanberra] = "-Dlibcanberra=enabled,-Dlibcanberra=disabled,libcanberra" PACKAGECONFIG[libusb] = "-Dlibusb=enabled,-Dlibusb=disabled,libusb" +PACKAGECONFIG[media-session] = ",,,pipewire-media-session" +PACKAGECONFIG[pulseaudio] = "-Dlibpulse=enabled,-Dlibpulse=disabled,pulseaudio" PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib" PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,,jack" PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled" @@ -109,8 +123,12 @@ PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=enabled,-Dsyst # currently lacks the feature of enabling user services. PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd" # pw-cat needs sndfile packageconfig to be enabled +PACKAGECONFIG[udev] = "-Dudev=enabled,-Dudev=disabled,udev" PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev" +PACKAGECONFIG[volume] = "-Dvolume=enabled,-Dvolume=disabled" +PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-headers vulkan-loader" PACKAGECONFIG[webrtc-echo-cancelling] = "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing" +PACKAGECONFIG[wireplumber] = ",,,wireplumber" PACKAGESPLITFUNCS:prepend = " split_dynamic_packages " PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends " @@ -227,10 +245,11 @@ PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*" SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire.service', '', d)}" CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf" FILES:${PN} = " \ - ${datadir}/pipewire/pipewire.conf \ - ${systemd_system_unitdir}/pipewire.* \ - ${systemd_user_unitdir}/pipewire.* \ + ${datadir}/pipewire \ + ${systemd_system_unitdir}/pipewire* \ + ${systemd_user_unitdir}/pipewire* \ ${bindir}/pipewire \ + ${bindir}/pipewire-avb \ " FILES:${PN}-dev += " \
> --
> 2.34.1
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#98333): https://lists.openembedded.org/g/openembedded-devel/message/98333
> Mute This Topic: https://lists.openembedded.org/mt/93129204/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Markus Volk Aug. 19, 2022, 7:52 p.m. UTC | #3
i've added a backport patch that should hopefully fix this issue

Am Fr, 19. Aug 2022 um 12:25:37 -0700 schrieb Khem Raj 
<raj.khem@gmail.com>:
> Thanks for rework. I am seeing a build error on mips
> 
> <https://errors.yoctoproject.org/Errors/Details/668845/>
> 
> On Fri, Aug 19, 2022 at 10:08 AM Markus Volk <f_l_k@t-online.de 
> <mailto:f_l_k@t-online.de>> wrote:
>> 
>>  v4 removes a duplicate line
>> 
>>  Am Fr, 19. Aug 2022 um 19:06:27 +0200 schrieb Markus Volk 
>> <f_l_k@t-online.de <mailto:f_l_k@t-online.de>>:
>> 
>>  Add the configuration to make pipewire work as a drop-in 
>> replacement for pulseaudio-server. Add pipewire-media-session as a 
>> standalone recipe, since pipewire would fetch the code as a 
>> subproject at do_configure. Signed-off-by: Markus Volk 
>> <f_l_k@t-online.de <mailto:f_l_k@t-online.de>> --- 
>> .../pipewire/pipewire-media-session_0.4.1.bb | 22 +++++++++ 
>> .../0001-spa-fix-c90-header-include.patch | 47 ------------------- 
>> ...{pipewire_0.3.50.bb => pipewire_0.3.56.bb} | 41 +++++++++++----- 
>> 3 files changed, 52 insertions(+), 58 deletions(-) create mode 
>> 100644 
>> meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb 
>> delete mode 100644 
>> meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch 
>> rename 
>> meta-multimedia/recipes-multimedia/pipewire/{pipewire_0.3.50.bb => 
>> pipewire_0.3.56.bb} (87%) diff --git 
>> a/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb 
>> b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb 
>> new file mode 100644 index 000000000..5dd1eb160 --- /dev/null +++ 
>> b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb 
>> @@ -0,0 +1,22 @@ +SUMMARY = "PipeWire Media Session is an example 
>> session manager for PipeWire" +HOMEPAGE = 
>> "https://gitlab.freedesktop.org/pipewire/media-session" +LICENSE = 
>> "MIT" + +LIC_FILES_CHKSUM = 
>> "file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a" + +DEPENDS = " 
>> \ + pipewire \ + alsa-lib \ + dbus \ +" + +RRECOMMENDS:${PN} += 
>> "pipewire" + +SRC_URI = 
>> "git://gitlab.freedesktop.org/pipewire/media-session.git;protocol=https;branch=master" 
>> + +S = "${WORKDIR}/git" +SRCREV = 
>> "e5d5cf2404786af8bcc40bdb8a2962bef4ec18b6" + +inherit meson 
>> pkgconfig + +FILES:${PN} += "${libdir} ${datadir}" 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 
>> deleted file mode 100644 index ad6448a10..000000000 --- 
>> a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch 
>> +++ /dev/null @@ -1,47 +0,0 @@ -From 
>> d3ea3142e1a4de206e616bc18f63a529e6b4986a Mon Sep 17 00:00:00 2001 
>> -From: psykose <alice@ayaya.dev> -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.56.bb 
>> similarity index 87% rename from 
>> meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb 
>> rename to 
>> meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.56.bb index 
>> c176c6eeb..b5ceeb12c 100644 --- 
>> a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb +++ 
>> b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.56.bb @@ 
>> -13,10 +13,9 @@ LIC_FILES_CHKSUM = " \ DEPENDS = "dbus ncurses" 
>> -SRCREV = "64cf5e80e6240284e6b757907b900507fe56f1b5" +SRCREV = 
>> "f274e53d25ee8f483ac6fce9e516bb1830abe88b" SRC_URI = " \ 
>> git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https 
>> \ - file://0001-spa-fix-c90-header-include.patch \ " S = 
>> "${WORKDIR}/git" @@ -62,7 +61,6 @@ EXTRA_OEMESON += " \ 
>> -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \ 
>> -Dsystemd-system-unit-dir=${systemd_system_unitdir} \ 
>> -Dsystemd-user-unit-dir=${systemd_user_unitdir} \ - 
>> -Dvulkan=disabled \ -Dman=disabled \ -Dsession-managers='[]' \ 
>> -Dlv2=disabled \ @@ -72,12 +70,26 @@ EXTRA_OEMESON += " \ 
>> -Dlegacy-rtkit=false \ " -PACKAGECONFIG:class-target ??= "\ +# spa 
>> alsa plugin code uses typedef redefinition, which is officially a 
>> C11 feature. +# Pipewire builds with 'c_std=gnu99' by default. 
>> Recent versions of gcc don't issue this warning in gnu99 +# mode but 
>> it looks like clang still does +CFLAGS:append = " 
>> -Wno-typedef-redefinition" + +# According to wireplumber 
>> documentation only one session manager should be installed at a time 
>> +# Possible options are media-session, which has fewer dependencies 
>> but is very simple, +# or wireplumber, which is more powerful. 
>> +PIPEWIRE_SESSION_MANAGER ??= "media-session" + +BLUETOOTH_AAC = 
>> "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 
>> 'bluez-aac', '', d)}" + +PACKAGECONFIG:class-target ??= " \ + 
>> ${@bb.utils.contains('DISTRO_FEATURES', 'gstreamer', 'gstreamer', 
>> 'ffmpeg', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 
>> 'avahi', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 
>> 'bluetooth', 'bluez', '', d)} \ - 
>> ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd 
>> systemd-system-service', '', d)} \ - 
>> ${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)} \ - gstreamer jack 
>> libusb pw-cat raop sndfile v4l2 \ + 
>> ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez 
>> ${BLUETOOTH_AAC}', '', d)} \ + 
>> ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd 
>> systemd-system-service systemd-user-service', '', d)} \ + 
>> ${@bb.utils.filter('DISTRO_FEATURES', 'alsa dbus vulkan pulseaudio', 
>> d)} \ + ${PIPEWIRE_SESSION_MANAGER} \ + jack libusb pw-cat raop 
>> sndfile v4l2 udev volume \ " # "jack" and "pipewire-jack" 
>> packageconfigs cannot be both enabled, @@ -96,6 +108,8 @@ 
>> PACKAGECONFIG[jack] = 
>> "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack" 
>> PACKAGECONFIG[libcamera] = 
>> "-Dlibcamera=enabled,-Dlibcamera=disabled,libcamera" 
>> PACKAGECONFIG[libcanberra] = 
>> "-Dlibcanberra=enabled,-Dlibcanberra=disabled,libcanberra" 
>> PACKAGECONFIG[libusb] = "-Dlibusb=enabled,-Dlibusb=disabled,libusb" 
>> +PACKAGECONFIG[media-session] = ",,,pipewire-media-session" 
>> +PACKAGECONFIG[pulseaudio] = 
>> "-Dlibpulse=enabled,-Dlibpulse=disabled,pulseaudio" 
>> PACKAGECONFIG[pipewire-alsa] = 
>> "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib" 
>> PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled 
>> -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,,jack" 
>> PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled" @@ 
>> -109,8 +123,12 @@ PACKAGECONFIG[systemd-system-service] = 
>> "-Dsystemd-system-service=enabled,-Dsyst # currently lacks the 
>> feature of enabling user services. 
>> PACKAGECONFIG[systemd-user-service] = 
>> "-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd" 
>> # pw-cat needs sndfile packageconfig to be enabled 
>> +PACKAGECONFIG[udev] = "-Dudev=enabled,-Dudev=disabled,udev" 
>> PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev" 
>> +PACKAGECONFIG[volume] = "-Dvolume=enabled,-Dvolume=disabled" 
>> +PACKAGECONFIG[vulkan] = 
>> "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-headers vulkan-loader" 
>> PACKAGECONFIG[webrtc-echo-cancelling] = 
>> "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing" 
>> +PACKAGECONFIG[wireplumber] = ",,,wireplumber" 
>> PACKAGESPLITFUNCS:prepend = " split_dynamic_packages " 
>> PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends " @@ 
>> -227,10 +245,11 @@ PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* 
>> ^${PN}-modules.*" SYSTEMD_SERVICE:${PN} = 
>> "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 
>> 'pipewire.service', '', d)}" CONFFILES:${PN} += 
>> "${datadir}/pipewire/pipewire.conf" FILES:${PN} = " \ - 
>> ${datadir}/pipewire/pipewire.conf \ - 
>> ${systemd_system_unitdir}/pipewire.* \ - 
>> ${systemd_user_unitdir}/pipewire.* \ + ${datadir}/pipewire \ + 
>> ${systemd_system_unitdir}/pipewire* \ + 
>> ${systemd_user_unitdir}/pipewire* \ ${bindir}/pipewire \ + 
>> ${bindir}/pipewire-avb \ " FILES:${PN}-dev += " \
>>  --
>>  2.34.1
>> 
>> 
>> 
>> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#98334): 
> <https://lists.openembedded.org/g/openembedded-devel/message/98334>
> Mute This Topic: <https://lists.openembedded.org/mt/93129204/3618223>
> Group Owner: openembedded-devel+owner@lists.openembedded.org 
> <mailto:openembedded-devel+owner@lists.openembedded.org>
> Unsubscribe: 
> <https://lists.openembedded.org/g/openembedded-devel/unsub> 
> [f_l_k@t-online.de <mailto:f_l_k@t-online.de>]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Khem Raj Aug. 20, 2022, 3:16 p.m. UTC | #4
ffmpeg dependency need to express in LICENSE_FLAGS too see

https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/1927/steps/11/logs/errors

adding something like this is needed

LICENSE_FLAGS = "commercial"

On Fri, Aug 19, 2022 at 12:52 PM Markus Volk <f_l_k@t-online.de> wrote:
>
> i've added a backport patch that should hopefully fix this issue
>
> Am Fr, 19. Aug 2022 um 12:25:37 -0700 schrieb Khem Raj <raj.khem@gmail.com>:
>
> Thanks for rework. I am seeing a build error on mips https://errors.yoctoproject.org/Errors/Details/668845/ On Fri, Aug 19, 2022 at 10:08 AM Markus Volk <f_l_k@t-online.de> wrote:
>
> v4 removes a duplicate line Am Fr, 19. Aug 2022 um 19:06:27 +0200 schrieb Markus Volk <f_l_k@t-online.de>: Add the configuration to make pipewire work as a drop-in replacement for pulseaudio-server. Add pipewire-media-session as a standalone recipe, since pipewire would fetch the code as a subproject at do_configure. Signed-off-by: Markus Volk <f_l_k@t-online.de> --- .../pipewire/pipewire-media-session_0.4.1.bb | 22 +++++++++ .../0001-spa-fix-c90-header-include.patch | 47 ------------------- ...{pipewire_0.3.50.bb => pipewire_0.3.56.bb} | 41 +++++++++++----- 3 files changed, 52 insertions(+), 58 deletions(-) create mode 100644 meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb delete mode 100644 meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch rename meta-multimedia/recipes-multimedia/pipewire/{pipewire_0.3.50.bb => pipewire_0.3.56.bb} (87%) diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb new file mode 100644 index 000000000..5dd1eb160 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb @@ -0,0 +1,22 @@ +SUMMARY = "PipeWire Media Session is an example session manager for PipeWire" +HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/media-session" +LICENSE = "MIT" + +LIC_FILES_CHKSUM = "file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a" + +DEPENDS = " \ + pipewire \ + alsa-lib \ + dbus \ +" + +RRECOMMENDS:${PN} += "pipewire" + +SRC_URI = "git://gitlab.freedesktop.org/pipewire/media-session.git;protocol=https;branch=master" + +S = "${WORKDIR}/git" +SRCREV = "e5d5cf2404786af8bcc40bdb8a2962bef4ec18b6" + +inherit meson pkgconfig + +FILES:${PN} += "${libdir} ${datadir}" 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 deleted file mode 100644 index ad6448a10..000000000 --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch +++ /dev/null @@ -1,47 +0,0 @@ -From d3ea3142e1a4de206e616bc18f63a529e6b4986a Mon Sep 17 00:00:00 2001 -From: psykose <alice@ayaya.dev> -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.56.bb similarity index 87% rename from meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb rename to meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.56.bb index c176c6eeb..b5ceeb12c 100644 --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.56.bb @@ -13,10 +13,9 @@ LIC_FILES_CHKSUM = " \ DEPENDS = "dbus ncurses" -SRCREV = "64cf5e80e6240284e6b757907b900507fe56f1b5" +SRCREV = "f274e53d25ee8f483ac6fce9e516bb1830abe88b" SRC_URI = " \ git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https \ - file://0001-spa-fix-c90-header-include.patch \ " S = "${WORKDIR}/git" @@ -62,7 +61,6 @@ EXTRA_OEMESON += " \ -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \ -Dsystemd-system-unit-dir=${systemd_system_unitdir} \ -Dsystemd-user-unit-dir=${systemd_user_unitdir} \ - -Dvulkan=disabled \ -Dman=disabled \ -Dsession-managers='[]' \ -Dlv2=disabled \ @@ -72,12 +70,26 @@ EXTRA_OEMESON += " \ -Dlegacy-rtkit=false \ " -PACKAGECONFIG:class-target ??= "\ +# spa alsa plugin code uses typedef redefinition, which is officially a C11 feature. +# Pipewire builds with 'c_std=gnu99' by default. Recent versions of gcc don't issue this warning in gnu99 +# mode but it looks like clang still does +CFLAGS:append = " -Wno-typedef-redefinition" + +# According to wireplumber documentation only one session manager should be installed at a time +# Possible options are media-session, which has fewer dependencies but is very simple, +# or wireplumber, which is more powerful. +PIPEWIRE_SESSION_MANAGER ??= "media-session" + +BLUETOOTH_AAC = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'bluez-aac', '', d)}" + +PACKAGECONFIG:class-target ??= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'gstreamer', 'gstreamer', 'ffmpeg', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)} \ - gstreamer jack libusb pw-cat raop sndfile v4l2 \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez ${BLUETOOTH_AAC}', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa dbus vulkan pulseaudio', d)} \ + ${PIPEWIRE_SESSION_MANAGER} \ + jack libusb pw-cat raop sndfile v4l2 udev volume \ " # "jack" and "pipewire-jack" packageconfigs cannot be both enabled, @@ -96,6 +108,8 @@ PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack" PACKAGECONFIG[libcamera] = "-Dlibcamera=enabled,-Dlibcamera=disabled,libcamera" PACKAGECONFIG[libcanberra] = "-Dlibcanberra=enabled,-Dlibcanberra=disabled,libcanberra" PACKAGECONFIG[libusb] = "-Dlibusb=enabled,-Dlibusb=disabled,libusb" +PACKAGECONFIG[media-session] = ",,,pipewire-media-session" +PACKAGECONFIG[pulseaudio] = "-Dlibpulse=enabled,-Dlibpulse=disabled,pulseaudio" PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib" PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,,jack" PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled" @@ -109,8 +123,12 @@ PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=enabled,-Dsyst # currently lacks the feature of enabling user services. PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd" # pw-cat needs sndfile packageconfig to be enabled +PACKAGECONFIG[udev] = "-Dudev=enabled,-Dudev=disabled,udev" PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev" +PACKAGECONFIG[volume] = "-Dvolume=enabled,-Dvolume=disabled" +PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-headers vulkan-loader" PACKAGECONFIG[webrtc-echo-cancelling] = "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing" +PACKAGECONFIG[wireplumber] = ",,,wireplumber" PACKAGESPLITFUNCS:prepend = " split_dynamic_packages " PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends " @@ -227,10 +245,11 @@ PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*" SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire.service', '', d)}" CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf" FILES:${PN} = " \ - ${datadir}/pipewire/pipewire.conf \ - ${systemd_system_unitdir}/pipewire.* \ - ${systemd_user_unitdir}/pipewire.* \ + ${datadir}/pipewire \ + ${systemd_system_unitdir}/pipewire* \ + ${systemd_user_unitdir}/pipewire* \ ${bindir}/pipewire \ + ${bindir}/pipewire-avb \ " FILES:${PN}-dev += " \ -- 2.34.1
>
> -=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#98334): https://lists.openembedded.org/g/openembedded-devel/message/98334 Mute This Topic: https://lists.openembedded.org/mt/93129204/3618223 Group Owner: openembedded-devel+owner@lists.openembedded.org Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [f_l_k@t-online.de] -=-=-=-=-=-=-=-=-=-=-=-
diff mbox series

Patch

diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb
new file mode 100644
index 000000000..5dd1eb160
--- /dev/null
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.1.bb
@@ -0,0 +1,22 @@ 
+SUMMARY = "PipeWire Media Session is an example session manager for PipeWire"
+HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/media-session"
+LICENSE = "MIT"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a"
+
+DEPENDS = " \
+	pipewire \
+	alsa-lib \
+	dbus \
+"
+
+RRECOMMENDS:${PN} += "pipewire"
+
+SRC_URI = "git://gitlab.freedesktop.org/pipewire/media-session.git;protocol=https;branch=master"
+
+S = "${WORKDIR}/git"
+SRCREV = "e5d5cf2404786af8bcc40bdb8a2962bef4ec18b6"
+
+inherit meson pkgconfig
+
+FILES:${PN} += "${libdir} ${datadir}"
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
deleted file mode 100644
index ad6448a10..000000000
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire/0001-spa-fix-c90-header-include.patch
+++ /dev/null
@@ -1,47 +0,0 @@ 
-From d3ea3142e1a4de206e616bc18f63a529e6b4986a Mon Sep 17 00:00:00 2001
-From: psykose <alice@ayaya.dev>
-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.56.bb
similarity index 87%
rename from meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb
rename to meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.56.bb
index c176c6eeb..b5ceeb12c 100644
--- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.50.bb
+++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.56.bb
@@ -13,10 +13,9 @@  LIC_FILES_CHKSUM = " \
 
 DEPENDS = "dbus ncurses"
 
-SRCREV = "64cf5e80e6240284e6b757907b900507fe56f1b5"
+SRCREV = "f274e53d25ee8f483ac6fce9e516bb1830abe88b"
 SRC_URI = " \
 	git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https \
-	file://0001-spa-fix-c90-header-include.patch \
 "
 
 S = "${WORKDIR}/git"
@@ -62,7 +61,6 @@  EXTRA_OEMESON += " \
     -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \
     -Dsystemd-system-unit-dir=${systemd_system_unitdir} \
     -Dsystemd-user-unit-dir=${systemd_user_unitdir} \
-    -Dvulkan=disabled \
     -Dman=disabled \
     -Dsession-managers='[]' \
     -Dlv2=disabled \
@@ -72,12 +70,26 @@  EXTRA_OEMESON += " \
     -Dlegacy-rtkit=false \
 "
 
-PACKAGECONFIG:class-target ??= "\
+# spa alsa plugin code uses typedef redefinition, which is officially a C11 feature.
+# Pipewire builds with 'c_std=gnu99' by default. Recent versions of gcc don't issue this warning in gnu99
+# mode but it looks like clang still does
+CFLAGS:append = " -Wno-typedef-redefinition"
+
+# According to wireplumber documentation only one session manager should be installed at a time
+# Possible options are media-session, which has fewer dependencies but is very simple,
+# or wireplumber, which is more powerful.
+PIPEWIRE_SESSION_MANAGER ??= "media-session"
+
+BLUETOOTH_AAC = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'bluez-aac', '', d)}"
+
+PACKAGECONFIG:class-target ??= " \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'gstreamer', 'gstreamer', 'ffmpeg', d)} \
     ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service', '', d)} \
-    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa', d)} \
-    gstreamer jack libusb pw-cat raop sndfile v4l2 \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez ${BLUETOOTH_AAC}', '', d)} \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \
+    ${@bb.utils.filter('DISTRO_FEATURES', 'alsa dbus vulkan pulseaudio', d)} \
+    ${PIPEWIRE_SESSION_MANAGER} \
+    jack libusb pw-cat raop sndfile v4l2 udev volume \
 "
 
 # "jack" and "pipewire-jack" packageconfigs cannot be both enabled,
@@ -96,6 +108,8 @@  PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack"
 PACKAGECONFIG[libcamera] = "-Dlibcamera=enabled,-Dlibcamera=disabled,libcamera"
 PACKAGECONFIG[libcanberra] = "-Dlibcanberra=enabled,-Dlibcanberra=disabled,libcanberra"
 PACKAGECONFIG[libusb] = "-Dlibusb=enabled,-Dlibusb=disabled,libusb"
+PACKAGECONFIG[media-session] = ",,,pipewire-media-session"
+PACKAGECONFIG[pulseaudio] = "-Dlibpulse=enabled,-Dlibpulse=disabled,pulseaudio"
 PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib"
 PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,,jack"
 PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled"
@@ -109,8 +123,12 @@  PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=enabled,-Dsyst
 # currently lacks the feature of enabling user services.
 PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd"
 # pw-cat needs sndfile packageconfig to be enabled
+PACKAGECONFIG[udev] = "-Dudev=enabled,-Dudev=disabled,udev"
 PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev"
+PACKAGECONFIG[volume] = "-Dvolume=enabled,-Dvolume=disabled"
+PACKAGECONFIG[vulkan] = "-Dvulkan=enabled,-Dvulkan=disabled,vulkan-headers vulkan-loader"
 PACKAGECONFIG[webrtc-echo-cancelling] = "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing"
+PACKAGECONFIG[wireplumber] = ",,,wireplumber"
 
 PACKAGESPLITFUNCS:prepend = " split_dynamic_packages "
 PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends "
@@ -227,10 +245,11 @@  PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*"
 SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire.service', '', d)}"
 CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf"
 FILES:${PN} = " \
-    ${datadir}/pipewire/pipewire.conf \
-    ${systemd_system_unitdir}/pipewire.* \
-    ${systemd_user_unitdir}/pipewire.* \
+    ${datadir}/pipewire \
+    ${systemd_system_unitdir}/pipewire* \
+    ${systemd_user_unitdir}/pipewire* \
     ${bindir}/pipewire \
+    ${bindir}/pipewire-avb \
 "
 
 FILES:${PN}-dev += " \