diff mbox series

[meta-arago,scarthgap,10/10] v4l-utils: Do the version bump in a yocto-check-layer compliant manner

Message ID 20251113225017.22994-10-reatmon@ti.com
State New
Headers show
Series [meta-arago,scarthgap,01/10] offscreendemo: Add REQUIRED_DISTRO_FEATURES | expand

Commit Message

Ryan Eatmon Nov. 13, 2025, 10:50 p.m. UTC
Yocto Project Compatibility requires that including a layer in a build
not change recipes in other layers.  In this case, we were providing a
newer version of a recipe that another layer provides.

The proper way of doing this is to create a bbappend and only change the
minimal things needed to perform your changes.  Additionally, to pass
the yocto-check-layer the bbappend needs to be wrapped in a manner that
only applies your changes in the event that you are making use of your
layer.  For Arago, that means only if we are building Arago.

Signed-off-by: Ryan Eatmon <reatmon@ti.com>
---
 .../v4l2apps/v4l-utils-arago.inc              | 16 ++++
 .../v4l2apps/v4l-utils_%.bbappend             |  4 +
 .../v4l2apps/v4l-utils_1.28.1.bb              | 86 -------------------
 3 files changed, 20 insertions(+), 86 deletions(-)
 create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils-arago.inc
 create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_%.bbappend
 delete mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_1.28.1.bb
diff mbox series

Patch

diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils-arago.inc b/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils-arago.inc
new file mode 100644
index 00000000..652314b9
--- /dev/null
+++ b/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils-arago.inc
@@ -0,0 +1,16 @@ 
+FILESEXTRAPATHS:prepend := "${THISDIR}/v4l-utils:"
+
+PV = "1.28.1+git"
+
+# v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to
+# both 32 and 64 bit file APIs.  But it does not handle the time side?
+# Needs further investigation
+GLIBC_64BIT_TIME_FLAGS = ""
+
+SRC_URI = "\
+    git://git.linuxtv.org/v4l-utils.git;protocol=https;branch=stable-1.28 \
+    file://0001-media-ctl-Install-media-ctl-header-and-library-files.patch \
+    file://0002-media-ctl-add-support-for-RGBIr-bayer-formats.patch \
+"
+
+SRCREV = "757acdaec187d51803c2957d36df3d717a3529da"
diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_%.bbappend b/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_%.bbappend
new file mode 100644
index 00000000..250bcb18
--- /dev/null
+++ b/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_%.bbappend
@@ -0,0 +1,4 @@ 
+V4L_UTILS_ARAGO = ""
+V4L_UTILS_ARAGO:arago = "v4l-utils-arago.inc"
+
+require ${V4L_UTILS_ARAGO}
diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_1.28.1.bb b/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_1.28.1.bb
deleted file mode 100644
index 6f5707da..00000000
--- a/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_1.28.1.bb
+++ /dev/null
@@ -1,86 +0,0 @@ 
-SUMMARY = "v4l2 and IR applications"
-LICENSE = "GPL-2.0-only & LGPL-2.1-only"
-LIC_FILES_CHKSUM = "file://COPYING;md5=48da9957849056017dc568bbc43d8975 \
-                    file://COPYING.libv4l;md5=d749e86a105281d7a44c2328acebc4b0"
-PROVIDES = "libv4l media-ctl"
-
-DEPENDS = "jpeg \
-           ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11', '', d)} \
-           ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)} \
-           ${@bb.utils.contains('DISTRO_FEATURES', 'alsa', 'alsa-lib', '', d)} \
-           ${@bb.utils.contains_any('PACKAGECONFIG', 'qv4l2 qvidcap', 'qtbase qtbase-native', '', d)}"
-
-DEPENDS:append:libc-musl = " argp-standalone"
-DEPENDS:append:class-target = " udev"
-LDFLAGS:append = " -pthread"
-# v4l2 explicitly sets _FILE_OFFSET_BITS=32 to get access to
-# both 32 and 64 bit file APIs.  But it does not handle the time side?
-# Needs further investigation
-GLIBC_64BIT_TIME_FLAGS = ""
-
-inherit meson gettext pkgconfig
-
-PACKAGECONFIG ??= ""
-PACKAGECONFIG[qv4l2] = ",-Dqv4l2=disabled"
-PACKAGECONFIG[qvidcap] = ",-Dqvidcap=disabled"
-PACKAGECONFIG[v4l2-tracer] = ",-Dv4l2-tracer=disabled,json-c"
-
-SRC_URI = "\
-    git://git.linuxtv.org/v4l-utils.git;protocol=https;branch=stable-1.28 \
-    file://0001-media-ctl-Install-media-ctl-header-and-library-files.patch \
-    file://0002-media-ctl-add-support-for-RGBIr-bayer-formats.patch \
-"
-
-SRCREV = "757acdaec187d51803c2957d36df3d717a3529da"
-
-PV .= "+git"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OEMESON = "-Dudevdir=${base_libdir}/udev -Dv4l2-compliance-32=false -Dv4l2-ctl-32=false"
-
-# Disable the erroneous installation of gconv-modules that would break glib
-# like it is done in Debian and ArchLinux.
-EXTRA_OEMESON += "-Dgconv=disabled"
-
-VIRTUAL-RUNTIME_ir-keytable-keymaps ?= "rc-keymaps"
-
-PACKAGES =+ "media-ctl ir-keytable rc-keymaps libv4l libv4l-dev qv4l2 qvidcap"
-
-RPROVIDES:${PN}-dbg += "libv4l-dbg"
-
-FILES:media-ctl = "${bindir}/media-ctl ${libdir}/libmediactl.so.*"
-FILES:qv4l2 = "\
-    ${bindir}/qv4l2 \
-    ${datadir}/applications/qv4l2.desktop \
-    ${datadir}/icons/hicolor/*/apps/qv4l2.* \
-"
-FILES:qvidcap = "\
-    ${bindir}/qvidcap \
-    ${datadir}/applications/qvidcap.desktop \
-    ${datadir}/icons/hicolor/*/apps/qvidcap.* \
-"
-
-FILES:ir-keytable = "${bindir}/ir-keytable ${base_libdir}/udev/rules.d/*-infrared.rules"
-RDEPENDS:ir-keytable += "${VIRTUAL-RUNTIME_ir-keytable-keymaps}"
-RDEPENDS:qv4l2 += "\
-    ${@bb.utils.contains('PACKAGECONFIG', 'qv4l2', 'qtbase', '', d)}"
-RDEPENDS:qvidcap += "\
-    ${@bb.utils.contains('PACKAGECONFIG', 'qvidcap', 'qtbase', '', d)}"
-
-FILES:rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*"
-
-FILES:${PN} = "${bindir} ${sbindir}"
-
-FILES:libv4l += "${libdir}/libv4l*${SOLIBS} ${libdir}/libv4l/*.so ${libdir}/libv4l/plugins/*.so \
-                 ${libdir}/libdvbv5*${SOLIBS} \
-                 ${libdir}/libv4l/*-decomp \
-                 ${libdir}/libv4l2tracer.so \
-"
-
-FILES:libv4l-dev += "${includedir} ${libdir}/pkgconfig \
-                     ${libdir}/libv4l*${SOLIBSDEV} ${libdir}/*.la \
-                     ${libdir}/v4l*${SOLIBSDEV} ${libdir}/libv4l/*.la ${libdir}/libv4l/plugins/*.la"
-
-PARALLEL_MAKE:class-native = ""
-BBCLASSEXTEND = "native"