diff options
Diffstat (limited to 'meta-multimedia/recipes-multimedia')
179 files changed, 4422 insertions, 1487 deletions
diff --git a/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb index 3bed70e1a1..b5c8ddca11 100644 --- a/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb +++ b/meta-multimedia/recipes-multimedia/alsa-equal/alsa-equal_0.6.bb @@ -1,6 +1,6 @@ DESCRIPTION = "A real-time adjustable equalizer plugin for ALSA" HOMEPAGE = "https://web.archive.org/web/20161105202833/http://thedigitalmachine.net/alsaequal.html" -LICENSE = "LGPL-2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING;md5=243b725d71bb5df4a1e5920b344b86ad" DEPENDS = "alsa-lib" @@ -36,9 +36,9 @@ do_install() { install -Dm 0644 libasound_module_pcm_equal.so ${D}${libdir}/alsa-lib/libasound_module_pcm_equal.so } -RDEPENDS_${PN} += " \ +RDEPENDS:${PN} += " \ alsa-utils \ caps \ " -FILES_${PN} = "${libdir}/alsa-lib/" +FILES:${PN} = "${libdir}/alsa-lib/" diff --git a/meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch b/meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch new file mode 100644 index 0000000000..8a8350ec57 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/aom/aom/0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch @@ -0,0 +1,109 @@ +From 35c1ed84a158354c37e329bad0e236b156836ac7 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 23 May 2023 14:59:26 -0700 +Subject: [PATCH] subpel_variance_neon: Provide prototypes for missing + functions + +Fixes build with clang-15 +aom_dsp/arm/subpel_variance_neon.c:121:10: error: call to undeclared function 'aom_variance8x8_neon'; ISO C99 and later do not support implicit function dec +larations [-Wimplicit-function-declaration] +| return aom_variance8x8_neon(temp2, 8, dst, dst_stride, sse); +| ^ + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + aom_dsp/arm/subpel_variance_neon.c | 76 ++++++++++++++++++++++++++++++ + 1 file changed, 76 insertions(+) + +diff --git a/aom_dsp/arm/subpel_variance_neon.c b/aom_dsp/arm/subpel_variance_neon.c +index a05886066c4..ea6bada224d 100644 +--- a/aom_dsp/arm/subpel_variance_neon.c ++++ b/aom_dsp/arm/subpel_variance_neon.c +@@ -20,6 +20,82 @@ + #include "aom_dsp/variance.h" + #include "aom_dsp/arm/mem_neon.h" + ++extern unsigned int aom_variance8x8_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance16x16_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance16x32_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance16x64_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance32x8_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance32x16_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance32x32_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance32x64_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance32x128_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance64x8_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance64x16_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance64x32_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance64x64_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance64x128_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance128x8_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance128x16_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance128x32_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance128x64_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ ++extern unsigned int aom_variance128x128_neon(const uint8_t *a, int a_stride, ++ const uint8_t *b, int b_stride, ++ unsigned int *sse); ++ + static void var_filter_block2d_bil_w4(const uint8_t *src_ptr, uint8_t *dst_ptr, + int src_stride, int pixel_step, + int dst_height, int filter_offset) { +-- +2.40.1 + diff --git a/meta-multimedia/recipes-multimedia/aom/aom_3.7.0.bb b/meta-multimedia/recipes-multimedia/aom/aom_3.7.0.bb new file mode 100644 index 0000000000..776dfa8783 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/aom/aom_3.7.0.bb @@ -0,0 +1,27 @@ +SUMMARY = "Alliance for Open Media - AV1 Codec Library" +DESCRIPTION = "Alliance for Open Media AV1 codec library" + +LICENSE = "BSD-2-Clause & AOM-Patent-License-1.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=6ea91368c1bbdf877159435572b931f5 \ + file://PATENTS;md5=a111d47497d3bb49e04eef71377eb8ba \ + " +SRCREV = "6054fae218eda6e53e1e3b4f7ef0fff4877c7bf1" +SRC_URI = "git://aomedia.googlesource.com/aom;protocol=https;branch=main \ + file://0001-subpel_variance_neon-Provide-prototypes-for-missing-.patch" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig + +DEPENDS = " nasm-native" + +EXTRA_OECMAKE = "-DBUILD_SHARED_LIBS=1 -DENABLE_TESTS=0 \ + -DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl \ + " +CMAKE_VERBOSE = "VERBOSE=1" +CFLAGS:append:libc-musl = " -D_GNU_SOURCE" +EXTRA_OECMAKE:append:arm = " -DENABLE_NEON=OFF" + +do_generate_toolchain_file:append() { + echo "set(AOM_AS_FLAGS --debug-prefix-map ${S}=${TARGET_DBGSRC_DIR})" >> ${WORKDIR}/toolchain.cmake +} diff --git a/meta-multimedia/recipes-multimedia/aravis/aravis_0.8.31.bb b/meta-multimedia/recipes-multimedia/aravis/aravis_0.8.31.bb new file mode 100644 index 0000000000..a4386e809c --- /dev/null +++ b/meta-multimedia/recipes-multimedia/aravis/aravis_0.8.31.bb @@ -0,0 +1,40 @@ +SUMMARY = "A vision library for genicam based cameras" +DESCRIPTION = "\ + Aravis is a glib/gobject based library for video acquisition using Genicam cameras.\ + It currently implements the gigabit ethernet and USB3 protocols used by industrial cameras.\ + It also provides a basic ethernet camera simulator and a simple video viewer.\ +" +AUTHOR = "Emmanuel Pacaud" +HOMEPAGE = "https://github.com/AravisProject/aravis" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" + +DEPENDS += "\ + glib-2.0 \ + glib-2.0-native \ + libxml2 \ + zlib \ +" + +SRC_URI = "https://github.com/AravisProject/aravis/releases/download/${PV}/${BPN}-${PV}.tar.xz" +SRC_URI[sha256sum] = "9c4ebe6273ed3abe466cb6ed8fa5c132bdd7e9a9298ca43fa0212c4311a084da" + +EXTRA_OEMESON += "-Dtests=false" + +GIR_MESON_ENABLE_FLAG = 'enabled' +GIR_MESON_DISABLE_FLAG = 'disabled' +GIDOCGEN_MESON_OPTION = "documentation" +GIDOCGEN_MESON_ENABLE_FLAG = "enabled" +GIDOCGEN_MESON_DISABLE_FLAG = "disabled" + +inherit meson pkgconfig gi-docgen gobject-introspection + +PACKAGECONFIG ?= "gstreamer usb ${@bb.utils.contains_any('DISTRO_FEATURES', '${GTK3DISTROFEATURES}', 'viewer', '', d)}" +PACKAGECONFIG[gstreamer] = "-Dgst-plugin=enabled, -Dgst-plugin=disabled,gstreamer1.0 gstreamer1.0-plugins-base," +PACKAGECONFIG[usb] = "-Dusb=enabled, -Dusb=disabled, libusb1," +PACKAGECONFIG[viewer] = "-Dviewer=enabled, -Dviewer=disabled, gtk+3 gstreamer1.0-plugins-base," + +FILES:${PN} += "\ + ${datadir} \ + ${libdir}/gstreamer-1.0/libgstaravis.0.8.so \ +" diff --git a/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb b/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb new file mode 100644 index 0000000000..5007c88fff --- /dev/null +++ b/meta-multimedia/recipes-multimedia/bluealsa/bluealsa_git.bb @@ -0,0 +1,66 @@ +SUMMARY = "Bluetooth Audio ALSA Backend" +HOMEPAGE = "https://github.com/Arkq/bluez-alsa" +SECTION = "libs" + +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://LICENSE;md5=8449a4f133a93f6254b496d4fb476e83" + +SRC_URI = "git://github.com/Arkq/bluez-alsa.git;protocol=https;branch=master" + +SRCREV = "dd05a1baa261b94da9ba977b5e3392c8b4dc7a5e" +PV = "4.0.0+git" + +S = "${WORKDIR}/git" + +DEPENDS += "alsa-lib bluez5 dbus glib-2.0 sbc" + +PACKAGECONFIG ??= "aplay cli hcitop ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" +PACKAGECONFIG[a2dpconf] = "--enable-a2dpconf,--disable-a2dpconf" +PACKAGECONFIG[aac] = "--enable-aac,--disable-aac,fdk-aac" +PACKAGECONFIG[aplay] = "--enable-aplay,--disable-aplay" +PACKAGECONFIG[cli] = "--enable-cli,--disable-cli" +PACKAGECONFIG[coverage] = "--with-coverage,--without-coverage,lcov-native" +PACKAGECONFIG[debug] = "--enable-debug,--disable-debug" +PACKAGECONFIG[debug-time] = "--enable-debug-time,--disable-debug-time" +PACKAGECONFIG[faststream] = "--enable-faststream,--disable-faststream" +PACKAGECONFIG[hcitop] = "--enable-hcitop,--disable-hcitop,libbsd ncurses" +PACKAGECONFIG[libunwind] = "--with-libunwind,--without-libunwind,libunwind" +PACKAGECONFIG[mp3lame] = "--enable-mp3lame,--disable-mp3lame,lame" +PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123,mpg123" +PACKAGECONFIG[ofono] = "--enable-ofono,--disable-ofono,ofono" +PACKAGECONFIG[payloadcheck] = "--enable-payloadcheck,--disable-payloadcheck" +PACKAGECONFIG[rfcomm] = "--enable-rfcomm,--disable-rfcomm" +PACKAGECONFIG[systemd] = "--enable-systemd --with-systemdsystemunitdir=${systemd_system_unitdir} \ + --with-systemdbluealsaargs='${SYSTEMD_BLUEALSA_ARGS}' --with-systemdbluealsaaplayargs='${SYSTEMD_BLUEALSA_APLAY_ARGS}',--disable-systemd,systemd" +PACKAGECONFIG[test] = "--enable-test,--disable-test,libcheck libsndfile1" +PACKAGECONFIG[upower] = "--enable-upower,--disable-upower,,upower" + +inherit autotools pkgconfig systemd + +EXTRA_OECONF = " \ + --disable-aptx \ + --disable-lc3plus \ + --disable-ldac \ + --disable-manpages \ +" + +PACKAGE_BEFORE_PN = "${PN}-aplay" +RRECOMMENDS:${PN} = "${PN}-aplay" + +FILES:${PN}-aplay = "${bindir}/bluealsa-aplay" +FILES:${PN} += "${libdir}/alsa-lib/*" + +SYSTEMD_PACKAGES += "${PN}-aplay" +SYSTEMD_SERVICE:${PN} = "bluealsa.service" +SYSTEMD_SERVICE:${PN}-aplay = "bluealsa-aplay.service" + +SYSTEMD_AUTO_ENABLE:${PN}-aplay = "disable" + +# Choose bluez-alsa arguments to be used in bluealsa systemd service +# Usually could choose profiles with it: a2dp-source a2dp-sink hfp-hf hfp-ag hsp-hs hsp-ag hfp-ofono +# Enable bluez-alsa arguments by default: +SYSTEMD_BLUEALSA_ARGS ?= "-p a2dp-source -p a2dp-sink" + +# Choose bluealsa-aplay arguments to be used in bluealsa-aplay systemd service +# Defaults to be empty: +SYSTEMD_BLUEALSA_APLAY_ARGS ?= "" diff --git a/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch b/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch index 1087b0e79c..528bd153dd 100644 --- a/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch +++ b/meta-multimedia/recipes-multimedia/caps/caps/0001-basic.h-Use-c99-supported-stdint-types.patch @@ -5,6 +5,7 @@ Subject: [PATCH] basic.h: Use c99 supported stdint types include stdint.h for getting the definitions for int types +Upstream-Status: Pending Signed-off-by: Khem Raj <raj.khem@gmail.com> --- basics.h | 17 +++++++++-------- diff --git a/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch b/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch index 3abd381891..6e34a8a984 100644 --- a/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch +++ b/meta-multimedia/recipes-multimedia/caps/caps/append_ldflags.patch @@ -1,7 +1,8 @@ Change the order of linker flags such that -shared is appearig after -pie/-fpie this helps in building the package when secuiry flags are enabled --Khem +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> Index: caps-0.9.24/Makefile =================================================================== diff --git a/meta-multimedia/recipes-multimedia/caps/caps_0.9.26.bb b/meta-multimedia/recipes-multimedia/caps/caps_0.9.26.bb index 46bcf6c6a5..f33d7ad582 100644 --- a/meta-multimedia/recipes-multimedia/caps/caps_0.9.26.bb +++ b/meta-multimedia/recipes-multimedia/caps/caps_0.9.26.bb @@ -1,6 +1,6 @@ DESCRIPTION = "The CAPS Audio Plugin Suite - LADSPA plugin suite" HOMEPAGE = "http://quitte.de/dsp/caps.html" -LICENSE = "GPL-3" +LICENSE = "GPL-3.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" SRC_URI = "http://quitte.de/dsp/${BPN}_${PV}.tar.bz2 \ @@ -24,4 +24,4 @@ do_install() { install -Dm 0644 caps.so ${D}${libdir}/ladspa/caps.so } -FILES_${PN} = "${libdir}/ladspa/" +FILES:${PN} = "${libdir}/ladspa/" diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb b/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb index 27fa0e5855..0b844ee7d3 100644 --- a/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb +++ b/meta-multimedia/recipes-multimedia/cdparanoia/cdparanoia_10.2.bb @@ -4,7 +4,7 @@ error corrections, hence the name paranoia." HOMEPAGE = "https://www.xiph.org/" SECTION = "multimedia" -LICENSE = "LGPLv2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING-LGPL;md5=d370feaa1c9edcdbd29ca27ea3d2304d" SRC_URI = "http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-${PV}.src.tgz \ diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch index 682cf6e033..0451a453a3 100644 --- a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch +++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-check-for-null-buffer-before-trying-a-byteswap.patch @@ -8,6 +8,7 @@ Author: Monty <paranoia@xiph.org> Patch from debian http://sources.debian.net/src/cdparanoia/3.10.2%2Bdebian-11/debian/patches/04-endian.patch +Upstream-Status: Pending Signed-off-by: Khem Raj <raj.khem@gmail.com> --- interface/interface.c | 2 +- diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch index 7699017f77..b364a3b2a7 100644 --- a/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch +++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0001-utils-Use-c99-compiler-independent-types.patch @@ -5,6 +5,7 @@ Subject: [PATCH] utils: Use c99 compiler independent types Make it portable across different platforms +Upstream-Status: Pending Signed-off-by: Khem Raj <raj.khem@gmail.com> --- utils.h | 13 +++++++------ diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch index 024479ca7d..ea30559384 100644 --- a/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch +++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/0002-Fix-printf-format-errors.patch @@ -5,6 +5,7 @@ Subject: [PATCH 2/2] Fix printf format errors error: format not a string literal and no format arguments +Upstream-Status: Pending Signed-off-by: Khem Raj <raj.khem@gmail.com> --- main.c | 4 ++-- diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch index 9b268b7ed6..2738ba70e8 100644 --- a/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch +++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/dont-use-internal-configs.patch @@ -1,3 +1,8 @@ +Fix build on aarch64 + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + Index: cdparanoia-III-10.2/configure.in =================================================================== --- cdparanoia-III-10.2.orig/configure.in diff --git a/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch b/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch index 06ee82099d..96c5dda31c 100644 --- a/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch +++ b/meta-multimedia/recipes-multimedia/cdparanoia/files/out-of-tree-build.patch @@ -1,3 +1,8 @@ +Fix build out of tree builds + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + Index: cdparanoia-III-10.2/Makefile.in =================================================================== --- cdparanoia-III-10.2.orig/Makefile.in diff --git a/meta-multimedia/recipes-multimedia/dav1d/dav1d_1.4.1.bb b/meta-multimedia/recipes-multimedia/dav1d/dav1d_1.4.1.bb new file mode 100644 index 0000000000..08607acd85 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/dav1d/dav1d_1.4.1.bb @@ -0,0 +1,17 @@ +SUMMARY = "dav1d AV1 decoder" +DESCRIPTION = "Targeted to be small, portable and fast." +HOMEPAGE = "https://code.videolan.org/videolan/dav1d" +SECTION = "multimedia" +LICENSE = "BSD-2-Clause" + +LIC_FILES_CHKSUM = "file://COPYING;md5=c8055cfe7548dfdaa3a6dc45d8793669" + +SRC_URI = "git://code.videolan.org/videolan/dav1d.git;protocol=https;branch=master" +SRCREV = "872e470ebf3e65b0b956f3a70329e885a2df1c2a" + +S = "${WORKDIR}/git" + +DEPENDS:append:x86 = " nasm-native" +DEPENDS:append:x86-64 = " nasm-native" + +inherit meson pkgconfig diff --git a/meta-multimedia/recipes-multimedia/dca/dcadec/0001-define-BASELIB-make-variable.patch b/meta-multimedia/recipes-multimedia/dca/dcadec/0001-define-BASELIB-make-variable.patch new file mode 100644 index 0000000000..adce802bc8 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/dca/dcadec/0001-define-BASELIB-make-variable.patch @@ -0,0 +1,31 @@ +From 18cc69460d2a0c756880bd54fda36afb0173ea02 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 19 Dec 2019 19:47:36 -0800 +Subject: [PATCH] define BASELIB make variable + +This helps to override the default libdir from environment + +Upstream-Status: Submitted [https://github.com/foo86/dcadec/pull/61] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index a503698..8f323be 100644 +--- a/Makefile ++++ b/Makefile +@@ -7,8 +7,9 @@ API_PATCH = 0 + CFLAGS := -std=gnu99 -D_FILE_OFFSET_BITS=64 -Wall -Wextra -O3 -ffast-math -g -MMD $(CFLAGS) + + PREFIX ?= /usr/local ++BASELIB ?= lib + BINDIR ?= $(PREFIX)/bin +-LIBDIR ?= $(PREFIX)/lib ++LIBDIR ?= $(PREFIX)/$(BASELIB) + INCLUDEDIR ?= $(PREFIX)/include + + SRC_DIR := $(realpath $(dir $(lastword $(MAKEFILE_LIST)))) +-- +2.24.1 + diff --git a/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb b/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb index 45b53c1191..ddd4c26efe 100644 --- a/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb +++ b/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb @@ -1,17 +1,19 @@ SUMMARY = "DTS Coherent Acoustics decoder with support for HD extensions" -LICENSE = "LGPLv2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING.LGPLv2.1;md5=4fbd65380cdd255951079008b364516c" SRCREV = "b93deed1a231dd6dd7e39b9fe7d2abe05aa00158" -SRC_URI = "git://github.com/foo86/dcadec.git;protocol=http" +SRC_URI = "git://github.com/foo86/dcadec.git;protocol=https;branch=master \ + file://0001-define-BASELIB-make-variable.patch \ + " S = "${WORKDIR}/git" inherit lib_package -EXTRA_OEMAKE = "CONFIG_SHARED=1" +EXTRA_OEMAKE = "CONFIG_SHARED=1 PREFIX=${prefix} BASELIB=${baselib}" do_install() { - oe_runmake install DESTDIR="${D}" PREFIX="${prefix}" + oe_runmake install DESTDIR="${D}" } diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb index f23bc6ca81..bed5af9bf3 100644 --- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb +++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-connector-dbus_0.3.0.bb @@ -1,18 +1,20 @@ SUMMARY = "D-Bus connector for dLeyna libraries" HOMEPAGE = "https://01.org/dleyna/" -LICENSE = "LGPLv2.1+" +LICENSE = "LGPL-2.1-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ file://src/connector-dbus.c;endline=21;md5=0a1695cef53beefc36651de439f643b5" DEPENDS = "glib-2.0 dbus dleyna-core" -SRC_URI = "git://github.com/01org/${BPN}.git" +SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https" SRCREV = "de913c35e5c936e2d40ddbd276ee902cd802bd3a" S = "${WORKDIR}/git" inherit autotools pkgconfig -FILES_${PN} += "${libdir}/dleyna-1.0/connectors/*.so" -FILES_${PN}-dev += "${libdir}/dleyna-1.0/connectors/*.la" -FILES_${PN}-dbg += "${libdir}/dleyna-1.0/connectors/.debug/*.so" +FILES:${PN} += "${libdir}/dleyna-1.0/connectors/*.so" +FILES:${PN}-dev += "${libdir}/dleyna-1.0/connectors/*.la" +FILES:${PN}-dbg += "${libdir}/dleyna-1.0/connectors/.debug/*.so" + +SKIP_RECIPE[dleyna-connector-dbus] ?= "Upstream is dead moreover needs porting to work with latest gupnp >= 1.2" diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb index a3b2793721..8aaab7893e 100644 --- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb +++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-core_0.6.0.bb @@ -5,14 +5,18 @@ e.g., dleyna-server. In brief, it provides APIs for logging, error, settings \ and task management and an IPC asbstraction API." HOMEPAGE = "https://01.org/dleyna/" -LICENSE = "LGPLv2.1+" +LICENSE = "LGPL-2.1-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ - file://libdleyna/core/core.c;endline=21;md5=139cba0c634344abc9456694fbb5083b" + file://libdleyna/core/core.c;endline=21;md5=68602998351825b0844aae34c684c54e" DEPENDS = "glib-2.0 gupnp" -SRC_URI = "git://github.com/01org/${BPN}.git" -SRCREV = "27a3786ec013f64fd58243410a60798f824acec3" +PV .= "+git" + +SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https" +SRCREV = "1c6853f5bc697dc0a8774fd70dbc915c4dbe7c5b" S = "${WORKDIR}/git" inherit autotools pkgconfig + +SKIP_RECIPE[dleyna-core] ?= "Upstream is dead moreover needs porting to work with latest gupnp >= 1.2" diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch new file mode 100644 index 0000000000..8f54658a11 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer/0001-add-gupnp-1.2-API-support.patch @@ -0,0 +1,123 @@ +From 7c945e7960cf7dffd9dd0bb5f7ec6bee4dc0bca3 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 18 Feb 2020 14:17:55 -0800 +Subject: [PATCH] add gupnp 1.2 API support + +Takes from https://git.archlinux.org/svntogit/packages.git/tree/trunk/gupnp-1.2.diff?h=packages/dleyna-renderer +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 4 +-- + libdleyna/renderer/device.c | 51 +++++++++++++++++++++++++++++++++++-- + libdleyna/renderer/upnp.c | 4 +-- + 3 files changed, 53 insertions(+), 6 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 271ee92..364659d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -38,8 +38,8 @@ LT_LANG([C]) + PKG_PROG_PKG_CONFIG(0.16) + PKG_CHECK_MODULES([GLIB], [glib-2.0 >= 2.28]) + PKG_CHECK_MODULES([GIO], [gio-2.0 >= 2.28]) +-PKG_CHECK_MODULES([GSSDP], [gssdp-1.0 >= 0.13.2]) +-PKG_CHECK_MODULES([GUPNP], [gupnp-1.0 >= 0.20.5]) ++PKG_CHECK_MODULES([GSSDP], [gssdp-1.2 >= 1.2.0]) ++PKG_CHECK_MODULES([GUPNP], [gupnp-1.2 >= 1.2.0]) + PKG_CHECK_MODULES([GUPNPAV], [gupnp-av-1.0 >= 0.11.5]) + PKG_CHECK_MODULES([GUPNPDLNA], [gupnp-dlna-2.0 >= 0.9.4]) + PKG_CHECK_MODULES([SOUP], [libsoup-2.4 >= 2.28.2]) +diff --git a/libdleyna/renderer/device.c b/libdleyna/renderer/device.c +index 783fb52..c7b9fc3 100644 +--- a/libdleyna/renderer/device.c ++++ b/libdleyna/renderer/device.c +@@ -2121,6 +2121,53 @@ exit: + return; + } + ++typedef struct ++{ ++ GMainLoop *loop; ++ GUPnPServiceIntrospection *introspection; ++ GError **error; ++} GetIntrospectionAsyncData; ++ ++static void ++get_introspection_async_cb (GUPnPServiceInfo *info, ++ GUPnPServiceIntrospection *introspection, ++ const GError *error, ++ gpointer user_data) ++{ ++ GetIntrospectionAsyncData *data = user_data; ++ data->introspection = introspection; ++ if (data->error) ++ *data->error = g_error_copy (error); ++ g_main_loop_quit (data->loop); ++} ++ ++static GUPnPServiceIntrospection * ++_gupnp_service_info_get_introspection (GUPnPServiceInfo *info, ++ GError **error) ++{ ++ GetIntrospectionAsyncData data; ++ GMainContext *context; ++ ++ context = g_main_context_new (); ++ data.loop = g_main_loop_new (context, FALSE); ++ data.error = error; ++ ++ g_main_context_push_thread_default (context); ++ ++ gupnp_service_info_get_introspection_async (info, ++ get_introspection_async_cb, ++ &data); ++ ++ g_main_loop_run (data.loop); ++ ++ g_main_context_pop_thread_default (context); ++ ++ g_main_loop_unref (data.loop); ++ g_main_context_unref (context); ++ ++ return data.introspection; ++} ++ + static gboolean prv_get_av_service_states_values(GUPnPServiceProxy *av_proxy, + GVariant **mpris_tp_speeds, + GPtrArray **upnp_tp_speeds, +@@ -2147,7 +2194,7 @@ static gboolean prv_get_av_service_states_values(GUPnPServiceProxy *av_proxy, + weak_ref = av_proxy; + g_object_add_weak_pointer(G_OBJECT(av_proxy), &weak_ref); + +- introspection = gupnp_service_info_get_introspection( ++ introspection = _gupnp_service_info_get_introspection( + GUPNP_SERVICE_INFO(av_proxy), + &error); + +@@ -2215,7 +2262,7 @@ static gboolean prv_get_rc_service_states_values(GUPnPServiceProxy *rc_proxy, + weak_ref = rc_proxy; + g_object_add_weak_pointer(G_OBJECT(rc_proxy), &weak_ref); + +- introspection = gupnp_service_info_get_introspection( ++ introspection = _gupnp_service_info_get_introspection( + GUPNP_SERVICE_INFO(rc_proxy), + &error); + +diff --git a/libdleyna/renderer/upnp.c b/libdleyna/renderer/upnp.c +index ac1b08a..b762226 100644 +--- a/libdleyna/renderer/upnp.c ++++ b/libdleyna/renderer/upnp.c +@@ -243,8 +243,8 @@ static void prv_server_unavailable_cb(GUPnPControlPoint *cp, + + udn = gupnp_device_info_get_udn((GUPnPDeviceInfo *)proxy); + +- ip_address = gupnp_context_get_host_ip( +- gupnp_control_point_get_context(cp)); ++ ip_address = gssdp_client_get_host_ip( ++ GSSDP_CLIENT(gupnp_control_point_get_context(cp))); + + if (!udn || !ip_address) + goto on_error; +-- +2.25.1 + diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb index b30aee9fbe..a385a50de7 100644 --- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb +++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb @@ -4,14 +4,16 @@ that allow clients to discover and manipulate Digital Media Renderers. \ An implementation of such a service for linux is also included." HOMEPAGE = "https://01.org/dleyna/" -LICENSE = "LGPLv2.1+" +LICENSE = "LGPL-2.1-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ file://libdleyna/renderer/server.c;endline=21;md5=f51acd4757fb6a779a87122c43cf1346" DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 dleyna-core" -RDEPENDS_${PN} = "dleyna-connector-dbus" +RDEPENDS:${PN} = "dleyna-connector-dbus" -SRC_URI = "git://github.com/01org/${BPN}.git" +SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https \ + file://0001-add-gupnp-1.2-API-support.patch \ + " SRCREV = "50fd1ec9d51328e7dea98874129dc8d6fe3ea1dd" S = "${WORKDIR}/git" @@ -19,5 +21,7 @@ inherit autotools pkgconfig CFLAGS += " -I${S}" -FILES_${PN} += "${datadir}/dbus-1" -FILES_${PN}-dev += "${libdir}/${PN}/*.so" +FILES:${PN} += "${datadir}/dbus-1" +FILES:${PN}-dev += "${libdir}/${BPN}/*.so" + +SKIP_RECIPE[dleyna-renderer] ?= "Upstream is dead moreover needs porting to work with latest gupnp >= 1.2" diff --git a/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb index a8e5406d0a..b0a347f252 100644 --- a/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb +++ b/meta-multimedia/recipes-multimedia/dleyna/dleyna-server_0.6.0.bb @@ -4,18 +4,21 @@ allow clients to discover, browse and manipulate Digital Media Servers. \ An implementation of such a service for linux is also included." HOMEPAGE = "https://01.org/dleyna/" -LICENSE = "LGPLv2.1+" +LICENSE = "LGPL-2.1-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c \ file://libdleyna/server/server.c;endline=22;md5=437455d8aeff69ebd0996a76c67397bb" DEPENDS = "glib-2.0 gssdp gupnp gupnp-av gupnp-dlna libsoup-2.4 libxml2 dleyna-core" -RDEPENDS_${PN} = "dleyna-connector-dbus" +RDEPENDS:${PN} = "dleyna-connector-dbus" -SRC_URI = "git://github.com/01org/${BPN}.git" -SRCREV = "776950d5d96ac9dbf5c5c47bde8ac06f50a3cf46" +PV .= "+git" +SRC_URI = "git://github.com/01org/${BPN}.git;branch=master;protocol=https" +SRCREV = "eb895ae82715e9889a948ffa810c0f828b4f4c76" S = "${WORKDIR}/git" inherit autotools pkgconfig -FILES_${PN} += "${datadir}/dbus-1" -FILES_${PN}-dev += "${libdir}/${PN}/*.so" +FILES:${PN} += "${datadir}/dbus-1" +FILES:${PN}-dev += "${libdir}/${BPN}/*.so" + +SKIP_RECIPE[dleyna-server] ?= "Upstream is dead moreover needs porting to work with latest gupnp >= 1.2" diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb b/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb new file mode 100644 index 0000000000..f9115d819b --- /dev/null +++ b/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.20140321.bb @@ -0,0 +1,99 @@ +SUMMARY = "Linux DVB API applications and utilities" +HOMEPAGE = "http://www.linuxtv.org" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +SRC_URI = "https://www.linuxtv.org/hg/dvb-apps/archive/3d43b280298c.tar.bz2;downloadfilename=${BPN}-3d43b280298c.tar.bz2 \ + file://dvb-scan-table \ + file://0001-Fix-generate-keynames.patch \ + file://0003-handle-static-shared-only-build.patch \ + file://0004-Makefile-remove-test.patch \ + file://0005-libucsi-optimization-removal.patch \ + file://0006-CA_SET_PID.patch \ + file://0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch \ + " +SRC_URI[sha256sum] = "f39e2f0ebed7e32bce83522062ad4d414f67fccd5df1b647618524497e15e057" +S = "${WORKDIR}/${BPN}-3d43b280298c" + +inherit perlnative + +export enable_static="no" + +export PERL_USE_UNSAFE_INC = "1" + +do_configure() { + sed -i -e s:/usr/include:${STAGING_INCDIR}:g util/av7110_loadkeys/generate-keynames.sh +} +do_install() { + make DESTDIR=${D} install + install -d ${D}/${bindir} + install -d ${D}/${docdir}/dvb-apps + install -d ${D}/${docdir}/dvb-apps/scan + install -d ${D}/${docdir}/dvb-apps/szap + chmod a+rx ${D}/${libdir}/*.so* + cp -R --no-dereference --preserve=mode,links ${S}/util/szap/channels-conf* ${D}/${docdir}/dvb-apps/szap/ + cp -R --no-dereference --preserve=mode,links ${S}/util/szap/README ${D}/${docdir}/dvb-apps/szap/ + cp -R --no-dereference --preserve=mode,links ${UNPACKDIR}/dvb-scan-table/* ${D}/usr/share/dvb +} + +PACKAGES =+ "dvb-evtest dvb-evtest-dbg \ + dvbapp-tests dvbapp-tests-dbg \ + dvbdate dvbdate-dbg \ + dvbtraffic dvbtraffic-dbg \ + dvbnet dvbnet-dbg \ + dvb-scan dvb-scan-dbg dvb-scan-data \ + dvb-azap dvb-azap-dbg \ + dvb-czap dvb-czap-dbg \ + dvb-szap dvb-szap-dbg \ + dvb-tzap dvb-tzap-dbg \ + dvb-femon dvb-femon-dbg \ + dvb-zap-data" +PACKAGES =+ "libdvbapi libdvbcfg libdvben50221 \ + libesg libucsi libdvbsec" + +RDEPENDS:dvbdate =+ "libdvbapi libucsi" +RDEPENDS:dvbtraffic =+ "libdvbapi" +RDEPENDS:dvb-scan =+ "libdvbapi libdvbcfg libdvbsec" +RDEPENDS:dvb-apps =+ "libdvbapi libdvbcfg libdvbsec libdvben50221 libucsi" +RDEPENDS:dvb-femon =+ "libdvbapi" +RDEPENDS:dvbnet =+ "libdvbapi" + +RCONFLICTS:dvb-evtest = "evtest" + +FILES:${PN} = "${bindir} ${datadir}/dvb" +FILES:${PN}-doc = "" +FILES:${PN}-dev = "${includedir}" +FILES:dvb-evtest = "${bindir}/evtest" +FILES:dvb-evtest-dbg = "${bindir}/.debug/evtest" +FILES:dvbapp-tests = "${bindir}/*test* " +FILES:dvbapp-tests-dbg = "${bindir}/.debug/*test*" +FILES:dvbdate = "${bindir}/dvbdate" +FILES:dvbdate-dbg = "${bindir}/.debug/dvbdate" +FILES:dvbtraffic = "${bindir}/dvbtraffic" +FILES:dvbtraffic-dbg = "${bindir}/.debug/dvbtraffic" +FILES:dvbnet = "${bindir}/dvbnet" +FILES:dvbnet-dbg = "${bindir}/.debug/dvbnet" +FILES:dvb-scan = "${bindir}/*scan " +FILES:dvb-scan-dbg = "${bindir}/.debug/*scan" +FILES:dvb-scan-data = "${docdir}/dvb-apps/scan" +FILES:dvb-azap = "${bindir}/azap" +FILES:dvb-azap-dbg = "${bindir}/.debug/azap" +FILES:dvb-czap = "${bindir}/czap" +FILES:dvb-czap-dbg = "${bindir}/.debug/czap" +FILES:dvb-szap = "${bindir}/szap" +FILES:dvb-szap-dbg = "${bindir}/.debug/szap" +FILES:dvb-tzap = "${bindir}/tzap" +FILES:dvb-tzap-dbg = "${bindir}/.debug/tzap" +FILES:dvb-femon = "${bindir}/femon" +FILES:dvb-femon-dbg = "${bindir}/.debug/femon" +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, 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) +} + +TARGET_CC_ARCH += "${LDFLAGS}" diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb b/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb deleted file mode 100644 index 3f491181de..0000000000 --- a/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb +++ /dev/null @@ -1,100 +0,0 @@ -SUMMARY = "Linux DVB API applications and utilities" -HOMEPAGE = "http://www.linuxtv.org" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -SRCREV = "3d43b280298c39a67d1d889e01e173f52c12da35" - -SRC_URI = "hg://linuxtv.org/hg;module=dvb-apps;protocol=http \ - file://dvb-scan-table \ - file://0001-Fix-generate-keynames.patch \ - file://0003-handle-static-shared-only-build.patch \ - file://0004-Makefile-remove-test.patch \ - file://0005-libucsi-optimization-removal.patch \ - file://0006-CA_SET_PID.patch \ - " - -S = "${WORKDIR}/${BPN}" - -inherit perlnative - -export enable_static="no" - -do_configure() { - sed -i -e s:/usr/include:${STAGING_INCDIR}:g util/av7110_loadkeys/generate-keynames.sh -} -do_install() { - make DESTDIR=${D} install - install -d ${D}/${bindir} - install -d ${D}/${docdir}/dvb-apps - install -d ${D}/${docdir}/dvb-apps/scan - install -d ${D}/${docdir}/dvb-apps/szap - chmod a+rx ${D}/${libdir}/*.so* - cp -R --no-dereference --preserve=mode,links ${S}/util/szap/channels-conf* ${D}/${docdir}/dvb-apps/szap/ - cp -R --no-dereference --preserve=mode,links ${S}/util/szap/README ${D}/${docdir}/dvb-apps/szap/ - cp -R --no-dereference --preserve=mode,links ${WORKDIR}/dvb-scan-table/* ${D}/usr/share/dvb -} - -PACKAGES =+ "dvb-evtest dvb-evtest-dbg \ - dvbapp-tests dvbapp-tests-dbg \ - dvbdate dvbdate-dbg \ - dvbtraffic dvbtraffic-dbg \ - dvbnet dvbnet-dbg \ - dvb-scan dvb-scan-dbg dvb-scan-data \ - dvb-azap dvb-azap-dbg \ - dvb-czap dvb-czap-dbg \ - dvb-szap dvb-szap-dbg \ - dvb-tzap dvb-tzap-dbg \ - dvb-femon dvb-femon-dbg \ - dvb-zap-data" -PACKAGES =+ "libdvbapi libdvbcfg libdvben50221 \ - libesg libucsi libdvbsec" - -RDEPENDS_dvbdate =+ "libdvbapi libucsi" -RDEPENDS_dvbtraffic =+ "libdvbapi" -RDEPENDS_dvb-scan =+ "libdvbapi libdvbcfg libdvbsec" -RDEPENDS_dvb-apps =+ "libdvbapi libdvbcfg libdvbsec libdvben50221 libucsi" -RDEPENDS_dvb-femon =+ "libdvbapi" -RDEPENDS_dvbnet =+ "libdvbapi" - -RCONFLICTS_dvb-evtest = "evtest" - -FILES_${PN} = "${bindir} ${datadir}/dvb" -FILES_${PN}-doc = "" -FILES_${PN}-dev = "${includedir}" -FILES_dvb-evtest = "${bindir}/evtest" -FILES_dvb-evtest-dbg = "${bindir}/.debug/evtest" -FILES_dvbapp-tests = "${bindir}/*test* " -FILES_dvbapp-tests-dbg = "${bindir}/.debug/*test*" -FILES_dvbdate = "${bindir}/dvbdate" -FILES_dvbdate-dbg = "${bindir}/.debug/dvbdate" -FILES_dvbtraffic = "${bindir}/dvbtraffic" -FILES_dvbtraffic-dbg = "${bindir}/.debug/dvbtraffic" -FILES_dvbnet = "${bindir}/dvbnet" -FILES_dvbnet-dbg = "${bindir}/.debug/dvbnet" -FILES_dvb-scan = "${bindir}/*scan " -FILES_dvb-scan-dbg = "${bindir}/.debug/*scan" -FILES_dvb-scan-data = "${docdir}/dvb-apps/scan" -FILES_dvb-azap = "${bindir}/azap" -FILES_dvb-azap-dbg = "${bindir}/.debug/azap" -FILES_dvb-czap = "${bindir}/czap" -FILES_dvb-czap-dbg = "${bindir}/.debug/czap" -FILES_dvb-szap = "${bindir}/szap" -FILES_dvb-szap-dbg = "${bindir}/.debug/szap" -FILES_dvb-tzap = "${bindir}/tzap" -FILES_dvb-tzap-dbg = "${bindir}/.debug/tzap" -FILES_dvb-femon = "${bindir}/femon" -FILES_dvb-femon-dbg = "${bindir}/.debug/femon" -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) -} - -INSANE_SKIP_${PN} = "ldflags" -INSANE_SKIP_${PN}-dev = "ldflags" - -TARGET_CC_ARCH += "${LDFLAGS}" diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch index 498607d97d..f3d14354b4 100644 --- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch +++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-Fix-generate-keynames.patch @@ -5,6 +5,7 @@ symbols. However, when cross-compiling, the include path points somewhere else. Allow the user to pass CROSS_ROOT to point to the root of the cross-compilation environment. +Upstream-Status: Inappropriate [Cross-compile specific] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> --- diff -rup dvb-apps-83c746462ccb.orig/util/av7110_loadkeys/generate-keynames.sh dvb-apps-83c746462ccb/util/av7110_loadkeys/generate-keynames.sh diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch new file mode 100644 index 0000000000..8ff1e029b0 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch @@ -0,0 +1,28 @@ +From d6817dbaf407f65dd4af12c51736153fae8b217f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 21 Dec 2019 08:36:11 -0800 +Subject: [PATCH] dvbdate: Remove Obsoleted stime API calls + +stime() has been deprecated in glibc 2.31+ its recommended to +replaced with clock_settime() + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + util/dvbdate/dvbdate.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +--- a/util/dvbdate/dvbdate.c ++++ b/util/dvbdate/dvbdate.c +@@ -309,7 +309,10 @@ int atsc_scan_date(time_t *rx_time, unsi + */ + int set_time(time_t * new_time) + { +- if (stime(new_time)) { ++ struct timespec s = {0}; ++ s.tv_sec = *new_time; ++ ++ if (clock_settime(CLOCK_REALTIME, &s)) { + perror("Unable to set time"); + return -1; + } diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch index 4dc7c68ac2..ce51084c97 100644 --- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch +++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0003-handle-static-shared-only-build.patch @@ -6,6 +6,7 @@ Subject: [PATCH] Make.rules: Handle static/shared only build Do not build .a library when enable_static is set to "no" Do not build .so library when enable_shared is set to "no" +Upstream-Status: Pending Signed-off-by: Romain Naour <romain.naour@openwide.fr> --- Make.rules | 10 ++++++++-- diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch index 45bfad914c..6ec5b08ccc 100644 --- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch +++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0004-Makefile-remove-test.patch @@ -5,6 +5,7 @@ Subject: [PATCH] Makefile: remove test Tests needs static libraries, remove them for shared only build. +Upstream-Status: Inappropriate [Cross-compile specific] Signed-off-by: Romain Naour <romain.naour@openwide.fr> --- Makefile | 1 - diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch index f12d35bc7e..dbb848c72c 100644 --- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch +++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0005-libucsi-optimization-removal.patch @@ -1,3 +1,8 @@ +Use -O1 with gcc > 6 + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + diff -r 3d43b280298c lib/libucsi/endianops.h --- a/lib/libucsi/endianops.h Fri Mar 21 20:26:36 2014 +0100 +++ b/lib/libucsi/endianops.h Fri Jan 19 06:56:15 2018 +0000 diff --git a/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch b/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch index e100c659e7..59abd32a01 100644 --- a/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch +++ b/meta-multimedia/recipes-multimedia/dvb-apps/files/0006-CA_SET_PID.patch @@ -1,3 +1,7 @@ +Fix build with newer than 4.14 kernels + +Upstream-Status: Inappropriate [OE-specific] +Signed-off-by: Khem Raj <raj.khem@gmail.com> Index: dvb-apps/util/dst-utils/dst_test.c =================================================================== --- dvb-apps.orig/util/dst-utils/dst_test.c diff --git a/meta-multimedia/recipes-multimedia/faac/faac_1.29.9.2.bb b/meta-multimedia/recipes-multimedia/faac/faac_1.29.9.2.bb index 278bda9ff5..1663548b22 100644 --- a/meta-multimedia/recipes-multimedia/faac/faac_1.29.9.2.bb +++ b/meta-multimedia/recipes-multimedia/faac/faac_1.29.9.2.bb @@ -1,6 +1,6 @@ SUMMARY = "Freeware Advanced Audio Coder (MPEG2-AAC, MPEG4-AAC)" SECTION = "libs" -LICENSE = "LGPLv2+" +LICENSE = "LGPL-2.0-or-later" HOMEPAGE = "http://www.audiocoding.com/faac.html" LIC_FILES_CHKSUM = "file://COPYING;md5=3bf50002aefd002f49e7bb854063f7e7 \ file://libfaac/coder.h;beginline=5;endline=17;md5=fa1fd6a5fa8cdc877d63a12530d273e0" @@ -18,9 +18,9 @@ SRC_URI[sha256sum] = "d45f209d837c49dae6deebcdd87b8cc3b04ea290880358faecf5e77377 PACKAGES =+ "lib${BPN} lib${BPN}-dev" -FILES_${PN} = " ${bindir}/faac " -FILES_lib${BPN} = " ${libdir}/*.so.*" -FILES_lib${BPN}-dev = " \ +FILES:${PN} = " ${bindir}/faac " +FILES:lib${BPN} = " ${libdir}/*.so.*" +FILES:lib${BPN}-dev = " \ ${includedir} \ ${libdir}/*.so \ ${libdir}/*.la \ diff --git a/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.2.bb b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.2.bb new file mode 100644 index 0000000000..55475b40f1 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.2.bb @@ -0,0 +1,22 @@ +SUMMARY = "FDK-AAC audio codec" + +DESCRIPTION = "The Fraunhofer FDK AAC Codec Library for Android \ +(\"FDK AAC Codec\") is software that implements the MPEG \ +Advanced Audio Coding (\"AAC\") encoding and decoding scheme \ +for digital audio." + +HOMEPAGE = "https://www.iis.fraunhofer.de/en/ff/amm/impl.html" + +LICENSE = "Fraunhofer_FDK_AAC_Codec_Library_for_Android" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://NOTICE;md5=5985e1e12f4afa710d64ed7bfd291875" + +SRC_URI = "git://github.com/mstorsjo/fdk-aac.git;protocol=https;branch=master" +SRCREV = "801f67f671929311e0c9952c5f92d6e147c7b003" + +S = "${WORKDIR}/git" + +SRC_URI[md5sum] = "fef453b5d6ee28ff302c600b8cded3e7" +SRC_URI[sha256sum] = "07c2a64b098eb48b2e9d729d5e778c08f7d22f28adc8da7c3f92c58da1cbbd8e" + +inherit autotools diff --git a/meta-multimedia/recipes-multimedia/flite/flite_2.2.bb b/meta-multimedia/recipes-multimedia/flite/flite_2.2.bb new file mode 100644 index 0000000000..0a7680a8c4 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/flite/flite_2.2.bb @@ -0,0 +1,27 @@ +SUMMARY = "Flite: a small run-time speech synthesis engine" +HOMEPAGE = "http://cmuflite.org" +SECTION = "libs/multimedia" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=b3b732d1349633a53e69356607fd2d6c" + +inherit autotools-brokensep + +DEPENDS += "alsa-lib chrpath-replacement-native" + +SRC_URI = "git://github.com/festvox/flite.git;protocol=https;branch=master" + +SRCREV = "e9e2e37c329dbe98bfeb27a1828ef9a71fa84f88" + +S = "${WORKDIR}/git" + +EXTRA_OECONF += "--enable-shared" + +do_configure:append() { + sed -i '/$(INSTALL) -m 755 $(BINDIR)\/flite_time $(DESTDIR)$(INSTALLBINDIR)/d' ${S}/main/Makefile +} + +do_install:append() { + chown -R root:root ${D}${libdir}/* +} +# | make[1]: *** No rule to make target 'flite_voice_list.c', needed by 'all'. Stop. +PARALLEL_MAKE = "" diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth-native_git.bb b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth-native_git.bb deleted file mode 100644 index a95c4c42a8..0000000000 --- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth-native_git.bb +++ /dev/null @@ -1,10 +0,0 @@ -require ${BPN}.inc - -inherit native - -OECMAKE_SOURCEPATH = "${S}/src/gentables" - -do_install() { - install -d ${D}/${bindir} - install -m 755 ${B}/make_tables.exe ${D}/${bindir}/ -} diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc deleted file mode 100644 index 234be02caf..0000000000 --- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth.inc +++ /dev/null @@ -1,12 +0,0 @@ -SUMMARY = "Fluidsynth is a software synthesizer" -HOMEPAGE = "http://www.fluidsynth.org/" -SECTION = "libs/multimedia" -LICENSE = "LGPL-2.1" -LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594" - -SRC_URI = "git://github.com/FluidSynth/fluidsynth.git" -SRCREV = "7f11a9bf5c7304e04309a6ec9fc515ee815524bf" -S = "${WORKDIR}/git" -PV = "2.0.5" - -inherit cmake pkgconfig lib_package diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch deleted file mode 100644 index 44612275c1..0000000000 --- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 81ea820b155e887b13ea5986c3407cf93b2737f6 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com> -Date: Wed, 2 Jan 2019 18:42:46 +0100 -Subject: [PATCH] Do not build gentables helper - we have to use native variant -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> ---- - src/CMakeLists.txt | 11 ----------- - 1 file changed, 11 deletions(-) - -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index a0ba53d1..1c626717 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -359,14 +359,3 @@ else ( MACOSX_FRAMEWORK ) - ) - install ( FILES ${public_main_HEADER} DESTINATION ${INCLUDE_INSTALL_DIR} ) - endif ( MACOSX_FRAMEWORK ) -- --# ******* Auto Generated Lookup Tables ****** -- --include(ExternalProject) --ExternalProject_Add(gentables -- DOWNLOAD_COMMAND "" -- SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/gentables -- BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/gentables -- INSTALL_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/gentables/make_tables.exe "${CMAKE_BINARY_DIR}/" --) --add_dependencies(libfluidsynth-OBJ gentables) --- -2.14.5 - diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch index 94daa951c6..f7debc5ad4 100644 --- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch +++ b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch @@ -17,15 +17,15 @@ Upstream-Status: Submitted [1] Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> --- - src/synth/fluid_synth.c | 69 ++++++++++++++++++++++++++++++++++--------------- + src/synth/fluid_synth.c | 69 ++++++++++++++++++++++++++++------------- 1 file changed, 48 insertions(+), 21 deletions(-) diff --git a/src/synth/fluid_synth.c b/src/synth/fluid_synth.c -index 0df620d3..379f8216 100644 +index 1eb5d737..6c876efa 100644 --- a/src/synth/fluid_synth.c +++ b/src/synth/fluid_synth.c -@@ -3306,10 +3306,10 @@ fluid_synth_program_reset(fluid_synth_t *synth) - * Synthesize a block of floating point audio to separate audio buffers (multichannel rendering). First effect channel used by reverb, second for chorus. +@@ -3628,10 +3628,10 @@ fluid_synth_program_reset(fluid_synth_t *synth) + * * @param synth FluidSynth instance * @param len Count of audio frames to synthesize - * @param left Array of float buffers to store left channel of planar audio (as many as \c synth.audio-channels buffers, each of \c len in size) @@ -38,8 +38,8 @@ index 0df620d3..379f8216 100644 + * @param fx_right Since 1.1.7: If not \c NULL, array of float buffers to store right effect channels (size: dito). Since 2.0.3: NULL allowed for array entry * @return #FLUID_OK on success, #FLUID_FAILED otherwise * - * @note Should only be called from synthesis thread. -@@ -3386,15 +3386,27 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, + * First effect channel used by reverb, second for chorus. +@@ -3719,15 +3719,27 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, for(i = 0; i < synth->audio_channels; i++) { #ifdef WITH_FLOAT @@ -71,7 +71,7 @@ index 0df620d3..379f8216 100644 } #endif //WITH_FLOAT -@@ -3404,12 +3416,12 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, +@@ -3737,12 +3749,12 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, { #ifdef WITH_FLOAT @@ -86,7 +86,7 @@ index 0df620d3..379f8216 100644 { FLUID_MEMCPY(fx_right[i], &fx_right_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT + synth->cur], bytes); } -@@ -3417,7 +3429,7 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, +@@ -3750,7 +3762,7 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, #else //WITH_FLOAT int j; @@ -95,7 +95,7 @@ index 0df620d3..379f8216 100644 { for(j = 0; j < num; j++) { -@@ -3425,7 +3437,7 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, +@@ -3758,7 +3770,7 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, } } @@ -104,7 +104,7 @@ index 0df620d3..379f8216 100644 { for(j = 0; j < num; j++) { -@@ -3456,15 +3468,30 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, +@@ -3789,15 +3801,30 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, for(i = 0; i < synth->audio_channels; i++) { #ifdef WITH_FLOAT @@ -140,7 +140,7 @@ index 0df620d3..379f8216 100644 } #endif //WITH_FLOAT -@@ -3474,12 +3501,12 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, +@@ -3807,12 +3834,12 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, { #ifdef WITH_FLOAT @@ -155,7 +155,7 @@ index 0df620d3..379f8216 100644 { FLUID_MEMCPY(fx_right[i] + count, &fx_right_in[i * FLUID_BUFSIZE * FLUID_MIXER_MAX_BUFFERS_DEFAULT], bytes); } -@@ -3487,7 +3514,7 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, +@@ -3820,7 +3847,7 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, #else //WITH_FLOAT int j; @@ -164,7 +164,7 @@ index 0df620d3..379f8216 100644 { for(j = 0; j < num; j++) { -@@ -3495,7 +3522,7 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, +@@ -3828,7 +3855,7 @@ fluid_synth_nwrite_float(fluid_synth_t *synth, int len, } } diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_2.3.4.bb b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_2.3.4.bb new file mode 100644 index 0000000000..dc05832e80 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_2.3.4.bb @@ -0,0 +1,39 @@ +SUMMARY = "Fluidsynth is a software synthesizer" +HOMEPAGE = "http://www.fluidsynth.org/" +SECTION = "libs/multimedia" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://LICENSE;md5=fc178bcd425090939a8b634d1d6a9594" + +DEPENDS = "glib-2.0" + +SRC_URI = " \ + git://github.com/FluidSynth/fluidsynth.git;branch=master;protocol=https \ + file://0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch \ + file://0003-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch \ +" +SRCREV = "5ecdc4568e45123216c6888892caad07918ef127" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig lib_package + +EXTRA_OECMAKE = "-Denable-floats=ON -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" + +do_install:append() { + sed -i -e 's|${STAGING_LIBDIR}|${libdir}|g' ${D}${libdir}/pkgconfig/fluidsynth.pc + sed -i -e 's|${STAGING_LIBDIR}|${libdir}|g' ${D}${libdir}/cmake/fluidsynth/FluidSynthTargets.cmake +} + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio pipewire systemd alsa dbus', d)}" +PACKAGECONFIG[alsa] = "-Denable-alsa=ON,-Denable-alsa=OFF,alsa-lib" +PACKAGECONFIG[dbus] = "-Denable-dbus=ON,-Denable-dbus=OFF,dbus" +PACKAGECONFIG[jack] = "-Denable-jack=ON,-Denable-jack=OFF,jack" +PACKAGECONFIG[oss] = "-Denable-oss=ON,-Denable-oss=OFF" +PACKAGECONFIG[pipewire] = "-Denable-pipewire=ON,-Denable-pipewire=OFF,pipewire" +PACKAGECONFIG[portaudio] = "-Denable-portaudio=ON,-Denable-portaudio=OFF,portaudio-v19" +PACKAGECONFIG[profiling] = "-Denable-profiling=ON,-Denable-profiling=OFF" +PACKAGECONFIG[pulseaudio] = "-Denable-pulseaudio=ON,-Denable-pulseaudio=OFF,pulseaudio" +PACKAGECONFIG[readline] = "-Denable-readline=ON,-Denable-readline=OFF,readline" +PACKAGECONFIG[sdl] = "-Denable-sdl2=ON,-Denable-sdl2=OFF,libsdl2" +PACKAGECONFIG[sndfile] = "-Denable-libsndfile=ON,-Denable-libsndfile=OFF,libsndfile1" +PACKAGECONFIG[systemd] = "-Denable-systemd=ON,-Denable-systemd=OFF,systemd" diff --git a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb b/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb deleted file mode 100644 index 4f600a218d..0000000000 --- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb +++ /dev/null @@ -1,22 +0,0 @@ -require ${BPN}.inc - -DEPENDS = "${BPN}-native alsa-lib ncurses glib-2.0" - -SRC_URI += " \ - file://0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch \ - file://0002-fluid_synth_nwrite_float-Allow-zero-pointer-for-left.patch \ - file://0003-Use-ARM-NEON-accelaration-for-float-multithreaded-se.patch \ -" - -EXTRA_OECMAKE = "-Denable-floats=ON -DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')}" - -do_configure_append() { - make_tables.exe ${B}/ -} - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}" -PACKAGECONFIG[sndfile] = "-Denable-libsndfile=ON,-Denable-libsndfile=OFF,libsndfile1" -PACKAGECONFIG[jack] = "-Denable-jack=ON,-Denable-jack=OFF,jack" -PACKAGECONFIG[pulseaudio] = "-Denable-pulseaudio=ON,-Denable-pulseaudio=OFF,pulseaudio" -PACKAGECONFIG[portaudio] = "-Denable-portaudio=ON,-Denable-portaudio=OFF,portaudio-v19" -PACKAGECONFIG[profiling] = "-Denable-profiling=ON,-Denable-profiling=OFF" diff --git a/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service b/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service deleted file mode 100644 index 1b5a3ad3e9..0000000000 --- a/meta-multimedia/recipes-multimedia/gerbera/files/gerbera.service +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Start Gerbera, an UPnP media server -After=multi-user.target network-online.target -Wants=network-online.target - -[Service] -ExecStart=/usr/bin/gerbera -Environment='HOME=/root' -Type=simple -RemainAfterExit=yes - -[Install] -WantedBy=multi-user.target
\ No newline at end of file diff --git a/meta-multimedia/recipes-multimedia/gerbera/gerbera_2.0.0.bb b/meta-multimedia/recipes-multimedia/gerbera/gerbera_2.0.0.bb new file mode 100644 index 0000000000..fea14fd840 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gerbera/gerbera_2.0.0.bb @@ -0,0 +1,30 @@ +Description = "Gerbera is a UPnP media server which allows you to stream your digital media through your home network and consume it on a variety of UPnP compatible devices." + +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=25cdec9afe3f1f26212ead6bd2f7fac8" + +SRC_URI = "git://github.com/gerbera/gerbera.git;protocol=https;branch=master" +SRCREV = "2f26e656b16fb86132f27d1f8d47c6055041430d" + +S = "${WORKDIR}/git" + +DEPENDS = "pugixml sqlite3 zlib fmt spdlog util-linux-libuuid libupnp libnsl2" + +SYSTEMD_SERVICE:${PN} = "gerbera.service" + +inherit cmake pkgconfig systemd + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} curl taglib inotify exif matroska magic js" +PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=TRUE,-DWITH_SYSTEMD=FALSE,systemd" +PACKAGECONFIG[taglib] = "-DWITH_TAGLIB=TRUE,-DWITH_TAGLIB=FALSE,taglib" +PACKAGECONFIG[curl] = "-DWITH_CURL=TRUE,-DWITH_CURL=FALSE,curl" +PACKAGECONFIG[inotify] = "-DWITH_INOTIFY=TRUE,-DWITH_INOTIFY=FALSE,inotify-tools" +PACKAGECONFIG[avcodec] = "-DWITH_AVCODEC=TRUE,-DWITH_AVCODEC=FALSE,ffmpeg" +PACKAGECONFIG[wavpack] = "-DWITH_WAVPACK=TRUE,-DWITH_WAVPACK=FALSE,wavpack" +PACKAGECONFIG[exif] = "-DWITH_EXIF=TRUE,-DWITH_EXIF=FALSE,libexif" +PACKAGECONFIG[exiv2] = "-DWITH_EXIV2=TRUE,-DWITH_EXIV2=FALSE,exiv2" +PACKAGECONFIG[matroska] = "-DWITH_MATROSKA=TRUE,-DWITH_MATROSKA=FALSE,libebml libmatroska" +PACKAGECONFIG[magic] = "-DWITH_MAGIC=TRUE,-DWITH_MAGIC=FALSE,file" +PACKAGECONFIG[js] = "-DWITH_JS=TRUE,-DWITH_JS=FALSE,duktape" + +SECURITY_CFLAGS:riscv64 = "${SECURITY_NOPIE_CFLAGS}" diff --git a/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb b/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb deleted file mode 100644 index 9c78da0d23..0000000000 --- a/meta-multimedia/recipes-multimedia/gerbera/gerbera_git.bb +++ /dev/null @@ -1,33 +0,0 @@ -Description = "Gerbera - An UPnP media server" - -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://LICENSE.md;md5=25cdec9afe3f1f26212ead6bd2f7fac8" - -SRC_URI = "git://github.com/v00d00/gerbera.git;protocol=https \ - file://gerbera.service \ -" - -PV = "1.3.0+git${SRCPV}" -# v1.3.0 -SRCREV = "c7a81fb41e446ee67b3eac90e2caecd6de651a16" - -S = "${WORKDIR}/git" - -DEPENDS = "expat zlib curl libupnp e2fsprogs sqlite3 libnsl2" - -SYSTEMD_SERVICE_${PN} = "gerbera.service" - -inherit cmake systemd - -PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)}" -PACKAGECONFIG[systemd] = "-DWITH_SYSTEMD=TRUE,-DWITH_SYSTEMD=FALSE,systemd" -PACKAGECONFIG[taglib] = "-DWITH_TAGLIB=TRUE,-DWITH_TAGLIB=FALSE,taglib" -EXTRA_OECMAKE = "-DWITH_JS=FALSE -DWITH_MAGIC=FALSE -DWITH_EXIF=FALSE -DLIBUUID_INCLUDE_DIRS=${STAGING_INCDIR} -DLIBUUID_LIBRARIES=-luuid" - -do_install_append() { - install -d ${D}/root/.config/ - install -d ${D}${systemd_system_unitdir} - install -m 0644 ${WORKDIR}/gerbera.service ${D}${systemd_system_unitdir}/ -} - -FILES_${PN} += "/root/.config/" diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark/0001-tracers-Fix-buffer-overflow.patch b/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-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-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb deleted file mode 100644 index 5409f32045..0000000000 --- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.2.1.bb +++ /dev/null @@ -1,38 +0,0 @@ -SUMMARY = "Gst-Shark Tracers" -DESCRIPTION = "Benchmarks and profiling tools for GStreamer" -HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=GstShark" -SECTION = "multimedia" -LICENSE = "GPLv2+" - -LIC_FILES_CHKSUM = "file://COPYING;md5=e1caa368743492879002ad032445fa97" - -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad " - -SRCBRANCH ?= "master" - -SRCREV_base = "a60b3996fe3376d42334fc89014e9d6f6af62899" -SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" - -SRC_URI = " \ - git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH};name=base \ - git://anongit.freedesktop.org/git/gstreamer/common.git;protocol=https;destsuffix=git/common;name=common; \ - " - -S = "${WORKDIR}/git" - -PACKAGECONFIG_CONFARGS = " \ - --disable-graphviz \ - --enable-gtk-doc=no \ -" - -FILES_${PN} += "\ - ${libdir}/gstreamer-1.0/libgstsharktracers.so \ - ${libdir}/gstreamer-1.0/libgstsharktracers.la \ -" - -inherit autotools gettext - -do_configure() { - ${S}/autogen.sh --noconfigure - oe_runconf -} diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.8.1.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.8.1.bb new file mode 100644 index 0000000000..dc43bed63b --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.8.1.bb @@ -0,0 +1,34 @@ +SUMMARY = "Gst-Shark Tracers" +DESCRIPTION = "Benchmarks and profiling tools for GStreamer" +HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=GstShark" +SECTION = "multimedia" + +LICENSE = "GPL-2.0-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=e1caa368743492879002ad032445fa97" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad " + +SRCBRANCH ?= "master" + +SRCREV = "09ba05865dacd2824b5b40ab75a4b9545fcc1366" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" +SRCREV_FORMAT = "default_common" +SRC_URI = " \ + git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH} \ + git://gitlab.freedesktop.org/gstreamer/common.git;protocol=https;branch=master;destsuffix=git/common;name=common \ + file://0001-tracers-Fix-buffer-overflow.patch \ +" + +S = "${WORKDIR}/git" + +EXTRA_OECONF += " \ + --disable-graphviz \ + --enable-gtk-doc=no \ +" + +FILES:${PN} += "\ + ${libdir}/gstreamer-1.0/libgstsharktracers.so \ + ${libdir}/gstreamer-1.0/libgstsharktracers.la \ +" + +inherit autotools gettext pkgconfig gtk-doc diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc deleted file mode 100644 index 455d896844..0000000000 --- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd.inc +++ /dev/null @@ -1,21 +0,0 @@ -DESCRIPTION = "Gstreamer Daemon 1.0" -SUMMARY = "GStreamer framework for controlling audio and video streaming using TCP connection messages" -HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=Gstd-1.0" -SECTION = "multimedia" -LICENSE = "GPLv2+" - -DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-rtsp-server json-glib libdaemon" - -SRCBRANCH ?= "master" -SRCREV = "3526d0ffdbccc375db7d5fe33a72c68b134657c2" -SRC_URI = "git://git@github.com/RidgeRun/gstd-1.x.git;protocol=https;branch=${SRCBRANCH} \ - file://0001-gstd-yocto-compatibility.patch \ - file://0001-Look-for-gtk-doc.make-in-builddir.patch \ - " -S = "${WORKDIR}/git" - -inherit autotools pkgconfig gettext gtk-doc - -do_configure_prepend() { - sed -i -e "s|include \$(top_builddir)/docs/gtk-doc.make||g" ${S}/docs/reference/gstd/Makefile.am -} diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-Look-for-gtk-doc.make-in-builddir.patch b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-Look-for-gtk-doc.make-in-builddir.patch deleted file mode 100644 index 5a2861642d..0000000000 --- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-Look-for-gtk-doc.make-in-builddir.patch +++ /dev/null @@ -1,32 +0,0 @@ -From a84e9a6e1dca685eda072d58b58556b5b35cb4c8 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 10 Sep 2018 21:16:50 -0700 -Subject: [PATCH] Look for gtk-doc.make in builddir - -this is evident when S != B because gtkdocize -generates this file and its actually built into -build area - -Upstream-Status: Submitted [https://github.com/RidgeRun/gstd-1.x/pull/39] - -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - docs/reference/gstd/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/docs/reference/gstd/Makefile.am b/docs/reference/gstd/Makefile.am -index f860fa1..62870da 100644 ---- a/docs/reference/gstd/Makefile.am -+++ b/docs/reference/gstd/Makefile.am -@@ -66,7 +66,7 @@ GTKDOC_LIBS=$(top_builddir)/gstd/libgstd-core.la - - - # This includes the standard gtk-doc make rules, copied by gtkdocize. --include $(top_srcdir)/docs/gtk-doc.make -+include $(top_builddir)/docs/gtk-doc.make - - # Comment this out if you want 'make check' to test you doc status - # and run some sanity checks --- -2.18.0 - diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch deleted file mode 100644 index ffcc6ea94c..0000000000 --- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch +++ /dev/null @@ -1,25 +0,0 @@ -From eaf51d6420c63713f62025583681007c3502d387 Mon Sep 17 00:00:00 2001 -From: Carlos <carlos.rodriguez@ridgerun.com> -Date: Fri, 15 Dec 2017 10:14:05 -0600 -Subject: [PATCH] gstd:yocto compatibility - ---- - gstd/Makefile.am | 2 +- - 3 files changed, 9 insertions(+), 3 deletions(-) - -diff --git a/gstd/Makefile.am b/gstd/Makefile.am -index 13c551d..11fe202 100644 ---- a/gstd/Makefile.am -+++ b/gstd/Makefile.am -@@ -49,7 +49,7 @@ bin_PROGRAMS = gstd - - gstd_SOURCES = gstd.c - gstd_CFLAGS = $(GST_CFLAGS) $(GIO_CFLAGS) $(GJSON_CFLAGS) --gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GJSON_LIBS) -Wl,-rpath -Wl,$(libdir) -+gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GJSON_LIBS) - gstd_LDADD = libgstd-core.la - - gstdincludedir = $(includedir)/gstd --- -1.9.1 - diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb deleted file mode 100644 index 94f6b575b9..0000000000 --- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_1.0.bb +++ /dev/null @@ -1,3 +0,0 @@ -require gstd.inc - -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb new file mode 100644 index 0000000000..87792491ae --- /dev/null +++ b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb @@ -0,0 +1,40 @@ +DESCRIPTION = "Gstreamer Daemon" +SUMMARY = "GStreamer framework for controlling audio and video streaming using TCP connection messages" +HOMEPAGE = "https://developer.ridgerun.com/wiki/index.php?title=Gstd-1.0" +SECTION = "multimedia" +LICENSE = "LGPL-2.1-or-later" +LIC_FILES_CHKSUM = "file://COPYING;md5=c71b653a0f608a58cdc5693ae57126bc" + +DEPENDS = "gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad gstreamer1.0-rtsp-server json-glib libdaemon libsoup-2.4 jansson" + +SRCBRANCH ?= "master" +SRCREV = "a011affa67f240cbc7aaff5b00fdfd6124bdaece" +SRC_URI = "git://git@github.com/RidgeRun/gstd-1.x.git;protocol=https;branch=${SRCBRANCH}" +S = "${WORKDIR}/git" + +# Remove the +really when upstream version is > 1.0 +PV = "1.0+really0.15.0" + +GTKDOC_MESON_OPTION = "enable-gtk-doc" + +inherit meson pkgconfig gettext gtk-doc python3native python3-dir python3targetconfig + +do_install:append() { + rmdir ${D}${exec_prefix}${localstatedir}/run/${BPN} ${D}${exec_prefix}${localstatedir}/run \ + ${D}${exec_prefix}${localstatedir}/log/${BPN} ${D}${exec_prefix}${localstatedir}/log \ + ${D}${exec_prefix}${localstatedir} + rm -f ${D}${bindir}/gst-client ${D}${bindir}/gstd-client + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${sysconfdir}/tmpfiles.d + echo "d /run/${BPN} - - - -" \ + > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + echo "d ${localstatedir}/log/${BPN} 0755 root root -" \ + >> ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf + fi + ln -sf gst-client-1.0 ${D}${bindir}/gst-client + ln -sf gst-client-1.0 ${D}${bindir}/gstd-client +} +PACKAGES =+ "${PN}-python" + +FILES:${PN} += "${systemd_user_unitdir}" +FILES:${PN}-python = "${PYTHON_SITEPACKAGES_DIR}/*" diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-all.bb index 9f2fda9fef..dc76265a9b 100644 --- a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image.bb +++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-all.bb @@ -1,3 +1,3 @@ -require meta-multimedia-image-base.bb +require recipes-core/images/core-image-base.bb IMAGE_INSTALL += "packagegroup-meta-multimedia" diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb deleted file mode 100644 index 249f989a4b..0000000000 --- a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-base.bb +++ /dev/null @@ -1,7 +0,0 @@ -SUMMARY = "meta-multimedia build test image" - -IMAGE_INSTALL = "packagegroup-core-boot" - -LICENSE = "MIT" - -inherit core-image diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-all.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-all.bb new file mode 100644 index 0000000000..8accba1bff --- /dev/null +++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-all.bb @@ -0,0 +1,25 @@ +DESCRIPTION = "Recipe to trigger execution of all meta-multimedia ptest images." +HOMEPAGE = "https://www.openembedded.org/" + +LICENSE = "MIT" + +inherit features_check nopackages +REQUIRED_DISTRO_FEATURES = "ptest" + +require conf/include/ptest-packagelists-meta-multimedia.inc + +# Include the full set of ptests +PTESTS_META_MULTIMEDIA = "${PTESTS_FAST_META_MULTIMEDIA} ${PTESTS_SLOW_META_MULTIMEDIA} ${PTESTS_PROBLEMS_META_MULTIMEDIA}" + +do_testimage[noexec] = "1" +do_testimage[depends] = "${@' '.join(['meta-multimedia-image-ptest-'+x+':do_testimage' for x in d.getVar('PTESTS_META_MULTIMEDIA').split()])}" + +do_build[depends] = "${@' '.join(['meta-multimedia-image-ptest-'+x+':do_build' for x in d.getVar('PTESTS_META_MULTIMEDIA').split()])}" + +# normally image.bbclass would do this +EXCLUDE_FROM_WORLD = "1" + +python () { + if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d): + bb.build.addtask("do_testimage", "", "", d) +} diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-fast.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-fast.bb new file mode 100644 index 0000000000..6abd1a9ea3 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest-fast.bb @@ -0,0 +1,5 @@ +require meta-multimedia-image-ptest-all.bb + +DESCRIPTION = "Recipe to trigger execution of all fast meta-multimedia ptest images." + +PTESTS_META_MULTIMEDIA = "${PTESTS_FAST_META_MULTIMEDIA}" diff --git a/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest.bb b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest.bb new file mode 100644 index 0000000000..887396d4cc --- /dev/null +++ b/meta-multimedia/recipes-multimedia/images/meta-multimedia-image-ptest.bb @@ -0,0 +1,40 @@ +inherit features_check +REQUIRED_DISTRO_FEATURES = "ptest" + +require recipes-core/images/core-image-minimal.bb +require conf/include/ptest-packagelists-meta-multimedia.inc + +SUMMARY = "meta-multimedia ptest test image" + +DESCRIPTION += "Also including the ${MCNAME} ptest package." +HOMEPAGE = "https://www.openembedded.org/" + +PTESTS_META_MULTIMEDIA = "${PTESTS_SLOW_META_MULTIMEDIA} ${PTESTS_FAST_META_MULTIMEDIA} ${PTESTS_PROBLEMS_META_MULTIMEDIA}" + +IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh" + +BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in d.getVar('PTESTS_META_MULTIMEDIA').split()])}" + +# The image can be sufficiently large (~1.8GB) that we need to be careful that it fits in a live +# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of the +# box) and explicitly add up to 1500MB. +IMAGE_OVERHEAD_FACTOR = "1.0" +IMAGE_ROOTFS_EXTRA_SPACE = "324288" +# If a particular ptest needs more space, it can be customized: +#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288" + +# ptests need more memory than standard to avoid the OOM killer +QB_MEM = "-m 1024" +# If a particular ptest needs more memroy, it can be customized: +#QB_MEM:virtclass-mcextend-<pn> = "-m 4096" + +TEST_SUITES = "ping ssh parselogs ptest" + +# Sadly at the moment the full set of ptests is not robust enough and sporadically fails in random places +PTEST_EXPECT_FAILURE = "1" + +python () { + if not d.getVar("MCNAME"): + raise bb.parse.SkipRecipe("No class extension set") +} + diff --git a/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb b/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb new file mode 100644 index 0000000000..bc2e858b42 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb @@ -0,0 +1,19 @@ +# Copyright (C) 2020 Madhavan Krishnan <madhavan.krishnan@linaro.org> +# Released under the MIT license (see COPYING.MIT for the terms) + +DESCRIPTION = "libcamera image" +LICENSE = "MIT" + +require meta-multimedia-image-all.bb + +IMAGE_INSTALL += " \ + kernel-modules \ + xkeyboard-config \ +" + +IMAGE_INSTALL:append = "\ + libcamera \ + gstreamer1.0-plugins-good \ + gstreamer1.0-plugins-base \ +" + diff --git a/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb b/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb deleted file mode 100644 index 7836bae691..0000000000 --- a/meta-multimedia/recipes-multimedia/juce/nativesdk-projucer_git.bb +++ /dev/null @@ -1,3 +0,0 @@ -inherit nativesdk -include projucer.inc -BBCLASSEXTEND = "nativesdk" diff --git a/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb b/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb deleted file mode 100644 index fb54fb9e98..0000000000 --- a/meta-multimedia/recipes-multimedia/juce/projucer-native_git.bb +++ /dev/null @@ -1,3 +0,0 @@ -inherit native -include projucer.inc -BBCLASSEXTEND = "native" diff --git a/meta-multimedia/recipes-multimedia/juce/projucer.inc b/meta-multimedia/recipes-multimedia/juce/projucer.inc index 63ed9e90e0..b60cba1dd6 100644 --- a/meta-multimedia/recipes-multimedia/juce/projucer.inc +++ b/meta-multimedia/recipes-multimedia/juce/projucer.inc @@ -3,24 +3,42 @@ DESCRIPTION = "Projucer is used to build and generate support files and build in JUCE supported platforms, including Linux and Embedded Linux." SECTION = "utils" HOMEPAGE = "http://juce.com/" -LICENSE = "GPLv3" -LIC_FILES_CHKSUM = "file://README.md;md5=65c50b4ff3522b99436da100536ccd1c" +LICENSE = "GPL-3.0-only" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eff9da77cdb81a803f8cbca6c16801d8" -inherit pkgconfig +LICENSE_FLAGS = "commercial" -DEPENDS = "libx11 libxext libxinerama libxrandr libxcursor freetype alsa-lib curl" +inherit pkgconfig features_check -SRCREV = "4f41f28b47d01b939559123d145b4e5860528bb7" +REQUIRED_DISTRO_FEATURES = "x11" + +DEPENDS = "libx11 libxext libxinerama libxrandr libxcursor freetype alsa-lib curl bzip2 libpng harfbuzz glib-2.0 libpcre" +DEPENDS:append:libc-musl = " libexecinfo" + +SRCREV = "2f980209cc4091a4490bb1bafc5d530f16834e58" BRANCH = "master" -SRC_URI = "git://github.com/WeAreROLI/JUCE.git;protocol=https;branch=${BRANCH}" +SRC_URI = "git://github.com/WeAreROLI/JUCE.git;protocol=https;branch=${BRANCH} \ + file://0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch \ + " S = "${WORKDIR}/git" -PV = "5.0.1" +PV = "6.1.6" JUCE_PROJUCER_BUILD_PATH = "${B}/extras/Projucer/Builds" JUCE_PROJUCER_MAKEFILE_PATH = "${JUCE_PROJUCER_BUILD_PATH}/LinuxMakefile" JUCE_PROJUCER = "${JUCE_PROJUCER_MAKEFILE_PATH}/build/Projucer" +# export dummy TARGET_ARCH that doesn't do much, +# but disables "-march=native" optimization which does +# not work on cross builds +EXTRA_OEMAKE = "V=1 JUCE_ARCH_LABEL=${TARGET_ARCH} TARGET_ARCH='-g'" + +LDFLAGS:append:mipsarcho32 = " -latomic" +LDFLAGS:append:powerpc = " -latomic" +LDFLAGS:append:riscv64 = " -latomic" +LDFLAGS:append:riscv32 = " -latomic" +LDFLAGS:append:armv5 = " -latomic" + do_configure() { cd ${JUCE_PROJUCER_MAKEFILE_PATH} CONFIG=Release oe_runmake clean @@ -35,3 +53,5 @@ do_install() { install -d ${D}${bindir} install -m 0755 ${JUCE_PROJUCER} ${D}${bindir} } +# error: '_NL_IDENTIFICATION_LANGUAGE' was not declared in this scope +COMPATIBLE_HOST:libc-musl = "null" diff --git a/meta-multimedia/recipes-multimedia/juce/projucer/0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch b/meta-multimedia/recipes-multimedia/juce/projucer/0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch new file mode 100644 index 0000000000..3efef247ae --- /dev/null +++ b/meta-multimedia/recipes-multimedia/juce/projucer/0001-StandardHeader-Include-utility-for-GCC-12-compatibil.patch @@ -0,0 +1,21 @@ +From 85822fcb87dd531d5e8ed1c8230c67bddb56f66d Mon Sep 17 00:00:00 2001 +From: reuk <reuk@users.noreply.github.com> +Date: Wed, 6 Apr 2022 15:43:09 +0100 +Subject: [PATCH] StandardHeader: Include <utility> for GCC 12 compatibility + +Upstream-Status: Backport [https://github.com/juce-framework/JUCE/commit/ce8aff22c31c4d932a8414bc6f6185381dc970db] +Signed-off-by: Yoann Congal <yoann.congal@smile.fr> +--- + modules/juce_core/system/juce_StandardHeader.h | 1 + + 1 file changed, 1 insertion(+) + +--- a/modules/juce_core/system/juce_StandardHeader.h ++++ b/modules/juce_core/system/juce_StandardHeader.h +@@ -64,6 +64,7 @@ + #include <typeindex>
+ #include <unordered_map>
+ #include <unordered_set>
++#include <utility>
+ #include <vector>
+ #include <set>
+
diff --git a/meta-multimedia/recipes-multimedia/juce/projucer_git.bb b/meta-multimedia/recipes-multimedia/juce/projucer_git.bb new file mode 100644 index 0000000000..f408f6f1bc --- /dev/null +++ b/meta-multimedia/recipes-multimedia/juce/projucer_git.bb @@ -0,0 +1,2 @@ +include projucer.inc +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb b/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb index 4c0976e43d..b30f398e87 100644 --- a/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb +++ b/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb @@ -4,7 +4,7 @@ DESCRIPTION = "Libao is a cross-platform audio library that allows programs to \ SECTION = "multimedia" HOMEPAGE = "https://www.xiph.org/ao/" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" SRC_URI="http://downloads.xiph.org/releases/ao/${BP}.tar.gz" @@ -16,19 +16,18 @@ inherit autotools PACKAGES += "${BPN}-ckport" PACKAGES_DYNAMIC += "^${BPN}-plugin-.*" -do_install_append () { +do_install:append () { find "${D}" -name '*.la' -exec rm -f {} + } -python populate_packages_prepend () { +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)}" -PACKAGECONFIG[esound] = "--enable-esd,--disable-esd,esound" PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio" -FILES_${BPN}-ckport = "${libdir}/ckport" +FILES:${BPN}-ckport = "${libdir}/ckport" diff --git a/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb b/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb index f5b0d48c46..02a90c547d 100644 --- a/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb +++ b/meta-multimedia/recipes-multimedia/libavc1394/libavc1394_0.5.4.bb @@ -4,9 +4,9 @@ HOMEPAGE = "http://sourceforge.net/projects/libavc1394/" SECTION = "libs/multimedia" DEPENDS = "libraw1394" -DEPENDS_append_libc-musl = " argp-standalone" +DEPENDS:append:libc-musl = " argp-standalone" -LICENSE = "LGPLv2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING;md5=dcf3c825659e82539645da41a7908589" SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz" @@ -15,4 +15,4 @@ SRC_URI[sha256sum] = "7cb1ff09506ae911ca9860bef4af08c2403f3e131f6c913a2cbd6ddca4 inherit autotools pkgconfig -LDFLAGS_append_libc-musl = " -largp" +LDFLAGS:append:libc-musl = " -largp" diff --git a/meta-multimedia/recipes-multimedia/libavif/libavif_1.0.1.bb b/meta-multimedia/recipes-multimedia/libavif/libavif_1.0.1.bb new file mode 100644 index 0000000000..885758b6a4 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libavif/libavif_1.0.1.bb @@ -0,0 +1,16 @@ +SUMMARY = "This library aims to be a friendly, portable C implementation of the AV1 Image File Format" +HOMEPAGE = "https://github.com/AOMediaCodec/libavif" +SECTION = "libs" +LICENSE = "BSD-2-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=c528b75b07425b5c1d2e34de98c397b5" + +SRC_URI = "git://github.com/AOMediaCodec/libavif.git;protocol=https;branch=v1.0.x" + +S = "${WORKDIR}/git" +SRCREV = "d1c26facaf5a8a97919ceee06814d05d10e25622" + +DEPENDS = "dav1d" + +inherit cmake + +EXTRA_OECMAKE += "-DAVIF_CODEC_DAV1D=ON" diff --git a/meta-multimedia/recipes-multimedia/libavtp/libavtp/0001-provide-64bit-host-to-network-conversion-macros.patch b/meta-multimedia/recipes-multimedia/libavtp/libavtp/0001-provide-64bit-host-to-network-conversion-macros.patch new file mode 100644 index 0000000000..e432ccca42 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libavtp/libavtp/0001-provide-64bit-host-to-network-conversion-macros.patch @@ -0,0 +1,43 @@ +From cdbbe227594665145e9309a9ecb7d90aad070aab Mon Sep 17 00:00:00 2001 +From: Max Krummenacher <max.krummenacher@toradex.com> +Date: Wed, 1 Jun 2022 15:53:55 +0000 +Subject: [PATCH] provide 64bit host to network conversion macros + +musl dosn't include the macros which convert 64-bit integers +between host and network endianness from arpa/inet.h as glibc does. + +Use this patch to include endian.h in util.h if compiling for musl. + +Prevents: +| [2/8] aarch64-tdx-linux-musl-gcc ... -o libavtp.so.0.2.0.p/src_avtp_stream.c.o -c ../git/src/avtp_stream.c +| ../git/src/avtp_stream.c: In function 'avtp_stream_pdu_get': +| ../git/src/avtp_stream.c:116:24: warning: implicit declaration of function 'be64toh' [-Wimplicit-function-declaration] +| 116 | *val = be64toh(pdu->stream_id); +| | ^~~~~~~ +| ../git/src/avtp_stream.c: In function 'avtp_stream_pdu_set': +| ../git/src/avtp_stream.c:199:34: warning: implicit declaration of function 'htobe64' [-Wimplicit-function-declaration] +| 199 | pdu->stream_id = htobe64(value); + +Upstream-Status: Inappropriate [musl specific] + +Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com> +--- + src/util.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/util.h b/src/util.h +index 8b50625..e6fd2ef 100644 +--- a/src/util.h ++++ b/src/util.h +@@ -27,6 +27,8 @@ + + #pragma once + ++#include <endian.h> ++ + #define BIT(n) (1ULL << n) + + #define BITMASK(len) (BIT(len) - 1) +-- +2.20.1 + diff --git a/meta-multimedia/recipes-multimedia/libavtp/libavtp_0.2.0.bb b/meta-multimedia/recipes-multimedia/libavtp/libavtp_0.2.0.bb new file mode 100644 index 0000000000..98f8e5b84d --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libavtp/libavtp_0.2.0.bb @@ -0,0 +1,16 @@ +SUMMARY = "Implements Audio Video Transport Protocol (AVTP)" +DESCRIPTION = "Open source implementation of Audio Video Transport Protocol (AVTP) \ + specified in IEEE 1722-2016 spec." +HOMEPAGE = "https://github.com/Avnu/libavtp" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE;md5=7fcb4331e23e45e171cd5693c1ff7d3e" + +SRC_URI = "git://github.com/Avnu/libavtp.git;branch=master;protocol=https" +SRC_URI:append:libc-musl = " file://0001-provide-64bit-host-to-network-conversion-macros.patch" +SRCREV = "3599a5bf2d18fc3ae89b64f208d8380e6ee3a866" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig + +EXTRA_OEMESON = "-Dtests=disabled" diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-ipu3-Use-posix-basename.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-ipu3-Use-posix-basename.patch new file mode 100644 index 0000000000..9e4adf3d8d --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-ipu3-Use-posix-basename.patch @@ -0,0 +1,71 @@ +From 35d2acc61b1b27c0810a80cd21de65f29dc79df7 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 24 Mar 2024 11:27:21 -0700 +Subject: [PATCH] ipu3: Use posix basename + +musl does not implement GNU basename extention and with latest musl +the prototype from string.h is also removed [1] which now results in +compile errors e.g. + +../git/utils/ipu3/ipu3-pack.c:21:47: error: call to undeclared function 'basename'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] + +These utilities are using this function in usage() which is used just +before program exit. Always use the basename APIs from libgen.h which is +posix implementation + +[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7 + +Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2024-March/041180.html] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + utils/ipu3/ipu3-pack.c | 4 ++-- + utils/ipu3/ipu3-unpack.c | 3 ++- + 2 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/utils/ipu3/ipu3-pack.c b/utils/ipu3/ipu3-pack.c +index decbfc6c..23d2db8b 100644 +--- a/utils/ipu3/ipu3-pack.c ++++ b/utils/ipu3/ipu3-pack.c +@@ -8,6 +8,7 @@ + + #include <errno.h> + #include <fcntl.h> ++#include <libgen.h> + #include <stdint.h> + #include <stdio.h> + #include <string.h> +@@ -15,9 +16,8 @@ + #include <sys/types.h> + #include <unistd.h> + +-static void usage(const char *argv0) ++static void usage(char *argv0) + { +- + printf("Usage: %s input-file output-file\n", basename(argv0)); + printf("Convert unpacked RAW10 Bayer data to the IPU3 packed Bayer formats\n"); + printf("If the output-file '-', output data will be written to standard output\n"); +diff --git a/utils/ipu3/ipu3-unpack.c b/utils/ipu3/ipu3-unpack.c +index 9d2c1200..1505a970 100644 +--- a/utils/ipu3/ipu3-unpack.c ++++ b/utils/ipu3/ipu3-unpack.c +@@ -8,6 +8,7 @@ + + #include <errno.h> + #include <fcntl.h> ++#include <libgen.h> + #include <stdint.h> + #include <stdio.h> + #include <string.h> +@@ -15,7 +16,7 @@ + #include <sys/types.h> + #include <unistd.h> + +-static void usage(const char *argv0) ++static void usage(char *argv0) + { + printf("Usage: %s input-file output-file\n", basename(argv0)); + printf("Unpack the IPU3 raw Bayer format to 16-bit Bayer\n"); +-- +2.44.0 + diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-media_device-Add-bool-return-type-to-unlock.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-media_device-Add-bool-return-type-to-unlock.patch new file mode 100644 index 0000000000..12f034effd --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-media_device-Add-bool-return-type-to-unlock.patch @@ -0,0 +1,59 @@ +From 6914c4fd3d53c0c6ea304123bf57429bb64ec16f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 31 Jan 2024 21:01:27 -0800 +Subject: [PATCH 1/2] media_device: Add bool return type to unlock() + +unlock uses lockf which is marked with __attribute__ +((warn_unused_result)) and compilers warn about it and some treat +-Wunused-result as error with -Werror turned on, It would be good to +check if lockf failed or succeeded, however, that piece is not changed +with this, this fixes build with clang++ 18 + + ../git/src/libcamera/media_device.cpp:167:2: error: ignoring return value of function declared with 'warn_unused_result' attribute [-Werror,-Wunused-result] + 167 | lockf(fd_.get(), F_ULOCK, 0); + | ^~~~~ ~~~~~~~~~~~~~~~~~~~~~ + 1 error generated. + +Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2024-February/040380.html] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + include/libcamera/internal/media_device.h | 2 +- + src/libcamera/media_device.cpp | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/include/libcamera/internal/media_device.h b/include/libcamera/internal/media_device.h +index eb8cfde4..b09dfd16 100644 +--- a/include/libcamera/internal/media_device.h ++++ b/include/libcamera/internal/media_device.h +@@ -33,7 +33,7 @@ public: + bool busy() const { return acquired_; } + + bool lock(); +- void unlock(); ++ bool unlock(); + + int populate(); + bool isValid() const { return valid_; } +diff --git a/src/libcamera/media_device.cpp b/src/libcamera/media_device.cpp +index 2949816b..eaa2fdb0 100644 +--- a/src/libcamera/media_device.cpp ++++ b/src/libcamera/media_device.cpp +@@ -159,12 +159,12 @@ bool MediaDevice::lock() + * + * \sa lock() + */ +-void MediaDevice::unlock() ++bool MediaDevice::unlock() + { + if (!fd_.isValid()) +- return; ++ return false; + +- lockf(fd_.get(), F_ULOCK, 0); ++ return lockf(fd_.get(), F_ULOCK, 0) == 0; + } + + /** +-- +2.43.0 + diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch new file mode 100644 index 0000000000..c336e92548 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch @@ -0,0 +1,43 @@ +From 11cc6dbd45f0880beea64cdc514f57484b90bc39 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 20 Feb 2024 18:44:23 -0800 +Subject: [PATCH] rpi: Use malloc instead of variable length arrays + +Clang-18+ diagnoses this as error + +| ../git/src/ipa/rpi/controller/rpi/alsc.cpp:499:10: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension] | 499 | int xLo[X], xHi[X]; +| | ^ + +Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2024-February/040529.html] +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +s +--- + src/ipa/rpi/controller/rpi/alsc.cpp | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/src/ipa/rpi/controller/rpi/alsc.cpp b/src/ipa/rpi/controller/rpi/alsc.cpp +index 8a205c60..a7d42614 100644 +--- a/src/ipa/rpi/controller/rpi/alsc.cpp ++++ b/src/ipa/rpi/controller/rpi/alsc.cpp +@@ -496,8 +496,8 @@ void resampleCalTable(const Array2D<double> &calTableIn, + * Precalculate and cache the x sampling locations and phases to save + * recomputing them on every row. + */ +- int xLo[X], xHi[X]; +- double xf[X]; ++ int *xLo = (int*)malloc(X), *xHi = (int*)malloc(X); ++ double *xf = (double*)malloc(X); + double scaleX = cameraMode.sensorWidth / + (cameraMode.width * cameraMode.scaleX); + double xOff = cameraMode.cropX / (double)cameraMode.sensorWidth; +@@ -539,6 +539,9 @@ void resampleCalTable(const Array2D<double> &calTableIn, + *(out++) = above * (1 - yf) + below * yf; + } + } ++ free(xf); ++ free(xHi); ++ free(xLo); + } + + /* Calculate chrominance statistics (R/G and B/G) for each region. */ diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera/0002-options-Replace-use-of-VLAs-in-C.patch b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0002-options-Replace-use-of-VLAs-in-C.patch new file mode 100644 index 0000000000..473820653e --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera/0002-options-Replace-use-of-VLAs-in-C.patch @@ -0,0 +1,128 @@ +From 6e4736180fcaffdb06acf52fd3eb50ba5baa3d2a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 31 Jan 2024 21:04:28 -0800 +Subject: [PATCH] options: Replace use of VLAs in C++ + +Clang++ 18 is fussy about this with new warning checks. + + ../git/src/apps/common/options.cpp:882:20: error: variable length arrays in C++ are a Clang extension [-Werror,-Wvla-cxx-extension] + 882 | char shortOptions[optionsMap_.size() * 3 + 2]; + | ^~~~~~~~~~~~~~~~~~~~~~~~~~ + +Therefore replace using VLAs with alloca and malloc/free + +Upstream-Status: Submitted [https://lists.libcamera.org/pipermail/libcamera-devel/2024-February/040381.html] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/apps/common/options.cpp | 12 ++++++++++-- + src/libcamera/ipc_unixsocket.cpp | 13 +++++++++---- + 2 files changed, 19 insertions(+), 6 deletions(-) + +diff --git a/src/apps/common/options.cpp b/src/apps/common/options.cpp +index 4f7e8691..3656f3c1 100644 +--- a/src/apps/common/options.cpp ++++ b/src/apps/common/options.cpp +@@ -879,8 +879,8 @@ OptionsParser::Options OptionsParser::parse(int argc, char **argv) + * Allocate short and long options arrays large enough to contain all + * options. + */ +- char shortOptions[optionsMap_.size() * 3 + 2]; +- struct option longOptions[optionsMap_.size() + 1]; ++ char *shortOptions = (char*)malloc(optionsMap_.size() * 3 + 2); ++ struct option *longOptions = (struct option*)malloc(sizeof(struct option) * (optionsMap_.size() + 1)); + unsigned int ids = 0; + unsigned int idl = 0; + +@@ -935,12 +935,16 @@ OptionsParser::Options OptionsParser::parse(int argc, char **argv) + std::cerr << argv[optind - 1] << std::endl; + + usage(); ++ free(shortOptions); ++ free(longOptions); + return options; + } + + const Option &option = *optionsMap_[c]; + if (!parseValue(option, optarg, &options)) { + usage(); ++ free(shortOptions); ++ free(longOptions); + return options; + } + } +@@ -949,10 +953,14 @@ OptionsParser::Options OptionsParser::parse(int argc, char **argv) + std::cerr << "Invalid non-option argument '" << argv[optind] + << "'" << std::endl; + usage(); ++ free(shortOptions); ++ free(longOptions); + return options; + } + + options.valid_ = true; ++ free(shortOptions); ++ free(longOptions); + return options; + } + +diff --git a/src/libcamera/ipc_unixsocket.cpp b/src/libcamera/ipc_unixsocket.cpp +index 1980d374..3bd861cb 100644 +--- a/src/libcamera/ipc_unixsocket.cpp ++++ b/src/libcamera/ipc_unixsocket.cpp +@@ -8,6 +8,7 @@ + #include "libcamera/internal/ipc_unixsocket.h" + + #include <array> ++#include <cstdint> + #include <poll.h> + #include <string.h> + #include <sys/socket.h> +@@ -247,8 +248,8 @@ int IPCUnixSocket::sendData(const void *buffer, size_t length, + iov[0].iov_base = const_cast<void *>(buffer); + iov[0].iov_len = length; + +- char buf[CMSG_SPACE(num * sizeof(uint32_t))]; +- memset(buf, 0, sizeof(buf)); ++ char *buf = (char*)malloc(CMSG_SPACE(num * sizeof(uint32_t))); ++ memset((void*)buf, 0, sizeof(buf)); + + struct cmsghdr *cmsg = (struct cmsghdr *)buf; + cmsg->cmsg_len = CMSG_LEN(num * sizeof(uint32_t)); +@@ -270,9 +271,11 @@ int IPCUnixSocket::sendData(const void *buffer, size_t length, + int ret = -errno; + LOG(IPCUnixSocket, Error) + << "Failed to sendmsg: " << strerror(-ret); ++ free(buf); + return ret; + } + ++ free(buf); + return 0; + } + +@@ -283,8 +286,8 @@ int IPCUnixSocket::recvData(void *buffer, size_t length, + iov[0].iov_base = buffer; + iov[0].iov_len = length; + +- char buf[CMSG_SPACE(num * sizeof(uint32_t))]; +- memset(buf, 0, sizeof(buf)); ++ char *buf = (char*)malloc(CMSG_SPACE(num * sizeof(uint32_t))); ++ memset((void*)buf, 0, sizeof(buf)); + + struct cmsghdr *cmsg = (struct cmsghdr *)buf; + cmsg->cmsg_len = CMSG_LEN(num * sizeof(uint32_t)); +@@ -305,12 +308,14 @@ int IPCUnixSocket::recvData(void *buffer, size_t length, + if (ret != -EAGAIN) + LOG(IPCUnixSocket, Error) + << "Failed to recvmsg: " << strerror(-ret); ++ free(buf); + return ret; + } + + if (fds) + memcpy(fds, CMSG_DATA(cmsg), num * sizeof(uint32_t)); + ++ free(buf); + return 0; + } + diff --git a/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.2.0.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.2.0.bb new file mode 100644 index 0000000000..45d6be31ec --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libcamera/libcamera_0.2.0.bb @@ -0,0 +1,78 @@ +SUMMARY = "Linux libcamera framework" +SECTION = "libs" + +LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later" + +LIC_FILES_CHKSUM = "\ + file://LICENSES/GPL-2.0-or-later.txt;md5=fed54355545ffd980b814dab4a3b312c \ + file://LICENSES/LGPL-2.1-or-later.txt;md5=2a4f4fd2128ea2f65047ee63fbca9f68 \ +" + +SRC_URI = " \ + git://git.libcamera.org/libcamera/libcamera.git;protocol=https;branch=master \ + file://0001-media_device-Add-bool-return-type-to-unlock.patch \ + file://0002-options-Replace-use-of-VLAs-in-C.patch \ + file://0001-rpi-Use-alloca-instead-of-variable-length-arrays.patch \ + file://0001-ipu3-Use-posix-basename.patch \ +" + +SRCREV = "89227a428a82e724548399d35c98ea89566f9045" + +PE = "1" + +S = "${WORKDIR}/git" + +DEPENDS = "python3-pyyaml-native python3-jinja2-native python3-ply-native python3-jinja2-native udev gnutls chrpath-native libevent libyaml" +DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'qt', 'qtbase qtbase-native', '', d)}" + +PACKAGES =+ "${PN}-gst" + +PACKAGECONFIG ??= "" +PACKAGECONFIG[gst] = "-Dgstreamer=enabled,-Dgstreamer=disabled,gstreamer1.0 gstreamer1.0-plugins-base" + +LIBCAMERA_PIPELINES ??= "auto" + +EXTRA_OEMESON = " \ + -Dpipelines=${LIBCAMERA_PIPELINES} \ + -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 + +do_configure:prepend() { + sed -i -e 's|py_compile=True,||' ${S}/utils/ipc/mojo/public/tools/mojom/mojom/generate/template_expander.py +} + +do_install:append() { + chrpath -d ${D}${libdir}/libcamera.so + chrpath -d ${D}${libexecdir}/libcamera/v4l2-compat.so +} + +do_package:append() { + bb.build.exec_func("do_package_recalculate_ipa_signatures", d) +} + +do_package_recalculate_ipa_signatures() { + local modules + for module in $(find ${PKGD}/usr/lib/libcamera -name "*.so.sign"); do + module="${module%.sign}" + if [ -f "${module}" ] ; then + modules="${modules} ${module}" + fi + done + + ${S}/src/ipa/ipa-sign-install.sh ${B}/src/ipa-priv-key.pem "${modules}" +} + +FILES:${PN} += " ${libexecdir}/libcamera/v4l2-compat.so" +FILES:${PN}-gst = "${libdir}/gstreamer-1.0" + +# libcamera-v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to +# both 32 and 64 bit file APIs. +GLIBC_64BIT_TIME_FLAGS = "" diff --git a/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch b/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch index df0c2355d0..51761eb8c9 100755 --- a/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch +++ b/meta-multimedia/recipes-multimedia/libdc1394/files/install_examples.patch @@ -1,3 +1,8 @@ +Install all examples + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + Index: libdc1394/examples/Makefile.am =================================================================== --- libdc1394.orig/examples/Makefile.am diff --git a/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb b/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.7.bb index 3b3ac83e25..8cac780d64 100755 --- a/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_git.bb +++ b/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.7.bb @@ -1,26 +1,20 @@ SUMMARY = "Capture and control API for IIDC compliant cameras" HOMEPAGE = "http://sourceforge.net/projects/libdc1394/" SECTION = "libs" -LICENSE = "LGPL-2.0" +LICENSE = "LGPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=c848e78d9a4a5cc69906178e4d6fbd64" # libsdl to provide sdl.m4 with AM_PATH_SDL DEPENDS += "libusb1 libraw1394 libsdl \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxv virtual/libx11', '', d)} \ - ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/libgl', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'virtual/egl', '', d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'opengl x11', 'libglu', '', d)} \ " -PV = "2.2.5+gitr${SRCPV}" - -SRCREV = "5e78f51936fd09db0c0f742c7d2c0e5bdbbeed56" - -SRC_URI = "git://git.code.sf.net/p/libdc1394/code;branch=master;protocol=git \ +SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ file://install_examples.patch \ " - -S = "${WORKDIR}/git/${BPN}" - -inherit autotools-brokensep pkgconfig +SRC_URI[sha256sum] = "537ceb78dd3cef271a183f4a176191d1cecf85f025520e6bd3758b0e19e6609f" +inherit autotools pkgconfig EXTRA_OECONF += "--disable-doxygen-doc --disable-examples" diff --git a/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.2.bb b/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.12.bb index cd075ffe1b..3c9f899491 100644 --- a/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.2.bb +++ b/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.12.bb @@ -4,17 +4,18 @@ simple integration into other software." HOMEPAGE = "http://www.libde265.org/" SECTION = "libs/multimedia" -LICENSE = "LGPLv3" +LICENSE = "LGPL-3.0-only & MIT" LICENSE_FLAGS = "commercial" -LIC_FILES_CHKSUM = "file://COPYING;md5=852f345c1c52c9160f9a7c36bb997546" +LIC_FILES_CHKSUM = "file://COPYING;md5=695b556799abb2435c97a113cdca512f" -SRC_URI = "https://github.com/strukturag/libde265/releases/download/v${PV}/${BPN}-${PV}.tar.gz" -SRC_URI[md5sum] = "93520b378df25f3a94e962f2b54872cc" -SRC_URI[sha256sum] = "eaa0348839c2935dd90647d72c6dd4a043e36361cb3c33d2b04df10fbcebd3cb" +SRC_URI = "git://github.com/strukturag/libde265.git;branch=master;protocol=https" +SRCREV = "a267c84707ab264928fa9b86de2ee749c48c318c" + +S = "${WORKDIR}/git" EXTRA_OECONF = "--disable-sherlock265 --disable-dec265" inherit autotools-brokensep pkgconfig PACKAGES =+ "${PN}-tools" -FILES_${PN}-tools = "${bindir}/*" +FILES:${PN}-tools = "${bindir}/*" diff --git a/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb b/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb index 7f042c382f..1e5381bb2c 100644 --- a/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb +++ b/meta-multimedia/recipes-multimedia/libdvbcsa/libdvbcsa_1.1.0.bb @@ -1,11 +1,11 @@ SUMMARY = "Open implementation of the DVB Common Scrambling Algorithm, encrypt and decrypt " SECTION = "libs/multimedia" -LICENSE = "LGPLv2.1+" +LICENSE = "LGPL-2.1-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" SRCREV = "bc6c0b164a87ce05e9925785cc6fb3f54c02b026" -SRC_URI = "git://code.videolan.org/videolan/libdvbcsa.git;protocol=https \ +SRC_URI = "git://code.videolan.org/videolan/libdvbcsa.git;protocol=https;branch=master \ file://libdvbcsa.pc \ " @@ -13,7 +13,7 @@ S = "${WORKDIR}/git" inherit autotools lib_package pkgconfig -do_install_append() { +do_install:append() { install -D -m 0644 ${S}/src/dvbcsa/dvbcsa.h ${D}${includedir}/dvbcsa/dvbcsa.h - install -D -m 0644 ${WORKDIR}/libdvbcsa.pc ${D}${libdir}/pkgconfig/libdvbcsa.pc + install -D -m 0644 ${UNPACKDIR}/libdvbcsa.pc ${D}${libdir}/pkgconfig/libdvbcsa.pc } diff --git a/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb b/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.3.bb index 48b0111047..719fbf91e6 100644 --- a/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.0.bb +++ b/meta-multimedia/recipes-multimedia/libdvbpsi/libdvbpsi_1.3.3.bb @@ -2,11 +2,10 @@ DESCRIPTION = "libdvbpsi is a simple library designed for decoding \ and generation of MPEG TS and DVB PSI tables according to standards \ ISO/IEC 13818 and ITU-T H.222.0." HOMEPAGE = "http://www.videolan.org/developers/libdvbpsi.html" -LICENSE = "LGPLv2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c" SRC_URI = "http://download.videolan.org/pub/libdvbpsi/${PV}/libdvbpsi-${PV}.tar.bz2" -SRC_URI[md5sum] = "2b217039a1299000c39423441f77e76a" -SRC_URI[sha256sum] = "a2fed1d11980662f919bbd1f29e2462719e0f6227e1a531310bd5a706db0a1fe" +SRC_URI[sha256sum] = "02b5998bcf289cdfbd8757bedd5987e681309b0a25b3ffe6cebae599f7a00112" inherit autotools diff --git a/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb b/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb index c2dd96f9d8..766ee02ca2 100644 --- a/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_5.0.3.bb +++ b/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb @@ -1,14 +1,14 @@ SUMMARY = "library for DVD navigation features" SECTION = "libs/multimedia" -LICENSE = "GPLv2+" +LICENSE = "GPL-2.0-or-later" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" DEPENDS = "libdvdread" SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.bz2" -SRC_URI[md5sum] = "e9ea4de3bd8f204e61301d407d09f033" -SRC_URI[sha256sum] = "5097023e3d2b36944c763f1df707ee06b19dc639b2b68fb30113a5f2cbf60b6d" +SRC_URI[md5sum] = "46c46cb0294fbd1fcb8a0181818dad15" +SRC_URI[sha256sum] = "c191a7475947d323ff7680cf92c0fb1be8237701885f37656c64d04e98d18d48" inherit autotools lib_package binconfig pkgconfig -CONFIGUREOPTS_remove = "--disable-silent-rules" +CONFIGUREOPTS:remove = "--disable-silent-rules" diff --git a/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb b/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb index e6079bd752..7c90faa45e 100644 --- a/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb +++ b/meta-multimedia/recipes-multimedia/libiec61883/libiec61883_1.2.0.bb @@ -6,7 +6,7 @@ SECTION = "libs/multimedia" DEPENDS = "libraw1394" -LICENSE = "LGPLv2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = "file://COPYING;md5=771782cb6245c7fbbe74bc0ec059beff" SRC_URI = "https://www.kernel.org/pub/linux/libs/ieee1394/${BPN}-${PV}.tar.xz" diff --git a/meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb b/meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb new file mode 100644 index 0000000000..7f531efc63 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/liblc3/liblc3_1.0.4.bb @@ -0,0 +1,14 @@ +SUMMARY = "Low Complexity Communication Codec (LC3)" +HOMEPAGE = "https://github.com/google/liblc3" +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" + +SRC_URI = "git://github.com/google/liblc3.git;protocol=https;branch=main" + +S = "${WORKDIR}/git" +SRCREV = "1a5938ebaca4f13fe79ce074f5dee079783aa29f" + +inherit pkgconfig meson + +BBCLASSEXTEND = "native nativesdk" + diff --git a/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb b/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.7.3.bb index d14246f32b..8bb49b2f12 100644 --- a/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.3.10.bb +++ b/meta-multimedia/recipes-multimedia/libopenmpt/libopenmpt_0.7.3.bb @@ -1,41 +1,33 @@ SUMMARY = "C and C++ cross-platform library for decoding tracked music files (modules)" DESCRIPTION = "libopenmpt is a cross-platform C++ and C library to decode tracked \ music files (modules) into a raw PCM audio stream. It also comes with openmpt123, a \ -cross-platform command-line or terminal based module file player, and libopenmpt_modplug, \ -a wrapper around libopenmpt that provides an interface that is ABI compatile with \ -libmodplug. libopenmpt is based on the player code of the OpenMPT project." +cross-platform command-line or terminal based module file player. libopenmpt is based \ +on the player code of the OpenMPT project." HOMEPAGE = "https://lib.openmpt.org/libopenmpt/" SECTION = "libs" LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=e804150573f149befef6c07e173f20c3" +LIC_FILES_CHKSUM = "file://LICENSE;md5=59f6e21f42e49919617267ff13a0b232" DEPENDS = "virtual/libiconv" SRC_URI = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${PV}+release.autotools.tar.gz \ file://run-ptest \ " -SRC_URI[md5sum] = "66bbc6fbb5f27a554cb145d805e9ef9d" -SRC_URI[sha256sum] = "14a137b8d1a20e1b6a5e67cbc9467ab7e5e4e67d5aa38a247afc825685c53939" + +SRC_URI[sha256sum] = "2cf8369b7916b09264f3f14b9fb6cef35a6e9bee0328dec4f49d98211ccfd722" S = "${WORKDIR}/libopenmpt-${PV}+release.autotools" inherit autotools pkgconfig ptest PACKAGECONFIG ??= " \ - libopenmpt-modplug openmpt123 \ + openmpt123 \ ${@bb.utils.contains('PTEST_ENABLED', '1', 'tests', '', d)} \ flac mpg123 ogg sndfile vorbis vorbisfile zlib \ ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \ " -# libopenmpt_modplug is a library that wraps libopenmpt calls into -# functions that are ABI compatible with libmodplug. This allows for -# using modplug headers and linking against libopenmpt_modplug -# instead of against the original libmodplug library. -# NOTE: The wrapper is compatible to the ABI from libmodplug version -# 0.8.8 and newer. -PACKAGECONFIG[libopenmpt-modplug] = "--enable-libopenmpt_modplug,--disable-libopenmpt_modplug" PACKAGECONFIG[openmpt123] = "--enable-openmpt123,--disable-openmpt123" PACKAGECONFIG[tests] = "--enable-tests,--disable-tests" @@ -45,22 +37,15 @@ PACKAGECONFIG[mpg123] = "--with-mpg123,--without-mpg123,mpg123" PACKAGECONFIG[ogg] = "--with-ogg,--without-ogg,libogg" PACKAGECONFIG[portaudio] = "--with-portaudio,--without-portaudio,portaudio-v19" PACKAGECONFIG[pulseaudio] = "--with-pulseaudio,--without-pulseaudio,pulseaudio" -PACKAGECONFIG[sdl] = "--with-sdl,--without-sdl,virtual/libsdl" -PACKAGECONFIG[sdl2] = "--with-sdl2,--without-sdl2,virtual/libsdl2" +PACKAGECONFIG[sdl2] = "--with-sdl2,--without-sdl2,libsdl2" PACKAGECONFIG[sndfile] = "--with-sndfile,--without-sndfile,libsndfile1" PACKAGECONFIG[vorbis] = "--with-vorbis,--without-vorbis,libvorbis" PACKAGECONFIG[vorbisfile] = "--with-vorbisfile,--without-vorbisfile,libvorbis" PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib" -# --disable-libmodplug is necessary, since otherwise we'd -# have a collision with the libmodplug package, because of the -# libmodplug.so file. (libmodplug.so from libopenmpt isintended -# to be used as a drop-in replacement, and according to the -# documentation, is not complete.) EXTRA_OECONF += " \ --disable-doxygen-doc \ --disable-examples \ - --disable-libmodplug \ --without-portaudiocpp \ " @@ -79,24 +64,17 @@ do_install_ptest() { install -m 0644 ${S}/libopenmpt/libopenmpt_version.mk ${D}${PTEST_PATH}/libopenmpt } -python __anonymous() { - packageconfig = (d.getVar("PACKAGECONFIG") or "").split() - if ("sdl" in packageconfig) and ("sdl2" in packageconfig): - bb.error("sdl and sdl2 packageconfigs cannot be both enabled") -} - -PACKAGES =+ "${PN}-modplug ${PN}-openmpt123 ${PN}-openmpt123-doc" -FILES_${PN}-modplug = "${libdir}/libopenmpt_modplug.so.*" -FILES_${PN}-openmpt123 = "${bindir}/openmpt123" -FILES_${PN}-openmpt123-doc = "${mandir}/man1/openmpt123*" +PACKAGES =+ "${PN}-openmpt123 ${PN}-openmpt123-doc" +FILES:${PN}-openmpt123 = "${bindir}/openmpt123" +FILES:${PN}-openmpt123-doc = "${mandir}/man1/openmpt123*" # Since version 0.3, libopenmpt uses SemVer 2.0.0 versioning. # The SemVer versioning scheme is incompatible with Debian/Ubuntu # package version names. -DEBIAN_NOAUTONAME_${PN} = "1" -DEBIAN_NOAUTONAME_${PN}-modplug = "1" +DEBIAN_NOAUTONAME:${PN} = "1" -RDEPENDS_${PN}_libc-glibc = " \ +RDEPENDS:${PN}:libc-glibc = " \ + glibc-gconv \ glibc-gconv-cp1252 \ glibc-gconv-ibm437 \ glibc-gconv-iso8859-1 \ diff --git a/meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-Add-support-for-variable-libdir.patch b/meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-Add-support-for-variable-libdir.patch new file mode 100644 index 0000000000..a6a58688bc --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libsquish/libsquish/0001-Add-support-for-variable-libdir.patch @@ -0,0 +1,70 @@ +From 20d14f323c877eca631f0a75efcf19727fb18dd9 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 22 Mar 2022 09:17:06 -0700 +Subject: [PATCH] Add support for variable libdir + +sometimes libdir is not 'lib' in such cases set LIBDIR_SUFFIX to 32 or +64 to append to it. + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile | 9 +++++---- + config.in | 2 ++ + squish.pc.in | 3 ++- + 3 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/Makefile b/Makefile +index 1c01f89..768a4a7 100644 +--- a/Makefile ++++ b/Makefile +@@ -10,13 +10,13 @@ LIB = libsquish.a + all : $(LIB) squish.pc + + install : $(LIB) squish.pc +- install squish.h $(INSTALL_DIR)/include +- install libsquish.a $(INSTALL_DIR)/lib +- install squish.pc $(INSTALL_DIR)/lib/pkgconfig ++ install squish.h $(INSTALL_DIR)/include ++ install libsquish.a $(INSTALL_DIR)/lib$(LIBDIR_SUFFIX) ++ install squish.pc $(INSTALL_DIR)/lib$(LIBDIR_SUFFIX)/pkgconfig + + uninstall: + $(RM) $(INSTALL_DIR)/include/squish.h +- $(RM) $(INSTALL_DIR)/lib/libsquish.a ++ $(RM) $(INSTALL_DIR)/lib$(LIBDIR_SUFFIX)/libsquish.a + + $(LIB) : $(OBJ) + $(AR) cr $@ $? +@@ -30,4 +30,5 @@ clean : + + squish.pc: + sed 's|@PREFIX@|$(PREFIX)|' $@.in > $@ ++ sed 's|@LIBDIR_SUFFIX@|$(LIBDIR_SUFFIX)|' $@.in > $@ + +diff --git a/config.in b/config.in +index fdca022..a6cf833 100644 +--- a/config.in ++++ b/config.in +@@ -19,3 +19,5 @@ endif + + # where should we install to + INSTALL_DIR ?= @PREFIX@ ++# libdir is architecture specific ++LIBDIR_SUFFIX ?= @LIBDIR_SUFFIX@ +diff --git a/squish.pc.in b/squish.pc.in +index ca04334..73c21bb 100644 +--- a/squish.pc.in ++++ b/squish.pc.in +@@ -1,6 +1,7 @@ + prefix=@PREFIX@ ++suffix=@LIBDIR_SUFFIX@ + exec_prefix=${prefix} +-libdir=${prefix}/lib ++libdir=${prefix}/lib${suffix} + sharedlibdir=${libdir} + includedir=${prefix}/include + +-- +2.35.1 + diff --git a/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb b/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb index f060f1e80d..3d631ea0b6 100644 --- a/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb +++ b/meta-multimedia/recipes-multimedia/libsquish/libsquish_git.bb @@ -3,14 +3,17 @@ SUMMARY = "The squish library (abbreviated to libsquish) is an open source DXT c LICENSE = "MIT" LIC_FILES_CHKSUM = "file://alpha.cpp;beginline=3;endline=22;md5=6665e479f71feb92d590ea9ae9b9f6d5" -PV = "1.10+git${SRCPV}" +PV = "1.10+git" SRCREV = "52e7d93c5947f72380521116c05d97c528863ba8" -SRC_URI = "git://github.com/OpenELEC/libsquish.git;protocol=https" +SRC_URI = "git://github.com/OpenELEC/libsquish.git;protocol=https;branch=master \ + file://0001-Add-support-for-variable-libdir.patch \ + " S = "${WORKDIR}/git" -EXTRA_OEMAKE = "INSTALL_DIR=${D}${prefix}" +EXTRA_OEMAKE = "INSTALL_DIR=${D}${prefix} LIBDIR_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ + ${@bb.utils.contains('TUNE_FEATURES', 'altivec', 'USE_ALTIVEC=1', '', d)}" do_install() { install -d ${D}${includedir} diff --git a/meta-multimedia/recipes-multimedia/libuvc/libuvc_0.0.7.bb b/meta-multimedia/recipes-multimedia/libuvc/libuvc_0.0.7.bb new file mode 100644 index 0000000000..b1572b32ac --- /dev/null +++ b/meta-multimedia/recipes-multimedia/libuvc/libuvc_0.0.7.bb @@ -0,0 +1,14 @@ +SUMMARY = "library for USB video devices built atop libusb" +HOMEPAGE = "https://github.com/libuvc/libuvc.git" +SECTION = "libs" +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=2f1963e0bb88c93463af750daf9ba0c2" + +DEPENDS = "libusb jpeg" + +SRC_URI = "git://github.com/libuvc/libuvc.git;branch=master;protocol=https" +SRCREV = "68d07a00e11d1944e27b7295ee69673239c00b4b" + +S = "${WORKDIR}/git" + +inherit cmake pkgconfig diff --git a/meta-multimedia/recipes-multimedia/mimic/mimic/0001-Fix-musl-compatibility.patch b/meta-multimedia/recipes-multimedia/mimic/mimic/0001-Fix-musl-compatibility.patch new file mode 100644 index 0000000000..1352fdde64 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mimic/mimic/0001-Fix-musl-compatibility.patch @@ -0,0 +1,30 @@ +From d7d00ec681dc430192cf2192b3de7b7c30c4753d Mon Sep 17 00:00:00 2001 +From: Bart Ribbers <bribbers@disroot.org> +Date: Sat, 9 May 2020 11:42:32 +0200 +Subject: [PATCH] Fix musl compatibility + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Upstream-Status: Backport [https://github.com/MycroftAI/mimic1/commit/5282ff075091c3d1a635fb20f2b8a35a377f4b42.patch] +--- + src/hts/hts_engine_API/lib/HTS_misc.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/hts/hts_engine_API/lib/HTS_misc.c b/src/hts/hts_engine_API/lib/HTS_misc.c +index 72306cb..afcaaec 100644 +--- a/src/hts/hts_engine_API/lib/HTS_misc.c ++++ b/src/hts/hts_engine_API/lib/HTS_misc.c +@@ -247,8 +247,10 @@ size_t HTS_ftell(HTS_File * fp) + fgetpos((FILE *) fp->pointer, &pos); + #if defined(_WIN32) || defined(__CYGWIN__) || defined(__APPLE__) || defined(__ANDROID__) + return (size_t) pos; +-#else ++#elif defined(__GLIBC__) + return (size_t) pos.__pos; ++#else ++ return (size_t) ftell(fp->pointer); + #endif /* _WIN32 || __CYGWIN__ || __APPLE__ || __ANDROID__ */ + } else if (fp->type == HTS_DATA) { + HTS_Data *d = (HTS_Data *) fp->pointer; +-- +2.28.0 + diff --git a/meta-multimedia/recipes-multimedia/mimic/mimic/0001-cmu_indic_lang-Make-cst_rx_not_indic-as-extern-decla.patch b/meta-multimedia/recipes-multimedia/mimic/mimic/0001-cmu_indic_lang-Make-cst_rx_not_indic-as-extern-decla.patch new file mode 100644 index 0000000000..e6bf9eb2be --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mimic/mimic/0001-cmu_indic_lang-Make-cst_rx_not_indic-as-extern-decla.patch @@ -0,0 +1,29 @@ +From 7d38a72f9ae14a2416f7a78e28152aa33685aec7 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 12 Aug 2020 16:47:27 -0700 +Subject: [PATCH] cmu_indic_lang: Make cst_rx_not_indic as extern declaration + +Fixes build with gcc-10 which has -fno-common turned on by default + +Upstream-Status: Submitted [https://github.com/MycroftAI/mimic1/pull/211] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + lang/cmu_indic_lang/cmu_indic_lang.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lang/cmu_indic_lang/cmu_indic_lang.h b/lang/cmu_indic_lang/cmu_indic_lang.h +index 75ee46c..83e2afa 100644 +--- a/lang/cmu_indic_lang/cmu_indic_lang.h ++++ b/lang/cmu_indic_lang/cmu_indic_lang.h +@@ -51,7 +51,7 @@ void cmu_indic_lang_init(cst_voice *v); + extern const cst_phoneset cmu_indic_phoneset; + extern const cst_cart cmu_indic_phrasing_cart; + +-const cst_regex * const cst_rx_not_indic; ++extern const cst_regex * const cst_rx_not_indic; + + #ifdef __cplusplus + } /* extern "C" */ +-- +2.28.0 + diff --git a/meta-multimedia/recipes-multimedia/mimic/mimic_1.2.0.2.bb b/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb index cb4b1b365a..76f51196aa 100644 --- a/meta-multimedia/recipes-multimedia/mimic/mimic_1.2.0.2.bb +++ b/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb @@ -4,10 +4,10 @@ HOMEPAGE = "https://mimic.mycroft.ai/" SECTION = "multimedia" # "Mimic is available under permissive BSD-like licenses" -LICENSE = "MIT-X & \ +LICENSE = "MIT & \ PD & \ CMU-Tex & \ - BSD & \ + rateconv & \ BSD-2-Clause & \ BSD-3-Clause & \ flite & \ @@ -15,13 +15,18 @@ LICENSE = "MIT-X & \ BellBird & \ Apache-2.0 \ " -LIC_FILES_CHKSUM = "file://COPYING;md5=416ef1ca5167707fe381d7be33664a33" +LIC_FILES_CHKSUM = "file://COPYING;md5=a2c2c7371b58b9cdeae0dc68846fe9f1" -DEPENDS = "curl-native icu" +DEPENDS = "curl-native libpcre2" -SRCREV = "67e43bf0fa56008276b878ec3790aa5f32eb2a16" -SRC_URI = "git://github.com/MycroftAI/mimic.git" +SRCREV = "adf655da0399530ac1b586590257847eb61be232" +SRC_URI = "git://github.com/MycroftAI/mimic1.git;branch=master;protocol=https \ + file://0001-Fix-musl-compatibility.patch \ + file://0001-cmu_indic_lang-Make-cst_rx_not_indic-as-extern-decla.patch \ + " -inherit autotools +inherit autotools pkgconfig S = "${WORKDIR}/git" + +CPPFLAGS:append = " -Wno-error" diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc b/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc index 187ff536aa..aabf81dce0 100644 --- a/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc +++ b/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-only|BSD-3-Clause" DEPENDS = "ffmpeg flac libav jpeg sqlite3 libexif libogg libid3tag libvorbis" # because it depends on libav which has commercial flag @@ -12,6 +12,8 @@ SRC_URI = "git://git.code.sf.net/p/minidlna/git;branch=master;module=git \ file://minidlna-daemon.init.d \ file://minidlna.service \ file://0001-Update-Gettext-version.patch \ + file://0001-configure-Check-for-clock_gettime-seprately-from-__N.patch \ + file://0001-configure.ac-drop-non-standard-checks.patch \ " S = "${WORKDIR}/git" @@ -20,21 +22,21 @@ S = "${WORKDIR}/git" # configure.ac:30: error: required file './ABOUT-NLS' not found EXTRA_AUTORECONF = "" -do_install_append(){ +do_install:append(){ install -d ${D}${sysconfdir} install -m 0755 minidlna.conf ${D}${sysconfdir} # Systemd script install -d ${D}${nonarch_base_libdir}/systemd/system - install -m 0755 ${WORKDIR}/minidlna.service ${D}${nonarch_base_libdir}/systemd/system + install -m 0755 ${UNPACKDIR}/minidlna.service ${D}${nonarch_base_libdir}/systemd/system # Sysvinit script install -d ${D}${sysconfdir}/init.d - install -m 0755 ${WORKDIR}/minidlna-daemon.init.d ${D}${sysconfdir}/init.d/minidlna + install -m 0755 ${UNPACKDIR}/minidlna-daemon.init.d ${D}${sysconfdir}/init.d/minidlna } -SYSTEMD_SERVICE_${PN} = "minidlna.service" +SYSTEMD_SERVICE:${PN} = "minidlna.service" INITSCRIPT_NAME = "minidlna" INITSCRIPT_PARAMS = "defaults 90" diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch index c18095d42c..6100da3581 100644 --- a/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch +++ b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Update-Gettext-version.patch @@ -10,8 +10,6 @@ Signed-off-by: Baptiste Durand <baptiste.durand@gmail.com> configure.ac | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -diff --git a/configure.ac b/configure.ac -index f343d21..a556b33 100644 --- a/configure.ac +++ b/configure.ac @@ -14,7 +14,7 @@ @@ -23,12 +21,12 @@ index f343d21..a556b33 100644 #LT_INIT AC_CANONICAL_TARGET -@@ -28,7 +28,7 @@ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC_USE_SYSTEM_EXTENSIONS]) +@@ -28,7 +28,7 @@ m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], [AC AM_ICONV AM_GNU_GETTEXT([external]) -AM_GNU_GETTEXT_VERSION(0.18) -+AM_GNU_GETTEXT_VERSION(0.19) ++AM_GNU_GETTEXT_VERSION(0.20) # Checks for programs. AC_PROG_AWK diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch new file mode 100644 index 0000000000..dd29797a66 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure-Check-for-clock_gettime-seprately-from-__N.patch @@ -0,0 +1,31 @@ +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 + __NR_clock_gettime + +This helps prioritize using clock_gettime API from libc over syscall +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 | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 3d218ea..aa7dd1c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -127,6 +127,10 @@ case $host in + esac + + AC_CHECK_HEADERS(syscall.h sys/syscall.h mach/mach_time.h) ++ ++AC_MSG_CHECKING([for clock_gettime]) ++AC_SEARCH_LIBS([clock_gettime], [rt], [AC_DEFINE([HAVE_CLOCK_GETTIME], [1], [use clock_gettime])],) ++ + AC_MSG_CHECKING([for __NR_clock_gettime syscall]) + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-configure.ac-drop-non-standard-checks.patch b/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-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-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb b/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.3.0.bb index 999d85ce74..4238918c97 100644 --- a/meta-multimedia/recipes-multimedia/minidlna/minidlna_1.2.1.bb +++ b/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-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch b/meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch deleted file mode 100644 index db4d6e8c99..0000000000 --- a/meta-multimedia/recipes-multimedia/musicbrainz/files/allow-libdir-override.patch +++ /dev/null @@ -1,21 +0,0 @@ -Allow LIB_INSTALL_DIR to be set by the the cmake configure invocation. We dont -easily have a way of determining something that patches ${LIB_SUFFIX} so we'll -set LIB_INSTALL_DIR. - -Upstream-Status: Inappropriate [configuration] - -Signed-off-by: Kumar Gala <galak@kernel.crashing.org> - -Index: git/CMakeLists.txt -=================================================================== ---- git.orig/CMakeLists.txt -+++ git/CMakeLists.txt -@@ -36,7 +36,7 @@ FIND_PACKAGE(LibXml2 REQUIRED) - SET(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)") - SET(EXEC_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "Installation prefix for executables and object code libraries" FORCE) - SET(BIN_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/bin CACHE PATH "Installation prefix for user executables" FORCE) --SET(LIB_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Installation prefix for object code libraries" FORCE) -+SET(LIB_INSTALL_DIR ${EXEC_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE PATH "Installation prefix for object code libraries") - SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include CACHE PATH "Installation prefix for C header files" FORCE) - - CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/libmusicbrainz5.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/libmusicbrainz5.pc) diff --git a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz/0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz/0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch new file mode 100644 index 0000000000..1fae37614c --- /dev/null +++ b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz/0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch @@ -0,0 +1,50 @@ +From 06b2a6aa70616aafab780514d9d26e85bd98d965 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Thu, 25 Aug 2022 14:02:16 -0700 +Subject: [PATCH] http/fetch: Pass a non-null buffer to + ne_set_request_body_buffer API + +Newer versions of neon has added a check for non-null arguments for +ne_set_request_body_buffer() API and this is triggered but older +compiler only treats -Wnonnull as warning so all was fine, however gcc +12.2 has started to throw this warning as error by default and builds +are breaking + +Fixes +src/HTTPFetch.cc:186:38: warning: null passed to a callee that requires a non-null argument [-Wnonnull] + ne_set_request_body_buffer(req,0,0); + ~ ^ +Upstream-Status: Submitted [https://github.com/metabrainz/libmusicbrainz/pull/18] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/HTTPFetch.cc | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/HTTPFetch.cc b/src/HTTPFetch.cc +index baec359..0c0d919 100644 +--- a/src/HTTPFetch.cc ++++ b/src/HTTPFetch.cc +@@ -182,8 +182,10 @@ int MusicBrainz5::CHTTPFetch::Fetch(const std::string& URL, const std::string& R + } + + ne_request *req = ne_request_create(sess, Request.c_str(), URL.c_str()); ++ ne_buffer *body = ne_buffer_create(); ++ + if (Request=="PUT") +- ne_set_request_body_buffer(req,0,0); ++ ne_set_request_body_buffer(req, body->data, ne_buffer_size(body)); + + if (Request!="GET") + ne_set_request_flag(req, NE_REQFLAG_IDEMPOTENT, 0); +@@ -195,6 +197,8 @@ int MusicBrainz5::CHTTPFetch::Fetch(const std::string& URL, const std::string& R + + Ret=m_d->m_Data.size(); + ++ ne_buffer_destroy(body); ++ + ne_request_destroy(req); + + m_d->m_ErrorMessage = ne_get_error(sess); +-- +2.37.2 + diff --git a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb index ca9d94a19c..2b373d31e5 100644 --- a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb +++ b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb @@ -1,40 +1,27 @@ SUMMARY = "MusicBrainz client library" DESCRIPTION = "The MusicBrainz client is a library which can be built into other programs. The library allows you to access the data held on the MusicBrainz server." HOMEPAGE = "http://musicbrainz.org" -LICENSE = "LGPLv2.1+" +LICENSE = "LGPL-2.1-or-later" LIC_FILES_CHKSUM = "file://COPYING.txt;md5=fbc093901857fcd118f065f900982c24" -DEPENDS = "expat libxml2 libxml2-native neon neon-native" +DEPENDS = "expat libxml2 libxml2-native neon neon-native libmusicbrainz-native" -PV = "5.1.0+git${SRCPV}" +PV = "5.1.0+git" -SRCREV = "44c05779dd996035758f5ec426766aeedce29cc3" -SRC_URI = "git://github.com/metabrainz/libmusicbrainz.git \ - file://allow-libdir-override.patch " +SRCREV = "4655b571a70d73d41467091f59c518517c956198" +SRC_URI = "git://github.com/metabrainz/libmusicbrainz.git;branch=master;protocol=https \ + file://0001-http-fetch-Pass-a-non-null-buffer-to-ne_set_request_.patch \ + " S = "${WORKDIR}/git" inherit cmake pkgconfig -do_configure_prepend() { - # The native build really doesn't like being rebuilt, so delete - # it if it's already present. Also delete all other files not - # known to Git to fix subsequent invocations of do_configure. - git clean -dfx -e /.pc/ -e /patches/ . - mkdir build-native - cd build-native - LDFLAGS="${BUILD_LDFLAGS}" \ - cmake -DCMAKE_C_FLAGS=${BUILD_CFLAGS} \ - -DCMAKE_C_COMPILER=${BUILD_CC} \ - -DCMAKE_CXX_FLAGS=${BUILD_CXXFLAGS} \ - -DCMAKE_CXX_COMPILER=${BUILD_CXX} \ - -DCMAKE_EXE_LINKER_FLAGS=${BUILD_LDFLAGS} \ - .. - make make-c-interface - cd .. -} +EXTRA_OECMAKE:append:class-target = " -DIMPORT_EXECUTABLES=${STAGING_LIBDIR_NATIVE}/cmake/${BPN}/ImportExecutables.cmake" -EXTRA_OECMAKE = "-DLIB_INSTALL_DIR:PATH=${libdir} \ - -DIMPORT_EXECUTABLES=build-native/ImportExecutables.cmake" +do_install:append:class-native() { + install -Dm 0755 ${B}/src/make-c-interface ${D}${bindir}/make-c-interface + install -Dm 0644 ${B}/ImportExecutables.cmake ${D}${libdir}/cmake/${BPN}/ImportExecutables.cmake + sed -i -e s:'${B}'/src/::g ${D}${libdir}/cmake/${BPN}/ImportExecutables.cmake +} -# out-of-tree building doesn't appear to work for this package. -B = "${S}" +BBCLASSEXTEND = "native" diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch b/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch deleted file mode 100644 index 4a2b25cdd9..0000000000 --- a/meta-multimedia/recipes-multimedia/musicpd/libmpd-11.8.17/glibc-2.20.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- libmpd-11.8.17/src/libmpd-internal.h.orig 2014-09-30 04:08:50.963292427 +0200 -+++ libmpd-11.8.17/src/libmpd-internal.h 2014-09-30 04:08:30.595292223 +0200 -@@ -21,6 +21,7 @@ - #define __MPD_INTERNAL_LIB_ - - #include "libmpdclient.h" -+#include "config.h" - struct _MpdData_real; - - typedef struct _MpdData_real { diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd/0001-fix-return-makes-integer-from-pointer-without-a-cast.patch b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0001-fix-return-makes-integer-from-pointer-without-a-cast.patch new file mode 100644 index 0000000000..dd50a71f7d --- /dev/null +++ b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0001-fix-return-makes-integer-from-pointer-without-a-cast.patch @@ -0,0 +1,27 @@ +From f0f8cc5ac6f1fa9cb5c98cb0b3688f44c64fa8ee Mon Sep 17 00:00:00 2001 +From: Christian Hesse <mail@eworm.de> +Date: Wed, 19 Jul 2017 14:22:48 +0200 +Subject: [PATCH 1/3] fix return makes integer from pointer without a cast + +Upstream-Status: Pending [https://github.com/archlinux/svntogit-packages/tree/packages/libmpd/trunk] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/libmpd-playlist.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libmpd-playlist.c b/src/libmpd-playlist.c +index c3c30ec..64c64ea 100644 +--- a/src/libmpd-playlist.c ++++ b/src/libmpd-playlist.c +@@ -780,7 +780,7 @@ int mpd_playlist_load(MpdObj *mi, const char *path) + if(mpd_lock_conn(mi)) + { + debug_printf(DEBUG_ERROR,"lock failed\n"); +- return NULL; ++ return MPD_LOCK_FAILED; + } + mpd_sendLoadCommand(mi->connection,path); + mpd_finishCommand(mi->connection); +-- +2.37.2 + diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd/0002-fix-comparison-between-pointer-and-zero-character-co.patch b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0002-fix-comparison-between-pointer-and-zero-character-co.patch new file mode 100644 index 0000000000..66d921ed6d --- /dev/null +++ b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0002-fix-comparison-between-pointer-and-zero-character-co.patch @@ -0,0 +1,27 @@ +From fa3b3b3759986171a85230ba8b53764beafdb37f Mon Sep 17 00:00:00 2001 +From: Christian Hesse <mail@eworm.de> +Date: Wed, 19 Jul 2017 14:40:00 +0200 +Subject: [PATCH 2/3] fix comparison between pointer and zero character constant + +Upstream-Status: Pending [https://github.com/archlinux/svntogit-packages/tree/packages/libmpd/trunk] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/libmpd-database.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/libmpd-database.c b/src/libmpd-database.c +index 2480d5e..edafc0a 100644 +--- a/src/libmpd-database.c ++++ b/src/libmpd-database.c +@@ -961,7 +961,7 @@ MpdData * mpd_database_get_directory_recursive(MpdObj *mi, const char *path) + debug_printf(DEBUG_WARNING,"not connected\n"); + return NULL; + } +- if(path == '\0' || path[0] == '\0') ++ if(path == NULL || path[0] == '\0') + { + debug_printf(DEBUG_ERROR, "argumant invalid\n"); + return NULL; +-- +2.37.2 + diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd/0003-include-config.h.patch b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0003-include-config.h.patch new file mode 100644 index 0000000000..805204c0b2 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/musicpd/libmpd/0003-include-config.h.patch @@ -0,0 +1,26 @@ +From 67eae4f20af9aaaf693025d95a05527a2c1fed1a Mon Sep 17 00:00:00 2001 +From: Christian Hesse <mail@eworm.de> +Date: Wed, 19 Jul 2017 14:38:43 +0200 +Subject: [PATCH 3/3] include config.h + +Upstream-Status: Pending [https://github.com/archlinux/svntogit-packages/tree/packages/libmpd/trunk] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + src/libmpd-strfsong.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/libmpd-strfsong.c b/src/libmpd-strfsong.c +index 7d47bed..76fa3ff 100644 +--- a/src/libmpd-strfsong.c ++++ b/src/libmpd-strfsong.c +@@ -28,6 +28,7 @@ + #include <unistd.h> + #include <string.h> + #include <glib.h> ++#include <config.h> + #include "libmpd.h" + #include "libmpd-internal.h" + +-- +2.37.2 + diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb b/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb index 54d79109df..3a4b3aa1a0 100644 --- a/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb +++ b/meta-multimedia/recipes-multimedia/musicpd/libmpd_11.8.17.bb @@ -1,13 +1,14 @@ SUMMARY = "Music Player Daemon library" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" HOMEPAGE ="http://sourceforge.net/projects/musicpd" DEPENDS = "glib-2.0" SRC_URI = "http://www.musicpd.org/download/${BPN}/${PV}/${BP}.tar.gz \ - file://glibc-2.20.patch \ + file://0001-fix-return-makes-integer-from-pointer-without-a-cast.patch \ + file://0002-fix-comparison-between-pointer-and-zero-character-co.patch \ + file://0003-include-config.h.patch \ " -SRC_URI[md5sum] = "5ae3d87467d52aef3345407adb0a2488" SRC_URI[sha256sum] = "fe20326b0d10641f71c4673fae637bf9222a96e1712f71f170fca2fc34bf7a83" inherit autotools pkgconfig diff --git a/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.16.bb b/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.20.bb index 455e76fcb3..2746c6bb80 100644 --- a/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.16.bb +++ b/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.20.bb @@ -1,20 +1,20 @@ SUMMARY = "C client library for the Music Player Daemon" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=06b9dfd2f197dc514d8ef06549684b77" HOMEPAGE = "https://www.musicpd.org/libs/libmpdclient/" inherit meson SRC_URI = " \ - git://github.com/MusicPlayerDaemon/libmpdclient \ + git://github.com/MusicPlayerDaemon/libmpdclient;branch=master;protocol=https \ " -SRCREV = "4e8d990eb5239566ee948f1cd79b7248e008620a" +SRCREV = "7124a0ad4841a44db084bb785a6e7120bc8f0139" S = "${WORKDIR}/git" PACKAGECONFIG ??= "tcp" PACKAGECONFIG[tcp] = "-Dtcp=true,-Dtcp=false" -do_install_append() { +do_install:append() { # libmpdclient's Vala bindings are outdated and unmaintained; it # is likely that nobody will ever use them, so let's not install # them diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpc_0.31.bb b/meta-multimedia/recipes-multimedia/musicpd/mpc_0.34.bb index 41abe7108a..93df25ee2f 100644 --- a/meta-multimedia/recipes-multimedia/musicpd/mpc_0.31.bb +++ b/meta-multimedia/recipes-multimedia/musicpd/mpc_0.34.bb @@ -1,16 +1,13 @@ SUMMARY = "A minimalist command line interface to the Music Player Daemon" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" HOMEPAGE = "https://www.musicpd.org/clients/mpc/" -inherit meson +inherit meson pkgconfig -DEPENDS += " \ - libmpdclient \ -" +DEPENDS += "libmpdclient" + +SRC_URI = "git://github.com/MusicPlayerDaemon/mpc;branch=master;protocol=https" +SRCREV = "31c900b79b3a1cd7f2944e92f24223d12589fdaa" -SRC_URI = " \ - git://github.com/MusicPlayerDaemon/mpc \ -" -SRCREV = "59875acdf34e5f0eac0c11453c49daef54f78413" S = "${WORKDIR}/git" diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch b/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch new file mode 100644 index 0000000000..b2dea331ef --- /dev/null +++ b/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch @@ -0,0 +1,26 @@ +From e62fd0eefe8b475e70d87a673a7216aac3bb622f Mon Sep 17 00:00:00 2001 +From: Markus Volk <f_l_k@t-online.de> +Date: Mon, 20 Nov 2023 17:49:59 +0100 +Subject: [PATCH] patch src_decoder_plugins_FfmpegIo.cxx + +Signed-off-by: Markus Volk <f_l_k@t-online.de> +Upstream-Status: Pending [https://github.com/MusicPlayerDaemon/MPD/issues/1898] +--- + src/decoder/plugins/FfmpegIo.cxx | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/decoder/plugins/FfmpegIo.cxx b/src/decoder/plugins/FfmpegIo.cxx +index 572f1a86a..3e2347fec 100644 +--- a/src/decoder/plugins/FfmpegIo.cxx ++++ b/src/decoder/plugins/FfmpegIo.cxx +@@ -25,6 +25,7 @@ + #include "input/InputStream.hxx" + + extern "C" { ++#include <libavutil/error.h> + #include <libavutil/mem.h> + } + +-- +2.42.0 + diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb deleted file mode 100644 index 6c6ad42375..0000000000 --- a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.20.22.bb +++ /dev/null @@ -1,99 +0,0 @@ -SUMMARY = "Music Player Daemon" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" -HOMEPAGE ="http://www.musicpd.org" - -inherit autotools useradd systemd pkgconfig - -DEPENDS += " \ - curl \ - sqlite3 \ - ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \ - yajl \ - boost \ - icu \ - dbus \ - expat \ -" - -SRC_URI = " \ - git://github.com/MusicPlayerDaemon/MPD;branch=v0.20.x \ - file://mpd.conf.in \ -" -SRCREV = "9274bc15bc41bbe490fde847f8422468cc20375d" -S = "${WORKDIR}/git" - -EXTRA_OECONF += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '--with-systemdsystemunitdir=${systemd_unitdir}/system/', '--without-systemdsystemunitdir', d)}" - -PACKAGECONFIG ??= "alsa ao bzip2 daemon ffmpeg fifo flac fluidsynth iso9660 jack libsamplerate libwrap httpd mms mpg123 modplug sndfile upnp openal opus oss recorder vorbis wavpack zlib" -PACKAGECONFIG += "${@bb.utils.contains('LICENSE_FLAGS', 'commercial', 'aac', '', d)}" - -PACKAGECONFIG[aac] = "--enable-aac,--disable-aac,faad2" -PACKAGECONFIG[alsa] = "--enable-alsa,--disable-alsa,alsa-lib" -PACKAGECONFIG[ao] = "--enable-ao,--disable-ao,libao" -PACKAGECONFIG[audiofile] = "--enable-audiofile,--disable-audiofile,audiofile" -PACKAGECONFIG[bzip2] = "--enable-bzip2,--disable-bzip2,bzip2" -PACKAGECONFIG[cdioparanoia] = "--enable-cdio-paranoia,--disable-cdio-paranoia,libcdio-paranoia" -PACKAGECONFIG[daemon] = "--enable-daemon,--disable-daemon" -PACKAGECONFIG[ffmpeg] = "--enable-ffmpeg,--disable-ffmpeg,ffmpeg" -PACKAGECONFIG[fifo] = "--enable-fifo,--disable-fifo" -PACKAGECONFIG[flac] = "--enable-flac,--disable-flac,flac" -PACKAGECONFIG[fluidsynth] = "--enable-fluidsynth,--disable-fluidsynth,fluidsynth" -PACKAGECONFIG[httpd] = "--enable-httpd-output,--disable-httpd-output" -PACKAGECONFIG[id3tag] = "--enable-id3,--disable-id3,libid3tag" -PACKAGECONFIG[iso9660] = "--enable-iso9660,--disable-iso9660,libcdio" -PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" -PACKAGECONFIG[lame] = "--enable-lame-encoder,--disable-lame-encoder,lame" -PACKAGECONFIG[libsamplerate] = "--enable-lsr,--disable-lsr,libsamplerate0" -PACKAGECONFIG[libwrap] = "--enable-libwrap,--disable-libwrap,tcp-wrappers" -PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" -PACKAGECONFIG[mms] = "--enable-mms,--disable-mms,libmms" -PACKAGECONFIG[modplug] = "--enable-modplug,--disable-modplug,libmodplug" -PACKAGECONFIG[mpg123] = "--enable-mpg123,--disable-mpg123,mpg123" -PACKAGECONFIG[openal] = "--enable-openal,--disable-openal,openal-soft" -PACKAGECONFIG[opus] = "--enable-opus,--disable-opus,libopus libogg" -PACKAGECONFIG[oss] = "--enable-oss,--disable-oss," -PACKAGECONFIG[recorder] = "--enable-recorder-output,--disable-recorder-output" -PACKAGECONFIG[smb] = "--enable-smbclient,--disable-smbclient,samba" -PACKAGECONFIG[sndfile] = "--enable-sndfile,--disable-sndfile,libsndfile1" -PACKAGECONFIG[upnp] = "--enable-upnp,--disable-upnp,libupnp" -PACKAGECONFIG[vorbis] = "--enable-vorbis,--disable-vorbis,libvorbis libogg" -PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack" -PACKAGECONFIG[zlib] = "--enable-zlib,--disable-zlib,zlib" - -do_configure_prepend() { - sed -i -e 's|libsystemd-daemon|libsystemd|' ${S}/configure.ac -} - -do_install_append() { - install -o mpd -d \ - ${D}/${localstatedir}/lib/mpd \ - ${D}/${localstatedir}/lib/mpd/playlists - install -m775 -o mpd -g mpd -d \ - ${D}/${localstatedir}/lib/mpd/music - - install -d ${D}/${sysconfdir} - install -m 644 ${WORKDIR}/mpd.conf.in ${D}/${sysconfdir}/mpd.conf - sed -i \ - -e 's|%music_directory%|${localstatedir}/lib/mpd/music|' \ - -e 's|%playlist_directory%|${localstatedir}/lib/mpd/playlists|' \ - -e 's|%db_file%|${localstatedir}/lib/mpd/mpd.db|' \ - -e 's|%log_file%|${localstatedir}/log/mpd.log|' \ - -e 's|%state_file%|${localstatedir}/lib/mpd/state|' \ - ${D}/${sysconfdir}/mpd.conf - - # we don't need the icon - rm -rf ${D}${datadir}/icons -} - -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "mpd.socket" - -USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = " \ - --system --no-create-home \ - --home ${localstatedir}/lib/mpd \ - --groups audio \ - --user-group mpd" diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.14.bb b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.14.bb new file mode 100644 index 0000000000..33155da7d2 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.14.bb @@ -0,0 +1,105 @@ +SUMMARY = "Music Player Daemon" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" + +HOMEPAGE ="http://www.musicpd.org" + +inherit meson useradd systemd pkgconfig + +DEPENDS += " \ + curl \ + sqlite3 \ + ${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)} \ + yajl \ + boost \ + icu \ + dbus \ + expat \ + fmt \ +" + +SRC_URI = "git://github.com/MusicPlayerDaemon/MPD;branch=master;protocol=https \ + file://0001-patch-src_decoder_plugins_FfmpegIo.cxx.patch \ + file://mpd.conf.in \ + " +SRCREV = "feac1a3f56591ccfb00870aba66c9ac3abac4773" +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_ACCEPTED", "commercial", "aac", "", d)} \ + alsa ao bzip2 daemon \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "ffmpeg aac", "", d)} \ + fifo flac fluidsynth iso9660 \ + jack libsamplerate httpd \ + mms mpg123 modplug sndfile \ + upnp openal opus oss recorder \ + vorbis wavpack zlib" + +PACKAGECONFIG[aac] = "-Dfaad=enabled,-Dfaad=disabled,faad2" +PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib" +PACKAGECONFIG[ao] = "-Dao=enabled,-Dao=disabled,libao" +PACKAGECONFIG[audiofile] = "-Daudiofile=enabled,-Daudiofile=disabled,audiofile" +PACKAGECONFIG[bzip2] = "-Dbzip2=enabled,-Dbzip2=disabled,bzip2" +PACKAGECONFIG[cdioparanoia] = "-Dcdio_paranoia=enabled,-Dcdio_paranoia=disabled,libcdio-paranoia" +PACKAGECONFIG[daemon] = "-Ddaemon=true,-Ddaemon=false" +PACKAGECONFIG[ffmpeg] = "-Dffmpeg=enabled,-Dffmpeg=disabled,ffmpeg" +PACKAGECONFIG[fifo] = "-Dfifo=true,-Dfifo=false" +PACKAGECONFIG[flac] = "-Dflac=enabled,-Dflac=disabled,flac" +PACKAGECONFIG[fluidsynth] = "-Dfluidsynth=enabled,-Dfluidsynth=disabled,fluidsynth" +PACKAGECONFIG[httpd] = "-Dhttpd=true,-Dhttpd=false" +PACKAGECONFIG[id3tag] = "-Did3tag=enabled,-Did3tag=disabled,libid3tag" +PACKAGECONFIG[iso9660] = "-Diso9660=enabled,-Diso9660=disabled,libcdio" +PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack" +PACKAGECONFIG[lame] = "-Dlame=enabled,-Dlame=disabled,lame" +PACKAGECONFIG[libsamplerate] = "-Dlibsamplerate=enabled,-Dlibsamplerate=disabled,libsamplerate0" +PACKAGECONFIG[mad] = "-Dmad=enabled,-Dmad=disabled,libmad" +PACKAGECONFIG[mms] = "-Dmms=enabled,-Dmms=disabled,libmms" +PACKAGECONFIG[modplug] = "-Dmodplug=enabled,-Dmodplug=disabled,libmodplug" +PACKAGECONFIG[mpg123] = "-Dmpg123=enabled,-Dmpg123=disabled,mpg123" +PACKAGECONFIG[openal] = "-Dopenal=enabled,-Dopenal=disabled,openal-soft" +PACKAGECONFIG[opus] = "-Dopus=enabled,-Dopus=disabled,libopus libogg" +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=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" + +do_install:append() { + install -o mpd -d \ + ${D}/${localstatedir}/lib/mpd \ + ${D}/${localstatedir}/lib/mpd/playlists + install -m775 -o mpd -g mpd -d \ + ${D}/${localstatedir}/lib/mpd/music + + install -d ${D}/${sysconfdir} + install -m 644 ${UNPACKDIR}/mpd.conf.in ${D}/${sysconfdir}/mpd.conf + sed -i \ + -e 's|%music_directory%|${localstatedir}/lib/mpd/music|' \ + -e 's|%playlist_directory%|${localstatedir}/lib/mpd/playlists|' \ + -e 's|%db_file%|${localstatedir}/lib/mpd/mpd.db|' \ + -e 's|%log_file%|${localstatedir}/log/mpd.log|' \ + -e 's|%state_file%|${localstatedir}/lib/mpd/state|' \ + ${D}/${sysconfdir}/mpd.conf + + # we don't need the icon + rm -rf ${D}${datadir}/icons +} + +RPROVIDES:${PN} += "${PN}-systemd" +RREPLACES:${PN} += "${PN}-systemd" +RCONFLICTS:${PN} += "${PN}-systemd" +SYSTEMD_SERVICE:${PN} = "mpd.socket" + +USERADD_PACKAGES = "${PN}" +USERADD_PARAM:${PN} = " \ + --system --no-create-home \ + --home ${localstatedir}/lib/mpd \ + --groups audio \ + --user-group mpd" + +CVE_STATUS[CVE-2020-7465] = "cpe-incorrect: The recipe used in the meta-openembedded is a different mpd package compared to the one which has the CVE issue." +CVE_STATUS[CVE-2020-7466] = "cpe-incorrect: The recipe used in the meta-openembedded is a different mpd package compared to the one which has the CVE issue." diff --git a/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb b/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.49.bb index d4ebe1769a..d93c054f45 100644 --- a/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.33.bb +++ b/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.49.bb @@ -1,16 +1,18 @@ SUMMARY = "A curses client for the Music Player Daemon" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" HOMEPAGE = "https://www.musicpd.org/clients/ncmpc/" -inherit meson +inherit meson pkgconfig DEPENDS += " \ - boost \ ncurses \ + libpcre2 \ libmpdclient \ " +RDEPENDS:${PN} += "python3-core" + PACKAGECONFIG ??= "colors locale mouse nls regex help_screen library_screen search_screen song_screen key_screen lyrics_screen outputs_screen" PACKAGECONFIG[colors] = "-Dcolors=true,-Dcolors=false" @@ -30,8 +32,6 @@ PACKAGECONFIG[lyrics_screen] = "-Dlyrics_screen=true,-Dlyrics_screen=false" PACKAGECONFIG[outputs_screen] = "-Doutputs_screen=true,-Doutputs_screen=false" PACKAGECONFIG[chat_screen] = "-Dchat_screen=true,-Dchat_screen=false" -SRC_URI = " \ - git://github.com/MusicPlayerDaemon/ncmpc \ -" -SRCREV = "8e98f89ff07b140e6357dab2a9a9f6432ae0e521" +SRC_URI = "git://github.com/MusicPlayerDaemon/ncmpc;branch=master;protocol=https" +SRCREV = "f81f875fc5785383d24f54fb9bd3cf06efd915a4" S = "${WORKDIR}/git" diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch index c03bccd3da..245785c826 100644 --- a/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch +++ b/meta-multimedia/recipes-multimedia/mycroft/files/0001-Remove-python-venv.patch @@ -1,7 +1,7 @@ -From 6272f36080bd440a5825b526f4c06223c5bb9fbb Mon Sep 17 00:00:00 2001 +From 07fce2101d83b5334de78e661ba0361c2874ebdf Mon Sep 17 00:00:00 2001 From: Alistair Francis <alistair.francis@wdc.com> Date: Mon, 18 Mar 2019 16:30:45 -0700 -Subject: [PATCH 1/5] Remove python venv +Subject: [PATCH 1/7] Remove python venv Remove the python venv requirements and instead just use the native python and pip pacakges. @@ -9,75 +9,77 @@ python and pip pacakges. Signed-off-by: Alistair Francis <alistair.francis@wdc.com> Upstream-Status: Inappropriate [embedded specific] --- - dev_setup.sh | 36 ------------------------------------ + dev_setup.sh | 39 --------------------------------------- start-mycroft.sh | 13 ------------- venv-activate.sh | 44 +------------------------------------------- - 3 files changed, 1 insertion(+), 92 deletions(-) + 3 files changed, 1 insertion(+), 95 deletions(-) diff --git a/dev_setup.sh b/dev_setup.sh -index e0b07bf25cf..aed54b2167a 100755 +index cf81ed25f0f..99a44bfd8a7 100755 --- a/dev_setup.sh +++ b/dev_setup.sh -@@ -310,18 +310,6 @@ function install_deps() { +@@ -338,18 +338,6 @@ ${YELLOW}Make sure to manually install:$BLUE git python3 python-setuptools pytho fi } -VIRTUALENV_ROOT=${VIRTUALENV_ROOT:-"${TOP}/.venv"} - -function install_venv() { -- ${opt_python} -m venv "${VIRTUALENV_ROOT}/" --without-pip +- $opt_python -m venv "${VIRTUALENV_ROOT}/" --without-pip - # Force version of pip for reproducability, but there is nothing special - # about this version. Update whenever a new version is released and - # verified functional. - curl https://bootstrap.pypa.io/3.3/get-pip.py | "${VIRTUALENV_ROOT}/bin/python" - 'pip==18.0.0' - # Function status depending on if pip exists -- [ -x "${VIRTUALENV_ROOT}/bin/pip" ] +- [[ -x ${VIRTUALENV_ROOT}/bin/pip ]] -} - install_deps # Configure to use the standard commit template for -@@ -355,15 +343,7 @@ else +@@ -383,17 +371,6 @@ else fi fi --if [ ! -x "${VIRTUALENV_ROOT}/bin/activate" ] ; then +-if [[ ! -x ${VIRTUALENV_ROOT}/bin/activate ]] ; then - if ! install_venv ; then -- echo "Failed to set up virtualenv for mycroft, exiting setup." +- echo 'Failed to set up virtualenv for mycroft, exiting setup.' - exit 1 - fi -fi - - # Start the virtual environment +-# Start the virtual environment -source "${VIRTUALENV_ROOT}/bin/activate" - cd "${TOP}" - +-cd "$TOP" +- # Install pep8 pre-commit hook -@@ -380,22 +360,6 @@ fi + HOOK_FILE='./.git/hooks/pre-commit' + if [[ -n $INSTALL_PRECOMMIT_HOOK ]] || grep -q 'MYCROFT DEV SETUP' $HOOK_FILE; then +@@ -408,22 +385,6 @@ fi - PYTHON=$( python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" ) + PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))") -# Add mycroft-core to the virtualenv path -# (This is equivalent to typing 'add2virtualenv $TOP', except -# you can't invoke that shell function from inside a script) -VENV_PATH_FILE="${VIRTUALENV_ROOT}/lib/$PYTHON/site-packages/_virtualenv_path_extensions.pth" --if [ ! -f "$VENV_PATH_FILE" ] ; then -- echo "import sys; sys.__plen = len(sys.path)" > "$VENV_PATH_FILE" || return 1 +-if [[ ! -f $VENV_PATH_FILE ]] ; then +- echo 'import sys; sys.__plen = len(sys.path)' > "$VENV_PATH_FILE" || return 1 - echo "import sys; new=sys.path[sys.__plen:]; del sys.path[sys.__plen:]; p=getattr(sys,'__egginsert',0); sys.path[p:p]=new; sys.__egginsert = p+len(new)" >> "$VENV_PATH_FILE" || return 1 -fi - -if ! grep -q "$TOP" $VENV_PATH_FILE ; then -- echo "Adding mycroft-core to virtualenv path" +- echo 'Adding mycroft-core to virtualenv path' - sed -i.tmp '1 a\ -'"$TOP"' --' "${VENV_PATH_FILE}" +-' "$VENV_PATH_FILE" -fi - # install required python modules if ! pip install -r requirements.txt ; then - echo "Warning: Failed to install all requirements. Continue? y/N" + echo 'Warning: Failed to install all requirements. Continue? y/N' diff --git a/start-mycroft.sh b/start-mycroft.sh -index b9514a61ba5..64e0216a62f 100755 +index 0f88430982e..3aed2f189d4 100755 --- a/start-mycroft.sh +++ b/start-mycroft.sh @@ -20,7 +20,6 @@ script=${0} @@ -130,7 +132,7 @@ index b9514a61ba5..64e0216a62f 100755 "sdkdoc") - source-venv cd doc - make ${opt} + make ${_params} cd .. diff --git a/venv-activate.sh b/venv-activate.sh index d1e7bcb44e7..10b46d4de3b 100644 @@ -188,5 +190,5 @@ index d1e7bcb44e7..10b46d4de3b 100644 main $@ -- -2.21.0 +2.23.0 diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch new file mode 100644 index 0000000000..637854fdfc --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/files/0002-dev_setup.sh-Remove-the-git-dependency.patch @@ -0,0 +1,48 @@ +From 88696037af52d6a7f57bc0fb82598de1a25365cc Mon Sep 17 00:00:00 2001 +From: Alistair Francis <alistair.francis@wdc.com> +Date: Fri, 29 Mar 2019 16:09:57 -0700 +Subject: [PATCH 2/7] dev_setup.sh: Remove the git dependency + +Signed-off-by: Alistair Francis <alistair.francis@wdc.com> +Upstream-Status: Inappropriate [embedded specific] +--- + dev_setup.sh | 16 ---------------- + 1 file changed, 16 deletions(-) + +diff --git a/dev_setup.sh b/dev_setup.sh +index 99a44bfd8a7..672b27080c2 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -340,10 +340,6 @@ ${YELLOW}Make sure to manually install:$BLUE git python3 python-setuptools pytho + + install_deps + +-# Configure to use the standard commit template for +-# this repo only. +-git config commit.template .gitmessage +- + # Check whether to build mimic (it takes a really long time!) + build_mimic='n' + if [[ $opt_forcemimicbuild == true ]] ; then +@@ -371,18 +367,6 @@ else + fi + fi + +-# Install pep8 pre-commit hook +-HOOK_FILE='./.git/hooks/pre-commit' +-if [[ -n $INSTALL_PRECOMMIT_HOOK ]] || grep -q 'MYCROFT DEV SETUP' $HOOK_FILE; then +- if [[ ! -f $HOOK_FILE ]] || grep -q 'MYCROFT DEV SETUP' $HOOK_FILE; then +- echo 'Installing PEP8 check as precommit-hook' +- echo "#! $(which python)" > $HOOK_FILE +- echo '# MYCROFT DEV SETUP' >> $HOOK_FILE +- cat ./scripts/pre-commit >> $HOOK_FILE +- chmod +x $HOOK_FILE +- fi +-fi +- + PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))") + + # install required python modules +-- +2.23.0 + diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch deleted file mode 100644 index ca79d00b42..0000000000 --- a/meta-multimedia/recipes-multimedia/mycroft/files/0002-pip-requirements-Remove-ones-installed-by-OE.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 142bc3912ea9e1a4ecf4db0e2bec3049aa416464 Mon Sep 17 00:00:00 2001 -From: Alistair Francis <alistair.francis@wdc.com> -Date: Tue, 19 Mar 2019 13:32:54 -0700 -Subject: [PATCH 2/5] pip requirements: Remove ones installed by OE - -Signed-off-by: Alistair Francis <alistair.francis@wdc.com> -Upstream-Status: Inappropriate [embedded specific] ---- - requirements.txt | 14 -------------- - test-requirements.txt | 1 - - 2 files changed, 15 deletions(-) - -diff --git a/requirements.txt b/requirements.txt -index 7e4faf48182..29536e990ac 100644 ---- a/requirements.txt -+++ b/requirements.txt -@@ -1,20 +1,10 @@ --six==1.10.0 --requests==2.20.0 - gTTS==2.0.3 - gTTS-token==1.1.3 --PyAudio==0.2.11 - pyee==5.0.0 - SpeechRecognition==3.8.1 --tornado==4.5.3 - websocket-client==0.54.0 - requests-futures==0.9.5 --pyalsaaudio==0.8.2 - xmlrunner==1.7.7 --pyserial==3.0 --psutil==5.2.1 --pocketsphinx==0.1.0 --inflection==0.3.1 --pillow==4.1.1 - python-dateutil==2.6.0 - pychromecast==0.7.7 - python-vlc==1.1.2 -@@ -26,10 +16,6 @@ msm==0.7.3 - msk==0.3.12 - adapt-parser==0.3.2 - padatious==0.4.6 --fann2==1.0.7 - padaos==0.1.9 - precise-runner==0.2.1 - petact==0.1.2 -- --# dev setup tools --pep8==1.7.0 -diff --git a/test-requirements.txt b/test-requirements.txt -index 8ada8157c95..eb4e364a9b4 100644 ---- a/test-requirements.txt -+++ b/test-requirements.txt -@@ -1,6 +1,5 @@ - pep8==1.7.0 - coveralls==1.5.0 --pytest==3.5.0 - pytest-cov==2.5.1 - cov-core==1.15.0 - mock==2.0.0 --- -2.21.0 - diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch new file mode 100644 index 0000000000..d803f526de --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/files/0003-dev_setup.sh-Remove-the-TERM-dependency.patch @@ -0,0 +1,37 @@ +From 5ef52cdea278a1dff966a912549cb6708f2cb699 Mon Sep 17 00:00:00 2001 +From: Alistair Francis <alistair.francis@wdc.com> +Date: Tue, 17 Sep 2019 11:31:47 -0700 +Subject: [PATCH 3/7] dev_setup.sh: Remove the TERM dependency + +Signed-off-by: Alistair Francis <alistair.francis@wdc.com> +Upstream-Status: Inappropriate [embedded specific] +--- + dev_setup.sh | 12 ------------ + 1 file changed, 12 deletions(-) + +diff --git a/dev_setup.sh b/dev_setup.sh +index 672b27080c2..72f734f36bf 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -115,18 +115,6 @@ function get_YN() { + done + } + +-# If tput is available and can handle multiple colors +-if found_exe tput ; then +- if [[ $(tput colors) != "-1" ]]; then +- GREEN=$(tput setaf 2) +- BLUE=$(tput setaf 4) +- CYAN=$(tput setaf 6) +- YELLOW=$(tput setaf 3) +- RESET=$(tput sgr0) +- HIGHLIGHT=$YELLOW +- fi +-fi +- + # Run a setup wizard the very first time that guides the user through some decisions + if [[ ! -f .dev_opts.json && -z $CI ]] ; then + echo " +-- +2.23.0 + diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch new file mode 100644 index 0000000000..d2dc179ca6 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Ignore-missing-package-manager.patch @@ -0,0 +1,31 @@ +From e3b6ca995caca22e65d012a54bc2aeb08eb7e9d4 Mon Sep 17 00:00:00 2001 +From: Alistair Francis <alistair.francis@wdc.com> +Date: Tue, 15 Oct 2019 17:09:06 -0700 +Subject: [PATCH 4/7] dev_setup.sh: Ignore missing package manager + +Signed-off-by: Alistair Francis <alistair.francis@wdc.com> +Upstream-Status: Inappropriate [embedded specific] +--- + dev_setup.sh | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/dev_setup.sh b/dev_setup.sh +index 72f734f36bf..0c8e11b8170 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -317,12 +317,6 @@ Please review the following package changes carefully." + echo -e "${YELLOW}Could not find package manager + ${YELLOW}Make sure to manually install:$BLUE git python3 python-setuptools python-venv pygobject libtool libffi libjpg openssl autoconf bison swig glib2.0 portaudio19 mpg123 flac curl fann g++ jq\n$RESET" + +- echo 'Warning: Failed to install all dependencies. Continue? y/N' +- read -n1 continue +- if [[ $continue != 'y' ]] ; then +- exit 1 +- fi +- + fi + } + +-- +2.23.0 + diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch deleted file mode 100644 index b7ca16013f..0000000000 --- a/meta-multimedia/recipes-multimedia/mycroft/files/0004-dev_setup.sh-Remove-the-git-dependency.patch +++ /dev/null @@ -1,48 +0,0 @@ -From a480dde949f820fda6e46c13261883e851f5a430 Mon Sep 17 00:00:00 2001 -From: Alistair Francis <alistair.francis@wdc.com> -Date: Fri, 29 Mar 2019 16:09:57 -0700 -Subject: [PATCH 4/5] dev_setup.sh: Remove the git dependency - -Signed-off-by: Alistair Francis <alistair.francis@wdc.com> -Upstream-Status: Inappropriate [embedded specific] ---- - dev_setup.sh | 16 ---------------- - 1 file changed, 16 deletions(-) - -diff --git a/dev_setup.sh b/dev_setup.sh -index dd391181f19..c6aa783e1ef 100755 ---- a/dev_setup.sh -+++ b/dev_setup.sh -@@ -312,10 +312,6 @@ function install_deps() { - - install_deps - --# Configure to use the standard commit template for --# this repo only. --git config commit.template .gitmessage -- - # Check whether to build mimic (it takes a really long time!) - build_mimic="n" - if [[ ${opt_forcemimicbuild} == true ]] ; then -@@ -346,18 +342,6 @@ fi - # Start the virtual environment - cd "${TOP}" - --# Install pep8 pre-commit hook --if [ -z ${INSTALL_PRECOMMIT_HOOK} ] ; then -- HOOK_FILE="./.git/hooks/pre-commit" -- if [ ! -f ${HOOK_FILE} ] || grep -q "MYCROFT DEV SETUP" ${HOOK_FILE} ; then -- echo "Installing PEP8 check as precommit-hook" -- echo "#! $( which python3 )" > ${HOOK_FILE} -- echo "# MYCROFT DEV SETUP" >> ${HOOK_FILE} -- cat ./scripts/pre-commit >> ${HOOK_FILE} -- chmod +x ${HOOK_FILE} -- fi --fi -- - PYTHON=$( python3 -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" ) - - # install required python modules --- -2.21.0 - diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch deleted file mode 100644 index 5ae8683764..0000000000 --- a/meta-multimedia/recipes-multimedia/mycroft/files/0005-dev_setup.sh-Remove-the-test-setup-dependency.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 7fc38ae0dec30789fa0d365f1764f4950b700a98 Mon Sep 17 00:00:00 2001 -From: Alistair Francis <alistair.francis@wdc.com> -Date: Tue, 2 Apr 2019 16:52:44 -0700 -Subject: [PATCH 5/5] dev_setup.sh: Remove the test setup dependency - -Signed-off-by: Alistair Francis <alistair.francis@wdc.com> -Upstream-Status: Inappropriate [embedded specific] - -Signed-off-by: Alistair Francis <alistair.francis@wdc.com> ---- - dev_setup.sh | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/dev_setup.sh b/dev_setup.sh -index c6aa783e1ef..bcfaa0c16c2 100755 ---- a/dev_setup.sh -+++ b/dev_setup.sh -@@ -353,10 +353,6 @@ if ! pip3 install -r requirements.txt ; then - fi - fi - --if ! pip3 install -r test-requirements.txt ; then -- echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..." --fi -- - SYSMEM=$( free | awk '/^Mem:/ { print $2 }' ) - MAXCORES=$(($SYSMEM / 512000)) - MINCORES=1 --- -2.21.0 - diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch new file mode 100644 index 0000000000..7f63ea13de --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/files/0005-pip-requirements-Don-t-install-requirements-with-pip.patch @@ -0,0 +1,103 @@ +From 04b14c4569309f1a433d955773aeb8a3607a1360 Mon Sep 17 00:00:00 2001 +From: Alistair Francis <alistair.francis@wdc.com> +Date: Tue, 19 Mar 2019 13:32:54 -0700 +Subject: [PATCH 5/7] pip requirements: Don't install requirements with pip + +Signed-off-by: Alistair Francis <alistair.francis@wdc.com> +Upstream-Status: Inappropriate [embedded specific] +--- + dev_setup.sh | 15 +-------------- + requirements.txt | 36 ------------------------------------ + test-requirements.txt | 7 ------- + 3 files changed, 1 insertion(+), 57 deletions(-) + delete mode 100644 requirements.txt + delete mode 100644 test-requirements.txt + +diff --git a/dev_setup.sh b/dev_setup.sh +index 0c8e11b8170..be4a19de0c3 100755 +--- a/dev_setup.sh ++++ b/dev_setup.sh +@@ -351,19 +351,6 @@ fi + + PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))") + +-# install required python modules +-if ! pip install -r requirements.txt ; then +- echo 'Warning: Failed to install all requirements. Continue? y/N' +- read -n1 continue +- if [[ $continue != 'y' ]] ; then +- exit 1 +- fi +-fi +- +-if ! pip install -r test-requirements.txt ; then +- echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..." +-fi +- + SYSMEM=$(free | awk '/^Mem:/ { print $2 }') + MAXCORES=$(($SYSMEM / 512000)) + MINCORES=1 +@@ -420,4 +407,4 @@ if [[ ! -w /var/log/mycroft/ ]] ; then + fi + + #Store a fingerprint of setup +-md5sum requirements.txt test-requirements.txt dev_setup.sh > .installed ++md5sum dev_setup.sh > .installed +diff --git a/requirements.txt b/requirements.txt +deleted file mode 100644 +index 0140d5465dc..00000000000 +--- a/requirements.txt ++++ /dev/null +@@ -1,36 +0,0 @@ +-six==1.10.0 +-cryptography==2.6.1 +-requests==2.20.0 +-gTTS==2.0.3 +-gTTS-token==1.1.3 +-PyAudio==0.2.11 +-pyee==5.0.0 +-SpeechRecognition==3.8.1 +-tornado==4.5.3 +-websocket-client==0.54.0 +-requests-futures==0.9.5 +-pyalsaaudio==0.8.2 +-xmlrunner==1.7.7 +-pyserial==3.0 +-psutil==5.2.1 +-pocketsphinx==0.1.0 +-inflection==0.3.1 +-pillow==4.1.1 +-python-dateutil==2.6.0 +-pychromecast==3.2.2 +-python-vlc==1.1.2 +-google-api-python-client==1.6.4 +-fasteners==0.14.1 +-PyYAML==3.13 +- +-msm==0.8.3 +-msk==0.3.13 +-adapt-parser==0.3.3 +-padatious==0.4.6 +-fann2==1.0.7 +-padaos==0.1.9 +-precise-runner==0.2.1 +-petact==0.1.2 +- +-# dev setup tools +-pep8==1.7.0 +diff --git a/test-requirements.txt b/test-requirements.txt +deleted file mode 100644 +index fd129e3f66d..00000000000 +--- a/test-requirements.txt ++++ /dev/null +@@ -1,7 +0,0 @@ +-pycodestyle===2.5.0 +-coveralls==1.5.0 +-pytest==3.5.0 +-pytest-cov==2.5.1 +-cov-core==1.15.0 +-sphinx==1.8.2 +-sphinx-rtd-theme==0.4.2 +-- +2.23.0 + diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0003-Use-python3-and-pip3-instead-of-python-and-pip.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch index a1f04b4b47..6f1f6f78d1 100644 --- a/meta-multimedia/recipes-multimedia/mycroft/files/0003-Use-python3-and-pip3-instead-of-python-and-pip.patch +++ b/meta-multimedia/recipes-multimedia/mycroft/files/0006-Use-python3-and-pip3-instead-of-python-and-pip.patch @@ -1,19 +1,19 @@ -From 87b94e54fefa1f83b41030444fc87b421c97b2c5 Mon Sep 17 00:00:00 2001 +From 86a1d18d96f827baa0c1029c85a53fc89d436e17 Mon Sep 17 00:00:00 2001 From: Alistair Francis <alistair.francis@wdc.com> Date: Tue, 19 Mar 2019 13:38:44 -0700 -Subject: [PATCH 3/5] Use python3 and pip3 instead of python and pip +Subject: [PATCH 6/7] Use python3 and pip3 instead of python and pip Signed-off-by: Alistair Francis <alistair.francis@wdc.com> Upstream-Status: Inappropriate [embedded specific] --- - bin/mycroft-cli-client | 2 +- - bin/mycroft-pip | 2 +- - bin/mycroft-say-to | 2 +- - bin/mycroft-skill-testrunner | 4 ++-- - bin/mycroft-speak | 2 +- - dev_setup.sh | 10 +++++----- - scripts/install-pocketsphinx.sh | 2 +- - 7 files changed, 12 insertions(+), 12 deletions(-) + bin/mycroft-cli-client | 2 +- + bin/mycroft-pip | 2 +- + bin/mycroft-say-to | 2 +- + bin/mycroft-skill-testrunner | 4 ++-- + bin/mycroft-speak | 2 +- + dev_setup.sh | 6 +++--- + scripts/install-pocketsphinx.sh | 2 +- + 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/bin/mycroft-cli-client b/bin/mycroft-cli-client index f40a316e3f6..de2040d9e67 100755 @@ -38,15 +38,15 @@ index a42b16b847a..81bd5bfb3cf 100755 +pip3 $@ \ No newline at end of file diff --git a/bin/mycroft-say-to b/bin/mycroft-say-to -index 964e16eb0c5..5575969715c 100755 +index 4ae597f3062..8bb4039996d 100755 --- a/bin/mycroft-say-to +++ b/bin/mycroft-say-to -@@ -22,4 +22,4 @@ DIR="$( pwd )" - source "$DIR/../venv-activate.sh" -q +@@ -26,4 +26,4 @@ set -- "${1:-$(</dev/stdin)}" "${@:2}" # Send a message to be spoken --output=$(python -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$@\"], \"lang\": \"en-us\"}") -+output=$(python3 -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$@\"], \"lang\": \"en-us\"}") + data="$@" +-output=$(python -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$data\"], \"lang\": \"en-us\"}") ++output=$(python3 -m mycroft.messagebus.send "recognizer_loop:utterance" "{\"utterances\": [\"$data\"], \"lang\": \"en-us\"}") diff --git a/bin/mycroft-skill-testrunner b/bin/mycroft-skill-testrunner index 9699a4d138f..282f5ca65b0 100755 --- a/bin/mycroft-skill-testrunner @@ -63,60 +63,46 @@ index 9699a4d138f..282f5ca65b0 100755 fi \ No newline at end of file diff --git a/bin/mycroft-speak b/bin/mycroft-speak -index 51facf29189..c65556f1173 100755 +index d80f0e75b13..9448ea3400f 100755 --- a/bin/mycroft-speak +++ b/bin/mycroft-speak -@@ -22,4 +22,4 @@ DIR="$( pwd )" - source "$DIR/../venv-activate.sh" -q +@@ -24,4 +24,4 @@ source "$DIR/../venv-activate.sh" -q # Send a message to be spoken --output=$(python -m mycroft.messagebus.send "speak" "{\"utterance\": \"$@\"}") -\ No newline at end of file -+output=$(python3 -m mycroft.messagebus.send "speak" "{\"utterance\": \"$@\"}") -\ No newline at end of file + data="$@" +-output=$(python -m mycroft.messagebus.send "speak" "{\"utterance\": \"$data\"}") ++output=$(python3 -m mycroft.messagebus.send "speak" "{\"utterance\": \"$data\"}") diff --git a/dev_setup.sh b/dev_setup.sh -index aed54b2167a..dd391181f19 100755 +index be4a19de0c3..2d9e17ddfd6 100755 --- a/dev_setup.sh +++ b/dev_setup.sh -@@ -48,7 +48,7 @@ param="" +@@ -48,7 +48,7 @@ param='' for var in "$@" ; do # Check if parameter should be read -- if [[ ${param} == "python" ]] ; then -+ if [[ ${param} == "python3" ]] ; then - opt_python=${var} +- if [[ $param == 'python' ]] ; then ++ if [[ $param == 'python3' ]] ; then + opt_python=$var param="" continue -@@ -351,17 +351,17 @@ if [ -z ${INSTALL_PRECOMMIT_HOOK} ] ; then - HOOK_FILE="./.git/hooks/pre-commit" - if [ ! -f ${HOOK_FILE} ] || grep -q "MYCROFT DEV SETUP" ${HOOK_FILE} ; then - echo "Installing PEP8 check as precommit-hook" -- echo "#! $( which python )" > ${HOOK_FILE} -+ echo "#! $( which python3 )" > ${HOOK_FILE} - echo "# MYCROFT DEV SETUP" >> ${HOOK_FILE} - cat ./scripts/pre-commit >> ${HOOK_FILE} - chmod +x ${HOOK_FILE} +@@ -75,7 +75,7 @@ for var in "$@" ; do + opt_skipmimicbuild=true fi - fi - --PYTHON=$( python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" ) -+PYTHON=$( python3 -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))" ) + if [[ $var == '-p' || $var == '--python' ]] ; then +- param='python' ++ param='python3' + fi + done - # install required python modules --if ! pip install -r requirements.txt ; then -+if ! pip3 install -r requirements.txt ; then - echo "Warning: Failed to install all requirements. Continue? y/N" - read -n1 continue - if [[ "$continue" != "y" ]] ; then -@@ -369,7 +369,7 @@ if ! pip install -r requirements.txt ; then +@@ -349,7 +349,7 @@ else fi fi --if ! pip install -r test-requirements.txt ; then -+if ! pip3 install -r test-requirements.txt ; then - echo "Warning test requirements wasn't installed, Note: normal operation should still work fine..." - fi +-PYTHON=$(python -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))") ++PYTHON=$(python3 -c "import sys;print('python{}.{}'.format(sys.version_info[0], sys.version_info[1]))") + SYSMEM=$(free | awk '/^Mem:/ { print $2 }') + MAXCORES=$(($SYSMEM / 512000)) diff --git a/scripts/install-pocketsphinx.sh b/scripts/install-pocketsphinx.sh index 44d329b7985..d45f5c22747 100755 --- a/scripts/install-pocketsphinx.sh @@ -131,5 +117,5 @@ index 44d329b7985..d45f5c22747 100755 if [ "$1" = "-q" ] ; then -- -2.21.0 +2.23.0 diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch b/meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch new file mode 100644 index 0000000000..574bda144e --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/files/0007-mycroft.conf-Use-pocketsphinx-by-default.patch @@ -0,0 +1,30 @@ +From b48b3d240cb0fa5e76aa5daf578e51bb8126431d Mon Sep 17 00:00:00 2001 +From: Alistair Francis <alistair.francis@wdc.com> +Date: Wed, 16 Oct 2019 09:18:39 -0700 +Subject: [PATCH 7/7] mycroft.conf: Use pocketsphinx by default + +precise only works on certain architectures, to make Mycroft more +versitle use pocketsphinx as it is architecture independent. + +Signed-off-by: Alistair Francis <alistair.francis@wdc.com> +Upstream-Status: Inappropriate [embedded specific] +--- + mycroft/configuration/mycroft.conf | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mycroft/configuration/mycroft.conf b/mycroft/configuration/mycroft.conf +index 1d0be0dcd2b..d2dc75dac44 100644 +--- a/mycroft/configuration/mycroft.conf ++++ b/mycroft/configuration/mycroft.conf +@@ -196,7 +196,7 @@ + // Hotword configurations + "hotwords": { + "hey mycroft": { +- "module": "precise", ++ "module": "pocketsphinx", + "phonemes": "HH EY . M AY K R AO F T", + "threshold": 1e-90, + "lang": "en-us" +-- +2.23.0 + diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service b/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service index 07598235ee..4b4bcdd774 100644 --- a/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service +++ b/meta-multimedia/recipes-multimedia/mycroft/files/mycroft-setup.service @@ -5,7 +5,8 @@ After=systemd-user-sessions.service [Service] Type=oneshot -ExecStart=@LIBDIR@/mycroft/dev_setup.sh --allow-root +ExecStart=cp -rf @LIBDIR@/mycroft /var/ +ExecStart=/var/mycroft/dev_setup.sh --allow-root [Install] WantedBy=multi-user.target diff --git a/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service b/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service index 28729f6b16..c7f477f136 100644 --- a/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service +++ b/meta-multimedia/recipes-multimedia/mycroft/files/mycroft.service @@ -5,10 +5,10 @@ After=mycroft-setup.service [Service] Type=forking -WorkingDirectory=@LIBDIR@/mycroft +WorkingDirectory=/var/mycroft ExecStartPre=mkdir -p /var/log/mycroft -ExecStart=@LIBDIR@/mycroft/start-mycroft.sh all -ExecStop=@LIBDIR@/mycroft/stop-mycroft.sh all +ExecStart=/var/mycroft/start-mycroft.sh all +ExecStop=/var/mycroft/stop-mycroft.sh all [Install] WantedBy=multi-user.target diff --git a/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.3.bb b/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.3.bb deleted file mode 100644 index becd0bf790..0000000000 --- a/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.2.3.bb +++ /dev/null @@ -1,74 +0,0 @@ -SUMMARY = "Mycroft is a hackable open source voice assistant." -DESCRIPTION = "Mycroft is the world’s first open source assistant. " -HOMEPAGE = "https://mycroft.ai/" -SECTION = "multimedia" - -LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE.md;md5=79aa497b11564d1d419ee889e7b498f6" - -SRCREV = "4b45db34ecd95b62ef2b66a8e5180c66ca791a21" -SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master \ - file://0001-Remove-python-venv.patch \ - file://0002-pip-requirements-Remove-ones-installed-by-OE.patch \ - file://0003-Use-python3-and-pip3-instead-of-python-and-pip.patch \ - file://0004-dev_setup.sh-Remove-the-git-dependency.patch \ - file://0005-dev_setup.sh-Remove-the-test-setup-dependency.patch \ - file://dev_opts.json \ - file://mycroft-setup.service \ - file://mycroft.service \ - " - -S = "${WORKDIR}/git" - -inherit systemd - -# Mycroft installs itself on the host -# Just copy the setup files to the rootfs -do_install() { - install -d ${D}${libdir}/ - cp -r ${B} ${D}${libdir}/mycroft - rm -r ${D}${libdir}/mycroft/.git - - # Install the dev opts so it doesn't ask us on initial setup. - install -m 644 ${WORKDIR}/dev_opts.json ${D}${libdir}/mycroft/.dev_opts.json - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${systemd_unitdir}/system - install -m 644 ${WORKDIR}/mycroft-setup.service ${D}${systemd_unitdir}/system - sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft-setup.service - fi - - if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then - install -d ${D}${systemd_unitdir}/system - install -m 644 ${WORKDIR}/mycroft.service ${D}${systemd_unitdir}/system - sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft.service - fi -} - -FILES_${PN} += "${libdir}/mycroft" - -RDEPENDS_${PN} = "python3" - -# Install as many Python packages as we can. -# We don't yet have all the packages in meta-python. -# Install as many as we can and we will install the rest on the target with pip. -# TODO: Add all the remaining packages and remove pip -RDEPENDS_${PN} += "python3-pip \ - python3-requests python3-pillow \ - python3-tornado python3-pyyaml \ - python3-pyalsaaudio python3-inflection \ - python3-pyserial python3-psutil \ - python3-pyaudio python3-fann2 \ - python3-pocketsphinx \ - python3-xxhash \ - " - -# Mycroft uses Alsa, PulseAudio and Flac -RDEPENDS_${PN} += "alsa-oss alsa-utils alsa-plugins alsa-tools" -RDEPENDS_${PN} += "pulseaudio pulseaudio-misc pulseaudio-server" -RDEPENDS_${PN} += "flac" - -# Mycroft can do this itself on the target, but it's quicker to do it here -RDEPENDS_${PN} += "mimic" - -SYSTEMD_SERVICE_${PN} = "mycroft-setup.service mycroft.service" diff --git a/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb b/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb new file mode 100644 index 0000000000..8bedc693ba --- /dev/null +++ b/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb @@ -0,0 +1,95 @@ +SUMMARY = "Mycroft is a hackable open source voice assistant." +DESCRIPTION = "Mycroft is the world’s first open source assistant. " +HOMEPAGE = "https://mycroft.ai/" +SECTION = "multimedia" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=79aa497b11564d1d419ee889e7b498f6" + +SRCREV = "913f29d3d550637934f9abf43a097eb2c30d76fc" +SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master;protocol=https \ + file://0001-Remove-python-venv.patch \ + file://0002-dev_setup.sh-Remove-the-git-dependency.patch \ + file://0003-dev_setup.sh-Remove-the-TERM-dependency.patch \ + file://0004-dev_setup.sh-Ignore-missing-package-manager.patch \ + file://0005-pip-requirements-Don-t-install-requirements-with-pip.patch \ + file://0006-Use-python3-and-pip3-instead-of-python-and-pip.patch \ + file://0007-mycroft.conf-Use-pocketsphinx-by-default.patch \ + file://dev_opts.json \ + file://mycroft-setup.service \ + file://mycroft.service \ + " + +S = "${WORKDIR}/git" + +inherit systemd features_check + +# Mycroft installs itself on the host +# Just copy the setup files to the rootfs +# The mycroft-setup service will copy the files to /var/ where we run them from +do_install() { + install -d ${D}${libdir}/ + cp -r ${B} ${D}${libdir}/mycroft + rm -r ${D}${libdir}/mycroft/.git + + # Install the dev opts so it doesn't ask us on initial setup. + install -m 644 ${UNPACKDIR}/dev_opts.json ${D}${libdir}/mycroft/.dev_opts.json + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 644 ${UNPACKDIR}/mycroft-setup.service ${D}${systemd_unitdir}/system + sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft-setup.service + fi + + if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then + install -d ${D}${systemd_unitdir}/system + install -m 644 ${UNPACKDIR}/mycroft.service ${D}${systemd_unitdir}/system + sed -i -e 's,@LIBDIR@,${libdir},g' ${D}${systemd_unitdir}/system/mycroft.service + fi +} + +FILES:${PN} += "${libdir}/mycroft" + +RDEPENDS:${PN} = "python3" + +RDEPENDS:${PN} += "python3-requests python3-pillow \ + python3-tornado python3-pyyaml \ + python3-pyalsaaudio python3-inflection \ + python3-pyserial python3-psutil \ + python3-pyaudio python3-fann2 \ + python3-pocketsphinx \ + python3-xxhash python3-pako \ + python3-six python3-cryptography \ + python3-requests-futures \ + python3-fasteners \ + python3-python-vlc \ + python3-padatious python3-padaos \ + python3-petact python3-precise-runner \ + python3-pulsectl python3-pychromecast \ + python3-msm python3-msk \ + python3-websocket-client \ + python3-google-api-python-client \ + " + +# These packages need to be installed on the target +# python3-speechrecognition python3-pyee==5.0.0 python3-six==1.10.0 +# python3-websocket-client==0.54.0 python3-gtts python3-gtts-token +# python3-python-dateutil python3-adapt-parser python3-lazy + +# Mycroft uses Alsa, PulseAudio and Flac +RDEPENDS:${PN} += "alsa-utils alsa-plugins alsa-tools" +RDEPENDS:${PN} += "pulseaudio pulseaudio-misc pulseaudio-server" +RDEPENDS:${PN} += "flac mpg123" + +# Mycroft can do this itself on the target, but it's quicker to do it here +RDEPENDS:${PN} += "mimic" + +# pgrep is used by stop-mycroft.sh +RDEPENDS:${PN} += "procps" + +# More tools needed by scripts +RDEPENDS:${PN} += "bash jq libnotify" + +SYSTEMD_SERVICE:${PN} = "mycroft-setup.service mycroft.service" + +REQUIRED_DISTRO_FEATURES += "pulseaudio" diff --git a/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch new file mode 100644 index 0000000000..ac9e70a718 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers/0001-Makefile-add-clean-target.patch @@ -0,0 +1,27 @@ +From 3b74181d626f7dedb47377450ca7c43457a66cda Mon Sep 17 00:00:00 2001 +From: Markus Volk <f_L_K@t-online.de> +Date: Sat, 1 Apr 2023 04:42:32 +0200 +Subject: [PATCH] Makefile: add clean target + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index a51c2c9..fbe2aec 100644 +--- a/Makefile ++++ b/Makefile +@@ -19,5 +19,7 @@ install: all + uninstall: + rm -rf '$(DESTDIR)$(PREFIX)/include/ffnvcodec' '$(DESTDIR)$(PREFIX)/$(LIBDIR)/pkgconfig/ffnvcodec.pc' + +-.PHONY: all install uninstall ++clean: uninstall ++ ++.PHONY: all clean install uninstall + +-- +2.34.1 + diff --git a/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.1.14.0.bb b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.1.14.0.bb new file mode 100644 index 0000000000..36885f29e2 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/nv-codec-headers/nv-codec-headers_12.1.14.0.bb @@ -0,0 +1,17 @@ +SUMMARY = "FFmpeg nvidia headers" +HOMEPAGE = "https://git.videolan.org/git/ffmpeg/nv-codec-headers.git" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${S}/include/ffnvcodec/dynlink_cuda.h;beginline=1;endline=26;md5=bb54a418154445b0aa99e15f640eacf4" + +SRC_URI = " \ + git://git.videolan.org/git/ffmpeg/nv-codec-headers.git;branch=master;protocol=https \ + file://0001-Makefile-add-clean-target.patch \ +" +SRCREV = "1889e62e2d35ff7aa9baca2bceb14f053785e6f1" +S = "${WORKDIR}/git" + +EXTRA_OEMAKE = "PREFIX=${prefix} DESTDIR=${D} LIBDIR=${baselib}" + +do_install() { + oe_runmake install +} diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft/0001-Use-BUILD_CC-to-compile-native-tools.patch b/meta-multimedia/recipes-multimedia/openal/openal-soft/0001-Use-BUILD_CC-to-compile-native-tools.patch deleted file mode 100644 index 16f123fad8..0000000000 --- a/meta-multimedia/recipes-multimedia/openal/openal-soft/0001-Use-BUILD_CC-to-compile-native-tools.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 29217932c34d7e3368764ab64879dc6f1edab1a6 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 14 Jan 2019 11:19:44 -0800 -Subject: [PATCH] Use host compiler to compile native tools - -Helps in cross compiling - -Upstream-Status: Inappropriate [OE-Specific] - -Signed-off-by: Khem Raj <raj.khem@gmail.com> - ---- - CMakeLists.txt | 5 ++--- - 1 file changed, 2 insertions(+), 3 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 39b80250..d6bdf8ed 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1288,11 +1288,10 @@ FILE(MAKE_DIRECTORY "${NATIVE_BIN_DIR}") - SET(BIN2H_COMMAND "${NATIVE_BIN_DIR}bin2h") - SET(BSINCGEN_COMMAND "${NATIVE_BIN_DIR}bsincgen") - ADD_CUSTOM_COMMAND(OUTPUT "${BIN2H_COMMAND}" "${BSINCGEN_COMMAND}" -- COMMAND ${CMAKE_COMMAND} -G "${CMAKE_GENERATOR}" "${NATIVE_SRC_DIR}" - COMMAND ${CMAKE_COMMAND} -E remove "${BIN2H_COMMAND}" "${BSINCGEN_COMMAND}" -- COMMAND ${CMAKE_COMMAND} --build . --config "Release" -+ COMMAND gcc "${NATIVE_SRC_DIR}bin2h.c" -o "${BIN2H_COMMAND}" -lm -+ COMMAND gcc "${NATIVE_SRC_DIR}bsincgen.c" -o "${BSINCGEN_COMMAND}" -lm - WORKING_DIRECTORY "${NATIVE_BIN_DIR}" -- DEPENDS "${NATIVE_SRC_DIR}CMakeLists.txt" - IMPLICIT_DEPENDS C "${NATIVE_SRC_DIR}bin2h.c" - C "${NATIVE_SRC_DIR}bsincgen.c" - VERBATIM diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft/0002-makehrtf-Disable-Wstringop-truncation.patch b/meta-multimedia/recipes-multimedia/openal/openal-soft/0002-makehrtf-Disable-Wstringop-truncation.patch deleted file mode 100644 index 8420386e36..0000000000 --- a/meta-multimedia/recipes-multimedia/openal/openal-soft/0002-makehrtf-Disable-Wstringop-truncation.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 07ef86e33ed6f7585f0dfaa1732ea17c816655a4 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 14 Jan 2019 11:45:42 -0800 -Subject: [PATCH] makehrtf: Disable Wstringop-truncation - -Upstream-Status: Inappropriate [Should be fixed in code] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - utils/makehrtf.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/utils/makehrtf.c b/utils/makehrtf.c -index 0bd36849..0abe4252 100644 ---- a/utils/makehrtf.c -+++ b/utils/makehrtf.c -@@ -862,6 +862,7 @@ static int TrReadOperator(TokenReaderT *tr, const char *op) - * pattern string are replaced with the replacement string. The result is - * truncated if necessary. - */ -+#pragma GCC diagnostic ignored "-Wstringop-truncation" - static int StrSubst(const char *in, const char *pat, const char *rep, const size_t maxLen, char *out) - { - size_t inLen, patLen, repLen; -@@ -900,6 +901,7 @@ static int StrSubst(const char *in, const char *pat, const char *rep, const size - return !truncated; - } - -+#pragma GCC diagnostic pop - - /********************* - *** Math routines *** diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.19.1.bb b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.19.1.bb deleted file mode 100644 index a9cdfac8a9..0000000000 --- a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.19.1.bb +++ /dev/null @@ -1,25 +0,0 @@ -SUMMARY = "OpenAL is a cross-platform 3D audio API" -HOMEPAGE = "http://kcat.strangesoft.net/openal.html" -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=0f159f19f9377e1895fbb477d5a7953e" - -inherit cmake pkgconfig - -# openal-soft-1.19.1 -SRCREV = "6761218e51699f46bf25c377e65b3e9ea5e434b9" -SRC_URI = "git://github.com/kcat/openal-soft \ - file://0001-Use-BUILD_CC-to-compile-native-tools.patch \ - file://0002-makehrtf-Disable-Wstringop-truncation.patch \ - " - -S = "${WORKDIR}/git" - -PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)}" -PACKAGECONFIG[alsa] = "-DALSA=TRUE, -DALSA=FALSE, alsa-lib" -PACKAGECONFIG[pulseaudio] = "-DPULSEAUDIO=TRUE, -DPULSEAUDIO=FALSE, pulseaudio" -# currently doesn't work with libav-9 -# PKG_CHECK_MODULES(FFMPEG libavcodec>=53.61.100 libavformat>=53.32.100 libavutil>=51.35.100) -# but alffmpeg.c:418:44: error: 'AV_CH_LAYOUT_MONO' undeclared (first use in this function) -PACKAGECONFIG[examples] = "-DEXAMPLES=TRUE, -DEXAMPLES=FALSE, libav" - -FILES_${PN} += "${datadir}/openal" diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.23.1.bb b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.23.1.bb new file mode 100644 index 0000000000..83745703f5 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.23.1.bb @@ -0,0 +1,23 @@ +SUMMARY = "OpenAL is a cross-platform 3D audio API" +HOMEPAGE = "http://kcat.strangesoft.net/openal.html" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=0f159f19f9377e1895fbb477d5a7953e" + +inherit cmake pkgconfig + +DEPENDS = "zlib libsndfile1" + +SRCREV = "d3875f333fb6abe2f39d82caca329414871ae53b" +SRC_URI = "git://github.com/kcat/openal-soft.git;protocol=https;branch=master" + +S = "${WORKDIR}/git" + +PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pipewire pulseaudio', d)}" +PACKAGECONFIG[alsa] = "-DALSOFT_BACKEND_ALSA=ON,-DALSOFT_BACKEND_ALSA=OFF,alsa-lib" +PACKAGECONFIG[oss] = "-DALSOFT_BACKEND_OSS=ON,-DALSOFT_BACKEND_OSS=OFF" +PACKAGECONFIG[pulseaudio] = "-DALSOFT_BACKEND_PULSEAUDIO=ON,-DALSOFT_BACKEND_PULSEAUDIO=OFF,pulseaudio" +PACKAGECONFIG[pipewire] = "-DALSOFT_BACKEND_PIPEWIRE=ON,-DALSOFT_BACKEND_PIPEWIRE=OFF,pipewire" +PACKAGECONFIG[examples] = "-DALSOFT_EXAMPLES=ON,-DALSOFT_EXAMPLES=OFF" +PACKAGECONFIG[sdl2] = "-DALSOFT_BACKEND_SDL2=ON,-DALSOFT_BACKEND_SDL2=OFF,libsdl2 ffmpeg" + +FILES:${PN} += "${datadir}" diff --git a/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb b/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.6.bb index ab5813ebe9..be7977308b 100644 --- a/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.3.bb +++ b/meta-multimedia/recipes-multimedia/opencore-amr/opencore-amr_0.1.6.bb @@ -4,10 +4,10 @@ SECTION = "libs" LICENSE = "Apache-2.0" LICENSE_FLAGS = "commercial" -LIC_FILES_CHKSUM = "file://COPYING;md5=dd2c2486aca02190153cf399e508c7e7" +LIC_FILES_CHKSUM = "file://LICENSE;md5=dd2c2486aca02190153cf399e508c7e7" SRC_URI = "${SOURCEFORGE_MIRROR}/opencore-amr/${BP}.tar.gz" -SRC_URI[md5sum] = "09d2c5dfb43a9f6e9fec8b1ae678e725" -SRC_URI[sha256sum] = "106bf811c1f36444d7671d8fd2589f8b2e0cca58a2c764da62ffc4a070595385" +SRC_URI[md5sum] = "03de025060a4f16c4c44218f65e13e95" +SRC_URI[sha256sum] = "483eb4061088e2b34b358e47540b5d495a96cd468e361050fae615b1809dc4a1" inherit autotools diff --git a/meta-multimedia/recipes-multimedia/openh264/openh264/0001-Makefile-Use-cp-options-to-preserve-file-mode.patch b/meta-multimedia/recipes-multimedia/openh264/openh264/0001-Makefile-Use-cp-options-to-preserve-file-mode.patch new file mode 100644 index 0000000000..92f32948b2 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/openh264/openh264/0001-Makefile-Use-cp-options-to-preserve-file-mode.patch @@ -0,0 +1,32 @@ +From 1c3bda45c55d2334af384caf9e7f240b7aaf2eb5 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Tue, 3 Mar 2020 22:28:25 -0800 +Subject: [PATCH] Makefile: Use cp options to preserve file mode + +This fixes packaging issues e.g. +openh264: /usr/lib/libopenh264.so is owned by uid 1000, which is the same as the user running bitbake + +Upstream-Status: Submitted [https://github.com/cisco/openh264/pull/3245] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + Makefile | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile b/Makefile +index 74ff029d..ac643412 100644 +--- a/Makefile ++++ b/Makefile +@@ -306,8 +306,8 @@ install-shared: $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX) install-headers $ + mkdir -p $(DESTDIR)$(SHAREDLIB_DIR) + install -m 755 $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXFULLVER) $(DESTDIR)$(SHAREDLIB_DIR) + if [ "$(SHAREDLIBSUFFIXFULLVER)" != "$(SHAREDLIBSUFFIX)" ]; then \ +- cp -a $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXMAJORVER) $(DESTDIR)$(SHAREDLIB_DIR) ; \ +- cp -a $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX) $(DESTDIR)$(SHAREDLIB_DIR) ; \ ++ cp -R --no-dereference --preserve=mode,links $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIXMAJORVER) $(DESTDIR)$(SHAREDLIB_DIR) ; \ ++ cp -R --no-dereference --preserve=mode,links $(LIBPREFIX)$(PROJECT_NAME).$(SHAREDLIBSUFFIX) $(DESTDIR)$(SHAREDLIB_DIR) ; \ + fi + mkdir -p $(DESTDIR)$(PREFIX)/$(LIBDIR_NAME)/pkgconfig + install -m 644 $(PROJECT_NAME).pc $(DESTDIR)$(PREFIX)/$(LIBDIR_NAME)/pkgconfig +-- +2.25.1 + diff --git a/meta-multimedia/recipes-multimedia/openh264/openh264/0002-Makefile-add-possibility-to-disable-NEON-extension.patch b/meta-multimedia/recipes-multimedia/openh264/openh264/0002-Makefile-add-possibility-to-disable-NEON-extension.patch new file mode 100644 index 0000000000..298ac1c013 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/openh264/openh264/0002-Makefile-add-possibility-to-disable-NEON-extension.patch @@ -0,0 +1,103 @@ +From bc3a3baeaccfe9c1286848b348baf92dfbd05346 Mon Sep 17 00:00:00 2001 +From: Benjamin Bara <benjamin.bara@skidata.com> +Date: Thu, 31 Aug 2023 09:27:31 +0200 +Subject: [PATCH 2/2] Makefile: add possibility to disable NEON extension + +README states that the NEON extension is optional. However, currently it +cannot be turned off, therefore add an option to disable it. + +Upstream-Status: Submitted [https://github.com/cisco/openh264/pull/3679] +Signed-off-by: Benjamin Bara <benjamin.bara@skidata.com> +--- + Makefile | 1 + + build/arch.mk | 4 ++++ + build/msvc-common.mk | 10 ++++++++-- + build/platform-mingw_nt.mk | 5 ++++- + 4 files changed, 17 insertions(+), 3 deletions(-) + +diff --git a/Makefile b/Makefile +index baed53a7..cc22c4aa 100644 +--- a/Makefile ++++ b/Makefile +@@ -35,6 +35,7 @@ CCASFLAGS=$(CFLAGS) + STATIC_LDFLAGS=-lstdc++ + STRIP ?= strip + USE_STACK_PROTECTOR = Yes ++USE_NEON=Yes + + SHAREDLIB_MAJORVERSION=7 + FULL_VERSION := 2.3.1 +diff --git a/build/arch.mk b/build/arch.mk +index 4e1538c4..fd6a81e4 100644 +--- a/build/arch.mk ++++ b/build/arch.mk +@@ -17,18 +17,22 @@ ifneq ($(filter-out arm64 arm64e, $(filter arm%, $(ARCH))),) + ifeq ($(USE_ASM), Yes) + ASM_ARCH = arm + ASMFLAGS += -I$(SRC_PATH)codec/common/arm/ ++ifeq ($(USE_NEON), Yes) + CFLAGS += -DHAVE_NEON + endif + endif ++endif + + #for arm64 + ifneq ($(filter arm64 aarch64 arm64e, $(ARCH)),) + ifeq ($(USE_ASM), Yes) + ASM_ARCH = arm64 + ASMFLAGS += -I$(SRC_PATH)codec/common/arm64/ ++ifeq ($(USE_NEON), Yes) + CFLAGS += -DHAVE_NEON_AARCH64 + endif + endif ++endif + + #for mips + ifneq ($(filter mips mips64, $(ARCH)),) +diff --git a/build/msvc-common.mk b/build/msvc-common.mk +index 5891ea4e..5a1e2582 100644 +--- a/build/msvc-common.mk ++++ b/build/msvc-common.mk +@@ -10,7 +10,10 @@ else + endif + ifeq ($(ASM_ARCH), arm) + CCAS = gas-preprocessor.pl -as-type armasm -force-thumb -- armasm +-CCASFLAGS = -nologo -DHAVE_NEON -ignore 4509 ++CCASFLAGS = -nologo -ignore 4509 ++ifeq ($(USE_NEON), Yes) ++CCASFLAGS += -DHAVE_NEON ++endif + endif + + CC=cl +@@ -20,7 +23,10 @@ CXX_O=-Fo$@ + + ifeq ($(ASM_ARCH), arm64) + CCAS = clang-cl +-CCASFLAGS = -nologo -DHAVE_NEON_AARCH64 --target=arm64-windows ++CCASFLAGS = -nologo --target=arm64-windows ++ifeq ($(USE_NEON), Yes) ++CCASFLAGS += -DHAVE_NEON_AARCH64 ++endif + endif + + +diff --git a/build/platform-mingw_nt.mk b/build/platform-mingw_nt.mk +index b7a5495d..d73e362a 100644 +--- a/build/platform-mingw_nt.mk ++++ b/build/platform-mingw_nt.mk +@@ -17,7 +17,10 @@ endif + endif + ifeq ($(ASM_ARCH), arm) + CCAS = gas-preprocessor.pl -as-type clang -force-thumb -- $(CC) +-CCASFLAGS = -DHAVE_NEON -mimplicit-it=always ++CCASFLAGS = -mimplicit-it=always ++ifeq ($(USE_NEON), Yes) ++CCASFLAGS += -DHAVE_NEON ++endif + endif + EXEEXT = .exe + +-- +2.34.1 + diff --git a/meta-multimedia/recipes-multimedia/openh264/openh264_1.7.0.bb b/meta-multimedia/recipes-multimedia/openh264/openh264_1.7.0.bb deleted file mode 100644 index 44c46f81e8..0000000000 --- a/meta-multimedia/recipes-multimedia/openh264/openh264_1.7.0.bb +++ /dev/null @@ -1,42 +0,0 @@ -DESCRIPTION = "OpenH264 is a codec library which supports H.264 encoding and \ -decoding. It is suitable for use in real time applications such as WebRTC." -HOMEPAGE = "http://www.openh264.org/" -SECTION = "libs/multimedia" - -DEPENDS_x86 += "nasm-native" -DEPENDS_x86-64 += "nasm-native" - -LICENSE = "BSD-2-Clause" -LICENSE_FLAGS = "commercial" -LIC_FILES_CHKSUM = "file://LICENSE;md5=bb6d3771da6a07d33fd50d4d9aa73bcf" - -S = "${WORKDIR}/git" -SRCREV = "a180c9d4d6f1a4830ca9eed9d159d54996bd63cb" -BRANCH = "openh264v1.7" -SRC_URI = "git://github.com/cisco/openh264.git;protocol=https;branch=${BRANCH};" - -COMPATIBLE_MACHINE_armv7a = "(.*)" -COMPATIBLE_MACHINE_aarch64 = "(.*)" -COMPATIBLE_MACHINE_x86 = "(.*)" -COMPATIBLE_MACHINE_x86-64 = "(.*)" -COMPATIBLE_MACHINE_mips = "(.*)" -COMPATIBLE_MACHINE_mips64 = "(.*)" - -EXTRA_OEMAKE_armv7a = "ARCH=arm" -EXTRA_OEMAKE_aarch64 = "ARCH=arm64" -EXTRA_OEMAKE_x86 = "ARCH=i386" -EXTRA_OEMAKE_x86-64 = "ARCH=x86_64" -EXTRA_OEMAKE_mips = "ARCH=mips" -EXTRA_OEMAKE_mips64 = "ARCH=mips64" - -do_configure() { - : -} - -do_compile() { - oe_runmake -} - -do_install() { - oe_runmake install DESTDIR=${D} PREFIX=${prefix} -} diff --git a/meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb b/meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb new file mode 100644 index 0000000000..6dfd759355 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/openh264/openh264_2.3.1.bb @@ -0,0 +1,55 @@ +SUMMARY = "Open Source H.264 Codec" +DESCRIPTION = "OpenH264 is a codec library which supports H.264 encoding and \ +decoding. It is suitable for use in real time applications such as WebRTC." +HOMEPAGE = "http://www.openh264.org/" +SECTION = "libs/multimedia" + +DEPENDS:append:x86 = " nasm-native" +DEPENDS:append:x86-64 = " nasm-native" + +LICENSE = "BSD-2-Clause" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://LICENSE;md5=bb6d3771da6a07d33fd50d4d9aa73bcf" + +S = "${WORKDIR}/git" +SRCREV = "0a48f4d2e9be2abb4fb01b4c3be83cf44ce91a6e" +BRANCH = "openh264v${PV}" +SRC_URI = "git://github.com/cisco/openh264.git;protocol=https;branch=${BRANCH} \ + file://0001-Makefile-Use-cp-options-to-preserve-file-mode.patch \ + file://0002-Makefile-add-possibility-to-disable-NEON-extension.patch \ + " + +COMPATIBLE_MACHINE:armv7a = "(.*)" +COMPATIBLE_MACHINE:aarch64 = "(.*)" +COMPATIBLE_MACHINE:x86 = "(.*)" +COMPATIBLE_MACHINE:x86-64 = "(.*)" +COMPATIBLE_MACHINE:mips = "(.*)" +COMPATIBLE_MACHINE:mips64 = "(.*)" +COMPATIBLE_MACHINE:powerpc64le = "null" + +EXTRA_OEMAKE:armv7a = "ARCH=arm" +EXTRA_OEMAKE:armv7ve = "ARCH=arm" +EXTRA_OEMAKE:aarch64 = "ARCH=arm64" +EXTRA_OEMAKE:x86 = "ARCH=i386" +EXTRA_OEMAKE:x86-64 = "ARCH=x86_64" +EXTRA_OEMAKE:mips = "ARCH=mips" +EXTRA_OEMAKE:mips64 = "ARCH=mips64" +EXTRA_OEMAKE:riscv64 = "ARCH=riscv64" + +EXTRA_OEMAKE:append:armv7a = "${@bb.utils.contains("TUNE_FEATURES","neon",""," USE_NEON=No",d)}" +EXTRA_OEMAKE:append:armv7ve = "${@bb.utils.contains("TUNE_FEATURES","neon",""," USE_NEON=No",d)}" + +EXTRA_OEMAKE:append = " ENABLEPIC=Yes" +do_configure() { + : +} + +do_compile() { + oe_runmake +} + +do_install() { + oe_runmake install DESTDIR=${D} PREFIX=${prefix} LIBDIR_NAME=${baselib} SHAREDLIB_DIR=${libdir} +} + +CLEANBROKEN = "1" diff --git a/meta-multimedia/recipes-multimedia/opus-tools/opus-tools_0.2.bb b/meta-multimedia/recipes-multimedia/opus-tools/opus-tools_0.2.bb new file mode 100644 index 0000000000..b76c5ba01d --- /dev/null +++ b/meta-multimedia/recipes-multimedia/opus-tools/opus-tools_0.2.bb @@ -0,0 +1,15 @@ +SUMMARY = "Opus Audio Tools" +HOMEPAGE = "http://www.opus-codec.org/" + +LICENSE = "BSD-2-Clause & GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=79f6fc2a6239fbe5f6e52f20ac76698c" + +SRC_URI = "http://downloads.xiph.org/releases/opus/opus-tools-${PV}.tar.gz" +SRC_URI[md5sum] = "ff2d0536e960cabbfb8ca7c8c1759b6c" +SRC_URI[sha256sum] = "b4e56cb00d3e509acfba9a9b627ffd8273b876b4e2408642259f6da28fa0ff86" + +S = "${WORKDIR}/opus-tools-${PV}" + +DEPENDS = "libopus libopusenc flac opusfile" + +inherit autotools pkgconfig diff --git a/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.10.bb b/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.12.bb index 3f6dbb8e92..c775cef5a1 100644 --- a/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.10.bb +++ b/meta-multimedia/recipes-multimedia/opusfile/opusfile_0.12.bb @@ -8,7 +8,7 @@ LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=6ac22b992dde6a891f8949c3e2da8576" SRC_URI = "https://downloads.xiph.org/releases/opus/${BP}.tar.gz" -SRC_URI[md5sum] = "ab3f7d15d766f5b36b0951ee435f9ebf" -SRC_URI[sha256sum] = "48e03526ba87ef9cf5f1c47b5ebe3aa195bd89b912a57060c36184a6cd19412f" +SRC_URI[md5sum] = "45e8c62f6cd413395223c82f06bfa8ec" +SRC_URI[sha256sum] = "118d8601c12dd6a44f52423e68ca9083cc9f2bfe72da7a8c1acb22a80ae3550b" inherit autotools pkgconfig diff --git a/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb b/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb index 365618d958..672c8abc9a 100644 --- a/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb +++ b/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb @@ -11,7 +11,7 @@ PACKAGES = ' \ packagegroup-meta-multimedia-support \ ' -RDEPENDS_packagegroup-meta-multimedia = "\ +RDEPENDS:packagegroup-meta-multimedia = "\ packagegroup-meta-multimedia \ packagegroup-meta-multimedia-connectivity \ packagegroup-meta-multimedia-dvb \ @@ -19,34 +19,59 @@ RDEPENDS_packagegroup-meta-multimedia = "\ packagegroup-meta-multimedia-support \ " -RDEPENDS_packagegroup-meta-multimedia = "\ - libdvbpsi libdc1394 gstd gst-shark \ - bigbuckbunny-720p tearsofsteel-1080p bigbuckbunny-1080p bigbuckbunny-480p \ - openal-soft dleyna-core dleyna-renderer dleyna-server dleyna-connector-dbus \ - alsa-equal libdvdnav libmusicbrainz tinyalsa \ - fluidsynth cdparanoia vorbis-tools tremor caps libao libavc1394 \ - opusfile gerbera libdvdcss webrtc-audio-processing \ - rtmpdump libopenmpt schroedinger mpd mpc libmpdclient \ - ncmpc libmpd libsquish dcadec libiec61883 \ - ${@bb.utils.contains("DISTRO_FEATURES", "pam", "", "", d)} \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "minidlna gst-fluendo-mpegdemux vlc", "", d)} \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "vo-aacenc sox libde265 gst-openmax", "", d)} \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "streamripper gst-plugins-ugly gst-fluendo-mp3 gst-plugins-gl", "", d)} \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "openh264 opencore-amr faac vo-amrwbenc", "", d)} \ - " +RDEPENDS:packagegroup-meta-multimedia = "\ + alsa-equal \ + aom \ + bluealsa \ + caps \ + cdparanoia \ + dvb-apps \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "faac mpd", "", d)} \ + gerbera \ + libavc1394 \ + libiec61883 \ + libmusicbrainz \ + mpc \ + ncmpc \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "opencore-amr", "", d)} \ + gstd \ + rtmpdump \ + bigbuckbunny-1080p \ + bigbuckbunny-480p \ + bigbuckbunny-720p \ + tearsofsteel-1080p \ + pipewire \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", bb.utils.contains("DISTRO_FEATURES", "x11", "projucer", "", d), "", d)} \ + libcamera \ + vorbis-tools \ + libopenmpt \ + mimic \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "minidlna", "", d)} \ + ${@bb.utils.contains("DISTRO_FEATURES", "pulseaudio", "mycroft", "", d)} \ + openal-soft \ + opusfile \ + opus-tools \ + ${@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 \ + ${@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-connectivity = "\ - rygel gupnp gupnp-igd gssdp gupnp-dlna gupnp-av libupnp \ +RDEPENDS:packagegroup-meta-multimedia-connectivity = "\ + gupnp-dlna \ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gupnp-tools", "", d)} \ - " - -RDEPENDS_packagegroup-meta-multimedia-dvb = "\ - oscam " - -RDEPENDS_packagegroup-meta-multimedia-mkv = "\ - libmatroska libebml \ - " + libupnp \ + ${@bb.utils.contains("DISTRO_FEATURES", "x11", bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "rygel", "", d), "", d)} \ +" +RDEPENDS:packagegroup-meta-multimedia-dvb = "\ + oscam \ + tvheadend \ +" -RDEPENDS_packagegroup-meta-multimedia-support = "\ - libmediaart libmediaart-2.0 gst-instruments libsrtp crossguid \ - " +RDEPENDS:packagegroup-meta-multimedia-support = "\ + crossguid \ + gst-instruments \ +" +# devel headers/libraries only packages +# libsquish diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb new file mode 100644 index 0000000000..9895e89761 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb @@ -0,0 +1,64 @@ +SUMMARY = "Multimedia processing server for Linux" +HOMEPAGE = "https://pipewire.org" +SECTION = "multimedia" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=d8153c6e65986f862a0550ca74a3ed73 \ + file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ +" +DEPENDS = "alsa-lib dbus udev" +SRCREV = "14c11c0fe4d366bad4cfecdee97b6652ff9ed63d" +PV = "0.2.7" + +SRC_URI = "git://github.com/PipeWire/pipewire;branch=master;protocol=https" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig systemd manpages + +PACKAGECONFIG ??= "\ + ${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \ + gstreamer \ +" + +PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd" +PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base" +PACKAGECONFIG[manpages] = "-Dman=true,-Dman=false,libxml-parser-perl-native" + +PACKAGES =+ "\ + ${PN}-spa-plugins \ + ${PN}-alsa \ + ${PN}-config \ + gstreamer1.0-${PN} \ + lib${PN} \ + lib${PN}-modules \ +" + +RDEPENDS:lib${PN} += "lib${PN}-modules ${PN}-spa-plugins" + +FILES:${PN} = "\ + ${sysconfdir}/pipewire/pipewire.conf \ + ${bindir}/pipewire* \ + ${systemd_user_unitdir}/* \ +" +FILES:lib${PN} = "\ + ${libdir}/libpipewire-*.so.* \ +" +FILES:lib${PN}-modules = "\ + ${libdir}/pipewire-*/* \ +" +FILES:${PN}-spa-plugins = "\ + ${bindir}/spa-* \ + ${libdir}/spa/* \ +" +FILES:${PN}-alsa = "\ + ${libdir}/alsa-lib/* \ + ${datadir}/alsa/alsa.conf.d/50-pipewire.conf \ +" +FILES:gstreamer1.0-${PN} = "\ + ${libdir}/gstreamer-1.0/* \ +" + +CONFFILES:${PN} = "\ + ${sysconfdir}/pipewire/pipewire.conf \ +" diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.2.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.2.bb new file mode 100644 index 0000000000..8ae0624135 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire-media-session_0.4.2.bb @@ -0,0 +1,26 @@ +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 \ +" + +SRC_URI = "git://gitlab.freedesktop.org/pipewire/media-session.git;protocol=https;branch=master" + +S = "${WORKDIR}/git" +SRCREV = "80dae7e24bec02b2befe09a72fbac6e2b38ccb5c" + +inherit meson pkgconfig +# https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/2952 +CFLAGS += "-DPW_ENABLE_DEPRECATED" +FILES:${PN} += " \ + ${systemd_user_unitdir}/pipewire-media-session.service \ + ${datadir}/pipewire/media-session.d/* \ +" + +RRECOMMENDS:${PN} += "pipewire" diff --git a/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.0.5.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.0.5.bb new file mode 100644 index 0000000000..c8ac04d59a --- /dev/null +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire_1.0.5.bb @@ -0,0 +1,388 @@ +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/" +BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/pipewire/issues" +SECTION = "multimedia" + +LICENSE = "MIT & LGPL-2.1-or-later & GPL-2.0-only" +LIC_FILES_CHKSUM = " \ + file://LICENSE;md5=2158739e172e58dc9ab1bdd2d6ec9c72 \ + file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \ +" + +DEPENDS = "dbus ncurses" + +SRCREV = "a2287be601710eea0d073261223ec34b92384c8a" +SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=1.0;protocol=https" + +S = "${WORKDIR}/git" + +inherit meson pkgconfig systemd gettext useradd + +USERADD_PACKAGES = "${PN}" + +GROUPADD_PARAM:${PN} = "--system pipewire" + +USERADD_PARAM:${PN} = "--system --home / --no-create-home \ + --comment 'PipeWire multimedia daemon' \ + --gid pipewire --groups audio,video \ + pipewire" + +SYSTEMD_PACKAGES = "${PN}" + +# For "EVL", look up https://evlproject.org/ . It involves +# a specially prepared kernel, and is currently unavailable +# in Yocto. +# +# +# 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, ROC, and libmysofa. +# +# The RTKit module is deprecated in favor of the newer RT module. +# It still exists for legacy setups that still include it in +# their PipeWire configuration files. +EXTRA_OEMESON += " \ + -Devl=disabled \ + -Dtests=disabled \ + -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \ + -Dsystemd-system-unit-dir=${systemd_system_unitdir} \ + -Dsystemd-user-unit-dir=${systemd_user_unitdir} \ + -Dman=disabled \ + -Dsession-managers='[]' \ + -Dlv2=disabled \ + -Droc=disabled \ + -Dbluez5-codec-aptx=disabled \ + -Dbluez5-codec-ldac=disabled \ + -Dlegacy-rtkit=false \ + -Dlibmysofa=disabled \ +" + +# 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 ??= "wireplumber" + +FFMPEG_AVAILABLE = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'ffmpeg', '', d)}" +BLUETOOTH_AAC = "${@bb.utils.contains('LICENSE_FLAGS_ACCEPTED', 'commercial', 'bluez-aac', '', d)}" + +PACKAGECONFIG:class-target ??= " \ + ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez bluez-opus ${BLUETOOTH_AAC}', '', d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-service', '', d)} \ + ${@bb.utils.filter('DISTRO_FEATURES', 'alsa vulkan pulseaudio', d)} \ + ${PIPEWIRE_SESSION_MANAGER} \ + ${FFMPEG_AVAILABLE} avahi flatpak gstreamer gsettings jack libusb pw-cat raop sndfile v4l2 udev volume webrtc-echo-cancelling libcamera readline \ +" + +# "jack" and "pipewire-jack" packageconfigs cannot be both enabled, +# since "jack" imports libjack, and "pipewire-jack" generates +# libjack.so* files, thus colliding with the libpack package. This +# is why these two are marked in their respective packageconfigs +# as being in conflict. +PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev,,pipewire-alsa pipewire-alsa-card-profile" +PACKAGECONFIG[avahi] = "-Davahi=enabled,-Davahi=disabled,avahi" +PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc" +PACKAGECONFIG[bluez-aac] = "-Dbluez5-codec-aac=enabled,-Dbluez5-codec-aac=disabled,fdk-aac" +PACKAGECONFIG[bluez-opus] = "-Dbluez5-codec-opus=enabled,-Dbluez5-codec-opus=disabled,libopus" +PACKAGECONFIG[bluez-lc3] = "-Dbluez5-codec-lc3=enabled,-Dbluez5-codec-lc3=disabled,liblc3" +# From the pipewire git log: +# "Some Linux phones doesn't use oFono but ModemManager to control the modem." +# This packageconfig enables modemmanager specific code in the BlueZ backend. +PACKAGECONFIG[bluez-backend-native-mm] = "-Dbluez5-backend-native-mm=enabled,-Dbluez5-backend-native-mm=disabled,modemmanager" +PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native graphviz-native" +PACKAGECONFIG[ffmpeg] = "-Dffmpeg=enabled,-Dffmpeg=disabled,ffmpeg" +PACKAGECONFIG[flatpak] = "-Dflatpak=enabled,-Dflatpak=disabled,glib-2.0" +PACKAGECONFIG[gsettings] = "-Dgsettings=enabled,-Dgsettings=disabled,glib-2.0" +PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base,,gstreamer1.0-pipewire" +PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack" +PACKAGECONFIG[libcamera] = "-Dlibcamera=enabled,-Dlibcamera=disabled,libcamera libdrm" +PACKAGECONFIG[libcanberra] = "-Dlibcanberra=enabled,-Dlibcanberra=disabled,libcanberra" +PACKAGECONFIG[libusb] = "-Dlibusb=enabled,-Dlibusb=disabled,libusb" +PACKAGECONFIG[media-session] = ",,,pipewire-media-session,,wireplumber" +PACKAGECONFIG[pulseaudio] = "-Dlibpulse=enabled,-Dlibpulse=disabled,pulseaudio,,pipewire-pulse" +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,,pipewire-jack,jack" +PACKAGECONFIG[pw-cat] = "-Dpw-cat=enabled,-Dpw-cat=disabled" +PACKAGECONFIG[raop] = "-Draop=enabled,-Draop=disabled,openssl" +# Starting with version 0.3.60, readline usage can be turned off in pw-cli. +# If it is disabled, getline() is used as a fallback. +PACKAGECONFIG[readline] = "-Dreadline=enabled,-Dreadline=disabled,readline" +PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,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 +# 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[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-1" +PACKAGECONFIG[wireplumber] = ",,,wireplumber,,media-session" + +PACKAGESPLITFUNCS:prepend = " split_dynamic_packages " +PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends " + +SPA_SUBDIR = "spa-0.2" +PW_MODULE_SUBDIR = "pipewire-0.3" + +remove_unused_installed_files() { + # jack.conf is used by pipewire-jack (not the JACK SPA plugin). + # Remove it if pipewire-jack is not built to avoid creating the + # pipewire-jack package. + 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" + +python split_dynamic_packages () { + # Create packages for each SPA plugin. These plugins are located + # in individual subdirectories, so a recursive search is needed. + spa_libdir = d.expand('${libdir}/${SPA_SUBDIR}') + do_split_packages(d, spa_libdir, r'^libspa-(.*)\.so$', d.expand('${PN}-spa-plugins-%s'), 'PipeWire SPA plugin for %s', extra_depends='', recursive=True) + + # Create packages for each PipeWire module. + pw_module_libdir = d.expand('${libdir}/${PW_MODULE_SUBDIR}') + do_split_packages(d, pw_module_libdir, r'^libpipewire-module-(.*)\.so$', d.expand('${PN}-modules-%s'), 'PipeWire %s module', extra_depends='', recursive=False) +} + +python set_dynamic_metapkg_rdepends () { + import os + import oe.utils + + if bb.data.inherits_class('nativesdk', d) or bb.data.inherits_class('native', d): + return + + # Go through all generated SPA plugin and PipeWire 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') + + spa_pn = base_pn + '-spa-plugins' + spa_metapkg = spa_pn + '-meta' + + pw_module_pn = base_pn + '-modules' + pw_module_metapkg = pw_module_pn + '-meta' + + d.setVar('ALLOW_EMPTY:' + spa_metapkg, "1") + d.setVar('FILES:' + spa_metapkg, "") + + d.setVar('ALLOW_EMPTY:' + pw_module_metapkg, "1") + d.setVar('FILES:' + pw_module_metapkg, "") + + blacklist = [ spa_pn, spa_metapkg, pw_module_pn, pw_module_metapkg ] + spa_metapkg_rdepends = [] + pw_module_metapkg_rdepends = [] + pkgdest = d.getVar('PKGDEST') + + for pkg in oe.utils.packages_filter_out_system(d): + if pkg in blacklist: + continue + + is_spa_pkg = pkg.startswith(spa_pn) + is_pw_module_pkg = pkg.startswith(pw_module_pn) + if not is_spa_pkg and not is_pw_module_pkg: + continue + + if pkg in spa_metapkg_rdepends or pkg in pw_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_spa_pkg: + spa_metapkg_rdepends.append(pkg) + if is_pw_module_pkg: + pw_module_metapkg_rdepends.append(pkg) + + d.setVar('RDEPENDS:' + spa_metapkg, ' '.join(spa_metapkg_rdepends)) + d.setVar('DESCRIPTION:' + spa_metapkg, spa_pn + ' meta package') + + d.setVar('RDEPENDS:' + pw_module_metapkg, ' '.join(pw_module_metapkg_rdepends)) + d.setVar('DESCRIPTION:' + pw_module_metapkg, pw_module_pn + ' meta package') +} + +PACKAGES =+ "\ + libpipewire \ + ${PN}-tools \ + ${PN}-pulse \ + ${PN}-alsa \ + ${PN}-jack \ + ${PN}-spa-plugins \ + ${PN}-spa-plugins-meta \ + ${PN}-spa-tools \ + ${PN}-modules \ + ${PN}-modules-meta \ + ${PN}-alsa-card-profile \ + ${PN}-v4l2 \ + ${PN}-aes67 \ + gstreamer1.0-pipewire \ +" + +PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*" +PACKAGES_DYNAMIC:class-native = "" + +SYSTEMD_SERVICE:${PN} = "${@bb.utils.contains('PACKAGECONFIG', 'systemd-system-service', 'pipewire.service', '', d)}" +CONFFILES:${PN} += "${datadir}/pipewire/pipewire.conf" +FILES:${PN} = " \ + ${datadir}/pipewire \ + ${systemd_system_unitdir}/pipewire* \ + ${systemd_user_unitdir} \ + ${bindir}/pipewire \ + ${bindir}/pipewire-avb \ + ${bindir}/pipewire-vulkan \ +" + +RRECOMMENDS:${PN}:class-target += " \ + pipewire-modules-meta \ + pipewire-spa-plugins-meta \ +" + +FILES:${PN}-dev += " \ + ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so \ +" + +CONFFILES:libpipewire += "${datadir}/pipewire/client.conf" +FILES:libpipewire = " \ + ${datadir}/pipewire/client.conf \ + ${libdir}/libpipewire-*.so.* \ +" +# Add the bare minimum modules and plugins required to be able +# to use libpipewire. Without these, it is essentially unusable. +RDEPENDS:libpipewire += " \ + ${PN}-modules-client-node \ + ${PN}-modules-protocol-native \ + ${PN}-spa-plugins-support \ +" + +FILES:${PN}-tools = " \ + ${bindir}/pw-cat \ + ${bindir}/pw-cli \ + ${bindir}/pw-config \ + ${bindir}/pw-dot \ + ${bindir}/pw-dsdplay \ + ${bindir}/pw-dump \ + ${bindir}/pw-encplay \ + ${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 +# drop-in PulseAudio replacement, providing a pulseaudio-compatible +# socket that can be used by applications that use libpulse. +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 \ +" +RDEPENDS:${PN}-pulse += " \ + ${PN}-modules-protocol-pulse \ +" + +# 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. +CONFFILES:${PN}-jack = "${datadir}/pipewire/jack.conf" +FILES:${PN}-jack = "\ + ${bindir}/pw-jack \ + ${datadir}/pipewire/jack.conf \ + ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \ +" + +# 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 PipeWire module packages (see set_dynamic_metapkg_rdepends). +FILES:${PN}-modules = "" +RRECOMMENDS:${PN}-modules += "${PN}-modules-meta" + +CONFFILES:${PN}-modules-rt = "${datadir}/pipewire/client-rt.conf" +FILES:${PN}-modules-rt += " \ + ${datadir}/pipewire/client-rt.conf \ + ${sysconfdir}/security/limits.d/* \ + " + +CONFFILES:${PN}-modules-filter-chain = "${datadir}/pipewire/filter-chain/*" +FILES:${PN}-modules-filter-chain += " \ + ${datadir}/pipewire/filter-chain/* \ +" + +FILES:${PN}-alsa-card-profile = " \ + ${datadir}/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 \ +" + +# AES67 is a standard for audio over IP, from the Audio Engineering Society (AES). +FILES:${PN}-aes67 += " \ + ${bindir}/pipewire-aes67 \ +" + +FILES:gstreamer1.0-pipewire = " \ + ${libdir}/gstreamer-1.0/* \ +" + +BBCLASSEXTEND = "native nativesdk" diff --git a/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb b/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb index 5f78be4f51..aa92c58808 100644 --- a/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb +++ b/meta-multimedia/recipes-multimedia/rtmpdump/rtmpdump_2.4.bb @@ -2,14 +2,14 @@ SUMMARY = "RTMP Dump" DESCRIPTION = "rtmpdump is a toolkit for RTMP streams. All forms of RTMP are \ supported, including rtmp://, rtmpt://, rtmpe://, rtmpte://, and rtmps://." HOMEPAGE = "http://rtmpdump.mplayerhq.hu/" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" DEPENDS = "gnutls zlib" SRCREV = "fa8646daeb19dfd12c181f7d19de708d623704c0" SRC_URI = " \ - git://git.ffmpeg.org/rtmpdump \ + git://git.ffmpeg.org/rtmpdump;branch=master \ file://fix-racing-build-issue.patch" S = "${WORKDIR}/git" diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb index a80fc10ace..cb919d79e3 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb @@ -1,9 +1,9 @@ SUMMARY = "Big Buck Bunny movie - 1080P" LICENSE = "CC-BY-3.0" # http://www.bigbuckbunny.org/index.php/about/ -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" -SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_1080p_surround.avi" +SRC_URI = "http://www.peach.themazzone.com/big_buck_bunny_1080p_surround.avi" SRC_URI[md5sum] = "223991c8b33564eb77988a4c13c1c76a" SRC_URI[sha256sum] = "69fe2cfe7154a6e752688e3a0d7d6b07b1605bbaf75b56f6470dc7b4c20c06ea" @@ -14,4 +14,4 @@ do_install() { install -m 0644 ${WORKDIR}/big_buck_bunny_1080p_surround.avi ${D}${datadir}/movies/ } -FILES_${PN} += "${datadir}/movies" +FILES:${PN} += "${datadir}/movies" diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb index 59ac4788cb..40dc2aacb5 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb @@ -1,9 +1,9 @@ SUMMARY = "Big Buck Bunny movie - 480P" LICENSE = "CC-BY-3.0" # http://www.bigbuckbunny.org/index.php/about/ -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" -SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_480p_surround-fix.avi" +SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_480p_surround-fix.avi" SRC_URI[md5sum] = "ed7ed01e9aefba8ddd77c13332cec120" SRC_URI[sha256sum] = "40d1cf5bc8e1b0e55dac7bb2e3fbc2aea05b6679444864781299b24db044634f" @@ -14,4 +14,4 @@ do_install() { install -m 0644 ${WORKDIR}/big_buck_bunny_480p_surround-fix.avi ${D}${datadir}/movies/ } -FILES_${PN} += "${datadir}/movies" +FILES:${PN} += "${datadir}/movies" diff --git a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb index 21b8f8f0f8..ed1d027b40 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb @@ -1,9 +1,9 @@ SUMMARY = "Big Buck Bunny movie - 720P" LICENSE = "CC-BY-3.0" # http://www.bigbuckbunny.org/index.php/about/ -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" -SRC_URI = "http://download.blender.org/peach/bigbuckbunny_movies/big_buck_bunny_720p_surround.avi" +SRC_URI = "https://archive.org/download/BigBuckBunny/big_buck_bunny_720p_surround.avi" SRC_URI[md5sum] = "0da8fe124595f5b206d64cb1400bbefc" SRC_URI[sha256sum] = "b957d6e6212638441b52d3b620af157cc8d40c2a0342669294854a06edcd528c" @@ -14,4 +14,4 @@ do_install() { install -m 0644 ${WORKDIR}/big_buck_bunny_720p_surround.avi ${D}${datadir}/movies/ } -FILES_${PN} += "${datadir}/movies" +FILES:${PN} += "${datadir}/movies" diff --git a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb index 0582a48562..78f15f143f 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb @@ -1,6 +1,6 @@ SUMMARY = "Tears of Steel movie - 1080P" LICENSE = "CC-BY-3.0" -LIC_FILES_CHKSUM = "file://${COREBASE}/meta/files/common-licenses/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" +LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" SRC_URI = "http://ftp.nluug.nl/pub/graphics/blender/demo/movies/ToS/ToS-4k-1920.mov" SRC_URI[md5sum] = "e3fee55b1779c553e37b1d3988e6fad6" @@ -13,4 +13,4 @@ do_install() { install -m 0644 ${WORKDIR}/ToS-4k-1920.mov ${D}${datadir}/movies/ } -FILES_${PN} += "${datadir}/movies" +FILES:${PN} += "${datadir}/movies" diff --git a/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch b/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch new file mode 100644 index 0000000000..498630c638 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/schroedinger/schroedinger/0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch @@ -0,0 +1,43 @@ +From 7c998657c1787fcad8f0a502063adff71d78a140 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Mon, 12 Jun 2023 09:37:10 -0700 +Subject: [PATCH] testsuite: Add tmp-orc.c for missing + _orc_code_orc_deinterleave2_s16 + +Fixes +| aarch64-yoe-linux-ld.lld: error: undefined symbol: _orc_code_orc_deinterleave2_s16 +| >>> referenced by schroorc.h:1312 (../schroedinger/schroorc.h:1312) +| >>> wavelet_max_gain.o:(iwt_ref) +| >>> referenced by schroorc.h:1312 (../schroedinger/schroorc.h:1312) +| >>> wavelet_max_gain.o:(iwt_ref) +| +| aarch64-yoe-linux-ld.lld: error: undefined symbol: _orc_code_orc_interleave2_s16 +| >>> referenced by wavelet_max_gain.c:281 (/usr/src/debug/schroedinger/1.0.11-r0/testsuite/wavelet_max_gain.c:281) +| >>> wavelet_max_gain.o:(iiwt_ref) +| >>> referenced by wavelet_max_gain.c:281 (/usr/src/debug/schroedinger/1.0.11-r0/testsuite/wavelet_max_gain.c:281) +| >>> wavelet_max_gain.o:(iiwt_ref) +| clang-16: error: linker command failed with exit code 1 (use -v to see invocation) +| make[3]: *** [Makefile:1147: wavelet_max_gain] Error 1 + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + testsuite/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am +index 6ee1130..762ecf2 100644 +--- a/testsuite/Makefile.am ++++ b/testsuite/Makefile.am +@@ -100,6 +100,7 @@ wavelet_2d_SOURCES = wavelet_2d.c + nodist_wavelet_2d_SOURCES = $(top_srcdir)/schroedinger/tmp-orc.c + + wavelet_max_gain_SOURCES = wavelet_max_gain.c ++nodist_wavelet_max_gain_SOURCES = $(top_srcdir)/schroedinger/tmp-orc.c + + wavelet_noise_2d_SOURCES = wavelet_noise_2d.c + +-- +2.41.0 + diff --git a/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb b/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb index d026c69a8f..e8f6df6348 100644 --- a/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb +++ b/meta-multimedia/recipes-multimedia/schroedinger/schroedinger_1.0.11.bb @@ -1,6 +1,6 @@ SUMMARY = "Dirac compressed video encoder/decoder" HOMEPAGE = "http://schrodinger.sourceforge.net/" -LICENSE = "MPL-1.1 | GPLv2 | LGPLv2 | MIT" +LICENSE = "MPL-1.1 | GPL-2.0-only | LGPL-2.0-only | MIT" LIC_FILES_CHKSUM = "file://COPYING;md5=d91a46405fc074b88c963cc4f2a0aae9 \ file://COPYING.GPL;md5=e181e3b7c66f5f96921d813c1074f833 \ @@ -10,7 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d91a46405fc074b88c963cc4f2a0aae9 \ DEPENDS = "orc-native orc" -SRC_URI = "http://www.diracvideo.org/download/schroedinger/${BP}.tar.gz \ +SRC_URI = "https://download.videolan.org/contrib/${BPN}/${BP}.tar.gz \ + file://0001-testsuite-Add-tmp-orc.c-for-missing-_orc_code_orc_de.patch \ file://configure.ac.patch" SRC_URI[md5sum] = "da6af08e564ca1157348fb8d92efc891" @@ -18,5 +19,5 @@ SRC_URI[sha256sum] = "1e572a0735b92aca5746c4528f9bebd35aa0ccf8619b22fa2756137a8c EXTRA_OECONF += "STAGING_DIR=${STAGING_DIR_NATIVE}" -inherit autotools-brokensep pkgconfig +inherit autotools-brokensep pkgconfig gtk-doc diff --git a/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch b/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch index 4f02a66fcc..3085bd495c 100644 --- a/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch +++ b/meta-multimedia/recipes-multimedia/sox/sox/0001-remove-the-error-line-and-live-without-file-type-det.patch @@ -1,11 +1,11 @@ From d0313be5fb947df399a4db24a5f9244510d2ce87 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Wed, 12 Jul 2017 16:36:06 -0700 -Subject: [PATCH] remove the #error line and live without file-type detection - with pipes +Subject: [PATCH] remove the #error line and live without file-type detection with pipes this fallback is executed with musl +Upstream-Status: Inappropriate [musl specific] Signed-off-by: Khem Raj <raj.khem@gmail.com> --- src/formats.c | 1 - diff --git a/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb b/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb index 21fddd1e19..011cbc2a9d 100644 --- a/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb +++ b/meta-multimedia/recipes-multimedia/sox/sox_14.4.2.bb @@ -4,10 +4,7 @@ and can apply different effects and filters to the audio data." HOMEPAGE = "http://sox.sourceforge.net" SECTION = "audio" -DEPENDS = "libpng ffmpeg libsndfile1" - -# While this item does not require it, it depends on ffmpeg which does -LICENSE_FLAGS = "commercial" +DEPENDS = "libpng libsndfile1 libtool" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)} \ magic \ @@ -26,7 +23,7 @@ PACKAGECONFIG[id3tag] = "--with-id3tag,--without-id3tag,libid3tag," PACKAGECONFIG[lame] = "--with-lame,--without-lame,lame," PACKAGECONFIG[ao] = "--with-ao,--without-ao,libao," -LICENSE = "GPLv2 & LGPLv2.1" +LICENSE = "GPL-2.0-only & LGPL-2.1-only" LIC_FILES_CHKSUM = "file://LICENSE.GPL;md5=751419260aa954499f7abaabaa882bbe \ file://LICENSE.LGPL;md5=fbc093901857fcd118f065f900982c24" @@ -38,3 +35,8 @@ SRC_URI[md5sum] = "d04fba2d9245e661f245de0577f48a33" SRC_URI[sha256sum] = "b45f598643ffbd8e363ff24d61166ccec4836fea6d3888881b8df53e3bb55f6c" inherit autotools pkgconfig + +# Enable largefile support +CFLAGS += "-D_FILE_OFFSET_BITS=64" + +EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}" diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch b/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch new file mode 100644 index 0000000000..af504be766 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp/configure.patch @@ -0,0 +1,56 @@ +From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.sommer@navimatix.de> +Date: Thu, 14 Mar 2024 09:41:57 +0100 +Subject: [PATCH 2/2] configure: Replace manual search for libxml by + AC_CHECK_LIB +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The manual search fails if the include directories (and build environment) +are located somewhere else. + +Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de> +Upstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74] +--- + +ERROR: spandsp-3.0.0+git-r0 do_configure: QA Issue: This autoconf log indicates errors, it looked at host include and/or library paths while determining system capabilities. + + configure.ac | 22 +++++----------------- + 1 file changed, 5 insertions(+), 17 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 2140837..b5138d6 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -185,23 +185,11 @@ then + fi + + # Determine XML2 include path +-AC_MSG_CHECKING(for libxml/xmlmemory.h) +- +-# Can we include headers using system include dirs? +-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libxml/xmlmemory.h>]], [[int a = 1;]])],[XML2_INCLUDE=" "],[XML2_INCLUDE=]) +- +-# Hunt through several possible directories to find the includes for libxml2 +-if test "x$XML2_INCLUDE" = "x"; then +- old_CPPFLAGS="$CPPFLAGS" +- for i in $xml2_include_dir /usr/include /usr/local/include /usr/include/libxml2 /usr/local/include/libxml2 ; do +- CPPFLAGS="$old_CPPFLAGS -I$i" +- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <libxml/xmlmemory.h>]], [[int a = 1;]])],[XML2_INCLUDE="-I$i"],[XML2_INCLUDE= +- ]) +- if test "x$XML2_INCLUDE" != "x"; then +- break; +- fi +- done +- CPPFLAGS="$old_CPPFLAGS $XML2_INCLUDE" ++AC_CHECK_LIB([xml2], [xmlParseFile], [libxml2_found=yes]) ++if test "$libxml2_found" = "yes" ; then ++ AC_DEFINE(HAVE_LIBXML2,1,[defined when libxml2 is available]) ++else ++ AC_MSG_WARN([libxml2 not found. Disabling cache.]) + fi + + AC_CHECK_HEADERS([libxml/xmlmemory.h]) +-- +2.34.1 + diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch b/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch new file mode 100644 index 0000000000..d3eb047fe5 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp/makefile.patch @@ -0,0 +1,161 @@ +From: =?UTF-8?q?J=C3=B6rg=20Sommer?= <joerg.sommer@navimatix.de> +Date: Thu, 14 Mar 2024 08:08:13 +0100 +Subject: [PATCH 1/2] configure: Use AX_PROG_CC_FOR_BUILD for cross compiling +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The macro AX_PROG_CC_FOR_BUILD [1] sets the variables CC_FOR_BUILD and +..._FLAGS_FOR_BUILD they can be used [2] to build binaries used at compile +time. + +[1]: https://www.gnu.org/software/autoconf-archive/ax_prog_cc_for_build.html +[2]: https://stackoverflow.com/questions/24201260/autotools-cross-compilation-and-generated-sources/24208587#24208587 + +Signed-off-by: Jörg Sommer <joerg.sommer@navimatix.de> +Upstream-Status: Submitted [https://github.com/freeswitch/spandsp/pull/74] +--- + configure.ac | 49 +------------------------------------------- + src/Makefile.am | 54 +++++++++++++++++++++++++------------------------ + 2 files changed, 29 insertions(+), 74 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 96fd022..2140837 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -55,54 +55,7 @@ AC_LANG([C]) + + AX_COMPILER_VENDOR + +-if test "${build}" != "${host}" +-then +- # If we are doing a Canadian Cross, in which the host and build systems +- # are not the same, we set reasonable default values for the tools. +- +- CC_FOR_BUILD=${CC_FOR_BUILD-gcc} +- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)" +- CC=${CC-${host_alias}-gcc} +- CFLAGS=${CFLAGS-"-g -O2"} +- CXX=${CXX-${host_alias}-c++} +- CXXFLAGS=${CXXFLAGS-"-g -O2"} +-else +- # Set reasonable default values for some tools even if not Canadian. +- # Of course, these are different reasonable default values, originally +- # specified directly in the Makefile. +- # We don't export, so that autoconf can do its job. +- # Note that all these settings are above the fragment inclusion point +- # in Makefile.in, so can still be overridden by fragments. +- # This is all going to change when we autoconfiscate... +- CC_FOR_BUILD="\$(CC)" +- CPPFLAGS_FOR_BUILD="\$(CPPFLAGS)" +- AC_PROG_CC +- +- # We must set the default linker to the linker used by gcc for the correct +- # operation of libtool. If LD is not defined and we are using gcc, try to +- # set the LD default to the ld used by gcc. +- if test -z "$LD" +- then +- if test "$GCC" = yes +- then +- case $build in +- *-*-mingw*) +- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1 | tr -d '\015'` ;; +- *) +- gcc_prog_ld=`$CC -print-prog-name=ld 2>&1` ;; +- esac +- case $gcc_prog_ld in +- # Accept absolute paths. +- [[\\/]* | [A-Za-z]:[\\/]*)] +- LD="$gcc_prog_ld" ;; +- esac +- fi +- fi +- +- CXX=${CXX-"c++"} +- CFLAGS=${CFLAGS-"-g -O2"} +- CXXFLAGS=${CXXFLAGS-"-g -O2"} +-fi ++AX_PROG_CC_FOR_BUILD + + AC_DEFUN([REMOVE_FROM_VAR],[ + new_val="" +diff --git a/src/Makefile.am b/src/Makefile.am +index e05fad5..9b409a1 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -386,44 +386,46 @@ noinst_HEADERS = cielab_luts.h \ + v34_tx_pre_emphasis_filters.h \ + v34_tables.h + +-make_at_dictionary$(EXEEXT): $(top_srcdir)/src/make_at_dictionary.c +- $(CC_FOR_BUILD) -o make_at_dictionary$(EXEEXT) $(top_srcdir)/src/make_at_dictionary.c -DHAVE_CONFIG_H -I$(top_builddir)/src ++LINK_FOR_BUILD.c = $(CC_FOR_BUILD) -DHAVE_CONFIG_H -I$(top_builddir)/src $(CFLAGS_FOR_BUILD) $(CPPFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(TARGET_ARCH_FOR_BUILD) + +-make_cielab_luts$(EXEEXT): $(top_srcdir)/src/make_cielab_luts.c +- $(CC_FOR_BUILD) -o make_cielab_luts$(EXEEXT) $(top_srcdir)/src/make_cielab_luts.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_at_dictionary$(BUILD_EXEEXT): $(top_srcdir)/src/make_at_dictionary.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ + +-make_math_fixed_tables$(EXEEXT): $(top_srcdir)/src/make_math_fixed_tables.c +- $(CC_FOR_BUILD) -o make_math_fixed_tables$(EXEEXT) $(top_srcdir)/src/make_math_fixed_tables.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_cielab_luts$(BUILD_EXEEXT): $(top_srcdir)/src/make_cielab_luts.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_modem_filter$(EXEEXT): $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c +- $(CC_FOR_BUILD) -o make_modem_filter$(EXEEXT) $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_math_fixed_tables$(BUILD_EXEEXT): $(top_srcdir)/src/make_math_fixed_tables.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_modem_godard_coefficients$(EXEEXT): $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c +- $(CC_FOR_BUILD) -o make_modem_godard_coefficients$(EXEEXT) $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_modem_filter$(BUILD_EXEEXT): $(top_srcdir)/src/make_modem_filter.c $(top_srcdir)/src/filter_tools.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_t43_gray_code_tables$(EXEEXT): $(top_srcdir)/src/make_t43_gray_code_tables.c +- $(CC_FOR_BUILD) -o make_t43_gray_code_tables$(EXEEXT) $(top_srcdir)/src/make_t43_gray_code_tables.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_modem_godard_coefficients$(BUILD_EXEEXT): $(top_srcdir)/src/make_modem_godard_coefficients.c $(top_srcdir)/src/filter_tools.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_v17_v32_constellation_map$(EXEEXT): $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c +- $(CC_FOR_BUILD) -o make_v17_v32_constellation_map$(EXEEXT) $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_t43_gray_code_tables$(BUILD_EXEEXT): $(top_srcdir)/src/make_t43_gray_code_tables.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_v17_v32_convolutional_encoder$(EXEEXT): $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c +- $(CC_FOR_BUILD) -o make_v17_v32_convolutional_encoder$(EXEEXT) $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_v17_v32_constellation_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v17_v32_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_v29_constellation_map$(EXEEXT): $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c +- $(CC_FOR_BUILD) -o make_v29_constellation_map$(EXEEXT) $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_v17_v32_convolutional_encoder$(BUILD_EXEEXT): $(top_srcdir)/src/make_v17_v32_convolutional_encoder.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_v34_convolutional_coders$(EXEEXT): $(top_srcdir)/src/make_v34_convolutional_coders.c +- $(CC_FOR_BUILD) -o make_v34_convolutional_coders$(EXEEXT) $(top_srcdir)/src/make_v34_convolutional_coders.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_v29_constellation_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v29_constellation_map.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_v34_probe_signals$(EXEEXT): $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c +- $(CC_FOR_BUILD) -o make_v34_probe_signals$(EXEEXT) $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c -DHAVE_CONFIG_H -I$(top_builddir)/src -lm ++make_v34_convolutional_coders$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_convolutional_coders.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -lm + +-make_v34_shell_map$(EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c +- $(CC_FOR_BUILD) -o make_v34_shell_map$(EXEEXT) $(top_srcdir)/src/make_v34_shell_map.c -DHAVE_CONFIG_H -I$(top_builddir)/src ++make_v34_probe_signals$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_probe_signals.c $(top_srcdir)/src/g711.c $(top_srcdir)/src/alloc.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/src -lm + +-make_v34_tx_pre_emphasis_filters$(EXEEXT): $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c +- $(CC_FOR_BUILD) -o make_v34_tx_pre_emphasis_filters$(EXEEXT) $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c -DHAVE_CONFIG_H -I$(top_builddir)/src -I$(top_builddir)/tools -lm ++make_v34_shell_map$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_shell_map.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ ++ ++make_v34_tx_pre_emphasis_filters$(BUILD_EXEEXT): $(top_srcdir)/src/make_v34_tx_pre_emphasis_filters.c $(top_srcdir)/tools/meteor-engine.c ++ $(LINK_FOR_BUILD.c) -o $@ $^ -I$(top_srcdir)/tools -lm + + # We need to run make_at_dictionary, so it generates the + # at_interpreter_dictionary.h file +-- +2.34.1 + diff --git a/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb new file mode 100644 index 0000000000..f115553fd1 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/spandsp/spandsp_git.bb @@ -0,0 +1,50 @@ +SUMMARY = "A DSP library for telephony" +DESCRIPTION = "\ + SpanDSP is a low-level signal processing library that modulates and \ + demodulates signals commonly used in telephony, such as the \"noise\" \ + generated by a fax modem or DTMF touchpad. \ +" +HOMEPAGE = "https://www.soft-switch.org/" +BUGTRACKER = "https://github.com/freeswitch/spandsp/issues" +SECTION = "libs" +LICENSE = "LGPL-2.1-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=8791c23ddf418deb5be264cffb5fa6bc" + +DEPENDS = "\ + libxml2 \ + tiff \ + tiff-native \ +" + +PV = "3.0.0+git" + +SRC_URI = "\ + git://github.com/freeswitch/spandsp.git;protocol=https;branch=master \ + file://configure.patch \ + file://makefile.patch \ +" +# Fails to build with Clang since 5394b2cae6c482ccb835335b769469977e6802ae +# https://github.com/freeswitch/spandsp/issues/67 +# https://lists.openembedded.org/g/openembedded-devel/message/109325 +SRCREV = "df1282eb9af538ab1aadb6d66146e258451d4fe4" + +S = "${WORKDIR}/git" + +inherit autotools + +PACKAGECONFIG ?= "" + +PACKAGECONFIG[mmx] = "--enable-mmx,--disable-mmx" +PACKAGECONFIG[sse] = "--enable-sse,--disable-sse" +PACKAGECONFIG[sse2] = "--enable-sse2,--disable-sse2" +PACKAGECONFIG[sse3] = "--enable-sse3,--disable-sse3" +PACKAGECONFIG[ssse3] = "--enable-ssse3,--disable-ssse3" +PACKAGECONFIG[sse4-1] = "--enable-sse4-1,--disable-sse4-1" +PACKAGECONFIG[sse4-2] = "--enable-sse4-2,--disable-sse4-2" +PACKAGECONFIG[avx] = "--enable-avx,--disable-avx" +PACKAGECONFIG[avx2] = "--enable-avx2,--disable-avx2" +PACKAGECONFIG[neon] = "--enable-neon,--disable-neon" +PACKAGECONFIG[fixed-point] = "--enable-fixed-point,--disable-fixed-point" +PACKAGECONFIG[v32bis] = "--enable-v32bis,--disable-v32bis" +PACKAGECONFIG[v34] = "--enable-v34,--disable-v34" +PACKAGECONFIG[sslfax] = "--enable-sslfax,--disable-sslfax" diff --git a/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb b/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb index 722815ab6a..6014326826 100644 --- a/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb +++ b/meta-multimedia/recipes-multimedia/streamripper/streamripper_1.64.6.bb @@ -2,7 +2,7 @@ SUMMARY = "download online streams into audio files" DESCRIPTION = "This command-line tool can be used to record MPEG III \ and OGG online radio-streams into track-separated audio files." HOMEPAGE = "http://streamripper.sourceforge.net" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b" DEPENDS = "glib-2.0 libmad libogg libvorbis" @@ -29,4 +29,4 @@ EXTRA_OECONF += "\ " # the included argv library needs this -CPPFLAGS_append = " -DANSI_PROTOTYPES" +CPPFLAGS:append = " -DANSI_PROTOTYPES" diff --git a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-fixed-compilation-error-caused-by-strncpy.patch b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-fixed-compilation-error-caused-by-strncpy.patch new file mode 100644 index 0000000000..64ebdb19c9 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-fixed-compilation-error-caused-by-strncpy.patch @@ -0,0 +1,69 @@ +From 639650dd64e483074dd7c3c7ea6dc1b1bd542743 Mon Sep 17 00:00:00 2001 +From: alperak <alperyasinak1@gmail.com> +Date: Sun, 12 Nov 2023 20:16:55 +0300 +Subject: [PATCH] fixed compilation error caused by strncpy + +Issue: + https://github.com/tinyalsa/tinyalsa/issues/219 + +Fix: + https://github.com/tinyalsa/tinyalsa/pull/220 + https://github.com/tinyalsa/tinyalsa/pull/221 + +Upstream-Status: Submitted + +Signed-off-by: alperak <alperyasinak1@gmail.com> +--- + src/mixer_plugin.c | 8 +++++--- + src/pcm_plugin.c | 9 ++++++--- + 2 files changed, 11 insertions(+), 6 deletions(-) + +diff --git a/src/mixer_plugin.c b/src/mixer_plugin.c +index 34117a9..f608563 100644 +--- a/src/mixer_plugin.c ++++ b/src/mixer_plugin.c +@@ -82,7 +82,8 @@ static int mixer_plug_get_elem_id(struct mixer_plug_data *plug_data, + id->iface = ctl->iface; + + strncpy((char *)id->name, (char *)ctl->name, +- sizeof(id->name)); ++ sizeof(id->name) - 1); ++ ((char *)id->name)[sizeof(id->name) - 1] = '\0'; + + return 0; + } +@@ -100,8 +101,9 @@ static int mixer_plug_info_enum(struct snd_control *ctl, + + strncpy(einfo->value.enumerated.name, + val->texts[einfo->value.enumerated.item], +- sizeof(einfo->value.enumerated.name)); +- ++ sizeof(einfo->value.enumerated.name) - 1); ++ einfo->value.enumerated.name[sizeof(einfo->value.enumerated.name) - 1] = '\0'; ++ + return 0; + } + +diff --git a/src/pcm_plugin.c b/src/pcm_plugin.c +index 15bfc80..47bf4a5 100644 +--- a/src/pcm_plugin.c ++++ b/src/pcm_plugin.c +@@ -153,9 +153,12 @@ static int pcm_plug_info(struct pcm_plug_data *plug_data, + return ret; + } + +- strncpy((char *)info->id, name, sizeof(info->id)); +- strncpy((char *)info->name, name, sizeof(info->name)); +- strncpy((char *)info->subname, name, sizeof(info->subname)); ++ strncpy((char *)info->id, name, sizeof(info->id) - 1); ++ ((char *)info->id)[sizeof(info->id) - 1] = '\0'; ++ strncpy((char *)info->name, name, sizeof(info->name) - 1); ++ ((char *)info->name)[sizeof(info->name) - 1] = '\0'; ++ strncpy((char *)info->subname, name, sizeof(info->subname) - 1); ++ ((char *)info->subname)[sizeof(info->subname) - 1] = '\0'; + + info->subdevices_count = 1; + +-- +2.25.1 + diff --git a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa_2.0.0.bb index 157e4c91f1..b513e959d3 100644 --- a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb +++ b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa_2.0.0.bb @@ -4,21 +4,18 @@ HOMEPAGE = "https://github.com/tinyalsa/tinyalsa" SECTION = "libs/multimedia" LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://NOTICE;md5=dbdefe400d894b510a9de14813181d0b" +LIC_FILES_CHKSUM = "file://NOTICE;md5=d2918795d9185efcbf430b9ad5cda46d" -SRCREV = "67b9210d344c34e8d1aa0cfe638abce71c5221ca" -SRC_URI = "git://github.com/tinyalsa/tinyalsa" -PV = "1.1.1+git${SRCPV}" +PV .= "+git" +SRCREV = "f78ed25aced2dfea743867b8205a787bfb091340" +SRC_URI = "git://github.com/tinyalsa/tinyalsa;branch=master;protocol=https" S = "${WORKDIR}/git" -inherit cmake +inherit meson # tinyalsa is built as a static library. Enable PIC to avoid relocation # errors like these: # # unresolvable R_AARCH64_ADR_PREL_PG_HI21 relocation against symbol `stderr@@GLIBC_2.17' CFLAGS += " -fPIC -DPIC " - -PACKAGES =+ "${PN}-tools" -FILES_${PN}-tools = "${bindir}/*" diff --git a/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb b/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb index 937894a73a..f8ab1bf680 100644 --- a/meta-multimedia/recipes-multimedia/tremor/tremor_20150107.bb +++ b/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb @@ -1,24 +1,18 @@ SUMMARY = "Fixed-point decoder" DESCRIPTION = "tremor is a fixed point implementation of the vorbis codec." SECTION = "libs" -LICENSE = "BSD" +LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \ file://os.h;beginline=3;endline=14;md5=5c0af5e1bedef3ce8178c89f48cd6f1f" DEPENDS = "libogg" -SRCDATE = "${PV}" -PR = "r1" -# SVN support for upstream version check isn't implemented yet -RECIPE_UPSTREAM_VERSION = "20150107" -RECIPE_UPSTREAM_DATE = "Jan 07, 2015" -CHECK_DATE = "Aug 12, 2015" - -SRC_URI = "svn://svn.xiph.org/trunk;module=Tremor;rev=19427;protocol=http \ +SRC_URI = "git://gitlab.xiph.org/xiph/tremor.git;protocol=https;branch=master \ file://obsolete_automake_macros.patch;striplevel=0 \ file://tremor-arm-thumb2.patch \ " +SRCREV = "7c30a66346199f3f09017a09567c6c8a3a0eedc8" -S = "${WORKDIR}/Tremor" +S = "${WORKDIR}/git" inherit autotools pkgconfig diff --git a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb index 79e64aebda..42c771e0ff 100644 --- a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.3.0.bb +++ b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb @@ -1,6 +1,7 @@ +SUMMARY = "libdvdcss is a simple library for accessing DVDs like block devices" DESCRIPTION = "libdvdcss is a simple library designed for accessing DVDs like a block device without having to bother about the decryption." -LICENSE = "GPLv2" -LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" +LICENSE = "GPL-2.0-only" +LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" SRC_URI = "http://download.videolan.org/pub/libdvdcss/${PV}/libdvdcss-${PV}.tar.bz2" @@ -8,5 +9,4 @@ inherit autotools EXTRA_OECONF = " --disable-doc " -SRC_URI[md5sum] = "7f0fdb3ff91d638f5e45ed7536f7eb67" -SRC_URI[sha256sum] = "7c414acd520c4e4dd7267952f72d738ff50321a7869af4d75c65aefad44f1395" +SRC_URI[sha256sum] = "233cc92f5dc01c5d3a96f5b3582be7d5cee5a35a52d3a08158745d3d86070079" diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch index 950c09b8ae..d6ff0b2dba 100644 --- a/meta-multimedia/recipes-multimedia/vlc/vlc/0006-make-opencv-configurable.patch +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-make-opencv-configurable.patch @@ -5,11 +5,9 @@ Upstream-Status: Inappropriate [configuration] Signed-off-by: Tim Orling <TicoTimo@gmail.com> -Index: vlc-2.1.4/configure.ac -=================================================================== ---- vlc-2.1.4.orig/configure.ac -+++ vlc-2.1.4/configure.ac -@@ -1693,7 +1693,16 @@ PKG_ENABLE_MODULES_VLC([BLURAY], [libblu +--- a/configure.ac ++++ b/configure.ac +@@ -1891,7 +1891,16 @@ PKG_ENABLE_MODULES_VLC([BLURAY], [libblu dnl dnl OpenCV wrapper and example filters dnl diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch new file mode 100644 index 0000000000..866ed03294 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-po-Fix-invalid-.oc-translation-format-string.patch @@ -0,0 +1,44 @@ +From fc4bd86bea0b81da0b6fa5be0a352aecc8fa690a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 9 Sep 2023 20:13:55 -0700 +Subject: [PATCH] po: Fix invalid .oc translation format string + +gettext can validate format strings now [1] with 0.22 and newer release + +[1] https://savannah.gnu.org/bugs/index.php?64332#comment1 + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + po/oc.po | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/po/oc.po b/po/oc.po +index 667696cfe7..ddb1677d8a 100644 +--- a/po/oc.po ++++ b/po/oc.po +@@ -5298,18 +5298,18 @@ msgstr "Comanda+" + #: src/misc/update.c:482 + #, c-format + msgid "%.1f GiB" +-msgstr "%.lf Gio" ++msgstr "%.1f Gio" + + #: src/misc/update.c:484 + #, c-format + msgid "%.1f MiB" +-msgstr "%.lf Mio" ++msgstr "%.1f Mio" + + #: src/misc/update.c:486 modules/gui/macosx/VLCPlaylistInfo.m:138 + #: modules/gui/macosx/VLCPlaylistInfo.m:140 + #, c-format + msgid "%.1f KiB" +-msgstr "%.lf Kio" ++msgstr "%.1f Kio" + + #: src/misc/update.c:488 + #, c-format +-- +2.42.0 + diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-taglib-Fix-build-on-x86-32-bit.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-taglib-Fix-build-on-x86-32-bit.patch new file mode 100644 index 0000000000..2dff9b63ce --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-taglib-Fix-build-on-x86-32-bit.patch @@ -0,0 +1,50 @@ +From 5b921009b0db2c5c15aef7ce241d3c81f9c272c9 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 9 Mar 2024 12:26:39 -0800 +Subject: [PATCH] taglib: Fix build on x86 32-bit + +While compiling with clang, there are errors seen such as +on function override signature mismatches + +meta_engine/taglib.cpp:240:10: error: virtual function 'tell' has a different return type ('long') than the function it overrides (which has return type 'offset_t' (aka 'long long')) + 240 | long tell() const + | ~~~~ ^ +/mnt/b/yoe/master/build/tmp/work/core2-32-yoe-linux/vlc/3.0.20/recipe-sysroot/usr/include/taglib/tiostream.h:156:22: note: overridden virtual function is here + 156 | virtual offset_t tell() const = 0; + | ~~~~~~~~ ^ +meta_engine/taglib.cpp:245:10: error: virtual function 'length' has a different return type ('long') than the function it overrides (which has return type 'offset_t' (aka 'long long')) + 245 | long length() + | ~~~~ ^ +/mnt/b/yoe/master/build/tmp/work/core2-32-yoe-linux/vlc/3.0.20/recipe-sysroot/usr/include/taglib/tiostream.h:161:22: note: overridden virtual function is here + 161 | virtual offset_t length() = 0; + | ~~~~~~~~ ^ + +Upstream-Status: Submitted [https://mailman.videolan.org/pipermail/vlc-devel/2024-March/143639.html] +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + modules/meta_engine/taglib.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/modules/meta_engine/taglib.cpp b/modules/meta_engine/taglib.cpp +index f371485008..129fdf55f1 100644 +--- a/modules/meta_engine/taglib.cpp ++++ b/modules/meta_engine/taglib.cpp +@@ -237,12 +237,12 @@ public: + return; + } + +- long tell() const ++ offset_t tell() const + { +- return m_previousPos; ++ return (offset_t)m_previousPos; + } + +- long length() ++ offset_t length() + { + uint64_t i_size; + if (vlc_stream_GetSize( m_stream, &i_size ) != VLC_SUCCESS) +-- +2.44.0 + diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch index d05cf02b71..f68da33607 100644 --- a/meta-multimedia/recipes-multimedia/vlc/vlc/0007-use-vorbisidec.patch +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0002-use-vorbisidec.patch @@ -1,14 +1,12 @@ * tremor provides libvorbisidec, use it instead of libvorbisdec -Upstream-status: Pending +Upstream-Status: Pending Signed-off-by: Tim Orling <TicoTimo@gmail.com> -Index: vlc-2.2.1/modules/codec/Makefile.am -=================================================================== ---- vlc-2.2.1.orig/modules/codec/Makefile.am -+++ vlc-2.2.1/modules/codec/Makefile.am -@@ -234,7 +234,7 @@ codec_LTLIBRARIES += $(LTLIBtheora) +--- a/modules/codec/Makefile.am ++++ b/modules/codec/Makefile.am +@@ -324,7 +324,7 @@ codec_LTLIBRARIES += $(LTLIBdaala) libtremor_plugin_la_SOURCES = codec/vorbis.c libtremor_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) -DMODULE_NAME_IS_tremor libtremor_plugin_la_LDFLAGS = $(AM_LDFLAGS) -rpath '$(codecdir)' diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch index 96b5d2d246..e10002f78e 100644 --- a/meta-multimedia/recipes-multimedia/vlc/vlc/0008-fix-luaL-checkint.patch +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0003-fix-luaL-checkint.patch @@ -1,7 +1,7 @@ * luaL_checkint and luaL_optint were deprecated in lua 5.3 * replacement functions are luaL_checkinteger and luaL_optinteger -Upstream-status: Pending +Upstream-Status: Pending Signed-off-by: Tim Orling <TicoTimo@gmail.com> diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch new file mode 100644 index 0000000000..6659a44a0a --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0004-Use-packageconfig-to-detect-mmal-support.patch @@ -0,0 +1,57 @@ +From e8716a7755eef93e1033bb913e1eb4faee54658f Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Wed, 15 Apr 2020 18:29:26 -0700 +Subject: [PATCH] Use packageconfig to detect mmal support + +This needs userland graphics libraries, because distros may install it +in different locations, therefore its best to rely on pkgconf to find +the libs and header locations instead of assuming /opt/vc which might +work on some distros ( like raspbian ) but not everywhere + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 31 +++++++++++-------------------- + 1 file changed, 11 insertions(+), 20 deletions(-) + +--- a/configure.ac ++++ b/configure.ac +@@ -3460,27 +3460,18 @@ AC_ARG_ENABLE(mmal, + AS_HELP_STRING([--enable-mmal], + [Multi-Media Abstraction Layer (MMAL) hardware plugin (default enable)])) + if test "${enable_mmal}" != "no"; then +- VLC_SAVE_FLAGS +- LDFLAGS="${LDFLAGS} -L/opt/vc/lib -lvchostif" +- CPPFLAGS="${CPPFLAGS} -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux" +- AC_CHECK_HEADERS(interface/mmal/mmal.h, +- [ AC_CHECK_LIB(bcm_host, vc_tv_unregister_callback_full, [ +- have_mmal="yes" +- VLC_ADD_PLUGIN([mmal]) +- VLC_ADD_LDFLAGS([mmal],[ -L/opt/vc/lib ]) +- VLC_ADD_CFLAGS([mmal],[ -isystem /opt/vc/include -isystem /opt/vc/include/interface/vcos/pthreads -isystem /opt/vc/include/interface/vmcs_host/linux ]) +- VLC_ADD_LIBS([mmal],[ -lbcm_host -lmmal -lmmal_core -lmmal_components -lmmal_util -lvchostif ]) ], [ +- AS_IF([test "${enable_mmal}" = "yes"], +- [ AC_MSG_ERROR([Cannot find bcm library...]) ], +- [ AC_MSG_WARN([Cannot find bcm library...]) ]) +- ], +- []) +- ] , [ AS_IF([test "${enable_mmal}" = "yes"], +- [ AC_MSG_ERROR([Cannot find development headers for mmal...]) ], +- [ AC_MSG_WARN([Cannot find development headers for mmal...]) ]) ]) +- VLC_RESTORE_FLAGS ++ PKG_CHECK_MODULES(BCMHOST, [bcm_host], [ ++ HAVE_BCMHOST=yes ++ AC_DEFINE(HAVE_BCMHOST, 1, [Define this if you have have userlang graphics installed]) ++ VLC_ADD_LIBS([bcmhost],[$BCMHOST_LIBS]) ++ VLC_ADD_CFLAGS([bcmhost],[$BCMHOST_CFLAGS]) ++ ],: ++ [AC_MSG_WARN([${BCMHOST_PKG_ERRORS}: userland graphics not available.]) ++ HAVE_BCMHOST=no]) ++ ++ AC_CHECK_HEADERS(interface/mmal/mmal.h) + fi +-AM_CONDITIONAL([HAVE_MMAL], [test "${have_mmal}" = "yes"]) ++AM_CONDITIONAL([HAVE_MMAL], [test "${have_bcmhost}" = "yes"]) + + dnl + dnl evas plugin diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0005-ioctl-does-not-have-same-signature-between-glibc-and.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0005-ioctl-does-not-have-same-signature-between-glibc-and.patch new file mode 100644 index 0000000000..89e7d585d7 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0005-ioctl-does-not-have-same-signature-between-glibc-and.patch @@ -0,0 +1,40 @@ +From a46cee56d05884b8020ace6f67ef8389ac1845da Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 5 Mar 2023 13:50:40 -0800 +Subject: [PATCH 1/3] ioctl does not have same signature between glibc and musl + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + modules/access/v4l2/lib.c | 4 ++++ + modules/access/v4l2/v4l2.h | 4 ++++ + 2 files changed, 8 insertions(+) + +--- a/modules/access/v4l2/lib.c ++++ b/modules/access/v4l2/lib.c +@@ -49,7 +49,11 @@ int (*v4l2_fd_open) (int, int) = fd_open + //int (*v4l2_open) (const char *, int, ...) = open; + //int (*v4l2_dup) (const char *, int, ...) = dup; + int (*v4l2_close) (int) = close; ++#ifdef __GLIBC__ + int (*v4l2_ioctl) (int, unsigned long int, ...) = ioctl; ++#else ++int (*v4l2_ioctl) (int, int, ...) = ioctl; ++#endif + ssize_t (*v4l2_read) (int, void *, size_t) = read; + //ssize_t (*v4l2_write) (int, const void *, size_t) = write; + void * (*v4l2_mmap) (void *, size_t, int, int, int, int64_t) = mmap; +--- a/modules/access/v4l2/v4l2.h ++++ b/modules/access/v4l2/v4l2.h +@@ -28,7 +28,11 @@ + /* libv4l2 functions */ + extern int (*v4l2_fd_open) (int, int); + extern int (*v4l2_close) (int); ++#ifdef __GLIBC__ + extern int (*v4l2_ioctl) (int, unsigned long int, ...); ++#else ++extern int (*v4l2_ioctl) (int, int, ...); ++#endif + extern ssize_t (*v4l2_read) (int, void *, size_t); + extern void * (*v4l2_mmap) (void *, size_t, int, int, int, int64_t); + extern int (*v4l2_munmap) (void *, size_t); diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0006-configure-Disable-incompatible-function-pointer-type.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0006-configure-Disable-incompatible-function-pointer-type.patch new file mode 100644 index 0000000000..b158328aa2 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/0006-configure-Disable-incompatible-function-pointer-type.patch @@ -0,0 +1,26 @@ +From 048e4fdd08ac588feb27b03e3ec1824e24f77d62 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 5 Mar 2023 14:13:25 -0800 +Subject: [PATCH 3/3] configure: Disable incompatible-function-pointer-types + warning + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + configure.ac | 5 +++++ + 1 file changed, 5 insertions(+) + +--- a/configure.ac ++++ b/configure.ac +@@ -98,6 +98,11 @@ AS_IF([test -n "${with_binary_version}"] + dnl Prevent clang from accepting unknown flags with a mere warning + AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CFLAGS]) + AX_APPEND_COMPILE_FLAGS([-Werror=unknown-warning-option -Werror=invalid-command-line-argument], [CXXFLAGS]) ++dnl disable clang from erroring on function pointer protype mismatch, vlc seems to rely on that ++dnl especially in modules/video_filter/deinterlace/algo_yadif.c how it interpolates 'filter` variable ++dnl between different functions yadif_filter_line_c_16bit() and yadif_filter_line_c() ++AX_APPEND_COMPILE_FLAGS([-Wno-error=incompatible-function-pointer-types -Wno-error=incompatible-function-pointer-types], [CFLAGS]) ++AX_APPEND_COMPILE_FLAGS([-Wno-error=incompatible-function-pointer-types -Wno-error=incompatible-function-pointer-types], [CXXFLAGS]) + + dnl + dnl Check the operating system diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/taglib-2.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/taglib-2.patch new file mode 100644 index 0000000000..f238ff4244 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vlc/vlc/taglib-2.patch @@ -0,0 +1,67 @@ +Fix build with taglib 2.0 + +Source: https://gitlab.archlinux.org/archlinux/packaging/packages/vlc/-/blob/main/taglib-2.patch?ref_type=heads +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +--- a/modules/meta_engine/taglib.cpp ++++ b/modules/meta_engine/taglib.cpp +@@ -185,7 +185,7 @@ public: + ByteVector res(length, 0); + ssize_t i_read = vlc_stream_Read( m_stream, res.data(), length); + if (i_read < 0) +- return ByteVector::null; ++ return ByteVector(); + else if ((size_t)i_read != length) + res.resize(i_read); + return res; +@@ -465,7 +465,7 @@ static void ReadMetaFromASF( ASF::Tag* t + static void ReadMetaFromBasicTag(const Tag* tag, vlc_meta_t *dest) + { + #define SET( accessor, meta ) \ +- if( !tag->accessor().isNull() && !tag->accessor().isEmpty() ) \ ++ if( !tag->accessor().isEmpty() ) \ + vlc_meta_Set##meta( dest, tag->accessor().toCString(true) ) + #define SETINT( accessor, meta ) \ + if( tag->accessor() ) \ +@@ -806,15 +806,15 @@ static void ReadMetaFromMP4( MP4::Tag* t + { + MP4::Item list; + #define SET( keyName, metaName ) \ +- if( tag->itemListMap().contains(keyName) ) \ ++ if( tag->itemMap().contains(keyName) ) \ + { \ +- list = tag->itemListMap()[keyName]; \ ++ list = tag->itemMap()[keyName]; \ + vlc_meta_Set##metaName( p_meta, list.toStringList().front().toCString( true ) ); \ + } + #define SET_EXTRA( keyName, metaName ) \ +- if( tag->itemListMap().contains(keyName) ) \ ++ if( tag->itemMap().contains(keyName) ) \ + { \ +- list = tag->itemListMap()[keyName]; \ ++ list = tag->itemMap()[keyName]; \ + vlc_meta_AddExtra( p_meta, metaName, list.toStringList().front().toCString( true ) ); \ + } + +@@ -824,9 +824,9 @@ static void ReadMetaFromMP4( MP4::Tag* t + #undef SET + #undef SET_EXTRA + +- if( tag->itemListMap().contains("covr") ) ++ if( tag->itemMap().contains("covr") ) + { +- MP4::CoverArtList list = tag->itemListMap()["covr"].toCoverArtList(); ++ MP4::CoverArtList list = tag->itemMap()["covr"].toCoverArtList(); + const char *psz_format = list[0].format() == MP4::CoverArt::PNG ? "image/png" : "image/jpeg"; + + msg_Dbg( p_demux_meta, "Found embedded art (%s) is %i bytes", +@@ -1337,7 +1337,7 @@ static int WriteMeta( vlc_object_t *p_th + if( RIFF::AIFF::File* riff_aiff = dynamic_cast<RIFF::AIFF::File*>(f.file()) ) + WriteMetaToId3v2( riff_aiff->tag(), p_item ); + else if( RIFF::WAV::File* riff_wav = dynamic_cast<RIFF::WAV::File*>(f.file()) ) +- WriteMetaToId3v2( riff_wav->tag(), p_item ); ++ WriteMetaToId3v2( riff_wav->ID3v2Tag(), p_item ); + } + else if( TrueAudio::File* trueaudio = dynamic_cast<TrueAudio::File*>(f.file()) ) + { diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc.inc b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.20.bb index 9bbc6685dd..21bc408f6d 100644 --- a/meta-multimedia/recipes-multimedia/vlc/vlc.inc +++ b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.20.bb @@ -2,25 +2,36 @@ DESCRIPTION = "Video player and streamer - davinci edition" HOMEPAGE = "http://www.videolan.org" SECTION = "multimedia" -LICENSE = "GPL-2.0" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" -DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native \ - dbus dbus-glib libxml2 gnutls \ - tremor faad2 ffmpeg flac fluidsynth alsa-lib \ +DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native bison-native \ + dbus libxml2 gnutls \ + tremor faad2 ffmpeg flac alsa-lib \ lua-native lua libidn \ - avahi jpeg xz libmodplug mpeg2dec \ + avahi jpeg xz libmodplug \ libmtp libopus orc libsamplerate0 libusb1 schroedinger taglib \ tiff" -# While this item does not require it, it depends on ffmpeg which does -LICENSE_FLAGS = "commercial" +LDFLAGS:append:riscv64 = " -latomic" +LDFLAGS:append:riscv32 = " -latomic" + +SRC_URI = "https://get.videolan.org/${BPN}/${PV}/${BP}.tar.xz \ + file://0001-make-opencv-configurable.patch \ + file://0002-use-vorbisidec.patch \ + file://0003-fix-luaL-checkint.patch \ + file://0004-Use-packageconfig-to-detect-mmal-support.patch \ + file://0005-ioctl-does-not-have-same-signature-between-glibc-and.patch \ + file://0006-configure-Disable-incompatible-function-pointer-type.patch \ + file://taglib-2.patch \ + file://0001-taglib-Fix-build-on-x86-32-bit.patch \ +" +SRC_URI[sha256sum] = "adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5" -SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz" +inherit autotools-brokensep features_check gettext pkgconfig mime-xdg -inherit autotools gettext pkgconfig distro_features_check +REQUIRED_DISTRO_FEATURES = "x11" -ARM_INSTRUCTION_SET = "arm" export BUILDCC = "${BUILD_CC}" EXTRA_OECONF = "\ --enable-run-as-root \ @@ -42,22 +53,26 @@ EXTRA_OECONF = "\ " PACKAGECONFIG ?= " \ - live555 dc1394 dv1394 notify fontconfig freetype dvdread png \ + live555 dc1394 dv1394 notify fontconfig fluidsynth freetype dvdread png \ ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '', d)} \ + x264 \ " inherit ${@bb.utils.contains('PACKAGECONFIG', 'qt5', 'qmake5_paths', '', d)} +PACKAGECONFIG[mmal] = "--enable-omxil --enable-omxil-vout --enable-rpi-omxil --enable-mmal,,userland" +PACKAGECONFIG[x264] = "--enable-x264,--disable-x264,x264" +PACKAGECONFIG[fluidsynth] = ",,fluidsynth" PACKAGECONFIG[mad] = "--enable-mad,--disable-mad,libmad" PACKAGECONFIG[a52] = "--enable-a52,--disable-a52,liba52" PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack" -PACKAGECONFIG[live555] = "--enable-live555,--disable-live555,live555" +PACKAGECONFIG[live555] = "--enable-live555 LIVE555_PREFIX=${STAGING_DIR_HOST}${prefix},--disable-live555,live555" PACKAGECONFIG[libass] = "--enable-libass,--disable-libass,libass" PACKAGECONFIG[postproc] = "--enable-postproc,--disable-postproc,libpostproc" PACKAGECONFIG[libva] = "--enable-libva,--disable-libva,libva" PACKAGECONFIG[opencv] = "--enable-opencv,--disable-opencv,opencv" PACKAGECONFIG[speex] = "--enable-speex,--disable-speex,speex" -PACKAGECONFIG[gstreamer] = "--enable-gst-decode,--disable-gst-decode,gstreamer1.0 gstreamer1.0-plugins-base gst-plugins-bad" +PACKAGECONFIG[gstreamer] = "--enable-gst-decode,--disable-gst-decode,gstreamer1.0 gstreamer1.0-plugins-base gstreamer1.0-plugins-bad" PACKAGECONFIG[vpx] = "--enable-vpx,--disable-vpx, libvpx" PACKAGECONFIG[qt5] = "--enable-qt,--disable-qt, qtbase-native qtx11extras qtsvg" PACKAGECONFIG[freerdp] = "--enable-freerdp,--disable-freerdp, freerdp" @@ -72,7 +87,7 @@ PACKAGECONFIG[dc1394] = "--enable-dc1394,--disable-dc1394,libdc1394" PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libavc1394" PACKAGECONFIG[svg] = "--enable-svg,--disable-svg,librsvg" PACKAGECONFIG[svgdec] = "--enable-svgdec,--disable-svgdec,librsvg cairo" -PACKAGECONFIG[notify] = "--enable-notify,--disable-notify, libnotify gtk+" +PACKAGECONFIG[notify] = "--enable-notify,--disable-notify, libnotify gtk+3" PACKAGECONFIG[fontconfig] = "--enable-fontconfig,--disable-fontconfig, fontconfig" PACKAGECONFIG[freetype] = "--enable-freetype,--disable-freetype, freetype" PACKAGECONFIG[dvdread] = "--enable-dvdread,--disable-dvdread, libdvdread libdvdcss" @@ -80,14 +95,14 @@ PACKAGECONFIG[vnc] = "--enable-vnc,--disable-vnc, libvncserver" PACKAGECONFIG[x11] = "--with-x --enable-xcb,--without-x --disable-xcb, xcb-util-keysyms libxpm libxinerama" PACKAGECONFIG[png] = "--enable-png,--disable-png,libpng" PACKAGECONFIG[vdpau] = "--enable-vdpau,--disable-vdpau,libvdpau" +PACKAGECONFIG[wayland] = "--enable-wayland,--disable-wayland,wayland wayland-native" -do_configure_append() { - sed -i -e s:'${top_builddir_slash}libtool':'${top_builddir_slash}'${TARGET_SYS}-libtool:g ${B}/doltlibtool - +do_configure:append() { # moc needs support: precreate build paths for qtpath in adapters components/epg components/playlist components/sout dialogs managers styles util/buttons; do mkdir -p "${B}/modules/gui/qt/$qtpath" done + sed -i -e 's|${WORKDIR}||g' ${B}/config.h } # This recipe packages vlc as a library as well, so qt4 dependencies @@ -95,9 +110,9 @@ do_configure_append() { PACKAGES =+ "libvlc" LEAD_SONAME_libvlc = "libvlc.so.5" -FILES_libvlc = "${libdir}/lib*.so.*" +FILES:libvlc = "${libdir}/lib*.so.*" -FILES_${PN} += "\ +FILES:${PN} += "\ ${bindir}/vlc \ ${libdir}/vlc/vlc/libvlc_vdpau.so \ ${datadir}/applications \ @@ -106,14 +121,15 @@ FILES_${PN} += "\ ${datadir}/metainfo/vlc.appdata.xml \ " -FILES_${PN}-dbg += "\ +FILES:${PN}-dbg += "\ ${libdir}/vlc/*/.debug \ ${libdir}/vlc/plugins/*/.debug \ " -FILES_${PN}-staticdev += "\ +FILES:${PN}-staticdev += "\ ${libdir}/vlc/plugins/*/*.a \ " -INSANE_SKIP_${PN} = "dev-so" +INSANE_SKIP:${PN} = "dev-so" +EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}" diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.6.bb b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.6.bb deleted file mode 100644 index fcd321cb0e..0000000000 --- a/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.6.bb +++ /dev/null @@ -1,11 +0,0 @@ -require ${BPN}.inc - -LDFLAGS_append_riscv64 = " -pthread" - -SRC_URI += " \ - file://0006-make-opencv-configurable.patch \ - file://0007-use-vorbisidec.patch \ - file://0008-fix-luaL-checkint.patch \ -" -SRC_URI[md5sum] = "4ff71d262e070fd19f86a1c3542c7b4e" -SRC_URI[sha256sum] = "18c16d4be0f34861d0aa51fbd274fb87f0cab3b7119757ead93f3db3a1f27ed3" diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch deleted file mode 100644 index b623dbf37e..0000000000 --- a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch +++ /dev/null @@ -1,49 +0,0 @@ -Upstream-Status: Backport - -Backport patch to fix CVE-2015-6749 from: - -https://trac.xiph.org/ticket/2212 - -Signed-off-by: Kai Kang <kai.kang@windriver.com> ---- -From 04815d3e1bfae3a6cdfb2c25358a5a72b61299f7 Mon Sep 17 00:00:00 2001 -From: Mark Harris <mark.hsj@gmail.com> -Date: Sun, 30 Aug 2015 05:54:46 -0700 -Subject: [PATCH] oggenc: Fix large alloca on bad AIFF input - -Fixes #2212 ---- - oggenc/audio.c | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/oggenc/audio.c b/oggenc/audio.c -index 477da8c..4921fb9 100644 ---- a/oggenc/audio.c -+++ b/oggenc/audio.c -@@ -245,8 +245,8 @@ static int aiff_permute_matrix[6][6] = - int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen) - { - int aifc; /* AIFC or AIFF? */ -- unsigned int len; -- unsigned char *buffer; -+ unsigned int len, readlen; -+ unsigned char buffer[22]; - unsigned char buf2[8]; - aiff_fmt format; - aifffile *aiff = malloc(sizeof(aifffile)); -@@ -269,9 +269,9 @@ int aiff_open(FILE *in, oe_enc_opt *opt, unsigned char *buf, int buflen) - return 0; /* Weird common chunk */ - } - -- buffer = alloca(len); -- -- if(fread(buffer,1,len,in) < len) -+ readlen = len < sizeof(buffer) ? len : sizeof(buffer); -+ if(fread(buffer,1,readlen,in) < readlen || -+ (len > readlen && !seek_forward(in, len-readlen))) - { - fprintf(stderr, _("Warning: Unexpected EOF in reading AIFF header\n")); - return 0; --- -2.5.0 - diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch new file mode 100644 index 0000000000..36a31a85cd --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch @@ -0,0 +1,27 @@ +From 8c10181547c93438fc10f753e7164ee004add6d1 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 27 Aug 2022 10:28:47 -0700 +Subject: [PATCH] ogginfo: Include utf8.h for missing utf8_decode + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> +--- + ogginfo/codec_skeleton.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/ogginfo/codec_skeleton.c b/ogginfo/codec_skeleton.c +index a27f8da..3ac13f6 100644 +--- a/ogginfo/codec_skeleton.c ++++ b/ogginfo/codec_skeleton.c +@@ -25,6 +25,7 @@ + #include <ogg/ogg.h> + + #include "i18n.h" ++#include "utf8.h" /* utf8_decode */ + + #include "private.h" + +-- +2.37.2 + diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch deleted file mode 100644 index 111e98ac1f..0000000000 --- a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/0004-Fix-format-error-blocking-compilation-with-hardening.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Petter Reinholdtsen <pere@hungry.com> -Date: Wed, 22 Oct 2014 13:25:21 +0200 -Subject: Fix format error blocking compilation with hardening - -Last-Update: 2014-10-22 -Forwarded: no - -Enabling hardening refuses to compile code with sprintf() calls -with no formatting string. Adjust the code to work with hardening. ---- - ogg123/status.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/ogg123/status.c b/ogg123/status.c -index 92b8ff1..ccec389 100644 ---- a/ogg123/status.c -+++ b/ogg123/status.c -@@ -148,7 +148,7 @@ int print_statistics_line (stat_format_t stats[]) - - switch (stats->type) { - case stat_noarg: -- len += sprintf(str+len, stats->formatstr); -+ len += sprintf(str+len, "%s", stats->formatstr); - break; - case stat_intarg: - len += sprintf(str+len, stats->formatstr, stats->arg.intarg); diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch new file mode 100644 index 0000000000..dd03fa9524 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch @@ -0,0 +1,37 @@ +Fix build with gettext 0.20.x + +Upstream-Status: Pending +Signed-off-by: Khem Raj <raj.khem@gmail.com> +Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> +--- a/configure.ac ++++ b/configure.ac +@@ -34,7 +34,7 @@ + AC_PROG_LIBTOOL + + ALL_LINGUAS="be cs da en_GB eo es fr hr hu nl pl ro ru sk sv uk vi" +-AM_GNU_GETTEXT ++AM_GNU_GETTEXT([external]) + + dnl -------------------------------------------------- + dnl System checks +@@ -397,7 +397,6 @@ + Makefile + m4/Makefile + po/Makefile.in +-intl/Makefile + include/Makefile + share/Makefile + win32/Makefile +--- a/Makefile.am ++++ b/Makefile.am +@@ -2,8 +2,8 @@ + + AUTOMAKE_OPTIONS = foreign dist-zip + +-SUBDIRS = po intl include share win32 @OPT_SUBDIRS@ +-DIST_SUBDIRS = po intl include share win32 ogg123 oggenc oggdec ogginfo \ ++SUBDIRS = po include share win32 @OPT_SUBDIRS@ ++DIST_SUBDIRS = po include share win32 ogg123 oggenc oggdec ogginfo \ + vcut vorbiscomment m4 + + EXTRA_DIST = config.rpath README AUTHORS COPYING CHANGES diff --git a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.2.bb index 8e9914b498..61a4aedb85 100644 --- a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.0.bb +++ b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools_1.4.2.bb @@ -5,18 +5,18 @@ include some command line applications to use the libraries." HOMEPAGE = "http://www.vorbis.com/" BUGTRACKER = "https://trac.xiph.org" SECTION = "multimedia" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f" DEPENDS = "libogg libvorbis" SRC_URI = "http://downloads.xiph.org/releases/vorbis/${BP}.tar.gz \ - file://0001-oggenc-Fix-large-alloca-on-bad-AIFF-input.patch \ - file://0004-Fix-format-error-blocking-compilation-with-hardening.patch \ + file://gettext.patch \ + file://0001-ogginfo-Include-utf8.h-for-missing-utf8_decode.patch \ " -SRC_URI[md5sum] = "567e0fb8d321b2cd7124f8208b8b90e6" -SRC_URI[sha256sum] = "a389395baa43f8e5a796c99daf62397e435a7e73531c9f44d9084055a05d22bc" +SRC_URI[md5sum] = "998fca293bd4e4bdc2b96fb70f952f4e" +SRC_URI[sha256sum] = "db7774ec2bf2c939b139452183669be84fda5774d6400fc57fde37f77624f0b0" inherit autotools pkgconfig gettext diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch new file mode 100644 index 0000000000..37b4db6894 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-Fix-return-type-errors.patch @@ -0,0 +1,95 @@ +From b6ad4b7086a6487b36d626248322f4c9d5bf420a Mon Sep 17 00:00:00 2001 +From: "thomas.georgec" <thomas.georgec@lge.com> +Date: Sun, 12 Mar 2023 14:28:50 +0530 +Subject: [PATCH] Fix return-type errors + +Fix "control reaches end of non-void function" in code when -Werror=return-type +is used. + + webrtc-audio-processing-1.3/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc: In function 'float webrtc::{anonymous}::GetLevel(const webrtc::VadLevelAnalyzer::Result&, LevelEstimatorType)': + webrtc-audio-processing-1.3/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc:45:1: error: control reaches end of non-void function [-Werror=return-type] + 45 | } + | ^ + webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc: In function 'webrtc::GainControl::Mode webrtc::{anonymous}::Agc1ConfigModeToInterfaceMode(webrtc::AudioProcessing::Config::GainController1::Mode)': + webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc:117:1: error: control reaches end of non-void function [-Werror=return-type] + 117 | } + | ^ + webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc: In lambda function: + webrtc-audio-processing-1.3/webrtc/modules/audio_processing/audio_processing_impl.cc:1853:13: error: control reaches end of non-void function -Werror=return-type] + 1853 | default: + | ^~~~~~~ + +Signed-off-by: Martin Jansa <martin.jansa@gmail.com> +--- +Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/merge_requests/28] + + .../audio_processing/agc2/adaptive_mode_level_estimator.cc | 2 ++ + webrtc/modules/audio_processing/audio_processing_impl.cc | 3 +++ + webrtc/modules/audio_processing/include/audio_processing.cc | 6 ++++++ + 3 files changed, 11 insertions(+) + +diff --git a/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc b/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc +index f09f63b..9cdf6ca 100644 +--- a/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc ++++ b/webrtc/modules/audio_processing/agc2/adaptive_mode_level_estimator.cc +@@ -42,6 +42,8 @@ float GetLevel(const VadLevelAnalyzer::Result& vad_level, + return vad_level.peak_dbfs; + break; + } ++ RTC_NOTREACHED(); ++ __builtin_unreachable (); + } + + } // namespace +diff --git a/webrtc/modules/audio_processing/audio_processing_impl.cc b/webrtc/modules/audio_processing/audio_processing_impl.cc +index 67208df..3b8262a 100644 +--- a/webrtc/modules/audio_processing/audio_processing_impl.cc ++++ b/webrtc/modules/audio_processing/audio_processing_impl.cc +@@ -114,6 +114,8 @@ GainControl::Mode Agc1ConfigModeToInterfaceMode( + case Agc1Config::kFixedDigital: + return GainControl::kFixedDigital; + } ++ RTC_NOTREACHED(); ++ __builtin_unreachable (); + } + + // Maximum lengths that frame of samples being passed from the render side to +@@ -1852,6 +1854,7 @@ void AudioProcessingImpl::InitializeNoiseSuppressor() { + return NsConfig::SuppressionLevel::k21dB; + default: + RTC_NOTREACHED(); ++ __builtin_unreachable (); + } + }; + +diff --git a/webrtc/modules/audio_processing/include/audio_processing.cc b/webrtc/modules/audio_processing/include/audio_processing.cc +index 8854415..cc8752b 100644 +--- a/webrtc/modules/audio_processing/include/audio_processing.cc ++++ b/webrtc/modules/audio_processing/include/audio_processing.cc +@@ -28,6 +28,8 @@ std::string NoiseSuppressionLevelToString( + case AudioProcessing::Config::NoiseSuppression::Level::kVeryHigh: + return "VeryHigh"; + } ++ RTC_NOTREACHED(); ++ __builtin_unreachable (); + } + + std::string GainController1ModeToString( +@@ -40,6 +42,8 @@ std::string GainController1ModeToString( + case AudioProcessing::Config::GainController1::Mode::kFixedDigital: + return "FixedDigital"; + } ++ RTC_NOTREACHED(); ++ __builtin_unreachable (); + } + + std::string GainController2LevelEstimatorToString( +@@ -50,6 +54,8 @@ std::string GainController2LevelEstimatorToString( + case AudioProcessing::Config::GainController2::LevelEstimator::kPeak: + return "Peak"; + } ++ RTC_NOTREACHED(); ++ __builtin_unreachable (); + } + + int GetDefaultMaxInternalRate() { diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch new file mode 100644 index 0000000000..ef1d454663 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1/0001-add-missing-header-for-musl.patch @@ -0,0 +1,33 @@ +From 141fb5cbdaa6a883a61b5bf390c849159fc77605 Mon Sep 17 00:00:00 2001 +From: Markus Volk <f_l_k@t-online.de> +Date: Thu, 14 Sep 2023 16:12:32 +0200 +Subject: [PATCH] file_wrapper.h: add missing include for musl + +this fixes: +| In file included from ../webrtc-audio-processing-1.3/webrtc/rtc_base/system/file_wrapper.cc:11: +| ../webrtc-audio-processing-1.3/webrtc/rtc_base/system/file_wrapper.h:86:21: error: 'int64_t' has not been declared + +if built with musl libc + +Upstream-Status: Submitted [https://gitlab.freedesktop.org/pulseaudio/webrtc-audio-processing/-/merge_requests/37] + +Signed-off-by: Markus Volk <f_l_k@t-online.de> +--- + webrtc/rtc_base/system/file_wrapper.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/webrtc/rtc_base/system/file_wrapper.h b/webrtc/rtc_base/system/file_wrapper.h +index 42c463c..c34d366 100644 +--- a/webrtc/rtc_base/system/file_wrapper.h ++++ b/webrtc/rtc_base/system/file_wrapper.h +@@ -13,6 +13,7 @@ + + #include <stddef.h> + #include <stdio.h> ++#include <cstdint> + + #include <string> + +-- +2.41.0 + diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb new file mode 100644 index 0000000000..c56ca53f89 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing-1_1.3.bb @@ -0,0 +1,21 @@ +DESCRIPTION = "Audio processing bits of the WebRTC reference implementation" +HOMEPAGE = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/" +SECTION = "audio" + +DEPENDS = "abseil-cpp" +DEPENDS:append:libc-musl = " libexecinfo" + +LICENSE = "BSD-3-Clause" +LIC_FILES_CHKSUM = "file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2" + +SRC_URI = " \ + http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/webrtc-audio-processing-${PV}.tar.xz \ + file://0001-add-missing-header-for-musl.patch \ + file://0001-Fix-return-type-errors.patch \ +" +SRC_URI[sha256sum] = "2365e93e778d7b61b5d6e02d21c47d97222e9c7deff9e1d0838ad6ec2e86f1b9" +S = "${WORKDIR}/webrtc-audio-processing-${PV}" + +LDFLAGS:append:libc-musl = " -lexecinfo" + +inherit meson pkgconfig diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch deleted file mode 100644 index 7668df35d7..0000000000 --- a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0001-build-Protect-against-unsupported-CPU-types.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 4945dca11bc4ddec60bd858f45212dc8f39638e0 Mon Sep 17 00:00:00 2001 -From: Nicolas Dufresne <nicolas.dufresne@collabora.com> -Date: Tue, 5 Jul 2016 18:07:45 -0400 -Subject: [PATCH 1/6] build: Protect against unsupported CPU types - -Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> -Upstream-Status: Accepted [expected in 0.4] ---- - configure.ac | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 6f9553b..f5304b8 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -70,8 +70,9 @@ AS_CASE(["${host_cpu}"], - [ - HAVE_ARM=1 - ARCH_CFLAGS="-DWEBRTC_ARCH_ARM" -- ] -+ ], - # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines -+ [AC_MSG_ERROR([Unsupported CPU type $host_cpu])] - ) - AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"]) - AM_CONDITIONAL(HAVE_ARM, [test "x${HAVE_ARM}" = "x1"]) --- -2.11.0 - diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch deleted file mode 100644 index 2e202b03c1..0000000000 --- a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0002-build-Add-ARM-64bit-support.patch +++ /dev/null @@ -1,30 +0,0 @@ -From b5bda3431159b6505dcd069641c863018c4d4309 Mon Sep 17 00:00:00 2001 -From: Nicolas Dufresne <nicolas.dufresne@collabora.com> -Date: Wed, 6 Jul 2016 15:18:15 -0400 -Subject: [PATCH 2/6] build: Add ARM 64bit support - -Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> -Upstream-Status: Accepted [expected in 0.4] ---- - configure.ac | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/configure.ac b/configure.ac -index f5304b8..be20514 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -71,6 +71,11 @@ AS_CASE(["${host_cpu}"], - HAVE_ARM=1 - ARCH_CFLAGS="-DWEBRTC_ARCH_ARM" - ], -+ [aarch64*], -+ [ -+ HAVE_NEON=1 -+ ARCH_CFLAGS="-DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64" -+ ], - # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines - [AC_MSG_ERROR([Unsupported CPU type $host_cpu])] - ) --- -2.11.0 - diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch deleted file mode 100644 index 82e270fac1..0000000000 --- a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing/0003-build-fix-architecture-detection.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 7722fb8a3189fea0f6381f02a0e4f63c847f0393 Mon Sep 17 00:00:00 2001 -From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Date: Sat, 6 Aug 2016 11:02:43 +0200 -Subject: [PATCH 3/6] build: fix architecture detection - -The current architecture detection, based on the "host_cpu" part of the -tuple does not work properly for a number of reason: - - - The code assumes that if host_cpu starts with "arm" then ARM - instructions are available, which is incorrect. Indeed, Cortex-M - platforms can run Linux, they are ARM platforms (so host_cpu = arm), - but they don't support ARM instructions: they support only the - Thumb-2 instruction set. - - - The armv7 case is also not very useful, as it is not standard at all - to pass armv7 as host_cpu even if the host system is actually ARMv7 - based. - - - For the same reason, the armv8 case is not very useful: ARMv8 is - AArch64, and there is already a separate case to handle this - architecture. - -So, this commit moves away from a host_cpu based logic, and instead -tests using AC_CHECK_DECLS() the built-in definitions of the compiler: - - - If we have __ARM_ARCH_ISA_ARM defined, then it's an ARM processor - that supports the ARM instruction set (this allows to exclude Thumb-2 - only processors). - - - If we have __ARM_ARCH_7A__, then we have an ARMv7-A processor, and - we can enable the corresponding optimizations - - - Same for __aarch64__, __i386__ and __x86_64__. - -In addition, we remove the AC_MSG_ERROR() that makes the build fail for -all architectures but the ones that are explicitly supported. Indeed, -webrtc-audio-processing builds just fine for other architectures (tested -on MIPS), it's just that none of the architecture-specific optimizations -will be used. - -Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> -Signed-off-by: Tanu Kaskinen <tanuk@iki.fi> -Upstream-Status: Accepted [expected in 0.4] ---- - configure.ac | 35 +++++++++++------------------------ - 1 file changed, 11 insertions(+), 24 deletions(-) - -diff --git a/configure.ac b/configure.ac -index be20514..e898014 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -55,30 +55,17 @@ AS_CASE(["${host}"], - ) - AC_SUBST(PLATFORM_CFLAGS) - --AS_CASE(["${host_cpu}"], -- [i?86|x86_64], -- [ -- HAVE_X86=1 -- ], -- [armv7*|armv8*], -- [ -- HAVE_ARM=1 -- HAVE_ARMV7=1 -- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM -DWEBRTC_ARCH_ARM_V7" -- ], -- [arm*], -- [ -- HAVE_ARM=1 -- ARCH_CFLAGS="-DWEBRTC_ARCH_ARM" -- ], -- [aarch64*], -- [ -- HAVE_NEON=1 -- ARCH_CFLAGS="-DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64" -- ], -- # FIXME: Add MIPS support, see webrtc/BUILD.gn for defines -- [AC_MSG_ERROR([Unsupported CPU type $host_cpu])] --) -+# Testing __ARM_ARCH_ISA_ARM since the code contains ARM instructions, -+# which don't work on Thumb-2 only platforms (ARMv7-M). -+AC_CHECK_DECLS([__ARM_ARCH_ISA_ARM], -+ [HAVE_ARM=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM"]) -+AC_CHECK_DECLS([__ARM_ARCH_7A__], -+ [HAVE_ARMV7=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_ARCH_ARM_V7"]) -+AC_CHECK_DECLS([__aarch64__], -+ [HAVE_NEON=1; ARCH_CFLAGS="${ARCH_CFLAGS} -DWEBRTC_HAS_NEON -DWEBRTC_ARCH_ARM64"]) -+AC_CHECK_DECLS([__i386__], [HAVE_X86=1]) -+AC_CHECK_DECLS([__x86_64__], [HAVE_X86=1]) -+ - AM_CONDITIONAL(HAVE_X86, [test "x${HAVE_X86}" = "x1"]) - AM_CONDITIONAL(HAVE_ARM, [test "x${HAVE_ARM}" = "x1"]) - AM_CONDITIONAL(HAVE_ARMV7, [test "x${HAVE_ARMV7}" = "x1"]) --- -2.11.0 - diff --git a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb index dbba2f488c..6e56c4409c 100644 --- a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.bb +++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb @@ -2,28 +2,22 @@ DESCRIPTION = "Audio processing bits of the WebRTC reference implementation" HOMEPAGE = "https://www.freedesktop.org/software/pulseaudio/webrtc-audio-processing/" SECTION = "audio" -DEPENDS_append_libc-musl = " libexecinfo" +DEPENDS:append:libc-musl = " libexecinfo" LICENSE = "BSD-3-Clause" LIC_FILES_CHKSUM = "file://COPYING;md5=da08a38a32a340c5d91e13ee86a118f2 \ file://webrtc/common.h;beginline=1;endline=9;md5=41f7322d91deabaf0acbbd0b8d0bc548 \ " -# Note that patch 3 effectively reverts patches 1 and 2. The only reason -# why patches 1 and 2 are included is that otherwise patch 3 wouldn't -# apply cleanly. SRC_URI = "http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/${BP}.tar.xz \ - file://0001-build-Protect-against-unsupported-CPU-types.patch \ - file://0002-build-Add-ARM-64bit-support.patch \ - file://0003-build-fix-architecture-detection.patch \ file://0004-typedefs.h-add-support-for-64-bit-and-big-endian-MIP.patch \ file://0005-typedefs.h-add-support-for-PowerPC.patch \ file://0006-common_audio-implement-endianness-conversion-in-wav-.patch \ file://riscv_support.patch \ " -SRC_URI[md5sum] = "336ae032f608e65808ac577cde0ab72c" -SRC_URI[sha256sum] = "756e291d4f557d88cd50c4fe3b8454ec238362d22cedb3e6173240d90f0a80fa" +SRC_URI[md5sum] = "6e10724ca34bcbc715a4c208273acb0c" +SRC_URI[sha256sum] = "a0fdd938fd85272d67e81572c5a4d9e200a0c104753cb3c209ded175ce3c5dbf" -LDFLAGS_append_libc-musl = " -lexecinfo" -inherit autotools +LDFLAGS:append:libc-musl = " -lexecinfo" +inherit autotools pkgconfig diff --git a/meta-multimedia/recipes-multimedia/wireplumber/files/90-OE-disable-session-dbus-dependent-features.lua b/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-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-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.1.bb b/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.1.bb new file mode 100644 index 0000000000..9115076a24 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/wireplumber/wireplumber_0.5.1.bb @@ -0,0 +1,145 @@ +SUMMARY = "Session / policy manager implementation for PipeWire" +HOMEPAGE = "https://gitlab.freedesktop.org/pipewire/wireplumber" +BUGTRACKER = "https://gitlab.freedesktop.org/pipewire/wireplumber/issues" +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 = "961450b2ac700e8c9c85a0beb2426b875fa08bff" +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 ??= " dbus \ + ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd systemd-system-service systemd-user-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" +PACKAGECONFIG[dbus] = "" + +PACKAGESPLITFUNCS:prepend = " split_dynamic_packages " +PACKAGESPLITFUNCS:append = " set_dynamic_metapkg_rdepends " + +WP_MODULE_SUBDIR = "wireplumber-0.5" + +do_install:append() { + if ${@bb.utils.contains('PACKAGECONFIG', 'dbus', 'false', 'true', d)}; then + install -m 0644 ${WORKDIR}/90-OE-disable-session-dbus-dependent-features.lua ${D}${datadir}/wireplumber/main.lua.d + fi +} + +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.*" + +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} += "pipewire ${PN}-scripts ${PN}-modules-meta" + +FILES:${PN} += "${systemd_user_unitdir} ${systemd_system_unitdir} ${datadir}/zsh" + +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" diff --git a/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb b/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb new file mode 100644 index 0000000000..2d4f389e34 --- /dev/null +++ b/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb @@ -0,0 +1,29 @@ +SUMMARY = "H.265/HEVC video encoder" +DESCRIPTION = "A free software library and application for encoding video streams into the H.265/HEVC format." +HOMEPAGE = "http://www.videolan.org/developers/x265.html" + +LICENSE = "GPL-2.0-only" +LICENSE_FLAGS = "commercial" +LIC_FILES_CHKSUM = "file://../COPYING;md5=c9e0427bc58f129f99728c62d4ad4091" + +DEPENDS = "nasm-native gnutls zlib libpcre" + +SRC_URI = "http://ftp.videolan.org/pub/videolan/x265/x265_${PV}.tar.gz" + +S = "${WORKDIR}/x265_${PV}/source" + +SRC_URI[md5sum] = "94808045a34d88a857e5eaf3f68f4bca" +SRC_URI[sha256sum] = "fb9badcf92364fd3567f8b5aa0e5e952aeea7a39a2b864387cec31e3b58cbbcc" + +inherit lib_package pkgconfig cmake + +do_generate_toolchain_file:append() { + echo "set(CMAKE_ASM_NASM_FLAGS --debug-prefix-map ${S}=${TARGET_DBGSRC_DIR})" >> ${WORKDIR}/toolchain.cmake +} + +EXTRA_OECMAKE:append:x86 = " -DENABLE_ASSEMBLY=OFF" +EXTRA_OECMAKE:append:aarch64 = " -DENABLE_PIC=ON" + +AS[unexport] = "1" + +COMPATIBLE_HOST = '(x86_64|i.86|aarch64).*-linux' |