diff options
Diffstat (limited to 'meta-openembedded/meta-multimedia')
23 files changed, 400 insertions, 190 deletions
diff --git a/meta-openembedded/meta-multimedia/conf/layer.conf b/meta-openembedded/meta-multimedia/conf/layer.conf index 56c3569d00..1fe9c80330 100644 --- a/meta-openembedded/meta-multimedia/conf/layer.conf +++ b/meta-openembedded/meta-multimedia/conf/layer.conf @@ -31,4 +31,4 @@ LAYERVERSION_multimedia-layer = "1" LAYERDEPENDS_multimedia-layer = "core openembedded-layer meta-python" -LAYERSERIES_COMPAT_multimedia-layer = "honister" +LAYERSERIES_COMPAT_multimedia-layer = "kirkstone" diff --git a/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.38.3.bb b/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.38.3.bb index c08ab11b24..9633cab530 100644 --- a/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.38.3.bb +++ b/meta-openembedded/meta-multimedia/recipes-connectivity/rygel/rygel_0.38.3.bb @@ -64,8 +64,8 @@ python populate_packages:prepend () { postinst = d.getVar('plugin_postinst') pkgs = [] - pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), 'librygel-(.*)\.so$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}')) - pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), '(.*)\.plugin$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}')) + pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), r'librygel-(.*)\.so$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}')) + pkgs += do_split_packages(d, oe.path.join(rygel_libdir, "plugins"), r'(.*)\.plugin$', d.expand('${PN}-plugin-%s'), 'Rygel plugin for %s', postinst=postinst, extra_depends=d.expand('${PN}')) metapkg = d.getVar('PN') + '-meta' d.setVar('RDEPENDS:' + metapkg, ' '.join(pkgs)) diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb index adaa552ed8..3cf0ca4eb8 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb @@ -91,10 +91,10 @@ FILES:dvb-zap-data = "${docdir}/dvb-apps/szap" python populate_packages:prepend () { dvb_libdir = bb.data.expand('${libdir}', d) - do_split_packages(d, dvb_libdir, '^lib(.*)\.so$', 'lib%s', 'DVB %s package', extra_depends='', allow_links=True) - do_split_packages(d, dvb_libdir, '^lib(.*)\.la$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev') - do_split_packages(d, dvb_libdir, '^lib(.*)\.a$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev') - do_split_packages(d, dvb_libdir, '^lib(.*)\.so\.*', 'lib%s', 'DVB %s library', extra_depends='', allow_links=True) + do_split_packages(d, dvb_libdir, r'^lib(.*)\.so$', 'lib%s', 'DVB %s package', extra_depends='', allow_links=True) + do_split_packages(d, dvb_libdir, r'^lib(.*)\.la$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev') + do_split_packages(d, dvb_libdir, r'^lib(.*)\.a$', 'lib%s-dev', 'DVB %s development package', extra_depends='${PN}-dev') + do_split_packages(d, dvb_libdir, r'^lib(.*)\.so\.*', 'lib%s', 'DVB %s library', extra_depends='', allow_links=True) } INSANE_SKIP:${PN} = "ldflags" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-for-fmt-8.0.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-for-fmt-8.0.patch new file mode 100644 index 0000000000..efd8dc066c --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-Fix-for-fmt-8.0.patch @@ -0,0 +1,46 @@ +From 22b3a91473d548456a0823f9f170db0d7db5a444 Mon Sep 17 00:00:00 2001 +From: kyak <bas@bmail.ru> +Date: Wed, 12 Jan 2022 19:41:37 +0300 +Subject: [PATCH] Fix for fmt > 8.0 + +Upstream-Status: Backport [https://github.com/gerbera/gerbera/commit/82d84ac5e62c23e717198fc7b2ef190ff95e70d1] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/util/logger.h | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/src/util/logger.h b/src/util/logger.h +index 8a8f0b1f..0a512bff 100644 +--- a/src/util/logger.h ++++ b/src/util/logger.h +@@ -32,7 +32,9 @@ + #ifndef __LOGGER_H__ + #define __LOGGER_H__ + ++#include <fmt/format.h> + #include <spdlog/spdlog.h> ++#include <type_traits> + + #define log_debug SPDLOG_DEBUG + #define log_info SPDLOG_INFO +@@ -40,4 +42,17 @@ + #define log_error SPDLOG_ERROR + #define log_js SPDLOG_INFO + ++#if FMT_VERSION >= 80100 ++template <typename T> ++struct fmt::formatter<T, std::enable_if_t<std::is_enum_v<T>, char>> ++ : formatter<std::underlying_type_t<T>> { ++ template <typename FormatContext> ++ auto format(const T& value, FormatContext& ctx) -> decltype(ctx.out()) ++ { ++ return fmt::formatter<std::underlying_type_t<T>>::format( ++ static_cast<std::underlying_type_t<T>>(value), ctx); ++ } ++}; ++#endif ++ + #endif // __LOGGER_H__ +-- +2.35.0 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch deleted file mode 100644 index f3197f937b..0000000000 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 5719ed8ce9ba60beb9c1670b49296b1c66430dc2 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 2 Mar 2021 12:57:37 -0800 -Subject: [PATCH] include <optional> header - -Fixes build with gcc11 -/src/util/tools.h:165:6: error: 'optional' in na -mespace 'std' does not name a template type -| 165 | std::optional<std::vector<std::byte>> readBinaryFile(const fs::path& path); -| | ^~~~~~~~ - -Upstream-Status: Submitted [https://github.com/gerbera/gerbera/pull/1273] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/util/tools.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/util/tools.h b/src/util/tools.h -index 3a4064e9..e5142966 100644 ---- a/src/util/tools.h -+++ b/src/util/tools.h -@@ -37,6 +37,7 @@ - #include <sstream> - #include <string> - #include <unordered_set> -+#include <optional> - #include <vector> - namespace fs = std::filesystem; - --- -2.30.1 - diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.9.2.bb index ec5548ab6c..7e6ae97983 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.9.2.bb @@ -4,10 +4,10 @@ LICENSE = "GPLv2" LIC_FILES_CHKSUM = "file://LICENSE.md;md5=25cdec9afe3f1f26212ead6bd2f7fac8" SRC_URI = "git://github.com/v00d00/gerbera.git;protocol=https;branch=master \ - file://0001-include-optional-header.patch \ + file://0001-Fix-for-fmt-8.0.patch \ " -SRCREV = "7bc33b98994411e1748d3b3fa9a8424c49e236d6" +SRCREV = "3b93d362ec33f738868a4e896a2c9ee8e9d7a92a" S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark/0001-tracers-Fix-buffer-overflow.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark/0001-tracers-Fix-buffer-overflow.patch new file mode 100644 index 0000000000..1d85e51d6b --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark/0001-tracers-Fix-buffer-overflow.patch @@ -0,0 +1,33 @@ +From d84807ec6d6f8511e4ec939a745d4d7bb35c3cfb Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 4 Feb 2022 09:22:48 -0800 +Subject: [PATCH] tracers: Fix buffer overflow + +Fixes +| ../../../git/plugins/tracers/gstcpuusagecompute.c:106:9: error: 'fscanf' may overflow; destination buffer in argument 3 has size 8, but the corresponding specifier may require size 9 [-Werror,-Wfortify-sour +ce] +| cpu_name, &user[0], &nice[0], &system[0], &idle[0], &iowait, &irq, +| ^ + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + plugins/tracers/gstcpuusagecompute.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/plugins/tracers/gstcpuusagecompute.c b/plugins/tracers/gstcpuusagecompute.c +index 39255fb..00bae66 100644 +--- a/plugins/tracers/gstcpuusagecompute.c ++++ b/plugins/tracers/gstcpuusagecompute.c +@@ -69,7 +69,7 @@ gst_cpu_usage_compute (GstCPUUsage * cpu_usage) + gint *idle; + gint *idle_aux; + +- gchar cpu_name[CPU_NAME_MAX_SIZE]; ++ gchar cpu_name[CPU_NAME_MAX_SIZE+1]; + gint iowait; /* Time waiting for I/O to complete */ + gint irq; /* Time servicing interrupts */ + gint softirq; /* Time servicing softirqs */ +-- +2.35.1 + diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb index d9863608a8..8c0a5c153f 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb @@ -10,14 +10,15 @@ DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad " SRCBRANCH ?= "master" -PV = "0.7.2" +PV = "0.7.3.1" -SRCREV_base = "50e3dbd3b131de2a39d3917576e8f834631ec46b" -SRCREV_common = "88e512ca7197a45c4114f7fa993108f23245bf50" +SRCREV_base = "5413ef5475e5b70476c2480a75ca3746d91d4caf" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" SRCREV_FORMAT = "base_common" SRC_URI = " \ git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH};name=base \ git://gitlab.freedesktop.org/gstreamer/common.git;protocol=https;destsuffix=git/common;name=common;;branch=master \ + file://0001-tracers-Fix-buffer-overflow.patch \ " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb index dc09d9413a..e6a9b7d250 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb @@ -23,8 +23,8 @@ do_install:append () { python populate_packages:prepend () { rootdir = bb.data.expand('${libdir}/ao/plugins-4', d) rootdir_dbg = bb.data.expand('${libdir}/ao/plugins-4/.debug', d) - do_split_packages(d, rootdir, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s', description='AO %s plugin') - do_split_packages(d, rootdir_dbg, '^(.*)\.so$', output_pattern='${BPN}-plugin-%s-dbg', description='AO %s plugin debug data') + do_split_packages(d, rootdir, r'^(.*)\.so$', output_pattern='${BPN}-plugin-%s', description='AO %s plugin') + do_split_packages(d, rootdir_dbg, r'^(.*)\.so$', output_pattern='${BPN}-plugin-%s-dbg', description='AO %s plugin debug data') } PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)}" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb index 82028ecb37..a8d54f08f6 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb @@ -18,7 +18,7 @@ PV = "202105+git${SRCPV}" S = "${WORKDIR}/git" -DEPENDS = "python3-pyyaml-native python3-jinja2-native python3-ply-native python3-jinja2-native udev gnutls boost chrpath-native" +DEPENDS = "python3-pyyaml-native python3-jinja2-native python3-ply-native python3-jinja2-native udev gnutls boost chrpath-native libevent" DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)}" PACKAGES =+ "${PN}-gst" @@ -26,6 +26,16 @@ PACKAGES =+ "${PN}-gst" PACKAGECONFIG ??= "" PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base" +EXTRA_OEMESON = " \ + -Dpipelines=uvcvideo,simple,vimc \ + -Dipas=vimc \ + -Dv4l2=true \ + -Dcam=enabled \ + -Dlc-compliance=disabled \ + -Dtest=false \ + -Ddocumentation=disabled \ +" + RDEPENDS:${PN} = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland qt', 'qtwayland', '', d)}" inherit meson pkgconfig python3native @@ -59,4 +69,6 @@ FILES:${PN} += " ${libdir}/libcamera.so.0.0.0" FILES:${PN}-dev += " ${libdir}/libcamera-base.so" FILES:${PN}-dev += " ${libdir}/libcamera-base.so.0" FILES:${PN} += " ${libdir}/libcamera-base.so.0.0.0" +FILES:${PN} += " ${libdir}/v4l2-compat.so" FILES:${PN}-gst = "${libdir}/gstreamer-1.0/libgstlibcamera.so" +FILES:${PN} += " ${bindir}/cam" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc index da2607fcf1..b913a83931 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc @@ -1,6 +1,6 @@ DESCRIPTION = "MiniDLNA (aka ReadyDLNA) is server software with the aim of \ being fully compliant with DLNA/UPnP-AV clients." -LICENSE = "GPL-2.0|BSD" +LICENSE = "GPL-2.0|BSD-3-Clause" DEPENDS = "ffmpeg flac libav jpeg sqlite3 libexif libogg libid3tag libvorbis" # because it depends on libav which has commercial flag @@ -13,7 +13,7 @@ SRC_URI = "git://git.code.sf.net/p/minidlna/git;branch=master;module=git \ file://minidlna.service \ file://0001-Update-Gettext-version.patch \ file://0001-configure-Check-for-clock_gettime-seprately-from-__N.patch \ - file://0001-Mark-setjmp_buffer-extern-declaration.patch \ + file://0001-configure.ac-drop-non-standard-checks.patch \ " S = "${WORKDIR}/git" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Mark-setjmp_buffer-extern-declaration.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Mark-setjmp_buffer-extern-declaration.patch deleted file mode 100644 index 0a1e800c81..0000000000 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Mark-setjmp_buffer-extern-declaration.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 1c6028f5f8bbfd3fd7327a43e1bb762c2c166167 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Wed, 12 Aug 2020 18:10:54 -0700 -Subject: [PATCH] Mark setjmp_buffer extern declaration - -Fixes build with -fno-common - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - metadata.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/metadata.c b/metadata.c -index 8a10c77..c114091 100644 ---- a/metadata.c -+++ b/metadata.c -@@ -484,7 +484,7 @@ GetAudioMetadata(const char *path, const char *name) - } - - /* For libjpeg error handling */ --jmp_buf setjmp_buffer; -+extern jmp_buf setjmp_buffer; - static void - libjpeg_error_handler(j_common_ptr cinfo) - { --- -2.28.0 - diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch index 24a307db19..dd29797a66 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch @@ -1,4 +1,4 @@ -From 1118b1912916924bbfa3fd4dced9dfed01fbf0e0 Mon Sep 17 00:00:00 2001 +From 93e7e25a10c890b8c8cd06cbfd78175c30999d31 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Mon, 9 Mar 2020 09:44:33 -0700 Subject: [PATCH] configure: Check for clock_gettime seprately from @@ -9,13 +9,16 @@ since direct use of __NR_clock_gettime is not time64-safe Upstream-Status: Pending Signed-off-by: Khem Raj <raj.khem@gmail.com> + --- - configure.ac | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) + configure.ac | 4 ++++ + 1 file changed, 4 insertions(+) +diff --git a/configure.ac b/configure.ac +index 3d218ea..aa7dd1c 100644 --- a/configure.ac +++ b/configure.ac -@@ -125,6 +125,10 @@ case $host in +@@ -127,6 +127,10 @@ case $host in esac AC_CHECK_HEADERS(syscall.h sys/syscall.h mach/mach_time.h) @@ -26,11 +29,3 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> AC_MSG_CHECKING([for __NR_clock_gettime syscall]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( -@@ -143,7 +147,6 @@ AC_COMPILE_IFELSE( - ], - [ - AC_MSG_RESULT([no]) -- AC_SEARCH_LIBS([clock_gettime], [rt], [AC_DEFINE([HAVE_CLOCK_GETTIME], [1], [use clock_gettime])],) - ]) - - AC_CHECK_HEADER(linux/netlink.h, diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure.ac-drop-non-standard-checks.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure.ac-drop-non-standard-checks.patch new file mode 100644 index 0000000000..93334b7dab --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure.ac-drop-non-standard-checks.patch @@ -0,0 +1,37 @@ +From 83425344b2d7339e8f5b0ad230c51278d330d613 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex@linutronix.de> +Date: Sat, 22 Jan 2022 11:41:50 +0100 +Subject: [PATCH] configure.ac: drop non-standard checks + +Not sure what upstream is trying to do here but it does not work +with the latest autoconf. + +Upstream-Status: Inactive-Upstream +Signed-off-by: Alexander Kanavin <alex@linutronix.de> +--- + configure.ac | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index aa7dd1c..858db52 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -418,7 +418,6 @@ for dir in "" /usr/local $SEARCH_DIR; do + AC_CHECK_LIB([id3tag -lz], [id3_file_open], [LIBID3TAG_LIBS="-lid3tag -lz"], [unset ac_cv_lib_id3tag_id3_file_open; LDFLAGS="$LDFLAGS_SAVE"; continue]) + break + done +-test x"$ac_cv_lib_id3tag__lz___id3_file_open" = x"yes" || AC_MSG_ERROR([Could not find libid3tag]) + AC_SUBST(LIBID3TAG_LIBS) + + LDFLAGS_SAVE="$LDFLAGS" +@@ -444,10 +443,6 @@ for dir in "" /usr/local $SEARCH_DIR; do + [unset ac_cv_lib_avformat_av_open_input_file; unset ac_cv_lib_avformat_avformat_open_input; LDFLAGS="$LDFLAGS_SAVE"; continue])]) + break + done +-if test x"$ac_cv_lib_avformat__lavcodec__lavutil__lz___av_open_input_file" != x"yes" && +- test x"$ac_cv_lib_avformat__lavcodec__lavutil__lz___avformat_open_input" != x"yes"; then +- AC_MSG_ERROR([Could not find libavformat - part of ffmpeg]) +-fi + AC_SUBST(LIBAVFORMAT_LIBS) + + AC_CHECK_LIB(pthread, pthread_create) diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.3.0.bb index 999d85ce74..4238918c97 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.3.0.bb @@ -1,4 +1,4 @@ require ${BPN}.inc -SRCREV = "c760a338e07ebd11d62fef701e3de824a91f8625" +SRCREV = "109d63cb11ac207c18a784556834eb054b34b00b" LIC_FILES_CHKSUM = "file://LICENCE.miniupnpd;md5=b0dabf9d8e0f871554e309d62ead8d2b" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-include-utility-for-std-forward.patch b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-include-utility-for-std-forward.patch deleted file mode 100644 index 68ccb65835..0000000000 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-include-utility-for-std-forward.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 9bb962148672a3c20fb0119d7f71789b8ef3dc02 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 29 Jun 2021 19:31:34 -0700 -Subject: [PATCH] include <utility> for std::forward - -Fixes -../git/src/Log.hxx:121:42: error: no member named 'forward' in namespace 'std' - LogFormat(LogLevel::ERROR, e, fmt, std::forward<Args>(args)...); - -Upstream-Status: Submitted [https://github.com/MusicPlayerDaemon/MPD/pull/1201] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/Log.hxx | 1 + - src/lib/expat/ExpatParser.hxx | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/src/Log.hxx b/src/Log.hxx -index a295ed9f6..87097b086 100644 ---- a/src/Log.hxx -+++ b/src/Log.hxx -@@ -24,6 +24,7 @@ - #include "util/Compiler.h" - - #include <exception> -+#include <utility> - - class Domain; - -diff --git a/src/lib/expat/ExpatParser.hxx b/src/lib/expat/ExpatParser.hxx -index e1723d109..4b5221e89 100644 ---- a/src/lib/expat/ExpatParser.hxx -+++ b/src/lib/expat/ExpatParser.hxx -@@ -25,6 +25,7 @@ - #include <expat.h> - - #include <stdexcept> -+#include <utility> - - class InputStream; - --- -2.32.0 - diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.9.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.5.bb index 4eac256748..5596760d56 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.9.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.5.bb @@ -15,21 +15,20 @@ DEPENDS += " \ icu \ dbus \ expat \ + fmt \ " -SRC_URI = " \ - git://github.com/MusicPlayerDaemon/MPD;branch=v0.22.x;protocol=https \ - file://0001-include-utility-for-std-forward.patch \ - file://mpd.conf.in \ -" -SRCREV = "18628bf89ebfa5a806971479a71cf9b5764e500e" +SRC_URI = "git://github.com/MusicPlayerDaemon/MPD;branch=v0.23.x;protocol=https \ + file://mpd.conf.in \ + " +SRCREV = "df4b6b92f2c4bba1b55fe0a5559b19808abb28ff" S = "${WORKDIR}/git" EXTRA_OEMESON += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-Dsystemd=enabled -Dsystemd_system_unit_dir=${systemd_system_unitdir} -Dsystemd_user_unit_dir=${systemd_system_unitdir}', '-Dsystemd=disabled', d)}" -PACKAGECONFIG ??= "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "aac", "", d)} \ +PACKAGECONFIG ??= "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "aac", "", d)} \ alsa ao bzip2 daemon \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "ffmpeg aac", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "ffmpeg aac", "", d)} \ fifo flac fluidsynth iso9660 \ jack libsamplerate httpd \ mms mpg123 modplug sndfile \ @@ -63,7 +62,7 @@ PACKAGECONFIG[oss] = "-Doss=enabled,-Doss=disabled," PACKAGECONFIG[recorder] = "-Drecorder=true,-Drecorder=false" PACKAGECONFIG[smb] = "-Dsmbclient=enabled,-Dsmbclient=disabled,samba" PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" -PACKAGECONFIG[upnp] = "-Dupnp=enabled,-Dupnp=disabled,libupnp" +PACKAGECONFIG[upnp] = "-Dupnp=pupnp,-Dupnp=disabled,libupnp" PACKAGECONFIG[vorbis] = "-Dvorbis=enabled,-Dvorbis=disabled,libvorbis libogg" PACKAGECONFIG[wavpack] = "-Dwavpack=enabled,-Dwavpack=disabled,wavpack" PACKAGECONFIG[zlib] = "-Dzlib=enabled,-Dzlib=disabled,zlib" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb index cfe96bf024..62ca273160 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb @@ -31,7 +31,7 @@ RDEPENDS:packagegroup-meta-multimedia = "\ dleyna-renderer \ dleyna-server \ dvb-apps \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "faac fdk-aac mpd", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "faac fdk-aac mpd", "", d)} \ gerbera \ libao \ libavc1394 \ @@ -45,7 +45,7 @@ RDEPENDS:packagegroup-meta-multimedia = "\ mpc \ ncmpc \ libmpd \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "opencore-amr vo-aacenc vo-amrwbenc", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "opencore-amr vo-aacenc vo-amrwbenc", "", d)} \ gst-shark \ gstd \ rtmpdump \ @@ -57,24 +57,24 @@ RDEPENDS:packagegroup-meta-multimedia = "\ pipewire \ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "projucer", "", d)} \ libcamera \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libde265 openh264", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "libde265 openh264", "", d)} \ vorbis-tools \ libdvbcsa \ libopenmpt \ libuvc \ mimic \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "minidlna", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "minidlna", "", d)} \ mycroft \ openal-soft \ opusfile \ opus-tools \ libdvdcss \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", bb.utils.contains("DISTRO_FEATURES", "x11", "vlc", "", d), "", d)} \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "sox streamripper", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", bb.utils.contains("DISTRO_FEATURES", "x11", "vlc", "", d), "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "sox streamripper", "", d)} \ tinyalsa \ tremor \ webrtc-audio-processing \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 i686 x86-64", "x265", "", d), "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 i686 x86-64", "x265", "", d), "", d)} \ " RDEPENDS:packagegroup-meta-multimedia:remove:libc-musl = "projucer" RDEPENDS:packagegroup-meta-multimedia:remove:powerpc64le = "openh264" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.34.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.45.bb index 2abc64efb2..6ba3124846 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.34.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.45.bb @@ -1,17 +1,19 @@ -SUMMARY = "Multimedia processing server for Linux" +SUMMARY = "Multimedia processing server for Linux" DESCRIPTION = "Linux server for handling and routing audio and video streams between applications and multimedia I/O devices" -HOMEPAGE = "https://pipewire.org/" +HOMEPAGE = "https://pipewire.org/" BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/pipewire/issues" +AUTHOR = "Wim Taymans <wtaymans@redhat.com>" +SECTION = "multimedia" + LICENSE = "MIT & LGPL-2.1-or-later & GPL-2.0-only" LIC_FILES_CHKSUM = " \ file://LICENSE;md5=2158739e172e58dc9ab1bdd2d6ec9c72 \ file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \ " -SECTION = "multimedia" -DEPENDS = "dbus" +DEPENDS = "dbus ncurses" -SRCREV = "1924c2c29824955b5e763f1def6967f68e403c7c" +SRCREV = "bdd407fe66cc9e46d4bc4dcc989d50679000482b" SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https" S = "${WORKDIR}/git" @@ -27,36 +29,47 @@ USERADD_PARAM:${PN} = "--system --home / --no-create-home \ --gid pipewire --groups audio,video \ pipewire" -SYSTEMD_PACKAGES = "${PN} ${PN}-media-session" +SYSTEMD_PACKAGES = "${PN}" # For "EVL", look up https://evlproject.org/ . It involves # a specially prepared kernel, and is currently unavailable # in Yocto. # -# FFmpeg and Vulkan aren't really supported - at the current -# stage (version 0.3.22), these are just experiments, not -# actual features. -# -# libcamera support currently does not build successfully. +# Vulkan support is currently (as of version 0.3.44) not functional. # # manpage generation requires xmltoman, which is not available. +# +# The session-managers list specifies which session managers Meson +# shall download (via git clone) and build as subprojects. In OE, +# this is not how a session manager should be built. Instead, they +# should be integrated as separate OE recipes. To prevent PipeWire +# from using this Meson feature, set an empty list. +# This does not disable support or the need for session managers, +# it just prevents this subproject feature. +# +# AptX and LDAC are not available in OE. Currently, neither +# are lv2 and ROC. EXTRA_OEMESON += " \ - -Daudiotestsrc=enabled \ -Devl=disabled \ -Dtests=disabled \ -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \ - -Dvideotestsrc=enabled \ - -Dffmpeg=disabled \ + -Dsystemd-system-unit-dir=${systemd_system_unitdir} \ + -Dsystemd-user-unit-dir=${systemd_user_unitdir} \ -Dvulkan=disabled \ - -Dlibcamera=disabled \ -Dman=disabled \ + -Dsession-managers='[]' \ + -Dlv2=disabled \ + -Droc=disabled \ + -Dbluez5-codec-aptx=disabled \ + -Dbluez5-codec-ldac=disabled \ " PACKAGECONFIG ??= "\ + ${@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 sndfile pw-cat v4l2 \ + gstreamer jack libusb pw-cat raop sndfile v4l2 \ " # "jack" and "pipewire-jack" packageconfigs cannot be both enabled, @@ -65,23 +78,31 @@ PACKAGECONFIG ??= "\ # is why these two are marked in their respective packageconfigs # as being in conflict. PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev" +PACKAGECONFIG[avahi] = "-Davahi=enabled,-Davahi=disabled,avahi" PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc" -PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native" +PACKAGECONFIG[bluez-aac] = "-Dbluez5-codec-aac=enabled,-Dbluez5-codec-aac=disabled,fdk-aac" +PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native graphviz-native" +PACKAGECONFIG[ffmpeg] = "-Dffmpeg=enabled,-Dffmpeg=disabled,ffmpeg" PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base" 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[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" +PACKAGECONFIG[raop] = "-Draop=enabled,-Draop=disabled,openssl" PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2" PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd" PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=enabled,-Dsystemd-system-service=disabled,systemd" -# "systemd-user-service" packageconfig will only install service +# "systemd-user-service" packageconfig will only install service # files to rootfs but not enable them as systemd.bbclass # currently lacks the feature of enabling user services. PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=enabled,-Dsystemd-user-service=disabled,systemd" # pw-cat needs sndfile packageconfig to be enabled -PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled" PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev" -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[webrtc-echo-cancelling] = "-Decho-cancel-webrtc=enabled,-Decho-cancel-webrtc=disabled,webrtc-audio-processing" PACKAGESPLITFUNCS:prepend = " split_dynamic_packages " PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends " @@ -96,6 +117,10 @@ remove_unused_installed_files() { if ${@bb.utils.contains('PACKAGECONFIG', 'pipewire-jack', 'false', 'true', d)}; then rm -f "${D}${datadir}/pipewire/jack.conf" fi + + # minimal.conf is an example of how to minimally configure the + # daemon and is not meant to be used for production. + rm -f "${D}${datadir}/pipewire/minimal.conf" } do_install[postfuncs] += "remove_unused_installed_files" @@ -179,13 +204,13 @@ PACKAGES =+ "\ ${PN}-pulse \ ${PN}-alsa \ ${PN}-jack \ - ${PN}-media-session \ ${PN}-spa-plugins \ ${PN}-spa-plugins-meta \ ${PN}-spa-tools \ ${PN}-modules \ ${PN}-modules-meta \ ${PN}-alsa-card-profile \ + ${PN}-v4l2 \ gstreamer1.0-pipewire \ " @@ -195,6 +220,7 @@ SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-s CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf" FILES:${PN} = " \ ${datadir}/pipewire/pipewire.conf \ + ${systemd_system_unitdir}/pipewire.* \ ${systemd_user_unitdir}/pipewire.* \ ${bindir}/pipewire \ " @@ -217,7 +243,23 @@ RDEPENDS:libpipewire += " \ " FILES:${PN}-tools = " \ - ${bindir}/pw-* \ + ${bindir}/pw-cat \ + ${bindir}/pw-cli \ + ${bindir}/pw-dot \ + ${bindir}/pw-dsdplay \ + ${bindir}/pw-dump \ + ${bindir}/pw-link \ + ${bindir}/pw-loopback \ + ${bindir}/pw-metadata \ + ${bindir}/pw-mididump \ + ${bindir}/pw-midiplay \ + ${bindir}/pw-midirecord \ + ${bindir}/pw-mon \ + ${bindir}/pw-play \ + ${bindir}/pw-profiler \ + ${bindir}/pw-record \ + ${bindir}/pw-reserve \ + ${bindir}/pw-top \ " # This is a shim daemon that is intended to be used as a @@ -226,6 +268,7 @@ FILES:${PN}-tools = " \ CONFFILES:${PN}-pulse += "${datadir}/pipewire/pipewire-pulse.conf" FILES:${PN}-pulse = " \ ${datadir}/pipewire/pipewire-pulse.conf \ + ${systemd_system_unitdir}/pipewire-pulse.* \ ${systemd_user_unitdir}/pipewire-pulse.* \ ${bindir}/pipewire-pulse \ " @@ -233,39 +276,33 @@ RDEPENDS:${PN}-pulse += " \ ${PN}-modules-protocol-pulse \ " -# alsa plugin to redirect audio to pipewire +# ALSA plugin to redirect audio to pipewire. FILES:${PN}-alsa = "\ ${libdir}/alsa-lib/* \ ${datadir}/alsa/alsa.conf.d/* \ " -# jack drop-in libraries to redirect audio to pipewire +# JACK drop-in libraries to redirect audio to pipewire. CONFFILES:${PN}-jack = "${datadir}/pipewire/jack.conf" FILES:${PN}-jack = "\ + ${bindir}/pw-jack \ ${datadir}/pipewire/jack.conf \ ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \ " -# Example session manager. Not intended for use in production. -CONFFILES:${PN}-media-session = "${datadir}/pipewire/media-session.d/*" -SYSTEMD_SERVICE:${PN}-media-session = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire-media-session.service', '', d)}" -FILES:${PN}-media-session = " \ - ${bindir}/pipewire-media-session \ - ${datadir}/pipewire/media-session.d/* \ - ${systemd_system_unitdir}/pipewire-media-session.service \ - ${systemd_user_unitdir}/pipewire-media-session.service \ -" -RPROVIDES:${PN}-media-session = "virtual-pipewire-sessionmanager" - -# Dynamic packages (see set_dynamic_metapkg_rdepends). +# Dynamic SPA plugin packages (see set_dynamic_metapkg_rdepends). FILES:${PN}-spa-plugins = "" RRECOMMENDS:${PN}-spa-plugins += "${PN}-spa-plugins-meta" +FILES:${PN}-spa-plugins-bluez5 += " \ + ${datadir}/${SPA_SUBDIR}/bluez5/* \ +" + FILES:${PN}-spa-tools = " \ ${bindir}/spa-* \ " -# Dynamic packages (see set_dynamic_metapkg_rdepends). +# Dynamic PipeWire module packages (see set_dynamic_metapkg_rdepends). FILES:${PN}-modules = "" RRECOMMENDS:${PN}-modules += "${PN}-modules-meta" @@ -284,6 +321,12 @@ FILES:${PN}-alsa-card-profile = " \ ${nonarch_base_libdir}/udev/rules.d/90-pipewire-alsa.rules \ " +# V4L2 interface emulator for sending/receiving data between PipeWire and V4L2 applications. +FILES:${PN}-v4l2 += " \ + ${bindir}/pw-v4l2 \ + ${libdir}/${PW_MODULE_SUBDIR}/v4l2/libpw-v4l2.so \ +" + FILES:gstreamer1.0-pipewire = " \ ${libdir}/gstreamer-1.0/* \ " diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb index 2d6e913d87..544b6138fc 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb @@ -36,4 +36,4 @@ SRC_URI[sha256sum] = "b45f598643ffbd8e363ff24d61166ccec4836fea6d3888881b8df53e3b inherit autotools pkgconfig -EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "0", "1", d)}" +EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb index 384637281d..fde7b04335 100644 --- a/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb @@ -129,4 +129,4 @@ FILES:${PN}-staticdev += "\ INSANE_SKIP:${PN} = "dev-so" -EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "0", "1", d)}" +EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}" diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua b/meta-openembedded/meta-multimedia/recipes-multimedia/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua new file mode 100644 index 0000000000..353a49c0b5 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua @@ -0,0 +1,5 @@ +-- These features require a session DBus instance, which is not available +-- by default in OE generated images. The absence of such a DBus instance +-- causes WirePlumber to fail to start. Turn these off to prevent that. +alsa_monitor.properties["alsa.reserve"] = false +default_access.properties["enable-flatpak-portal"] = false diff --git a/meta-openembedded/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.4.8.bb b/meta-openembedded/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.4.8.bb new file mode 100644 index 0000000000..2310c3a780 --- /dev/null +++ b/meta-openembedded/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.4.8.bb @@ -0,0 +1,143 @@ +SUMMARY = "Session / policy manager implementation for PipeWire" +HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/wireplumber" +BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/wireplumber/issues" +AUTHOR = "George Kiagiadakis <george.kiagiadakis@collabora.com>" +SECTION = "multimedia" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=17d1fe479cdec331eecbc65d26bc7e77" + +DEPENDS = "glib-2.0 glib-2.0-native lua pipewire \ + ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "python3-native python3-lxml-native doxygen-native", "", d)} \ +" + +SRCREV = "e14bb72dcc85e2130d0ea96768e5ae3b375a041e" +SRC_URI = "git://gitlab.freedesktop.org/pipewire/wireplumber.git;branch=master;protocol=https \ + file://90-OE-disable-session-dbus-dependent-features.lua \ + " + +S = "${WORKDIR}/git" + +inherit meson pkgconfig gobject-introspection systemd + +GIR_MESON_ENABLE_FLAG = 'enabled' +GIR_MESON_DISABLE_FLAG = 'disabled' + +# Enable system-lua to let wireplumber use OE's lua. +# Documentation needs python-sphinx, which is not in oe-core or meta-python2 for now. +# elogind is not (yet) available in OE, so disable support. +EXTRA_OEMESON += " \ + -Ddoc=disabled \ + -Dsystem-lua=true \ + -Delogind=disabled \ + -Dsystemd-system-unit-dir=${systemd_system_unitdir} \ + -Dsystemd-user-unit-dir=${systemd_user_unitdir} \ + -Dtests=false \ +" + +PACKAGECONFIG ??= "\ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service', '', d)} \ +" + +PACKAGECONFIG[systemd] = "-Dsystemd=enabled,-Dsystemd=disabled,systemd" +PACKAGECONFIG[systemd-system-service] = "-Dsystemd-system-service=true,-Dsystemd-system-service=false,systemd" +# "systemd-user-service" packageconfig will only install service +# files to rootfs but not enable them as systemd.bbclass +# currently lacks the feature of enabling user services. +PACKAGECONFIG[systemd-user-service] = "-Dsystemd-user-service=true,-Dsystemd-user-service=false,systemd" + +PACKAGESPLITFUNCS:prepend = " split_dynamic_packages " +PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends " + +WP_MODULE_SUBDIR = "wireplumber-0.4" + +add_custom_lua_config_scripts() { + install -m 0644 ${WORKDIR}/90-OE-disable-session-dbus-dependent-features.lua ${D}${datadir}/wireplumber/main.lua.d +} + +do_install[postfuncs] += "add_custom_lua_config_scripts" + +python split_dynamic_packages () { + # Create packages for each WirePlumber module. + wp_module_libdir = d.expand('${libdir}/${WP_MODULE_SUBDIR}') + do_split_packages(d, wp_module_libdir, r'^libwireplumber-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'WirePlumber %s module', extra_depends='', recursive=False) +} + +python set_dynamic_metapkg_rdepends () { + import os + import oe.utils + + # Go through all generated WirePlumber module packages + # (excluding the main package and the -meta package itself) + # and add them to the -meta package as RDEPENDS. + + base_pn = d.getVar('PN') + + wp_module_pn = base_pn + '-modules' + wp_module_metapkg = wp_module_pn + '-meta' + + d.setVar('ALLOW_EMPTY:' + wp_module_metapkg, "1") + d.setVar('FILES:' + wp_module_metapkg, "") + + blacklist = [ wp_module_pn, wp_module_metapkg ] + wp_module_metapkg_rdepends = [] + pkgdest = d.getVar('PKGDEST') + + for pkg in oe.utils.packages_filter_out_system(d): + if pkg in blacklist: + continue + + is_wp_module_pkg = pkg.startswith(wp_module_pn) + if not is_wp_module_pkg: + continue + + if pkg in wp_module_metapkg_rdepends: + continue + + # See if the package is empty by looking at the contents of its + # PKGDEST subdirectory. If this subdirectory is empty, then then + # package is empty as well. Empty packages do not get added to + # the meta package's RDEPENDS. + pkgdir = os.path.join(pkgdest, pkg) + if os.path.exists(pkgdir): + dir_contents = os.listdir(pkgdir) or [] + else: + dir_contents = [] + is_empty = len(dir_contents) == 0 + if not is_empty: + if is_wp_module_pkg: + wp_module_metapkg_rdepends.append(pkg) + + d.setVar('RDEPENDS:' + wp_module_metapkg, ' '.join(wp_module_metapkg_rdepends)) + d.setVar('DESCRIPTION:' + wp_module_metapkg, wp_module_pn + ' meta package') +} + +PACKAGES =+ "\ + libwireplumber \ + ${PN}-default-config \ + ${PN}-scripts \ + ${PN}-modules \ + ${PN}-modules-meta \ +" + +PACKAGES_DYNAMIC = "^${PN}-modules.*" + +SYSTEMD_SERVICE:${PN} = "wireplumber.service" +CONFFILES:${PN} += " \ + ${datadir}/wireplumber/wireplumber.conf \ + ${datadir}/wireplumber/*.lua.d/* \ +" +# Add pipewire to RRECOMMENDS, since WirePlumber expects a PipeWire daemon to +# be present. While in theory any application that uses libpipewire can configure +# itself to become a daemon, in practice, the PipeWire daemon is used. +RRECOMMENDS:${PN} += "${PN}-scripts pipewire" + +FILES:libwireplumber = " \ + ${libdir}/libwireplumber-*.so.* \ +" + +FILES:${PN}-scripts += "${datadir}/wireplumber/scripts/*" + +# Dynamic packages (see set_dynamic_metapkg_rdepends). +FILES:${PN}-modules = "" +RRECOMMENDS:${PN}-modules += "${PN}-modules-meta" |