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 |
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 >
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] > -=-=-=-=-=-=-=-=-=-=-=- >
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>] > -=-=-=-=-=-=-=-=-=-=-=- >
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 --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 += " \
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%)