diff options
Diffstat (limited to 'meta-multimedia/recipes-multimedia')
153 files changed, 3266 insertions, 1453 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.0.0.bb b/meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb deleted file mode 100644 index f5a42fb860..0000000000 --- a/meta-multimedia/recipes-multimedia/aom/aom_3.0.0.bb +++ /dev/null @@ -1,22 +0,0 @@ -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=e69ad12202bd20da3c76a5d3648cfa83 \ - " - -SRC_URI = "git://aomedia.googlesource.com/aom;protocol=https" - -SRCREV = "307ce06ed82d93885ee8ed53e152c9268ac0d98d" - -S = "${WORKDIR}/git" - -inherit cmake pkgconfig -DEPENDS = " yasm-native" - -EXTRA_OECMAKE = " -DBUILD_SHARED_LIBS=1 -DENABLE_TESTS=0 \ - -DPERL_EXECUTABLE=${HOSTTOOLS_DIR}/perl \ - " - -EXTRA_OECMAKE_append_arm = " ${@bb.utils.contains("TUNE_FEATURES","neon","-DENABLE_NEON=ON","-DENABLE_NEON=OFF",d)}" 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..b5d7772e79 --- /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" +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 viewer" +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_0.2.0.bb b/meta-multimedia/recipes-multimedia/dca/dcadec_0.2.0.bb index 1a51abc360..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,10 +1,10 @@ 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=https \ +SRC_URI = "git://github.com/foo86/dcadec.git;protocol=https;branch=master \ file://0001-define-BASELIB-make-variable.patch \ " 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 8939cd36e2..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,16 +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=68602998351825b0844aae34c684c54e" DEPENDS = "glib-2.0 gupnp" -PV .= "+git${SRCPV}" +PV .= "+git" -SRC_URI = "git://github.com/01org/${BPN}.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_0.6.0.bb b/meta-multimedia/recipes-multimedia/dleyna/dleyna-renderer_0.6.0.bb index 642f21bd53..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,14 @@ 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" @@ -21,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 e31b7aea2a..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,19 +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" -PV .= "+git${SRCPV}" -SRC_URI = "git://github.com/01org/${BPN}.git" +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..542ad3487b --- /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 ${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, 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 977a9e7922..0000000000 --- a/meta-multimedia/recipes-multimedia/dvb-apps/dvb-apps_1.1.1.bb +++ /dev/null @@ -1,103 +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 \ - file://0001-dvbdate-Remove-Obsoleted-stime-API-calls.patch \ - " - -S = "${WORKDIR}/${BPN}" - -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 ${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 index 9035b56f4a..8ff1e029b0 100644 --- 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 @@ -6,27 +6,23 @@ 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(-) -diff --git a/util/dvbdate/dvbdate.c b/util/dvbdate/dvbdate.c -index f0df437..492ed79 100644 --- a/util/dvbdate/dvbdate.c +++ b/util/dvbdate/dvbdate.c -@@ -309,7 +309,10 @@ int atsc_scan_date(time_t *rx_time, unsigned int to) +@@ -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 ts; -+ ts.tv_sec = &new_time; -+ ts.tv_nsec = 0; -+ if (clock_settime(CLOCK_REALTIME, &ts)) { ++ struct timespec s = {0}; ++ s.tv_sec = *new_time; ++ ++ if (clock_settime(CLOCK_REALTIME, &s)) { perror("Unable to set time"); return -1; } --- -2.24.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.1.bb b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.2.bb index d7911681c7..55475b40f1 100644 --- a/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.1.bb +++ b/meta-multimedia/recipes-multimedia/fdk-aac/fdk-aac_2.0.2.bb @@ -11,8 +11,8 @@ 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=git;branch=master" -SRCREV = "d387d3b6ed79ff9a82c60440bdd86e6e5e324bec" +SRC_URI = "git://github.com/mstorsjo/fdk-aac.git;protocol=https;branch=master" +SRCREV = "801f67f671929311e0c9952c5f92d6e147c7b003" S = "${WORKDIR}/git" 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 51101e8e6d..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 = "fc21d284dc7fcacdbc456f30228110a55e6e79f6" -S = "${WORKDIR}/git" -PV = "2.2.2" - -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 cc73bdb1d9..0000000000 --- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth/0001-Do-not-build-gentables-helper-we-have-to-use-native-.patch +++ /dev/null @@ -1,49 +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 | 23 +---------------------- - 1 file changed, 1 insertion(+), 22 deletions(-) - -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 356bb734..58ff7635 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -399,25 +399,4 @@ else ( MACOSX_FRAMEWORK ) - install ( FILES ${public_main_HEADER} DESTINATION ${INCLUDE_INSTALL_DIR} ) - endif ( MACOSX_FRAMEWORK ) - --# ******* Auto Generated Lookup Tables ****** -- --include(ExternalProject) -- --set (GENTAB_SDIR ${CMAKE_CURRENT_SOURCE_DIR}/gentables) --set (GENTAB_BDIR ${CMAKE_CURRENT_BINARY_DIR}/gentables) -- --# Use external project to ensure that cmake uses the host compiler when building make_tables.exe --# To fix cross-compiling fluidsynth from Win32 to ARM (using vcpkg), we need to pass the current generator --# on to the external project, otherwise (for some unknown reason) the target compiler will be used rather --# than the host compiler. --ExternalProject_Add(gentables -- DOWNLOAD_COMMAND "" -- SOURCE_DIR ${GENTAB_SDIR} -- BINARY_DIR ${GENTAB_BDIR} -- CONFIGURE_COMMAND -- "${CMAKE_COMMAND}" -DCMAKE_VERBOSE_MAKEFILE=${CMAKE_VERBOSE_MAKEFILE} -G "${CMAKE_GENERATOR}" -B "${GENTAB_BDIR}" "${GENTAB_SDIR}" -- BUILD_COMMAND -- "${CMAKE_COMMAND}" --build "${GENTAB_BDIR}" -- INSTALL_COMMAND ${GENTAB_BDIR}/make_tables.exe "${CMAKE_BINARY_DIR}/" --) --add_dependencies(libfluidsynth-OBJ gentables) -+ --- -2.21.1 - 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 ba1ef6b1fc..0000000000 --- a/meta-multimedia/recipes-multimedia/fluidsynth/fluidsynth_git.bb +++ /dev/null @@ -1,23 +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" -PACKAGECONFIG[readline] = "-Denable-readline=ON,-Denable-readline=OFF,readline" diff --git a/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch b/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch deleted file mode 100644 index f3197f937b..0000000000 --- a/meta-multimedia/recipes-multimedia/gerbera/gerbera/0001-include-optional-header.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 5719ed8ce9ba60beb9c1670b49296b1c66430dc2 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 2 Mar 2021 12:57:37 -0800 -Subject: [PATCH] include <optional> header - -Fixes build with gcc11 -/src/util/tools.h:165:6: error: 'optional' in na -mespace 'std' does not name a template type -| 165 | std::optional<std::vector<std::byte>> readBinaryFile(const fs::path& path); -| | ^~~~~~~~ - -Upstream-Status: Submitted [https://github.com/gerbera/gerbera/pull/1273] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/util/tools.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/util/tools.h b/src/util/tools.h -index 3a4064e9..e5142966 100644 ---- a/src/util/tools.h -+++ b/src/util/tools.h -@@ -37,6 +37,7 @@ - #include <sstream> - #include <string> - #include <unordered_set> -+#include <optional> - #include <vector> - namespace fs = std::filesystem; - --- -2.30.1 - diff --git a/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb b/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb deleted file mode 100644 index d4242aa062..0000000000 --- a/meta-multimedia/recipes-multimedia/gerbera/gerbera_1.7.0.bb +++ /dev/null @@ -1,31 +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://0001-include-optional-header.patch \ - " - -SRCREV = "7bc33b98994411e1748d3b3fa9a8424c49e236d6" - -S = "${WORKDIR}/git" - -DEPENDS = "expat fmt spdlog pugixml libebml libmatroska 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/ -} - -FILES_${PN} += "/root/.config/" - -SECURITY_CFLAGS_riscv64 = "${SECURITY_NOPIE_CFLAGS}" 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/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_git.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.8.1.bb index 94d05def3e..dc43bed63b 100644 --- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_git.bb +++ b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gst-shark_0.8.1.bb @@ -2,34 +2,33 @@ 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+" +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" -PV = "0.7.2" - -SRCREV_base = "50e3dbd3b131de2a39d3917576e8f834631ec46b" -SRCREV_common = "88e512ca7197a45c4114f7fa993108f23245bf50" - +SRCREV = "09ba05865dacd2824b5b40ab75a4b9545fcc1366" +SRCREV_common = "b64f03f6090245624608beb5d2fff335e23a01c0" +SRCREV_FORMAT = "default_common" SRC_URI = " \ - git://github.com/RidgeRun/gst-shark.git;protocol=https;branch=${SRCBRANCH};name=base \ - git://gitlab.freedesktop.org/gstreamer/common.git;protocol=https;destsuffix=git/common;name=common; \ - " + 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 \ + --disable-graphviz \ + --enable-gtk-doc=no \ " -FILES_${PN} += "\ - ${libdir}/gstreamer-1.0/libgstsharktracers.so \ - ${libdir}/gstreamer-1.0/libgstsharktracers.la \ +FILES:${PN} += "\ + ${libdir}/gstreamer-1.0/libgstsharktracers.so \ + ${libdir}/gstreamer-1.0/libgstsharktracers.la \ " -inherit autotools gettext +inherit autotools gettext pkgconfig gtk-doc 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 c1c88999a5..0000000000 --- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd/0001-gstd-yocto-compatibility.patch +++ /dev/null @@ -1,20 +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(-) - ---- a/gstd/Makefile.am -+++ b/gstd/Makefile.am -@@ -74,7 +74,7 @@ gstd_CFLAGS = $(GST_CFLAGS) \ - -DGSTD_LOG_STATE_DIR=\"$(gstdlogstatedir)\" \ - -DGSTD_RUN_STATE_DIR=\"$(gstdrunstatedir)\" - --gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GIO_UNIX_LIBS) $(GJSON_LIBS) $(LIBD_LIBS) -Wl,-rpath -Wl,$(libdir) -+gstd_LDFLAGS = $(GST_LIBS) $(GIO_LIBS) $(GIO_UNIX_LIBS) $(GJSON_LIBS) $(LIBD_LIBS) - gstd_LDADD = libgstd-core.la - - gstdincludedir = $(includedir)/gstd diff --git a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb index 1834a83661..87792491ae 100644 --- a/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb +++ b/meta-multimedia/recipes-multimedia/gstreamer-1.0/gstd_git.bb @@ -2,32 +2,39 @@ 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 = "GPLv2+" -LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263" +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 jansson" +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 = "a6621a5778b234651aa2adbbe304d906a3fa64d1" -SRC_URI = "git://git@github.com/RidgeRun/gstd-1.x.git;protocol=https;branch=${SRCBRANCH} \ - file://0001-gstd-yocto-compatibility.patch \ - " +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.8.0" +PV = "1.0+really0.15.0" -inherit autotools pkgconfig gettext gtk-doc +GTKDOC_MESON_OPTION = "enable-gtk-doc" -do_install_append() { - rm -fr ${D}${localstatedir}/run ${D}/run ${D}${bindir}/gst-client ${D}${bindir}/gstd-client +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 -" \ + 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 index 04501e97c9..bc2e858b42 100644 --- a/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb +++ b/meta-multimedia/recipes-multimedia/images/multimedia-libcamera-image.bb @@ -4,14 +4,14 @@ DESCRIPTION = "libcamera image" LICENSE = "MIT" -require meta-multimedia-image.bb +require meta-multimedia-image-all.bb IMAGE_INSTALL += " \ kernel-modules \ xkeyboard-config \ " -IMAGE_INSTALL_append = "\ +IMAGE_INSTALL:append = "\ libcamera \ gstreamer1.0-plugins-good \ gstreamer1.0-plugins-base \ diff --git a/meta-multimedia/recipes-multimedia/juce/projucer.inc b/meta-multimedia/recipes-multimedia/juce/projucer.inc index 9f03cbd80f..b60cba1dd6 100644 --- a/meta-multimedia/recipes-multimedia/juce/projucer.inc +++ b/meta-multimedia/recipes-multimedia/juce/projucer.inc @@ -3,23 +3,26 @@ 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://LICENSE.md;md5=12e9c2db7897c0349a4cc1c6d2a8c5d5" +LICENSE = "GPL-3.0-only" +LIC_FILES_CHKSUM = "file://LICENSE.md;md5=eff9da77cdb81a803f8cbca6c16801d8" + +LICENSE_FLAGS = "commercial" inherit pkgconfig features_check 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" +DEPENDS:append:libc-musl = " libexecinfo" -SRCREV = "90e8da0cfb54ac593cdbed74c3d0c9b09bad3a9f" +SRCREV = "2f980209cc4091a4490bb1bafc5d530f16834e58" BRANCH = "master" 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 = "6.0.8" +PV = "6.1.6" JUCE_PROJUCER_BUILD_PATH = "${B}/extras/Projucer/Builds" JUCE_PROJUCER_MAKEFILE_PATH = "${JUCE_PROJUCER_BUILD_PATH}/LinuxMakefile" @@ -30,11 +33,11 @@ JUCE_PROJUCER = "${JUCE_PROJUCER_MAKEFILE_PATH}/build/Projucer" # 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" +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} @@ -51,4 +54,4 @@ do_install() { install -m 0755 ${JUCE_PROJUCER} ${D}${bindir} } # error: '_NL_IDENTIFICATION_LANGUAGE' was not declared in this scope -COMPATIBLE_HOST_libc-musl = "null" +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/libao/libao_1.2.0.bb b/meta-multimedia/recipes-multimedia/libao/libao_1.2.0.bb index 05134614a5..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,18 +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[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.bb b/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb deleted file mode 100644 index 30dab1d928..0000000000 --- a/meta-multimedia/recipes-multimedia/libcamera/libcamera.bb +++ /dev/null @@ -1,56 +0,0 @@ -SUMMARY = "Linux libcamera framework" -SECTION = "libs" - -LICENSE = "GPL-2.0+ & LGPL-2.1+" - -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://linuxtv.org/libcamera.git;protocol=git \ -" - -SRCREV = "193ca8c353a42334f65ddfc988a105a47bca3547" - -PV = "202105+git${SRCPV}" - -S = "${WORKDIR}/git" - -DEPENDS = "python3-pyyaml-native python3-jinja2-native python3-ply-native python3-jinja2-native udev gnutls boost chrpath-native" -DEPENDS += "${@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" - -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 -} - -addtask do_recalculate_ipa_signatures_package after do_package before do_packagedata -do_recalculate_ipa_signatures_package() { - 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}-dev = "${includedir} ${libdir}/pkgconfig" -FILES_${PN} += " ${libdir}/libcamera.so" -FILES_${PN}-gst = "${libdir}/gstreamer-1.0/libgstlibcamera.so" 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_2.2.6.bb b/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.7.bb index c9ade4ac99..8cac780d64 100755 --- a/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.6.bb +++ b/meta-multimedia/recipes-multimedia/libdc1394/libdc1394_2.2.7.bb @@ -1,21 +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)} \ " SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.gz \ file://install_examples.patch \ " -SRC_URI[md5sum] = "9fad67bbff08fe2818d5ec81802ec89f" -SRC_URI[sha256sum] = "2b905fc9aa4eec6bdcf6a2ae5f5ba021232739f5be047dec8fe8dd6049c10fed" +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.5.bb b/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.12.bb index 613dcc71bf..3c9f899491 100644 --- a/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.5.bb +++ b/meta-multimedia/recipes-multimedia/libde265/libde265_1.0.12.bb @@ -4,16 +4,18 @@ simple integration into other software." HOMEPAGE = "http://www.libde265.org/" SECTION = "libs/multimedia" -LICENSE = "LGPLv3 & MIT" +LICENSE = "LGPL-3.0-only & MIT" LICENSE_FLAGS = "commercial" LIC_FILES_CHKSUM = "file://COPYING;md5=695b556799abb2435c97a113cdca512f" -SRC_URI = "https://github.com/strukturag/libde265/releases/download/v${PV}/${BPN}-${PV}.tar.gz" -SRC_URI[sha256sum] = "e3f277d8903408615a5cc34718b391b83c97c646faea4f41da93bac5ee08a87f" +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..5de717c281 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 } 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_6.1.1.bb b/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb index 06308d96c3..766ee02ca2 100644 --- a/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb +++ b/meta-multimedia/recipes-multimedia/libdvdnav/libdvdnav_6.1.1.bb @@ -1,6 +1,6 @@ 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" @@ -10,5 +10,5 @@ SRC_URI[sha256sum] = "c191a7475947d323ff7680cf92c0fb1be8237701885f37656c64d04e98 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.bb b/meta-multimedia/recipes-multimedia/libuvc/libuvc_0.0.7.bb index 4d301fb2f6..b1572b32ac 100644 --- a/meta-multimedia/recipes-multimedia/libuvc/libuvc.bb +++ b/meta-multimedia/recipes-multimedia/libuvc/libuvc_0.0.7.bb @@ -3,12 +3,12 @@ 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" -SRCREV = "ad6c72a4e390367f0d2be81aac00cfc0b6680d74" -PV = "v0.0.6+git${SRCPV}" +SRC_URI = "git://github.com/libuvc/libuvc.git;branch=master;protocol=https" +SRCREV = "68d07a00e11d1944e27b7295ee69673239c00b4b" S = "${WORKDIR}/git" -inherit cmake +inherit cmake pkgconfig diff --git a/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb b/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.bb index 0cac2bea53..76f51196aa 100644 --- a/meta-multimedia/recipes-multimedia/mimic/mimic_1.3.0.1.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 & \ @@ -20,13 +20,13 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=a2c2c7371b58b9cdeae0dc68846fe9f1" DEPENDS = "curl-native libpcre2" SRCREV = "adf655da0399530ac1b586590257847eb61be232" -SRC_URI = "git://github.com/MycroftAI/mimic1.git \ +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" +CPPFLAGS:append = " -Wno-error" diff --git a/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc b/meta-multimedia/recipes-multimedia/minidlna/minidlna.inc index 433388759f..4959a3c8d7 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 @@ -13,7 +13,7 @@ SRC_URI = "git://git.code.sf.net/p/minidlna/git;branch=master;module=git \ file://minidlna.service \ file://0001-Update-Gettext-version.patch \ file://0001-configure-Check-for-clock_gettime-seprately-from-__N.patch \ - file://0001-Mark-setjmp_buffer-extern-declaration.patch \ + file://0001-configure.ac-drop-non-standard-checks.patch \ " S = "${WORKDIR}/git" @@ -22,7 +22,7 @@ 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} @@ -36,7 +36,7 @@ do_install_append(){ } -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-Mark-setjmp_buffer-extern-declaration.patch b/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Mark-setjmp_buffer-extern-declaration.patch deleted file mode 100644 index 0a1e800c81..0000000000 --- a/meta-multimedia/recipes-multimedia/minidlna/minidlna/0001-Mark-setjmp_buffer-extern-declaration.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 1c6028f5f8bbfd3fd7327a43e1bb762c2c166167 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Wed, 12 Aug 2020 18:10:54 -0700 -Subject: [PATCH] Mark setjmp_buffer extern declaration - -Fixes build with -fno-common - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - metadata.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/metadata.c b/metadata.c -index 8a10c77..c114091 100644 ---- a/metadata.c -+++ b/metadata.c -@@ -484,7 +484,7 @@ GetAudioMetadata(const char *path, const char *name) - } - - /* For libjpeg error handling */ --jmp_buf setjmp_buffer; -+extern jmp_buf setjmp_buffer; - static void - libjpeg_error_handler(j_common_ptr cinfo) - { --- -2.28.0 - diff --git a/meta-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 index 24a307db19..dd29797a66 100644 --- 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 @@ -1,4 +1,4 @@ -From 1118b1912916924bbfa3fd4dced9dfed01fbf0e0 Mon Sep 17 00:00:00 2001 +From 93e7e25a10c890b8c8cd06cbfd78175c30999d31 Mon Sep 17 00:00:00 2001 From: Khem Raj <raj.khem@gmail.com> Date: Mon, 9 Mar 2020 09:44:33 -0700 Subject: [PATCH] configure: Check for clock_gettime seprately from @@ -9,13 +9,16 @@ since direct use of __NR_clock_gettime is not time64-safe Upstream-Status: Pending Signed-off-by: Khem Raj <raj.khem@gmail.com> + --- - configure.ac | 10 +++++++--- - 1 file changed, 7 insertions(+), 3 deletions(-) + configure.ac | 4 ++++ + 1 file changed, 4 insertions(+) +diff --git a/configure.ac b/configure.ac +index 3d218ea..aa7dd1c 100644 --- a/configure.ac +++ b/configure.ac -@@ -125,6 +125,10 @@ case $host in +@@ -127,6 +127,10 @@ case $host in esac AC_CHECK_HEADERS(syscall.h sys/syscall.h mach/mach_time.h) @@ -26,11 +29,3 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> AC_MSG_CHECKING([for __NR_clock_gettime syscall]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( -@@ -143,7 +147,6 @@ AC_COMPILE_IFELSE( - ], - [ - AC_MSG_RESULT([no]) -- AC_SEARCH_LIBS([clock_gettime], [rt], [AC_DEFINE([HAVE_CLOCK_GETTIME], [1], [use clock_gettime])],) - ]) - - AC_CHECK_HEADER(linux/netlink.h, diff --git a/meta-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/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 f73b549df0..2b373d31e5 100644 --- a/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb +++ b/meta-multimedia/recipes-multimedia/musicbrainz/libmusicbrainz_git.bb @@ -1,22 +1,24 @@ 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 libmusicbrainz-native" -PV = "5.1.0+git${SRCPV}" +PV = "5.1.0+git" -SRCREV = "8be45b12a86bc0e46f2f836c8ac88e1e98d82aee" -SRC_URI = "git://github.com/metabrainz/libmusicbrainz.git" +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 -EXTRA_OECMAKE_append_class-target = " -DIMPORT_EXECUTABLES=${STAGING_LIBDIR_NATIVE}/cmake/${BPN}/ImportExecutables.cmake" +EXTRA_OECMAKE:append:class-target = " -DIMPORT_EXECUTABLES=${STAGING_LIBDIR_NATIVE}/cmake/${BPN}/ImportExecutables.cmake" -do_install_append_class-native() { +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 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.19.bb b/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.20.bb index 32f9688eaa..2746c6bb80 100644 --- a/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.19.bb +++ b/meta-multimedia/recipes-multimedia/musicpd/libmpdclient_2.20.bb @@ -6,15 +6,15 @@ 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 = "27767959442ef390aabb16790494ba93fed962ef" +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.33.bb b/meta-multimedia/recipes-multimedia/musicpd/mpc_0.34.bb index dcfc3df0bf..93df25ee2f 100644 --- a/meta-multimedia/recipes-multimedia/musicpd/mpc_0.33.bb +++ b/meta-multimedia/recipes-multimedia/musicpd/mpc_0.34.bb @@ -1,13 +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" -SRC_URI = "git://github.com/MusicPlayerDaemon/mpc" -SRCREV = "ef16b280052ef0320cb80f79d74c8ce0324005ed" +SRC_URI = "git://github.com/MusicPlayerDaemon/mpc;branch=master;protocol=https" +SRCREV = "31c900b79b3a1cd7f2944e92f24223d12589fdaa" S = "${WORKDIR}/git" diff --git a/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-include-utility-for-std-forward.patch b/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-include-utility-for-std-forward.patch deleted file mode 100644 index 68ccb65835..0000000000 --- a/meta-multimedia/recipes-multimedia/musicpd/mpd/0001-include-utility-for-std-forward.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 9bb962148672a3c20fb0119d7f71789b8ef3dc02 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 29 Jun 2021 19:31:34 -0700 -Subject: [PATCH] include <utility> for std::forward - -Fixes -../git/src/Log.hxx:121:42: error: no member named 'forward' in namespace 'std' - LogFormat(LogLevel::ERROR, e, fmt, std::forward<Args>(args)...); - -Upstream-Status: Submitted [https://github.com/MusicPlayerDaemon/MPD/pull/1201] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/Log.hxx | 1 + - src/lib/expat/ExpatParser.hxx | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/src/Log.hxx b/src/Log.hxx -index a295ed9f6..87097b086 100644 ---- a/src/Log.hxx -+++ b/src/Log.hxx -@@ -24,6 +24,7 @@ - #include "util/Compiler.h" - - #include <exception> -+#include <utility> - - class Domain; - -diff --git a/src/lib/expat/ExpatParser.hxx b/src/lib/expat/ExpatParser.hxx -index e1723d109..4b5221e89 100644 ---- a/src/lib/expat/ExpatParser.hxx -+++ b/src/lib/expat/ExpatParser.hxx -@@ -25,6 +25,7 @@ - #include <expat.h> - - #include <stdexcept> -+#include <utility> - - class InputStream; - --- -2.32.0 - diff --git a/meta-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.22.9.bb b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.14.bb index c112a40ce9..a762fc8322 100644 --- a/meta-multimedia/recipes-multimedia/musicpd/mpd_0.22.9.bb +++ b/meta-multimedia/recipes-multimedia/musicpd/mpd_0.23.14.bb @@ -1,5 +1,5 @@ SUMMARY = "Music Player Daemon" -LICENSE = "GPLv2" +LICENSE = "GPL-2.0-only" LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe" HOMEPAGE ="http://www.musicpd.org" @@ -15,21 +15,21 @@ DEPENDS += " \ icu \ dbus \ expat \ + fmt \ " -SRC_URI = " \ - git://github.com/MusicPlayerDaemon/MPD;branch=v0.22.x \ - file://0001-include-utility-for-std-forward.patch \ - file://mpd.conf.in \ -" -SRCREV = "18628bf89ebfa5a806971479a71cf9b5764e500e" +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_WHITELIST", "commercial", "aac", "", d)} \ +PACKAGECONFIG ??= "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "aac", "", d)} \ alsa ao bzip2 daemon \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "ffmpeg aac", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "ffmpeg aac", "", d)} \ fifo flac fluidsynth iso9660 \ jack libsamplerate httpd \ mms mpg123 modplug sndfile \ @@ -63,12 +63,12 @@ PACKAGECONFIG[oss] = "-Doss=enabled,-Doss=disabled," PACKAGECONFIG[recorder] = "-Drecorder=true,-Drecorder=false" PACKAGECONFIG[smb] = "-Dsmbclient=enabled,-Dsmbclient=disabled,samba" PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" -PACKAGECONFIG[upnp] = "-Dupnp=enabled,-Dupnp=disabled,libupnp" +PACKAGECONFIG[upnp] = "-Dupnp=pupnp,-Dupnp=disabled,libupnp" PACKAGECONFIG[vorbis] = "-Dvorbis=enabled,-Dvorbis=disabled,libvorbis libogg" PACKAGECONFIG[wavpack] = "-Dwavpack=enabled,-Dwavpack=disabled,wavpack" PACKAGECONFIG[zlib] = "-Dzlib=enabled,-Dzlib=disabled,zlib" -do_install_append() { +do_install:append() { install -o mpd -d \ ${D}/${localstatedir}/lib/mpd \ ${D}/${localstatedir}/lib/mpd/playlists @@ -89,13 +89,13 @@ do_install_append() { rm -rf ${D}${datadir}/icons } -RPROVIDES_${PN} += "${PN}-systemd" -RREPLACES_${PN} += "${PN}-systemd" -RCONFLICTS_${PN} += "${PN}-systemd" -SYSTEMD_SERVICE_${PN} = "mpd.socket" +RPROVIDES:${PN} += "${PN}-systemd" +RREPLACES:${PN} += "${PN}-systemd" +RCONFLICTS:${PN} += "${PN}-systemd" +SYSTEMD_SERVICE:${PN} = "mpd.socket" USERADD_PACKAGES = "${PN}" -USERADD_PARAM_${PN} = " \ +USERADD_PARAM:${PN} = " \ --system --no-create-home \ --home ${localstatedir}/lib/mpd \ --groups audio \ diff --git a/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.45.bb b/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.49.bb index c089b64edc..d93c054f45 100644 --- a/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.45.bb +++ b/meta-multimedia/recipes-multimedia/musicpd/ncmpc_0.49.bb @@ -1,17 +1,17 @@ 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" +RDEPENDS:${PN} += "python3-core" PACKAGECONFIG ??= "colors locale mouse nls regex help_screen library_screen search_screen song_screen key_screen lyrics_screen outputs_screen" @@ -32,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 = "6780ec072f1d314f44ed77efdc58d03c6fbcc96b" +SRC_URI = "git://github.com/MusicPlayerDaemon/ncmpc;branch=master;protocol=https" +SRCREV = "f81f875fc5785383d24f54fb9bd3cf06efd915a4" S = "${WORKDIR}/git" diff --git a/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb b/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb index 2db30dda06..444bc1cf39 100644 --- a/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb +++ b/meta-multimedia/recipes-multimedia/mycroft/mycroft_19.8.1.bb @@ -7,7 +7,7 @@ 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 \ +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 \ @@ -22,7 +22,7 @@ SRC_URI = "git://github.com/MycroftAI/mycroft-core.git;branch=master \ S = "${WORKDIR}/git" -inherit systemd +inherit systemd features_check # Mycroft installs itself on the host # Just copy the setup files to the rootfs @@ -48,11 +48,11 @@ do_install() { fi } -FILES_${PN} += "${libdir}/mycroft" +FILES:${PN} += "${libdir}/mycroft" -RDEPENDS_${PN} = "python3" +RDEPENDS:${PN} = "python3" -RDEPENDS_${PN} += "python3-requests python3-pillow \ +RDEPENDS:${PN} += "python3-requests python3-pillow \ python3-tornado python3-pyyaml \ python3-pyalsaaudio python3-inflection \ python3-pyserial python3-psutil \ @@ -61,7 +61,7 @@ RDEPENDS_${PN} += "python3-requests python3-pillow \ python3-xxhash python3-pako \ python3-six python3-cryptography \ python3-requests-futures \ - python3-xmlrunner python3-fasteners \ + python3-fasteners \ python3-python-vlc \ python3-padatious python3-padaos \ python3-petact python3-precise-runner \ @@ -77,14 +77,19 @@ RDEPENDS_${PN} += "python3-requests python3-pillow \ # 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" +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" +RDEPENDS:${PN} += "mimic" # pgrep is used by stop-mycroft.sh -RDEPENDS_${PN} += "procps" +RDEPENDS:${PN} += "procps" -SYSTEMD_SERVICE_${PN} = "mycroft-setup.service mycroft.service" +# 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 2bffd65c6e..0000000000 --- a/meta-multimedia/recipes-multimedia/openal/openal-soft/0001-Use-BUILD_CC-to-compile-native-tools.patch +++ /dev/null @@ -1,31 +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(-) - ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -1085,11 +1085,10 @@ ELSE() - 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" 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 607ddab8d6..0000000000 --- a/meta-multimedia/recipes-multimedia/openal/openal-soft/0002-makehrtf-Disable-Wstringop-truncation.patch +++ /dev/null @@ -1,29 +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/makemhr/makemhr.cpp | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/utils/makemhr/makemhr.cpp -+++ b/utils/makemhr/makemhr.cpp -@@ -161,6 +161,7 @@ enum ChannelIndex : uint { - * 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; -@@ -199,6 +200,7 @@ static int StrSubst(const char *in, cons - return !truncated; - } - -+#pragma GCC diagnostic pop - - /********************* - *** Math routines *** diff --git a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb b/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb deleted file mode 100644 index d283cb361b..0000000000 --- a/meta-multimedia/recipes-multimedia/openal/openal-soft_1.20.1.bb +++ /dev/null @@ -1,24 +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 - -SRCREV = "f5e0eef34db3a3ab94b61a2f99f84f078ba947e7" -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/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_2.1.1.bb b/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb deleted file mode 100644 index 75d5010f18..0000000000 --- a/meta-multimedia/recipes-multimedia/openh264/openh264_2.1.1.bb +++ /dev/null @@ -1,50 +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_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 = "50a1fcf70fafe962c526749991cb4646406933ba" -BRANCH = "openh264v2.1.1" -SRC_URI = "git://github.com/cisco/openh264.git;protocol=https;branch=${BRANCH} \ - file://0001-Makefile-Use-cp-options-to-preserve-file-mode.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 = " ENABLEPIC=Yes" -do_configure() { - : -} - -do_compile() { - oe_runmake -} - -do_install() { - oe_runmake install DESTDIR=${D} PREFIX=${prefix} -} - -CLEANBROKEN = "1" 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/packagegroups/packagegroup-meta-multimedia.bb b/meta-multimedia/recipes-multimedia/packagegroups/packagegroup-meta-multimedia.bb index 0601cdd99b..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,90 +19,59 @@ RDEPENDS_packagegroup-meta-multimedia = "\ packagegroup-meta-multimedia-support \ " -RDEPENDS_packagegroup-meta-multimedia = "\ +RDEPENDS:packagegroup-meta-multimedia = "\ alsa-equal \ aom \ + bluealsa \ caps \ cdparanoia \ - dcadec \ - dleyna-connector-dbus \ - dleyna-core \ - dleyna-renderer \ - dleyna-server \ dvb-apps \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "faac fdk-aac mpd", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "faac mpd", "", d)} \ gerbera \ - libao \ libavc1394 \ - libdc1394 \ - libdvbpsi \ - libdvdnav \ libiec61883 \ - fluidsynth \ libmusicbrainz \ - libmpdclient \ mpc \ ncmpc \ - libmpd \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "opencore-amr vo-aacenc vo-amrwbenc", "", d)} \ - gst-shark \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "opencore-amr", "", d)} \ gstd \ rtmpdump \ bigbuckbunny-1080p \ bigbuckbunny-480p \ bigbuckbunny-720p \ tearsofsteel-1080p \ - schroedinger \ pipewire \ - ${@bb.utils.contains("DISTRO_FEATURES", "x11", "projucer", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", bb.utils.contains("DISTRO_FEATURES", "x11", "projucer", "", d), "", d)} \ libcamera \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "libde265 openh264", "", d)} \ vorbis-tools \ - libdvbcsa \ libopenmpt \ - libuvc \ mimic \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "minidlna", "", d)} \ - mycroft \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "minidlna", "", d)} \ + ${@bb.utils.contains("DISTRO_FEATURES", "pulseaudio", "mycroft", "", d)} \ openal-soft \ opusfile \ - libdvdcss \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", bb.utils.contains("DISTRO_FEATURES", "x11", "vlc", "", d), "", d)} \ - ${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "sox streamripper", "", d)} \ + 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 \ - tremor \ - webrtc-audio-processing \ - ${@bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 x86-64", "x265", "", d)} \ + ${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", bb.utils.contains_any("TRANSLATED_TARGET_ARCH", "i586 i686 x86-64", "x265", "", d), "", d)} \ " -RDEPENDS_packagegroup-meta-multimedia_remove_libc-musl = "projucer" -RDEPENDS_packagegroup-meta-multimedia_remove_powerpc64le = "openh264" +RDEPENDS:packagegroup-meta-multimedia:remove:libc-musl = "projucer" -RDEPENDS_packagegroup-meta-multimedia-connectivity = "\ - gssdp \ - gupnp-av \ +RDEPENDS:packagegroup-meta-multimedia-connectivity = "\ gupnp-dlna \ - gupnp-igd \ ${@bb.utils.contains("DISTRO_FEATURES", "x11", "gupnp-tools", "", d)} \ - gupnp \ libupnp \ - ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "rygel", "", d)} \ + ${@bb.utils.contains("DISTRO_FEATURES", "x11", bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "rygel", "", d), "", d)} \ " -RDEPENDS_packagegroup-meta-multimedia-dvb = "\ +RDEPENDS:packagegroup-meta-multimedia-dvb = "\ oscam \ tvheadend \ " -RDEPENDS_packagegroup-meta-multimedia-mkv = "\ - libebml \ - libmatroska \ -" - -RDEPENDS_packagegroup-meta-multimedia-support = "\ +RDEPENDS:packagegroup-meta-multimedia-support = "\ crossguid \ - ${@bb.utils.contains("DISTRO_FEATURES", "gobject-introspection-data", "libmediaart-2.0", "", d)} \ gst-instruments \ - libsrtp \ - srt \ " # 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 index bcb3015f8b..9895e89761 100644 --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb +++ b/meta-multimedia/recipes-multimedia/pipewire/pipewire-0.2_git.bb @@ -1,8 +1,7 @@ SUMMARY = "Multimedia processing server for Linux" -AUTHOR = "Wim Taymans <wtaymans@redhat.com>" HOMEPAGE = "https://pipewire.org" SECTION = "multimedia" -LICENSE = "LGPL-2.1" +LICENSE = "LGPL-2.1-only" LIC_FILES_CHKSUM = " \ file://LICENSE;md5=d8153c6e65986f862a0550ca74a3ed73 \ file://LGPL;md5=2d5025d4aa3495befef8f17206a5b0a1 \ @@ -11,7 +10,7 @@ DEPENDS = "alsa-lib dbus udev" SRCREV = "14c11c0fe4d366bad4cfecdee97b6652ff9ed63d" PV = "0.2.7" -SRC_URI = "git://github.com/PipeWire/pipewire" +SRC_URI = "git://github.com/PipeWire/pipewire;branch=master;protocol=https" S = "${WORKDIR}/git" @@ -35,31 +34,31 @@ PACKAGES =+ "\ lib${PN}-modules \ " -RDEPENDS_lib${PN} += "lib${PN}-modules ${PN}-spa-plugins" +RDEPENDS:lib${PN} += "lib${PN}-modules ${PN}-spa-plugins" -FILES_${PN} = "\ +FILES:${PN} = "\ ${sysconfdir}/pipewire/pipewire.conf \ ${bindir}/pipewire* \ ${systemd_user_unitdir}/* \ " -FILES_lib${PN} = "\ +FILES:lib${PN} = "\ ${libdir}/libpipewire-*.so.* \ " -FILES_lib${PN}-modules = "\ +FILES:lib${PN}-modules = "\ ${libdir}/pipewire-*/* \ " -FILES_${PN}-spa-plugins = "\ +FILES:${PN}-spa-plugins = "\ ${bindir}/spa-* \ ${libdir}/spa/* \ " -FILES_${PN}-alsa = "\ +FILES:${PN}-alsa = "\ ${libdir}/alsa-lib/* \ ${datadir}/alsa/alsa.conf.d/50-pipewire.conf \ " -FILES_gstreamer1.0-${PN} = "\ +FILES:gstreamer1.0-${PN} = "\ ${libdir}/gstreamer-1.0/* \ " -CONFFILES_${PN} = "\ +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_0.3.31.bb b/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.31.bb deleted file mode 100644 index 3e8792118c..0000000000 --- a/meta-multimedia/recipes-multimedia/pipewire/pipewire_0.3.31.bb +++ /dev/null @@ -1,285 +0,0 @@ -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" -LICENSE = "MIT & LGPL-2.1-or-later & GPL-2.0-only" -LIC_FILES_CHKSUM = " \ - file://LICENSE;md5=2158739e172e58dc9ab1bdd2d6ec9c72 \ - file://COPYING;md5=97be96ca4fab23e9657ffa590b931c1a \ -" -SECTION = "multimedia" - -DEPENDS = "dbus" - -SRCREV = "c43dabcc96e2e072cdf08e5f094bb677d9017c6b" -SRC_URI = "git://gitlab.freedesktop.org/pipewire/pipewire.git;branch=master;protocol=https" - -S = "${WORKDIR}/git" - -inherit meson pkgconfig systemd manpages 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" - -# For "EVL", look up https://evlproject.org/ . It involves -# a specially prepared kernel, and is currently unavailable -# in Yocto. -# -# FFmpeg and Vulkan aren't really supported - at the current -# stage (version 0.3.22), these are just experiments, not -# actual features. -# -# libcamera support currently does not build successfully. -# -# systemd user service files are disabled because per-user -# PipeWire instances aren't really something that makes -# much sense in an embedded environment. A system-wide -# instance does. -# -# manpage generation requires xmltoman, which is not available. -EXTRA_OEMESON += " \ - -Daudiotestsrc=enabled \ - -Devl=disabled \ - -Dsystemd-user-service=disabled \ - -Dtests=disabled \ - -Dudevrulesdir=${nonarch_base_libdir}/udev/rules.d/ \ - -Dvideotestsrc=enabled \ - -Dffmpeg=disabled \ - -Dvulkan=disabled \ - -Dlibcamera=disabled \ - -Dman=disabled \ -" - -PACKAGECONFIG ??= "\ - ${@bb.utils.contains('DISTRO_FEATURES', 'bluetooth', 'bluez', '', d)} \ - ${@bb.utils.filter('DISTRO_FEATURES', 'alsa systemd', d)} \ - gstreamer jack v4l2 \ -" - -# "jack" and "pipewire-jack" packageconfigs cannot be both enabled, -# since "jack" imports libjack, and "pipewire-jack" generates -# libjack.so* files, thus colliding with the libpack package. This -# is why these two are marked in their respective packageconfigs -# as being in conflict. - -PACKAGECONFIG[alsa] = "-Dalsa=enabled,-Dalsa=disabled,alsa-lib udev" -PACKAGECONFIG[bluez] = "-Dbluez5=enabled,-Dbluez5=disabled,bluez5 sbc" -PACKAGECONFIG[docs] = "-Ddocs=enabled,-Ddocs=disabled,doxygen-native" -PACKAGECONFIG[gstreamer] = "-Dgstreamer=enabled,-Dgstreamer=disabled,glib-2.0 gstreamer1.0 gstreamer1.0-plugins-base" -PACKAGECONFIG[jack] = "-Djack=enabled,-Djack=disabled,jack,,,pipewire-jack" -PACKAGECONFIG[sdl2] = "-Dsdl2=enabled,-Dsdl2=disabled,virtual/libsdl2" -PACKAGECONFIG[sndfile] = "-Dsndfile=enabled,-Dsndfile=disabled,libsndfile1" -PACKAGECONFIG[systemd] = "-Dsystemd=enabled -Dsystemd-system-service=enabled ,-Dsystemd=disabled -Dsystemd-system-service=disabled,systemd" -PACKAGECONFIG[v4l2] = "-Dv4l2=enabled,-Dv4l2=disabled,udev" -PACKAGECONFIG[pipewire-alsa] = "-Dpipewire-alsa=enabled,-Dpipewire-alsa=disabled,alsa-lib" -PACKAGECONFIG[pipewire-jack] = "-Dpipewire-jack=enabled -Dlibjack-path=${libdir}/${PW_MODULE_SUBDIR}/jack,-Dpipewire-jack=disabled,jack,,,jack" - -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 -} - -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 - - # 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}-media-session \ - ${PN}-spa-plugins \ - ${PN}-spa-plugins-meta \ - ${PN}-spa-tools \ - ${PN}-modules \ - ${PN}-modules-meta \ - ${PN}-alsa-card-profile \ - gstreamer1.0-pipewire \ -" - -PACKAGES_DYNAMIC = "^${PN}-spa-plugins.* ^${PN}-modules.*" - -SYSTEMD_SERVICE_${PN} = "pipewire.service" -CONFFILES_${PN} += "${datadir}/pipewire/pipewire.conf" -FILES_${PN} = " \ - ${datadir}/pipewire/pipewire.conf \ - ${systemd_user_unitdir}/pipewire.* \ - ${bindir}/pipewire \ -" - -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-* \ -" - -# 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_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 = "\ - ${datadir}/pipewire/jack.conf \ - ${libdir}/${PW_MODULE_SUBDIR}/jack/libjack*.so.* \ -" - -# Example session manager. Not intended for use in production. -CONFFILES_${PN}-media-session = "${datadir}/pipewire/media-session.d/*" -SYSTEMD_SERVICE_${PN}-media-session = "pipewire-media-session.service" -FILES_${PN}-media-session = " \ - ${bindir}/pipewire-media-session \ - ${datadir}/pipewire/media-session.d/* \ - ${systemd_system_unitdir}/pipewire-media-session.service \ -" -RPROVIDES_${PN}-media-session = "virtual/pipewire-sessionmanager" - -# Dynamic packages (see set_dynamic_metapkg_rdepends). -FILES_${PN}-spa-plugins = "" -RRECOMMENDS_${PN}-spa-plugins += "${PN}-spa-plugins-meta" - -FILES_${PN}-spa-tools = " \ - ${bindir}/spa-* \ -" - -# Dynamic packages (see set_dynamic_metapkg_rdepends). -FILES_${PN}-modules = "" -RRECOMMENDS_${PN}-modules += "${PN}-modules-meta" - -CONFFILES_${PN}-modules-rtkit = "${datadir}/pipewire/client-rt.conf" -FILES_${PN}-modules-rtkit += " \ - ${datadir}/pipewire/client-rt.conf \ - " - -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 \ -" - -FILES_gstreamer1.0-pipewire = " \ - ${libdir}/gstreamer-1.0/* \ -" 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 70eb6e4be7..cb919d79e3 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-1080p.bb @@ -3,7 +3,7 @@ LICENSE = "CC-BY-3.0" # http://www.bigbuckbunny.org/index.php/about/ LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/CC-BY-3.0;md5=dfa02b5755629022e267f10b9c0a2ab7" -SRC_URI = "http://themazzone.com/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 df23689960..40dc2aacb5 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-480p.bb @@ -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 cb8ece0cb1..ed1d027b40 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/bigbuckbunny-720p.bb @@ -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 04cbd2e34d..78f15f143f 100644 --- a/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb +++ b/meta-multimedia/recipes-multimedia/sample-content/tearsofsteel-1080p.bb @@ -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 2f1fda341e..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 \ @@ -11,6 +11,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=d91a46405fc074b88c963cc4f2a0aae9 \ DEPENDS = "orc-native orc" 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 2d6e913d87..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,7 +4,7 @@ and can apply different effects and filters to the audio data." HOMEPAGE = "http://sox.sourceforge.net" SECTION = "audio" -DEPENDS = "libpng ffmpeg libsndfile1" +DEPENDS = "libpng libsndfile1 libtool" PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'alsa pulseaudio', d)} \ magic \ @@ -23,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" @@ -36,4 +36,7 @@ SRC_URI[sha256sum] = "b45f598643ffbd8e363ff24d61166ccec4836fea6d3888881b8df53e3b inherit autotools pkgconfig -EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_WHITELIST", "commercial", "0", "1", d)}" +# 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-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch deleted file mode 100644 index 6f9c39996b..0000000000 --- a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa/0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch +++ /dev/null @@ -1,46 +0,0 @@ -From fe4f3c2a37a81201f463ff962364f014f50c9896 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 16 Dec 2019 22:58:41 -0800 -Subject: [PATCH] Use CMAKE_INSTALL_<path> instead of hardcoding bin/lib/ - install paths - -Helps fix build/packaging issues on machines where default libdir is not -lib but say lib64 - -Upstream-Status: Submitted [https://github.com/tinyalsa/tinyalsa/pull/143] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - CMakeLists.txt | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index cb31c58..1cc4a85 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -41,12 +41,20 @@ add_util("tinymix" "utils/tinymix.c") - install(FILES ${HDRS} - DESTINATION "include/tinyalsa") - -+if(NOT DEFINED CMAKE_INSTALL_LIBDIR) -+ set(CMAKE_INSTALL_LIBDIR lib) -+endif() -+ -+if(NOT DEFINED CMAKE_INSTALL_BINDIR) -+ set(CMAKE_INSTALL_BINDIR bin) -+endif() -+ - install(TARGETS "tinyalsa" - "tinyplay" - "tinycap" - "tinymix" - "tinypcminfo" -- RUNTIME DESTINATION "bin" -- ARCHIVE DESTINATION "lib" -- LIBRARY DESTINATION "lib") -+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} -+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) - --- -2.24.1 - 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 062096892e..e261611afd 100644 --- a/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa.bb +++ b/meta-multimedia/recipes-multimedia/tinyalsa/tinyalsa_2.0.0.bb @@ -4,13 +4,12 @@ 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=e04cd6fa58488e016f7fb648ebea1db4" -SRCREV = "8449529c7e50f432091539ba7b438e79b04059b5" -SRC_URI = "git://github.com/tinyalsa/tinyalsa \ - file://0001-Use-CMAKE_INSTALL_-path-instead-of-hardcoding-bin-li.patch \ +SRCREV = "1c5fb68ced57d838f2b7ecd0c00bc1fefc9ab60d" +SRC_URI = "git://github.com/tinyalsa/tinyalsa;branch=master;protocol=https \ + file://0001-fixed-compilation-error-caused-by-strncpy.patch \ " -PV = "1.1.1+git${SRCPV}" S = "${WORKDIR}/git" diff --git a/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb b/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb index 6abf6080bd..f8ab1bf680 100644 --- a/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb +++ b/meta-multimedia/recipes-multimedia/tremor/tremor_20180319.bb @@ -6,7 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=db1b7a668b2a6f47b2af88fb008ad555 \ file://os.h;beginline=3;endline=14;md5=5c0af5e1bedef3ce8178c89f48cd6f1f" DEPENDS = "libogg" -SRC_URI = "git://gitlab.xiph.org/xiph/tremor.git;protocol=https \ +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 \ " diff --git a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.2.bb b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb index fe06699ab4..42c771e0ff 100644 --- a/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.2.bb +++ b/meta-multimedia/recipes-multimedia/vlc/libdvdcss_1.4.3.bb @@ -1,6 +1,6 @@ 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" +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" @@ -9,5 +9,4 @@ inherit autotools EXTRA_OECONF = " --disable-doc " -SRC_URI[md5sum] = "7b74f2e142b13c9de6dc8d807ab912d4" -SRC_URI[sha256sum] = "78c2ed77ec9c0d8fbed7bf7d3abc82068b8864be494cfad165821377ff3f2575" +SRC_URI[sha256sum] = "233cc92f5dc01c5d3a96f5b3582be7d5cee5a35a52d3a08158745d3d86070079" diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch deleted file mode 100644 index e1383c826c..0000000000 --- a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-include-limits-header.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 1068c7451855c3f9acde9af265b5a790073b1641 Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Tue, 2 Mar 2021 14:28:27 -0800 -Subject: [PATCH] include <limits> header - -Fixes -SegmentInformation.cpp:397:49: error: '::max' has not been declared; d -id you mean 'std::max'? - -Upstream-Status: Pending -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - modules/demux/adaptive/playlist/SegmentInformation.cpp | 1 + - modules/demux/hls/playlist/Parser.cpp | 1 + - 2 files changed, 2 insertions(+) - -diff --git a/modules/demux/adaptive/playlist/SegmentInformation.cpp b/modules/demux/adaptive/playlist/SegmentInformation.cpp -index 344e155..8eeb054 100644 ---- a/modules/demux/adaptive/playlist/SegmentInformation.cpp -+++ b/modules/demux/adaptive/playlist/SegmentInformation.cpp -@@ -34,6 +34,7 @@ - - #include <algorithm> - #include <cassert> -+#include <limits> - - using namespace adaptive::playlist; - -diff --git a/modules/demux/hls/playlist/Parser.cpp b/modules/demux/hls/playlist/Parser.cpp -index 67110e4..7439699 100644 ---- a/modules/demux/hls/playlist/Parser.cpp -+++ b/modules/demux/hls/playlist/Parser.cpp -@@ -42,6 +42,7 @@ - #include <map> - #include <cctype> - #include <algorithm> -+#include <limits> - - using namespace adaptive; - using namespace adaptive::playlist; --- -2.30.1 - diff --git a/meta-multimedia/recipes-multimedia/vlc/vlc/0001-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/0001-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/0002-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/0002-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/0003-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/0003-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 index 424aaa2815..6659a44a0a 100644 --- 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 @@ -8,16 +8,15 @@ 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(-) -diff --git a/configure.ac b/configure.ac -index d7cf692..f81b99d 100644 --- a/configure.ac +++ b/configure.ac -@@ -3427,27 +3427,18 @@ AC_ARG_ENABLE(mmal, +@@ -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 @@ -56,6 +55,3 @@ index d7cf692..f81b99d 100644 dnl dnl evas plugin --- -2.26.1 - 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/0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch b/meta-multimedia/recipes-multimedia/vlc/vlc/0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch deleted file mode 100644 index 405490dcfc..0000000000 --- a/meta-multimedia/recipes-multimedia/vlc/vlc/0005-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch +++ /dev/null @@ -1,46 +0,0 @@ -From f7957c35654222e5bd1038341612bbb40a88e98b Mon Sep 17 00:00:00 2001 -From: Khem Raj <raj.khem@gmail.com> -Date: Mon, 16 Nov 2020 12:08:43 -0800 -Subject: [PATCH] linux/thread: Use SYS_futex instead of __NR_futex - -SYS_futex it expected from system C library. -in glibc (/usr/include/bits/syscall.h defines it in terms of of NR_futex) -some newer 32bit architectures e.g. riscv32 are using 64bit time_t from -get go unlike other 32bit architectures in glibc, therefore it wont have -NR_futex defined but just NR_futex_time64 this aliases it to NR_futex so -that SYS_futex is then defined for rv32 - -Upstream-Status: Submitted [https://github.com/videolan/vlc/pull/117] -Signed-off-by: Khem Raj <raj.khem@gmail.com> ---- - src/linux/thread.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/src/linux/thread.c b/src/linux/thread.c -index 20da296..30639a3 100644 ---- a/src/linux/thread.c -+++ b/src/linux/thread.c -@@ -30,6 +30,11 @@ - #include <sys/syscall.h> - #include <linux/futex.h> - -+/* 32bit architectures with 64bit time_t do not define __NR_futex syscall */ -+#if !defined(SYS_futex) && defined(SYS_futex_time64) -+#define SYS_futex SYS_futex_time64 -+#endif -+ - #ifndef FUTEX_PRIVATE_FLAG - #define FUTEX_WAKE_PRIVATE FUTEX_WAKE - #define FUTEX_WAIT_PRIVATE FUTEX_WAIT -@@ -50,7 +55,7 @@ unsigned long vlc_thread_id(void) - static int sys_futex(void *addr, int op, unsigned val, - const struct timespec *to, void *addr2, int val3) - { -- return syscall(__NR_futex, addr, op, val, to, addr2, val3); -+ return syscall(SYS_futex, addr, op, val, to, addr2, val3); - } - - static int vlc_futex_wake(void *addr, int nr) --- -2.29.2 - 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_3.0.12.bb b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.20.bb index cb796a00fa..d25a20ae01 100644 --- a/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.12.bb +++ b/meta-multimedia/recipes-multimedia/vlc/vlc_3.0.20.bb @@ -2,10 +2,10 @@ 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 \ +DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native bison-native \ dbus libxml2 gnutls \ tremor faad2 ffmpeg flac alsa-lib \ lua-native lua libidn \ @@ -13,20 +13,22 @@ DEPENDS = "coreutils-native fribidi libtool libgcrypt libgcrypt-native \ libmtp libopus orc libsamplerate0 libusb1 schroedinger taglib \ tiff" -LDFLAGS_append_riscv64 = " -latomic" -LDFLAGS_append_riscv32 = " -latomic" +LDFLAGS:append:riscv64 = " -latomic" +LDFLAGS:append:riscv32 = " -latomic" -SRC_URI = "http://download.videolan.org/pub/videolan/${BPN}/${PV}/${BP}.tar.xz \ +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-linux-thread-Use-SYS_futex-instead-of-__NR_futex.patch \ - file://0001-include-limits-header.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] = "eff458f38a92126094f44f2263c2bf2c7cdef271b48192d0fe7b1726388cf879" +SRC_URI[sha256sum] = "adc7285b4d2721cddf40eb5270cada2aaa10a334cb546fd55a06353447ba29b5" -inherit autotools features_check gettext pkgconfig mime-xdg +inherit autotools-brokensep features_check gettext pkgconfig mime-xdg REQUIRED_DISTRO_FEATURES = "x11" @@ -95,13 +97,12 @@ 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 @@ -109,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 \ @@ -120,15 +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_WHITELIST", "commercial", "0", "1", d)}" +EXCLUDE_FROM_WORLD = "${@bb.utils.contains("LICENSE_FLAGS_ACCEPTED", "commercial", "0", "1", d)}" 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 index b61ce7c184..dd03fa9524 100644 --- a/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch +++ b/meta-multimedia/recipes-multimedia/vorbis-tools/vorbis-tools/gettext.patch @@ -2,23 +2,10 @@ Fix build with gettext 0.20.x Upstream-Status: Pending Signed-off-by: Khem Raj <raj.khem@gmail.com> - ---- a/Makefile.am -+++ b/Makefile.am -@@ -2,8 +2,8 @@ - - AUTOMAKE_OPTIONS = foreign dist-zip - --SUBDIRS = po intl include share debian win32 @OPT_SUBDIRS@ --DIST_SUBDIRS = po intl include share debian win32 ogg123 oggenc oggdec ogginfo \ -+SUBDIRS = po include share debian win32 @OPT_SUBDIRS@ -+DIST_SUBDIRS = po include share debian win32 ogg123 oggenc oggdec ogginfo \ - vcut vorbiscomment m4 - - EXTRA_DIST = config.rpath README AUTHORS COPYING CHANGES vorbis-tools.spec config.h mkinstalldirs +Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com> --- a/configure.ac +++ b/configure.ac -@@ -31,7 +31,7 @@ CFLAGS="$cflags_save" +@@ -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" @@ -27,7 +14,7 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> dnl -------------------------------------------------- dnl System checks -@@ -383,7 +383,6 @@ AC_OUTPUT([ +@@ -397,7 +397,6 @@ Makefile m4/Makefile po/Makefile.in @@ -35,3 +22,16 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com> 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 89e66528ac..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,19 +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_0.3.1.bb b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb index b94dcf9f18..6e56c4409c 100644 --- a/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb +++ b/meta-multimedia/recipes-multimedia/webrtc-audio-processing/webrtc-audio-processing_0.3.1.bb @@ -2,7 +2,7 @@ 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 \ @@ -19,5 +19,5 @@ SRC_URI = "http://freedesktop.org/software/pulseaudio/webrtc-audio-processing/${ SRC_URI[md5sum] = "6e10724ca34bcbc715a4c208273acb0c" SRC_URI[sha256sum] = "a0fdd938fd85272d67e81572c5a4d9e200a0c104753cb3c209ded175ce3c5dbf" -LDFLAGS_append_libc-musl = " -lexecinfo" +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 index 8c34526cc3..2d4f389e34 100644 --- a/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb +++ b/meta-multimedia/recipes-multimedia/x265/x265_3.2.1.bb @@ -2,7 +2,7 @@ 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 = "GPLv2" +LICENSE = "GPL-2.0-only" LICENSE_FLAGS = "commercial" LIC_FILES_CHKSUM = "file://../COPYING;md5=c9e0427bc58f129f99728c62d4ad4091" @@ -17,8 +17,13 @@ SRC_URI[sha256sum] = "fb9badcf92364fd3567f8b5aa0e5e952aeea7a39a2b864387cec31e3b5 inherit lib_package pkgconfig cmake -EXTRA_OECMAKE_append_x86 = " -DENABLE_ASSEMBLY=OFF" +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).*-linux' +COMPATIBLE_HOST = '(x86_64|i.86|aarch64).*-linux' |