From: Denys Dmytriyenko <denis@denix.org>
To: y-abhilashchandra@ti.com
Cc: meta-arago@lists.yoctoproject.org, reatmon@ti.com,
devarsht@ti.com, vaishnav.a@ti.com, u-kumar1@ti.com,
r-donadkar@ti.com, a-limaye@ti.com
Subject: Re: [meta-arago][master/scarthgap][PATCH] meta-arago-extras: v4l-utils: Add recipe for v1.28.1
Date: Tue, 11 Feb 2025 15:51:11 -0500 [thread overview]
Message-ID: <20250211205111.GU21608@denix.org> (raw)
In-Reply-To: <20250211075813.970579-1-y-abhilashchandra@ti.com>
On Tue, Feb 11, 2025 at 01:28:13PM +0530, Yemike Abhilash Chandra via lists.yoctoproject.org wrote:
> An older recipe of v4l-utils (v1.26.1) is present in the meta-oe layer
> for scarthgap.
>
> TI's 6.12 based kernel has backported multistream routing APIs from
> upstream kernel, which requires v4l-utils to be the latest released
> version (v1.28.1).
>
> Thus we override the recipe in this layer to the latest release of
> v4l-utils.
There are few issues with this...
Do you really need to override the entire recipe? The old .bbappend was
applying a patch already - can you add a new patch to that and bump SRCREV?
If you do need to override the entire recipe, then you first need to clearly
articulate your reason in the commit log - wanting a newer commit isn't such
a reason
Then you need to do it in 2 steps/patches - first you copy over the existing
recipe verbatim w/o any modifications, and in a separate step make your
modifications
Also, having own copy of an upstream recipe requires special attention to not
violate the Yocto Project Compatible guidelines. I've explained this recently
in another thread here on the list
--
Denys
> Signed-off-by: Yemike Abhilash Chandra <y-abhilashchandra@ti.com>
> ---
> Single camera setup logs: http://serenity.dal.design.ti.com:7777/ohidowecig.yaml
> Multi camera setup logs: http://serenity.dal.design.ti.com:7777/oqowimumeh.yaml
>
> ...l-media-ctl-header-and-library-files.patch | 78 +++++++++++++++++
> ...add-support-for-RGBIr-bayer-formats.patch} | 0
> .../v4l2apps/v4l-utils_%.bbappend | 7 --
> .../v4l2apps/v4l-utils_1.28.1.bb | 86 +++++++++++++++++++
> 4 files changed, 164 insertions(+), 7 deletions(-)
> create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils/0001-media-ctl-Install-media-ctl-header-and-library-files.patch
> rename meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils/{0001-media-ctl-add-support-for-RGBIr-bayer-formats.patch => 0002-media-ctl-add-support-for-RGBIr-bayer-formats.patch} (100%)
> delete mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_%.bbappend
> create mode 100644 meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_1.28.1.bb
>
> diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils/0001-media-ctl-Install-media-ctl-header-and-library-files.patch b/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils/0001-media-ctl-Install-media-ctl-header-and-library-files.patch
> new file mode 100644
> index 00000000..6c946d8c
> --- /dev/null
> +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils/0001-media-ctl-Install-media-ctl-header-and-library-files.patch
> @@ -0,0 +1,78 @@
> +From 3867fcfa4389c7fa271705f1fd1d4bfb74bc1bd1 Mon Sep 17 00:00:00 2001
> +From: Neel Gandhi <neel.gandhi@amd.com>
> +Date: Wed, 5 Jun 2024 13:51:36 +0530
> +Subject: [PATCH] media-ctl: Install media-ctl header and library files
> +
> +Install mediactl and v4l2subdev header and library
> +files, which may be required by 3rd party applications
> +to populate and control v4l2subdev device node tree
> +
> +Install of these files was removed in upstream commit
> +0911dce53b08b0df3066be2c75f67e8a314d8729.
> +
> +Upstream-Status: Denied
> +
> +v4l-utils maintainers do not promise a stable API for this library, and
> +do not currently have the time to do so. So exporting the API in this
> +way is fine, as long as we understand that it will change and users of
> +the API will need to adapt over time.
> +
> +Signed-off-by: Neel Gandhi <neel.gandhi@amd.com>
> +Signed-off-by: Mark Hatle <mark.hatle@amd.com>
> +---
> + utils/media-ctl/meson.build | 28 +++++++++++++++++++++-------
> + 1 file changed, 21 insertions(+), 7 deletions(-)
> +
> +diff --git a/utils/media-ctl/meson.build b/utils/media-ctl/meson.build
> +index 3a7b0c9a..40669b4c 100644
> +--- a/utils/media-ctl/meson.build
> ++++ b/utils/media-ctl/meson.build
> +@@ -3,14 +3,24 @@ libmediactl_sources = files(
> + 'mediactl-priv.h',
> + )
> +
> ++libmediactl_api = files(
> ++ 'mediactl.h',
> ++ 'v4l2subdev.h',
> ++)
> ++
> ++install_headers(libmediactl_api, subdir: 'mediactl')
> ++
> + libmediactl_deps = [
> + dep_libudev,
> + ]
> +
> +-libmediactl = static_library('mediactl',
> +- libmediactl_sources,
> +- dependencies : libmediactl_deps,
> +- include_directories : v4l2_utils_incdir)
> ++libmediactl = library('mediactl',
> ++ libmediactl_sources,
> ++ soversion: '0',
> ++ version: '0.0.0',
> ++ install : true,
> ++ dependencies : libmediactl_deps,
> ++ include_directories : v4l2_utils_incdir)
> +
> + dep_libmediactl = declare_dependency(link_with : libmediactl)
> +
> +@@ -18,9 +28,13 @@ libv4l2subdev_sources = files('libv4l2subdev.c')
> + libv4l2subdev_sources += media_bus_format_names_h
> + libv4l2subdev_sources += media_bus_format_codes_h
> +
> +-libv4l2subdev = static_library('v4l2subdev',
> +- libv4l2subdev_sources,
> +- include_directories : v4l2_utils_incdir)
> ++libv4l2subdev = library('v4l2subdev',
> ++ libv4l2subdev_sources,
> ++ soversion: '0',
> ++ version: '0.0.0',
> ++ install : true,
> ++ dependencies : dep_libmediactl,
> ++ include_directories : v4l2_utils_incdir)
> +
> + dep_libv4l2subdev = declare_dependency(link_with : libv4l2subdev)
> +
> +--
> +2.34.1
> +
> diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils/0001-media-ctl-add-support-for-RGBIr-bayer-formats.patch b/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils/0002-media-ctl-add-support-for-RGBIr-bayer-formats.patch
> similarity index 100%
> rename from meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils/0001-media-ctl-add-support-for-RGBIr-bayer-formats.patch
> rename to meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils/0002-media-ctl-add-support-for-RGBIr-bayer-formats.patch
> diff --git a/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_%.bbappend b/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_%.bbappend
> deleted file mode 100644
> index 9b74dc7c..00000000
> --- a/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_%.bbappend
> +++ /dev/null
> @@ -1,7 +0,0 @@
> -FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
> -
> -SRC_URI:append = " \
> - file://0001-media-ctl-add-support-for-RGBIr-bayer-formats.patch \
> -"
> -
> -PR:append = ".arago0"
> 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
> new file mode 100644
> index 00000000..6f5707da
> --- /dev/null
> +++ b/meta-arago-extras/recipes-multimedia/v4l2apps/v4l-utils_1.28.1.bb
> @@ -0,0 +1,86 @@
> +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"
> --
> 2.34.1
next prev parent reply other threads:[~2025-02-11 20:51 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-11 7:58 [meta-arago][master/scarthgap][PATCH] meta-arago-extras: v4l-utils: Add recipe for v1.28.1 Yemike Abhilash Chandra
2025-02-11 13:26 ` Devarsh Thakkar
2025-02-11 20:51 ` Denys Dmytriyenko [this message]
2025-02-12 8:16 ` Yemike Abhilash Chandra
2025-02-17 5:48 ` Yemike Abhilash Chandra
2025-02-26 15:34 ` Ryan Eatmon
2025-02-27 4:55 ` Yemike Abhilash Chandra
2025-02-27 16:04 ` Denys Dmytriyenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20250211205111.GU21608@denix.org \
--to=denis@denix.org \
--cc=a-limaye@ti.com \
--cc=devarsht@ti.com \
--cc=meta-arago@lists.yoctoproject.org \
--cc=r-donadkar@ti.com \
--cc=reatmon@ti.com \
--cc=u-kumar1@ti.com \
--cc=vaishnav.a@ti.com \
--cc=y-abhilashchandra@ti.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.