Message ID | 20230523094422.1633390-1-j-luthra@ti.com |
---|---|
State | Superseded |
Delegated to: | Ryan Eatmon |
Headers | show |
Series | [master/kirkstone,RESEND,1/2] v4l-utils: Add recipe for v1.23.0 | expand |
Hi Jai, Thanks for the patch. On 23/05/23 15:14, Jai Luthra wrote: > An older recipe (v1.22.0) is present in the meta-openembedded/meta-oe > layer for kirkstone. > > TI's 6.1 based kernel has backported multistream routing APIs [1] from > upstream kernel, which requires a few patches to v4l-utils [2] that only > apply cleanly on top of v1.23.0. > > Thus we override the recipe in this layer to the latest (v1.23.0) found > from meta-oe master. > > Link: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ca55d70b41e [1] > Link: https://lore.kernel.org/all/20230210115546.199809-1-tomi.valkeinen@ideasonboard.com/ [2] > Signed-off-by: Jai Luthra <j-luthra@ti.com> > --- > ...-Don-t-install-libmediactl-and-libv4.patch | 44 ++++++++++ > ...02-original-patch-mediactl-pkgconfig.patch | 21 +++++ > ...iginal-patch-export-mediactl-headers.patch | 24 +++++ > .../v4l-utils/0004-Do-not-use-getsubopt.patch | 60 +++++++++++++ > .../v4l-utils/v4l-utils_1.23.0.bb | 87 +++++++++++++++++++ As per my opinion, not a good idea to bump up package version than default package version shipped by kirkstone i.e. 1.22.1 (meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb) As a general rule of thumb, there could be other layers (for e.g. added by vendors) having bbappends assuming shipped package version same as in kirkstone and also build time and runtime dependencies w.r.t other packages are guaranted if all packages stay with same version as shipped by kirkstone and with this new recipe I believe we are kind of deviating from that protection and so my suggestion is to rebase on top of existing package version i.e. 1.22.1 Regards Devarsh > 5 files changed, 236 insertions(+) > create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch > create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch > create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch > create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch > create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb > > diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch > new file mode 100644 > index 00000000..8ac8fbe1 > --- /dev/null > +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch > @@ -0,0 +1,44 @@ > +From 0d5c0e9a75eca43667b0e29155b635e50622b66a Mon Sep 17 00:00:00 2001 > +From: Khem Raj <raj.khem@gmail.com> > +Date: Fri, 27 Feb 2015 21:55:36 +0000 > +Subject: [PATCH] Revert "media-ctl: Don't install libmediactl and > + > + libv4l2subdev" > + > +This reverts commit 0911dce53b08b0df3066be2c75f67e8a314d8729. > + > +Signed-off-by: Khem Raj <raj.khem@gmail.com> > + > +Conflicts: > + utils/media-ctl/Makefile.am > + > +--- > + utils/media-ctl/Makefile.am | 10 +++------- > + 1 file changed, 3 insertions(+), 7 deletions(-) > + > +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am > +index c48c8d6..e255e16 100644 > +--- a/utils/media-ctl/Makefile.am > ++++ b/utils/media-ctl/Makefile.am > +@@ -1,8 +1,7 @@ > +-noinst_LTLIBRARIES = libmediactl.la libv4l2subdev.la > +- > ++lib_LTLIBRARIES = libmediactl.la libv4l2subdev.la > + libmediactl_la_SOURCES = libmediactl.c mediactl-priv.h > +-libmediactl_la_CFLAGS = -static $(LIBUDEV_CFLAGS) > +-libmediactl_la_LDFLAGS = -static $(LIBUDEV_LIBS) > ++libmediactl_la_CFLAGS = $(LIBUDEV_CFLAGS) > ++libmediactl_la_LDFLAGS = $(LIBUDEV_LIBS) > + > + media-bus-format-names.h: ../../include/linux/media-bus-format.h > + $(AM_V_GEN) sed -e '/#define MEDIA_BUS_FMT/ ! d; s/.*FMT_//; /FIXED/ d; s/\t.*//; s/.*/{ \"&\", MEDIA_BUS_FMT_& },/;' \ > +@@ -18,9 +17,6 @@ CLEANFILES = $(BUILT_SOURCES) > + nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES) > + libv4l2subdev_la_SOURCES = libv4l2subdev.c > + libv4l2subdev_la_LIBADD = libmediactl.la > +-libv4l2subdev_la_CFLAGS = -static > +-libv4l2subdev_la_LDFLAGS = -static > +- > + mediactl_includedir=$(includedir)/mediactl > + noinst_HEADERS = mediactl.h v4l2subdev.h > + > diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch > new file mode 100644 > index 00000000..52fc2d7a > --- /dev/null > +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch > @@ -0,0 +1,21 @@ > +From 320b8378ee30eb5e0fe83a8b397f822f2f88a4c1 Mon Sep 17 00:00:00 2001 > +From: Khem Raj <raj.khem@gmail.com> > +Date: Sun, 1 Mar 2015 22:25:07 +0000 > +Subject: [PATCH] %% original patch: mediactl-pkgconfig.patch > + > +--- > + utils/media-ctl/Makefile.am | 1 + > + 1 file changed, 1 insertion(+) > + > +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am > +index e255e16..ff7b417 100644 > +--- a/utils/media-ctl/Makefile.am > ++++ b/utils/media-ctl/Makefile.am > +@@ -20,6 +20,7 @@ libv4l2subdev_la_LIBADD = libmediactl.la > + mediactl_includedir=$(includedir)/mediactl > + noinst_HEADERS = mediactl.h v4l2subdev.h > + > ++pkgconfig_DATA = libmediactl.pc > + bin_PROGRAMS = media-ctl > + media_ctl_SOURCES = media-ctl.c options.c options.h tools.h > + media_ctl_LDADD = libmediactl.la libv4l2subdev.la > diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch > new file mode 100644 > index 00000000..39dc3383 > --- /dev/null > +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch > @@ -0,0 +1,24 @@ > +From f7109d6b2fcb291824d795071c04a492d9fbc45b Mon Sep 17 00:00:00 2001 > +From: Khem Raj <raj.khem@gmail.com> > +Date: Sun, 1 Mar 2015 22:25:07 +0000 > +Subject: [PATCH] %% original patch: export-mediactl-headers.patch > + > +--- > + utils/media-ctl/Makefile.am | 4 ++-- > + 1 file changed, 2 insertions(+), 2 deletions(-) > + > +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am > +index ff7b417..6ce656f 100644 > +--- a/utils/media-ctl/Makefile.am > ++++ b/utils/media-ctl/Makefile.am > +@@ -17,8 +17,8 @@ CLEANFILES = $(BUILT_SOURCES) > + nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES) > + libv4l2subdev_la_SOURCES = libv4l2subdev.c > + libv4l2subdev_la_LIBADD = libmediactl.la > +-mediactl_includedir=$(includedir)/mediactl > +-noinst_HEADERS = mediactl.h v4l2subdev.h > ++otherincludedir = $(includedir)/mediactl > ++otherinclude_HEADERS = mediactl.h v4l2subdev.h > + > + pkgconfig_DATA = libmediactl.pc > + bin_PROGRAMS = media-ctl > diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch > new file mode 100644 > index 00000000..fb844acb > --- /dev/null > +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch > @@ -0,0 +1,60 @@ > +From 6e7e52de7afe29597016952a7317faf9c3ea3268 Mon Sep 17 00:00:00 2001 > +From: Khem Raj <raj.khem@gmail.com> > +Date: Sat, 30 Nov 2019 18:50:34 -0800 > +Subject: [PATCH] Do not use getsubopt > + > +POSIX says that behavior when subopts list is empty is undefined. > +musl libs will set value to NULL which leads to crash. > + > +Simply avoid getsubopt, since we cannot rely on it. > + > +Imported from Alpine Linux > + > +Upstream-Status: Pending > + > +Signed-off-by: Khem Raj <raj.khem@gmail.com> > + > +Adapt patch to 1.23.0. > + > +(v4l-utils rev fd544473800d02e90bc289434cc44e5aa8fadd0f). > + > +%% original patch: 0007-Do-not-use-getsubopt.patch > + > +Signed-off-by: Daniel Gomez <daniel@qtec.com> > +--- > + utils/v4l2-ctl/v4l2-ctl-common.cpp | 18 ++++++++++-------- > + 1 file changed, 10 insertions(+), 8 deletions(-) > + > +diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp b/utils/v4l2-ctl/v4l2-ctl-common.cpp > +index d77f7104..838c297d 100644 > +--- a/utils/v4l2-ctl/v4l2-ctl-common.cpp > ++++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp > +@@ -994,15 +994,17 @@ static bool parse_subset(char *optarg) > + > + static bool parse_next_subopt(char **subs, char **value) > + { > +- static char *const subopts[] = { > +- nullptr > +- }; > +- int opt = v4l_getsubopt(subs, subopts, value); > ++ char *p = *subs; > ++ *value = *subs; > + > +- if (opt < 0 || *value) > +- return false; > +- fprintf(stderr, "Missing suboption value\n"); > +- return true; > ++ while (*p && *p != ',') > ++ p++; > ++ > ++ if (*p) > ++ *p++ = '\0'; > ++ > ++ *subs = p; > ++ return false; > + } > + > + void common_cmd(const std::string &media_bus_info, int ch, char *optarg) > +-- > +2.35.1 > + > diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb > new file mode 100644 > index 00000000..21a08022 > --- /dev/null > +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb > @@ -0,0 +1,87 @@ > +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 autotools gettext pkgconfig > + > +PACKAGECONFIG ??= "media-ctl" > +PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,," > +PACKAGECONFIG[qv4l2] = ",--disable-qv4l2" > +PACKAGECONFIG[qvidcap] = ",--disable-qvidcap" > + > +SRC_URI = "\ > + git://git.linuxtv.org/v4l-utils.git;protocol=https;branch=master \ > + file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \ > + file://0002-original-patch-mediactl-pkgconfig.patch \ > + file://0003-original-patch-export-mediactl-headers.patch \ > + file://0004-Do-not-use-getsubopt.patch \ > +" > + > +SRCREV = "9431e4b26b4842d1401e80ada9f14593dca3a94c" > + > +PV .= "+git${SRCPV}" > + > +S = "${WORKDIR}/git" > + > +do_configure:prepend() { > + cd ${S}; ./bootstrap.sh; cd - > +} > + > +EXTRA_OECONF = "--enable-shared --with-udevdir=${base_libdir}/udev \ > + --disable-v4l2-compliance-32 --disable-v4l2-ctl-32" > + > +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" > + > +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"
Hi Devarsh, Thanks for the review, On May 23, 2023 at 17:18:39 +0530, Devarsh Thakkar wrote: > Hi Jai, > > Thanks for the patch. > > On 23/05/23 15:14, Jai Luthra wrote: > > An older recipe (v1.22.0) is present in the meta-openembedded/meta-oe > > layer for kirkstone. > > > > TI's 6.1 based kernel has backported multistream routing APIs [1] from > > upstream kernel, which requires a few patches to v4l-utils [2] that only > > apply cleanly on top of v1.23.0. > > > > Thus we override the recipe in this layer to the latest (v1.23.0) found > > from meta-oe master. > > > > Link: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ca55d70b41e [1] > > Link: https://lore.kernel.org/all/20230210115546.199809-1-tomi.valkeinen@ideasonboard.com/ [2] > > Signed-off-by: Jai Luthra <j-luthra@ti.com> > > --- > > ...-Don-t-install-libmediactl-and-libv4.patch | 44 ++++++++++ > > ...02-original-patch-mediactl-pkgconfig.patch | 21 +++++ > > ...iginal-patch-export-mediactl-headers.patch | 24 +++++ > > .../v4l-utils/0004-Do-not-use-getsubopt.patch | 60 +++++++++++++ > > .../v4l-utils/v4l-utils_1.23.0.bb | 87 +++++++++++++++++++ > > As per my opinion, not a good idea to bump up package version than default > package version shipped by kirkstone i.e. 1.22.1 > (meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb) > > As a general rule of thumb, there could be other layers (for e.g. added by > vendors) having bbappends assuming shipped package version same as in > kirkstone and also build time and runtime dependencies w.r.t other packages > are guaranted if all packages stay with same version as shipped by kirkstone > and with this new recipe I believe we are kind of deviating from that > protection and so my suggestion is to rebase on top of existing package > version i.e. 1.22.1 I agree that it makes sense to keep packages pinned to a version for a particular release (dunfell/kirkstone) for stability and compatibility with other dependencies. The only issue here is multi-stream support requires a large chunk of changes to v4l2 userspace APIs, affecting the most commonly used tools for setting up the camera pipeline (media-ctl) and capturing frames (v4l2-ctl). While these changes are merged in linux upstream and backported to TI's 6.1 branch, the corresponding v4l-utils changes are still under review upstream. There are two options I see here: 1. We bump up the v4l-utils recipe in our distribution to a relatively recent git commit (v1.23.0-9431e4b26b) which is in sync with TI baseline kernel, and apply only the patches for the extra features TI uses on top. We also ensure it works well with the dependencies (mainly libc) provided by rest of the kirkstone layers (so far no issues seen in my tests) 2. We backport these patches to v1.22.1, which was tagged almost **two years ago** in Oct 2021; while the kernel is on 6.1 (Jan 2023) and using multistream APIs from 6.3/6.4/still-under-review. We will also have to sync with the latest kernel headers and extensively test that we don't break some ioctl or are missing bugfixes to v4l-utils from the past two years, as the kernel developer(s) for the newer features would not have tested against the old release. That's why I chose option 1 in the current series as an exception to the thumb rule. Let me know if it is a complete no-go to override a recipe here. > > Regards > Devarsh Thanks, Jai
On 5/23/2023 6:48 AM, Devarsh Thakkar wrote: > Hi Jai, > > Thanks for the patch. > > On 23/05/23 15:14, Jai Luthra wrote: >> An older recipe (v1.22.0) is present in the meta-openembedded/meta-oe >> layer for kirkstone. >> >> TI's 6.1 based kernel has backported multistream routing APIs [1] from >> upstream kernel, which requires a few patches to v4l-utils [2] that only >> apply cleanly on top of v1.23.0. >> >> Thus we override the recipe in this layer to the latest (v1.23.0) found >> from meta-oe master. >> >> Link: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ca55d70b41e [1] >> Link: https://lore.kernel.org/all/20230210115546.199809-1-tomi.valkeinen@ideasonboard.com/ [2] >> Signed-off-by: Jai Luthra <j-luthra@ti.com> >> --- >> ...-Don-t-install-libmediactl-and-libv4.patch | 44 ++++++++++ >> ...02-original-patch-mediactl-pkgconfig.patch | 21 +++++ >> ...iginal-patch-export-mediactl-headers.patch | 24 +++++ >> .../v4l-utils/0004-Do-not-use-getsubopt.patch | 60 +++++++++++++ >> .../v4l-utils/v4l-utils_1.23.0.bb | 87 +++++++++++++++++++ > > As per my opinion, not a good idea to bump up package version than default > package version shipped by kirkstone i.e. 1.22.1 > (meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb) > > As a general rule of thumb, there could be other layers (for e.g. added by > vendors) having bbappends assuming shipped package version same as in > kirkstone and also build time and runtime dependencies w.r.t other packages > are guaranted if all packages stay with same version as shipped by kirkstone > and with this new recipe I believe we are kind of deviating from that > protection and so my suggestion is to rebase on top of existing package > version i.e. 1.22.1 If you were talking about meta-ti then I would 100% agree with you, but this is meta-arago. And as a distribution layer, we are perfectly within our purvue to advance to a later version of a tool beyond what the other upstream repos are at, or change config files, etc... Meta-ti as a BSP layer needs to play nice in the sandbox with other layers and not change versions without guards. If you wanted to be extra careful you could include the guards in arago as well, but since arago is not a yocto compliant layer it is not strictly needed at this time. > Regards > Devarsh > >> 5 files changed, 236 insertions(+) >> create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch >> create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch >> create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch >> create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch >> create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb > > >> >> diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch >> new file mode 100644 >> index 00000000..8ac8fbe1 >> --- /dev/null >> +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch >> @@ -0,0 +1,44 @@ >> +From 0d5c0e9a75eca43667b0e29155b635e50622b66a Mon Sep 17 00:00:00 2001 >> +From: Khem Raj <raj.khem@gmail.com> >> +Date: Fri, 27 Feb 2015 21:55:36 +0000 >> +Subject: [PATCH] Revert "media-ctl: Don't install libmediactl and >> + >> + libv4l2subdev" >> + >> +This reverts commit 0911dce53b08b0df3066be2c75f67e8a314d8729. >> + >> +Signed-off-by: Khem Raj <raj.khem@gmail.com> >> + >> +Conflicts: >> + utils/media-ctl/Makefile.am >> + >> +--- >> + utils/media-ctl/Makefile.am | 10 +++------- >> + 1 file changed, 3 insertions(+), 7 deletions(-) >> + >> +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am >> +index c48c8d6..e255e16 100644 >> +--- a/utils/media-ctl/Makefile.am >> ++++ b/utils/media-ctl/Makefile.am >> +@@ -1,8 +1,7 @@ >> +-noinst_LTLIBRARIES = libmediactl.la libv4l2subdev.la >> +- >> ++lib_LTLIBRARIES = libmediactl.la libv4l2subdev.la >> + libmediactl_la_SOURCES = libmediactl.c mediactl-priv.h >> +-libmediactl_la_CFLAGS = -static $(LIBUDEV_CFLAGS) >> +-libmediactl_la_LDFLAGS = -static $(LIBUDEV_LIBS) >> ++libmediactl_la_CFLAGS = $(LIBUDEV_CFLAGS) >> ++libmediactl_la_LDFLAGS = $(LIBUDEV_LIBS) >> + >> + media-bus-format-names.h: ../../include/linux/media-bus-format.h >> + $(AM_V_GEN) sed -e '/#define MEDIA_BUS_FMT/ ! d; s/.*FMT_//; /FIXED/ d; s/\t.*//; s/.*/{ \"&\", MEDIA_BUS_FMT_& },/;' \ >> +@@ -18,9 +17,6 @@ CLEANFILES = $(BUILT_SOURCES) >> + nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES) >> + libv4l2subdev_la_SOURCES = libv4l2subdev.c >> + libv4l2subdev_la_LIBADD = libmediactl.la >> +-libv4l2subdev_la_CFLAGS = -static >> +-libv4l2subdev_la_LDFLAGS = -static >> +- >> + mediactl_includedir=$(includedir)/mediactl >> + noinst_HEADERS = mediactl.h v4l2subdev.h >> + >> diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch >> new file mode 100644 >> index 00000000..52fc2d7a >> --- /dev/null >> +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch >> @@ -0,0 +1,21 @@ >> +From 320b8378ee30eb5e0fe83a8b397f822f2f88a4c1 Mon Sep 17 00:00:00 2001 >> +From: Khem Raj <raj.khem@gmail.com> >> +Date: Sun, 1 Mar 2015 22:25:07 +0000 >> +Subject: [PATCH] %% original patch: mediactl-pkgconfig.patch >> + >> +--- >> + utils/media-ctl/Makefile.am | 1 + >> + 1 file changed, 1 insertion(+) >> + >> +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am >> +index e255e16..ff7b417 100644 >> +--- a/utils/media-ctl/Makefile.am >> ++++ b/utils/media-ctl/Makefile.am >> +@@ -20,6 +20,7 @@ libv4l2subdev_la_LIBADD = libmediactl.la >> + mediactl_includedir=$(includedir)/mediactl >> + noinst_HEADERS = mediactl.h v4l2subdev.h >> + >> ++pkgconfig_DATA = libmediactl.pc >> + bin_PROGRAMS = media-ctl >> + media_ctl_SOURCES = media-ctl.c options.c options.h tools.h >> + media_ctl_LDADD = libmediactl.la libv4l2subdev.la >> diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch >> new file mode 100644 >> index 00000000..39dc3383 >> --- /dev/null >> +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch >> @@ -0,0 +1,24 @@ >> +From f7109d6b2fcb291824d795071c04a492d9fbc45b Mon Sep 17 00:00:00 2001 >> +From: Khem Raj <raj.khem@gmail.com> >> +Date: Sun, 1 Mar 2015 22:25:07 +0000 >> +Subject: [PATCH] %% original patch: export-mediactl-headers.patch >> + >> +--- >> + utils/media-ctl/Makefile.am | 4 ++-- >> + 1 file changed, 2 insertions(+), 2 deletions(-) >> + >> +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am >> +index ff7b417..6ce656f 100644 >> +--- a/utils/media-ctl/Makefile.am >> ++++ b/utils/media-ctl/Makefile.am >> +@@ -17,8 +17,8 @@ CLEANFILES = $(BUILT_SOURCES) >> + nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES) >> + libv4l2subdev_la_SOURCES = libv4l2subdev.c >> + libv4l2subdev_la_LIBADD = libmediactl.la >> +-mediactl_includedir=$(includedir)/mediactl >> +-noinst_HEADERS = mediactl.h v4l2subdev.h >> ++otherincludedir = $(includedir)/mediactl >> ++otherinclude_HEADERS = mediactl.h v4l2subdev.h >> + >> + pkgconfig_DATA = libmediactl.pc >> + bin_PROGRAMS = media-ctl >> diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch >> new file mode 100644 >> index 00000000..fb844acb >> --- /dev/null >> +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch >> @@ -0,0 +1,60 @@ >> +From 6e7e52de7afe29597016952a7317faf9c3ea3268 Mon Sep 17 00:00:00 2001 >> +From: Khem Raj <raj.khem@gmail.com> >> +Date: Sat, 30 Nov 2019 18:50:34 -0800 >> +Subject: [PATCH] Do not use getsubopt >> + >> +POSIX says that behavior when subopts list is empty is undefined. >> +musl libs will set value to NULL which leads to crash. >> + >> +Simply avoid getsubopt, since we cannot rely on it. >> + >> +Imported from Alpine Linux >> + >> +Upstream-Status: Pending >> + >> +Signed-off-by: Khem Raj <raj.khem@gmail.com> >> + >> +Adapt patch to 1.23.0. >> + >> +(v4l-utils rev fd544473800d02e90bc289434cc44e5aa8fadd0f). >> + >> +%% original patch: 0007-Do-not-use-getsubopt.patch >> + >> +Signed-off-by: Daniel Gomez <daniel@qtec.com> >> +--- >> + utils/v4l2-ctl/v4l2-ctl-common.cpp | 18 ++++++++++-------- >> + 1 file changed, 10 insertions(+), 8 deletions(-) >> + >> +diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp b/utils/v4l2-ctl/v4l2-ctl-common.cpp >> +index d77f7104..838c297d 100644 >> +--- a/utils/v4l2-ctl/v4l2-ctl-common.cpp >> ++++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp >> +@@ -994,15 +994,17 @@ static bool parse_subset(char *optarg) >> + >> + static bool parse_next_subopt(char **subs, char **value) >> + { >> +- static char *const subopts[] = { >> +- nullptr >> +- }; >> +- int opt = v4l_getsubopt(subs, subopts, value); >> ++ char *p = *subs; >> ++ *value = *subs; >> + >> +- if (opt < 0 || *value) >> +- return false; >> +- fprintf(stderr, "Missing suboption value\n"); >> +- return true; >> ++ while (*p && *p != ',') >> ++ p++; >> ++ >> ++ if (*p) >> ++ *p++ = '\0'; >> ++ >> ++ *subs = p; >> ++ return false; >> + } >> + >> + void common_cmd(const std::string &media_bus_info, int ch, char *optarg) >> +-- >> +2.35.1 >> + >> diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb >> new file mode 100644 >> index 00000000..21a08022 >> --- /dev/null >> +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb >> @@ -0,0 +1,87 @@ >> +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 autotools gettext pkgconfig >> + >> +PACKAGECONFIG ??= "media-ctl" >> +PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,," >> +PACKAGECONFIG[qv4l2] = ",--disable-qv4l2" >> +PACKAGECONFIG[qvidcap] = ",--disable-qvidcap" >> + >> +SRC_URI = "\ >> + git://git.linuxtv.org/v4l-utils.git;protocol=https;branch=master \ >> + file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \ >> + file://0002-original-patch-mediactl-pkgconfig.patch \ >> + file://0003-original-patch-export-mediactl-headers.patch \ >> + file://0004-Do-not-use-getsubopt.patch \ >> +" >> + >> +SRCREV = "9431e4b26b4842d1401e80ada9f14593dca3a94c" >> + >> +PV .= "+git${SRCPV}" >> + >> +S = "${WORKDIR}/git" >> + >> +do_configure:prepend() { >> + cd ${S}; ./bootstrap.sh; cd - >> +} >> + >> +EXTRA_OECONF = "--enable-shared --with-udevdir=${base_libdir}/udev \ >> + --disable-v4l2-compliance-32 --disable-v4l2-ctl-32" >> + >> +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" >> + >> +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"
Hi Ryan, Thanks for the feedback, On 23/05/23 21:06, Ryan Eatmon wrote: > > > On 5/23/2023 6:48 AM, Devarsh Thakkar wrote: >> Hi Jai, >> >> Thanks for the patch. >> >> On 23/05/23 15:14, Jai Luthra wrote: >>> An older recipe (v1.22.0) is present in the meta-openembedded/meta-oe >>> layer for kirkstone. >>> >>> TI's 6.1 based kernel has backported multistream routing APIs [1] from >>> upstream kernel, which requires a few patches to v4l-utils [2] that only >>> apply cleanly on top of v1.23.0. >>> >>> Thus we override the recipe in this layer to the latest (v1.23.0) found >>> from meta-oe master. >>> >>> Link: >>> https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ca55d70b41e [1] >>> Link: >>> https://lore.kernel.org/all/20230210115546.199809-1-tomi.valkeinen@ideasonboard.com/ [2] >>> Signed-off-by: Jai Luthra <j-luthra@ti.com> >>> --- >>> ...-Don-t-install-libmediactl-and-libv4.patch | 44 ++++++++++ >>> ...02-original-patch-mediactl-pkgconfig.patch | 21 +++++ >>> ...iginal-patch-export-mediactl-headers.patch | 24 +++++ >>> .../v4l-utils/0004-Do-not-use-getsubopt.patch | 60 +++++++++++++ >>> .../v4l-utils/v4l-utils_1.23.0.bb | 87 +++++++++++++++++++ >> >> As per my opinion, not a good idea to bump up package version than default >> package version shipped by kirkstone i.e. 1.22.1 >> (meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb) >> >> As a general rule of thumb, there could be other layers (for e.g. added by >> vendors) having bbappends assuming shipped package version same as in >> kirkstone and also build time and runtime dependencies w.r.t other packages >> are guaranted if all packages stay with same version as shipped by kirkstone >> and with this new recipe I believe we are kind of deviating from that >> protection and so my suggestion is to rebase on top of existing package >> version i.e. 1.22.1 > > If you were talking about meta-ti then I would 100% agree with you, but this > is meta-arago. And as a distribution layer, we are perfectly within our > purvue to advance to a later version of a tool beyond what the other upstream > repos are at, or change config files, etc... > > Meta-ti as a BSP layer needs to play nice in the sandbox with other layers and > not change versions without guards. > I am not sure what exactly you mean by guards, is it possible to share an example? Also I think we did change linux kernel version to 6.1 in meta-ti from the one supported in kirkstone (which I believe was 5.18) although that has its set of advantages since it is latest LTS. > If you wanted to be extra careful you could include the guards in arago as > well, but since arago is not a yocto compliant layer it is not strictly needed > at this time. > > I think the crux of the issue here is gap between v4l-utils version (which is 1.22.1 released couple of years back as Jai mentioned ) in kirkstone and the linux version being used which is 6.1 (which got released this year) requiring us to bump up v4l-utils to match the latest features added in 6.1 and this is because since we bumped up linux version to 6.1 from official kirkstone supported version which I think is 5.18. But I agree with Jai and you that it's better to bump up the recipe version directly since anyway kernel version is bumped up and latest v4l-utils is a better match. On a sidenote is it fine if we try and decide to bump up gstreamer version too from 1.20.5 to 1.22 series which was released this year since it has more features and compatible to kernel version 6.1 ? Regards Devarsh >> Regards >> Devarsh >> >>> 5 files changed, 236 insertions(+) >>> create mode 100644 >>> meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch >>> create mode 100644 >>> meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch >>> create mode 100644 >>> meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch >>> create mode 100644 >>> meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch >>> create mode 100644 >>> meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb >> >> >>> >>> diff --git >>> a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch >>> new file mode 100644 >>> index 00000000..8ac8fbe1 >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch >>> @@ -0,0 +1,44 @@ >>> +From 0d5c0e9a75eca43667b0e29155b635e50622b66a Mon Sep 17 00:00:00 2001 >>> +From: Khem Raj <raj.khem@gmail.com> >>> +Date: Fri, 27 Feb 2015 21:55:36 +0000 >>> +Subject: [PATCH] Revert "media-ctl: Don't install libmediactl and >>> + >>> + libv4l2subdev" >>> + >>> +This reverts commit 0911dce53b08b0df3066be2c75f67e8a314d8729. >>> + >>> +Signed-off-by: Khem Raj <raj.khem@gmail.com> >>> + >>> +Conflicts: >>> + utils/media-ctl/Makefile.am >>> + >>> +--- >>> + utils/media-ctl/Makefile.am | 10 +++------- >>> + 1 file changed, 3 insertions(+), 7 deletions(-) >>> + >>> +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am >>> +index c48c8d6..e255e16 100644 >>> +--- a/utils/media-ctl/Makefile.am >>> ++++ b/utils/media-ctl/Makefile.am >>> +@@ -1,8 +1,7 @@ >>> +-noinst_LTLIBRARIES = libmediactl.la libv4l2subdev.la >>> +- >>> ++lib_LTLIBRARIES = libmediactl.la libv4l2subdev.la >>> + libmediactl_la_SOURCES = libmediactl.c mediactl-priv.h >>> +-libmediactl_la_CFLAGS = -static $(LIBUDEV_CFLAGS) >>> +-libmediactl_la_LDFLAGS = -static $(LIBUDEV_LIBS) >>> ++libmediactl_la_CFLAGS = $(LIBUDEV_CFLAGS) >>> ++libmediactl_la_LDFLAGS = $(LIBUDEV_LIBS) >>> + >>> + media-bus-format-names.h: ../../include/linux/media-bus-format.h >>> + $(AM_V_GEN) sed -e '/#define MEDIA_BUS_FMT/ ! d; s/.*FMT_//; /FIXED/ >>> d; s/\t.*//; s/.*/{ \"&\", MEDIA_BUS_FMT_& },/;' \ >>> +@@ -18,9 +17,6 @@ CLEANFILES = $(BUILT_SOURCES) >>> + nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES) >>> + libv4l2subdev_la_SOURCES = libv4l2subdev.c >>> + libv4l2subdev_la_LIBADD = libmediactl.la >>> +-libv4l2subdev_la_CFLAGS = -static >>> +-libv4l2subdev_la_LDFLAGS = -static >>> +- >>> + mediactl_includedir=$(includedir)/mediactl >>> + noinst_HEADERS = mediactl.h v4l2subdev.h >>> + >>> diff --git >>> a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch >>> new file mode 100644 >>> index 00000000..52fc2d7a >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch >>> @@ -0,0 +1,21 @@ >>> +From 320b8378ee30eb5e0fe83a8b397f822f2f88a4c1 Mon Sep 17 00:00:00 2001 >>> +From: Khem Raj <raj.khem@gmail.com> >>> +Date: Sun, 1 Mar 2015 22:25:07 +0000 >>> +Subject: [PATCH] %% original patch: mediactl-pkgconfig.patch >>> + >>> +--- >>> + utils/media-ctl/Makefile.am | 1 + >>> + 1 file changed, 1 insertion(+) >>> + >>> +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am >>> +index e255e16..ff7b417 100644 >>> +--- a/utils/media-ctl/Makefile.am >>> ++++ b/utils/media-ctl/Makefile.am >>> +@@ -20,6 +20,7 @@ libv4l2subdev_la_LIBADD = libmediactl.la >>> + mediactl_includedir=$(includedir)/mediactl >>> + noinst_HEADERS = mediactl.h v4l2subdev.h >>> + >>> ++pkgconfig_DATA = libmediactl.pc >>> + bin_PROGRAMS = media-ctl >>> + media_ctl_SOURCES = media-ctl.c options.c options.h tools.h >>> + media_ctl_LDADD = libmediactl.la libv4l2subdev.la >>> diff --git >>> a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch >>> new file mode 100644 >>> index 00000000..39dc3383 >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch >>> @@ -0,0 +1,24 @@ >>> +From f7109d6b2fcb291824d795071c04a492d9fbc45b Mon Sep 17 00:00:00 2001 >>> +From: Khem Raj <raj.khem@gmail.com> >>> +Date: Sun, 1 Mar 2015 22:25:07 +0000 >>> +Subject: [PATCH] %% original patch: export-mediactl-headers.patch >>> + >>> +--- >>> + utils/media-ctl/Makefile.am | 4 ++-- >>> + 1 file changed, 2 insertions(+), 2 deletions(-) >>> + >>> +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am >>> +index ff7b417..6ce656f 100644 >>> +--- a/utils/media-ctl/Makefile.am >>> ++++ b/utils/media-ctl/Makefile.am >>> +@@ -17,8 +17,8 @@ CLEANFILES = $(BUILT_SOURCES) >>> + nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES) >>> + libv4l2subdev_la_SOURCES = libv4l2subdev.c >>> + libv4l2subdev_la_LIBADD = libmediactl.la >>> +-mediactl_includedir=$(includedir)/mediactl >>> +-noinst_HEADERS = mediactl.h v4l2subdev.h >>> ++otherincludedir = $(includedir)/mediactl >>> ++otherinclude_HEADERS = mediactl.h v4l2subdev.h >>> + >>> + pkgconfig_DATA = libmediactl.pc >>> + bin_PROGRAMS = media-ctl >>> diff --git >>> a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch >>> new file mode 100644 >>> index 00000000..fb844acb >>> --- /dev/null >>> +++ >>> b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch >>> @@ -0,0 +1,60 @@ >>> +From 6e7e52de7afe29597016952a7317faf9c3ea3268 Mon Sep 17 00:00:00 2001 >>> +From: Khem Raj <raj.khem@gmail.com> >>> +Date: Sat, 30 Nov 2019 18:50:34 -0800 >>> +Subject: [PATCH] Do not use getsubopt >>> + >>> +POSIX says that behavior when subopts list is empty is undefined. >>> +musl libs will set value to NULL which leads to crash. >>> + >>> +Simply avoid getsubopt, since we cannot rely on it. >>> + >>> +Imported from Alpine Linux >>> + >>> +Upstream-Status: Pending >>> + >>> +Signed-off-by: Khem Raj <raj.khem@gmail.com> >>> + >>> +Adapt patch to 1.23.0. >>> + >>> +(v4l-utils rev fd544473800d02e90bc289434cc44e5aa8fadd0f). >>> + >>> +%% original patch: 0007-Do-not-use-getsubopt.patch >>> + >>> +Signed-off-by: Daniel Gomez <daniel@qtec.com> >>> +--- >>> + utils/v4l2-ctl/v4l2-ctl-common.cpp | 18 ++++++++++-------- >>> + 1 file changed, 10 insertions(+), 8 deletions(-) >>> + >>> +diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp >>> b/utils/v4l2-ctl/v4l2-ctl-common.cpp >>> +index d77f7104..838c297d 100644 >>> +--- a/utils/v4l2-ctl/v4l2-ctl-common.cpp >>> ++++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp >>> +@@ -994,15 +994,17 @@ static bool parse_subset(char *optarg) >>> + >>> + static bool parse_next_subopt(char **subs, char **value) >>> + { >>> +- static char *const subopts[] = { >>> +- nullptr >>> +- }; >>> +- int opt = v4l_getsubopt(subs, subopts, value); >>> ++ char *p = *subs; >>> ++ *value = *subs; >>> + >>> +- if (opt < 0 || *value) >>> +- return false; >>> +- fprintf(stderr, "Missing suboption value\n"); >>> +- return true; >>> ++ while (*p && *p != ',') >>> ++ p++; >>> ++ >>> ++ if (*p) >>> ++ *p++ = '\0'; >>> ++ >>> ++ *subs = p; >>> ++ return false; >>> + } >>> + >>> + void common_cmd(const std::string &media_bus_info, int ch, char *optarg) >>> +-- >>> +2.35.1 >>> + >>> diff --git >>> a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb >>> b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb >>> new file mode 100644 >>> index 00000000..21a08022 >>> --- /dev/null >>> +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb >>> @@ -0,0 +1,87 @@ >>> +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 autotools gettext pkgconfig >>> + >>> +PACKAGECONFIG ??= "media-ctl" >>> +PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,," >>> +PACKAGECONFIG[qv4l2] = ",--disable-qv4l2" >>> +PACKAGECONFIG[qvidcap] = ",--disable-qvidcap" >>> + >>> +SRC_URI = "\ >>> + git://git.linuxtv.org/v4l-utils.git;protocol=https;branch=master \ >>> + file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \ >>> + file://0002-original-patch-mediactl-pkgconfig.patch \ >>> + file://0003-original-patch-export-mediactl-headers.patch \ >>> + file://0004-Do-not-use-getsubopt.patch \ >>> +" >>> + >>> +SRCREV = "9431e4b26b4842d1401e80ada9f14593dca3a94c" >>> + >>> +PV .= "+git${SRCPV}" >>> + >>> +S = "${WORKDIR}/git" >>> + >>> +do_configure:prepend() { >>> + cd ${S}; ./bootstrap.sh; cd - >>> +} >>> + >>> +EXTRA_OECONF = "--enable-shared --with-udevdir=${base_libdir}/udev \ >>> + --disable-v4l2-compliance-32 --disable-v4l2-ctl-32" >>> + >>> +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" >>> + >>> +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" >
Hi Jai, On 23/05/23 18:48, Jai Luthra wrote: > Hi Devarsh, > > Thanks for the review, > > On May 23, 2023 at 17:18:39 +0530, Devarsh Thakkar wrote: >> Hi Jai, >> >> Thanks for the patch. >> >> On 23/05/23 15:14, Jai Luthra wrote: >>> An older recipe (v1.22.0) is present in the meta-openembedded/meta-oe >>> layer for kirkstone. >>> >>> TI's 6.1 based kernel has backported multistream routing APIs [1] from >>> upstream kernel, which requires a few patches to v4l-utils [2] that only >>> apply cleanly on top of v1.23.0. >>> >>> Thus we override the recipe in this layer to the latest (v1.23.0) found >>> from meta-oe master. >>> >>> Link: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ca55d70b41e [1] >>> Link: https://lore.kernel.org/all/20230210115546.199809-1-tomi.valkeinen@ideasonboard.com/ [2] >>> Signed-off-by: Jai Luthra <j-luthra@ti.com> >>> --- >>> ...-Don-t-install-libmediactl-and-libv4.patch | 44 ++++++++++ >>> ...02-original-patch-mediactl-pkgconfig.patch | 21 +++++ >>> ...iginal-patch-export-mediactl-headers.patch | 24 +++++ >>> .../v4l-utils/0004-Do-not-use-getsubopt.patch | 60 +++++++++++++ >>> .../v4l-utils/v4l-utils_1.23.0.bb | 87 +++++++++++++++++++ >> >> As per my opinion, not a good idea to bump up package version than default >> package version shipped by kirkstone i.e. 1.22.1 >> (meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb) >> >> As a general rule of thumb, there could be other layers (for e.g. added by >> vendors) having bbappends assuming shipped package version same as in >> kirkstone and also build time and runtime dependencies w.r.t other packages >> are guaranted if all packages stay with same version as shipped by kirkstone >> and with this new recipe I believe we are kind of deviating from that >> protection and so my suggestion is to rebase on top of existing package >> version i.e. 1.22.1 > > I agree that it makes sense to keep packages pinned to a version for a > particular release (dunfell/kirkstone) for stability and compatibility > with other dependencies. > > The only issue here is multi-stream support requires a large chunk of > changes to v4l2 userspace APIs, affecting the most commonly used tools > for setting up the camera pipeline (media-ctl) and capturing frames > (v4l2-ctl). > > While these changes are merged in linux upstream and backported to TI's > 6.1 branch, the corresponding v4l-utils changes are still under review > upstream. > > There are two options I see here: > > > 1. We bump up the v4l-utils recipe in our distribution to a > relatively recent git commit (v1.23.0-9431e4b26b) which is in sync > with TI baseline kernel, and apply only the patches for the extra > features TI uses on top. > > We also ensure it works well with the dependencies (mainly libc) > provided by rest of the kirkstone layers (so far no issues seen in > my tests) > > > 2. We backport these patches to v1.22.1, which was tagged almost > **two years ago** in Oct 2021; while the kernel is on 6.1 (Jan 2023) > and using multistream APIs from 6.3/6.4/still-under-review. > > We will also have to sync with the latest kernel headers and > extensively test that we don't break some ioctl or are missing > bugfixes to v4l-utils from the past two years, as the kernel > developer(s) for the newer features would not have tested against > the old release. > > > That's why I chose option 1 in the current series as an exception to the > thumb rule. Let me know if it is a complete no-go to override a recipe > here. > Thanks for sharing this details, as discussed in other thread https://lore.kernel.org/all/1f00c11f-f413-c015-c2fd-24afb475295b@ti.com/ I think v4l-utils is behind since we bumped up kernel to 6.1 so agreed that we should bump up v4l-utils too. If possible, I would suggest to go with latest stable version of v4l-utils to minimize local patch list to apply in new recipe. Regards Devarsh >> >> Regards >> Devarsh > > Thanks, > Jai
On 5/24/2023 6:14 AM, Devarsh Thakkar wrote: > Hi Ryan, > > Thanks for the feedback, > > On 23/05/23 21:06, Ryan Eatmon wrote: >> >> >> On 5/23/2023 6:48 AM, Devarsh Thakkar wrote: >>> Hi Jai, >>> >>> Thanks for the patch. >>> >>> On 23/05/23 15:14, Jai Luthra wrote: >>>> An older recipe (v1.22.0) is present in the meta-openembedded/meta-oe >>>> layer for kirkstone. >>>> >>>> TI's 6.1 based kernel has backported multistream routing APIs [1] from >>>> upstream kernel, which requires a few patches to v4l-utils [2] that only >>>> apply cleanly on top of v1.23.0. >>>> >>>> Thus we override the recipe in this layer to the latest (v1.23.0) found >>>> from meta-oe master. >>>> >>>> Link: >>>> https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ca55d70b41e [1] >>>> Link: >>>> https://lore.kernel.org/all/20230210115546.199809-1-tomi.valkeinen@ideasonboard.com/ [2] >>>> Signed-off-by: Jai Luthra <j-luthra@ti.com> >>>> --- >>>> ...-Don-t-install-libmediactl-and-libv4.patch | 44 ++++++++++ >>>> ...02-original-patch-mediactl-pkgconfig.patch | 21 +++++ >>>> ...iginal-patch-export-mediactl-headers.patch | 24 +++++ >>>> .../v4l-utils/0004-Do-not-use-getsubopt.patch | 60 +++++++++++++ >>>> .../v4l-utils/v4l-utils_1.23.0.bb | 87 +++++++++++++++++++ >>> >>> As per my opinion, not a good idea to bump up package version than default >>> package version shipped by kirkstone i.e. 1.22.1 >>> (meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb) >>> >>> As a general rule of thumb, there could be other layers (for e.g. added by >>> vendors) having bbappends assuming shipped package version same as in >>> kirkstone and also build time and runtime dependencies w.r.t other packages >>> are guaranted if all packages stay with same version as shipped by kirkstone >>> and with this new recipe I believe we are kind of deviating from that >>> protection and so my suggestion is to rebase on top of existing package >>> version i.e. 1.22.1 >> >> If you were talking about meta-ti then I would 100% agree with you, but this >> is meta-arago. And as a distribution layer, we are perfectly within our >> purvue to advance to a later version of a tool beyond what the other upstream >> repos are at, or change config files, etc... >> >> Meta-ti as a BSP layer needs to play nice in the sandbox with other layers and >> not change versions without guards. >> > > I am not sure what exactly you mean by guards, is it possible to share an > example? Also I think we did change linux kernel version to 6.1 in meta-ti > from the one supported in kirkstone (which I believe was 5.18) although that > has its set of advantages since it is latest LTS. Check out the recent patch that Denys submitted for meta-ti kirkstone for optee. Basically, hide any changes we make to something that is upstream behind an override so that the change only applies when building one our machine targets. https://lists.yoctoproject.org/g/meta-ti/message/16574 >> If you wanted to be extra careful you could include the guards in arago as >> well, but since arago is not a yocto compliant layer it is not strictly needed >> at this time. >> >> > > I think the crux of the issue here is gap between v4l-utils version (which is > 1.22.1 released couple of years back as Jai mentioned ) in kirkstone and the > linux version being used which is 6.1 (which got released this year) requiring > us to bump up v4l-utils to match the latest features added in 6.1 and this is > because since we bumped up linux version to 6.1 from official kirkstone > supported version which I think is 5.18. > > But I agree with Jai and you that it's better to bump up the recipe version > directly since anyway kernel version is bumped up and latest v4l-utils is a > better match. > > On a sidenote is it fine if we try and decide to bump up gstreamer version too > from 1.20.5 to 1.22 series which was released this year since it has more > features and compatible to kernel version 6.1 ? I would be fine with that. > Regards > Devarsh >>> Regards >>> Devarsh >>> >>>> 5 files changed, 236 insertions(+) >>>> create mode 100644 >>>> meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch >>>> create mode 100644 >>>> meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch >>>> create mode 100644 >>>> meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch >>>> create mode 100644 >>>> meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch >>>> create mode 100644 >>>> meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb >>> >>> >>>> >>>> diff --git >>>> a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch >>>> new file mode 100644 >>>> index 00000000..8ac8fbe1 >>>> --- /dev/null >>>> +++ >>>> b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch >>>> @@ -0,0 +1,44 @@ >>>> +From 0d5c0e9a75eca43667b0e29155b635e50622b66a Mon Sep 17 00:00:00 2001 >>>> +From: Khem Raj <raj.khem@gmail.com> >>>> +Date: Fri, 27 Feb 2015 21:55:36 +0000 >>>> +Subject: [PATCH] Revert "media-ctl: Don't install libmediactl and >>>> + >>>> + libv4l2subdev" >>>> + >>>> +This reverts commit 0911dce53b08b0df3066be2c75f67e8a314d8729. >>>> + >>>> +Signed-off-by: Khem Raj <raj.khem@gmail.com> >>>> + >>>> +Conflicts: >>>> + utils/media-ctl/Makefile.am >>>> + >>>> +--- >>>> + utils/media-ctl/Makefile.am | 10 +++------- >>>> + 1 file changed, 3 insertions(+), 7 deletions(-) >>>> + >>>> +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am >>>> +index c48c8d6..e255e16 100644 >>>> +--- a/utils/media-ctl/Makefile.am >>>> ++++ b/utils/media-ctl/Makefile.am >>>> +@@ -1,8 +1,7 @@ >>>> +-noinst_LTLIBRARIES = libmediactl.la libv4l2subdev.la >>>> +- >>>> ++lib_LTLIBRARIES = libmediactl.la libv4l2subdev.la >>>> + libmediactl_la_SOURCES = libmediactl.c mediactl-priv.h >>>> +-libmediactl_la_CFLAGS = -static $(LIBUDEV_CFLAGS) >>>> +-libmediactl_la_LDFLAGS = -static $(LIBUDEV_LIBS) >>>> ++libmediactl_la_CFLAGS = $(LIBUDEV_CFLAGS) >>>> ++libmediactl_la_LDFLAGS = $(LIBUDEV_LIBS) >>>> + >>>> + media-bus-format-names.h: ../../include/linux/media-bus-format.h >>>> + $(AM_V_GEN) sed -e '/#define MEDIA_BUS_FMT/ ! d; s/.*FMT_//; /FIXED/ >>>> d; s/\t.*//; s/.*/{ \"&\", MEDIA_BUS_FMT_& },/;' \ >>>> +@@ -18,9 +17,6 @@ CLEANFILES = $(BUILT_SOURCES) >>>> + nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES) >>>> + libv4l2subdev_la_SOURCES = libv4l2subdev.c >>>> + libv4l2subdev_la_LIBADD = libmediactl.la >>>> +-libv4l2subdev_la_CFLAGS = -static >>>> +-libv4l2subdev_la_LDFLAGS = -static >>>> +- >>>> + mediactl_includedir=$(includedir)/mediactl >>>> + noinst_HEADERS = mediactl.h v4l2subdev.h >>>> + >>>> diff --git >>>> a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch >>>> new file mode 100644 >>>> index 00000000..52fc2d7a >>>> --- /dev/null >>>> +++ >>>> b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch >>>> @@ -0,0 +1,21 @@ >>>> +From 320b8378ee30eb5e0fe83a8b397f822f2f88a4c1 Mon Sep 17 00:00:00 2001 >>>> +From: Khem Raj <raj.khem@gmail.com> >>>> +Date: Sun, 1 Mar 2015 22:25:07 +0000 >>>> +Subject: [PATCH] %% original patch: mediactl-pkgconfig.patch >>>> + >>>> +--- >>>> + utils/media-ctl/Makefile.am | 1 + >>>> + 1 file changed, 1 insertion(+) >>>> + >>>> +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am >>>> +index e255e16..ff7b417 100644 >>>> +--- a/utils/media-ctl/Makefile.am >>>> ++++ b/utils/media-ctl/Makefile.am >>>> +@@ -20,6 +20,7 @@ libv4l2subdev_la_LIBADD = libmediactl.la >>>> + mediactl_includedir=$(includedir)/mediactl >>>> + noinst_HEADERS = mediactl.h v4l2subdev.h >>>> + >>>> ++pkgconfig_DATA = libmediactl.pc >>>> + bin_PROGRAMS = media-ctl >>>> + media_ctl_SOURCES = media-ctl.c options.c options.h tools.h >>>> + media_ctl_LDADD = libmediactl.la libv4l2subdev.la >>>> diff --git >>>> a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch >>>> new file mode 100644 >>>> index 00000000..39dc3383 >>>> --- /dev/null >>>> +++ >>>> b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch >>>> @@ -0,0 +1,24 @@ >>>> +From f7109d6b2fcb291824d795071c04a492d9fbc45b Mon Sep 17 00:00:00 2001 >>>> +From: Khem Raj <raj.khem@gmail.com> >>>> +Date: Sun, 1 Mar 2015 22:25:07 +0000 >>>> +Subject: [PATCH] %% original patch: export-mediactl-headers.patch >>>> + >>>> +--- >>>> + utils/media-ctl/Makefile.am | 4 ++-- >>>> + 1 file changed, 2 insertions(+), 2 deletions(-) >>>> + >>>> +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am >>>> +index ff7b417..6ce656f 100644 >>>> +--- a/utils/media-ctl/Makefile.am >>>> ++++ b/utils/media-ctl/Makefile.am >>>> +@@ -17,8 +17,8 @@ CLEANFILES = $(BUILT_SOURCES) >>>> + nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES) >>>> + libv4l2subdev_la_SOURCES = libv4l2subdev.c >>>> + libv4l2subdev_la_LIBADD = libmediactl.la >>>> +-mediactl_includedir=$(includedir)/mediactl >>>> +-noinst_HEADERS = mediactl.h v4l2subdev.h >>>> ++otherincludedir = $(includedir)/mediactl >>>> ++otherinclude_HEADERS = mediactl.h v4l2subdev.h >>>> + >>>> + pkgconfig_DATA = libmediactl.pc >>>> + bin_PROGRAMS = media-ctl >>>> diff --git >>>> a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch >>>> new file mode 100644 >>>> index 00000000..fb844acb >>>> --- /dev/null >>>> +++ >>>> b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch >>>> @@ -0,0 +1,60 @@ >>>> +From 6e7e52de7afe29597016952a7317faf9c3ea3268 Mon Sep 17 00:00:00 2001 >>>> +From: Khem Raj <raj.khem@gmail.com> >>>> +Date: Sat, 30 Nov 2019 18:50:34 -0800 >>>> +Subject: [PATCH] Do not use getsubopt >>>> + >>>> +POSIX says that behavior when subopts list is empty is undefined. >>>> +musl libs will set value to NULL which leads to crash. >>>> + >>>> +Simply avoid getsubopt, since we cannot rely on it. >>>> + >>>> +Imported from Alpine Linux >>>> + >>>> +Upstream-Status: Pending >>>> + >>>> +Signed-off-by: Khem Raj <raj.khem@gmail.com> >>>> + >>>> +Adapt patch to 1.23.0. >>>> + >>>> +(v4l-utils rev fd544473800d02e90bc289434cc44e5aa8fadd0f). >>>> + >>>> +%% original patch: 0007-Do-not-use-getsubopt.patch >>>> + >>>> +Signed-off-by: Daniel Gomez <daniel@qtec.com> >>>> +--- >>>> + utils/v4l2-ctl/v4l2-ctl-common.cpp | 18 ++++++++++-------- >>>> + 1 file changed, 10 insertions(+), 8 deletions(-) >>>> + >>>> +diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp >>>> b/utils/v4l2-ctl/v4l2-ctl-common.cpp >>>> +index d77f7104..838c297d 100644 >>>> +--- a/utils/v4l2-ctl/v4l2-ctl-common.cpp >>>> ++++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp >>>> +@@ -994,15 +994,17 @@ static bool parse_subset(char *optarg) >>>> + >>>> + static bool parse_next_subopt(char **subs, char **value) >>>> + { >>>> +- static char *const subopts[] = { >>>> +- nullptr >>>> +- }; >>>> +- int opt = v4l_getsubopt(subs, subopts, value); >>>> ++ char *p = *subs; >>>> ++ *value = *subs; >>>> + >>>> +- if (opt < 0 || *value) >>>> +- return false; >>>> +- fprintf(stderr, "Missing suboption value\n"); >>>> +- return true; >>>> ++ while (*p && *p != ',') >>>> ++ p++; >>>> ++ >>>> ++ if (*p) >>>> ++ *p++ = '\0'; >>>> ++ >>>> ++ *subs = p; >>>> ++ return false; >>>> + } >>>> + >>>> + void common_cmd(const std::string &media_bus_info, int ch, char *optarg) >>>> +-- >>>> +2.35.1 >>>> + >>>> diff --git >>>> a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb >>>> b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb >>>> new file mode 100644 >>>> index 00000000..21a08022 >>>> --- /dev/null >>>> +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb >>>> @@ -0,0 +1,87 @@ >>>> +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 autotools gettext pkgconfig >>>> + >>>> +PACKAGECONFIG ??= "media-ctl" >>>> +PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,," >>>> +PACKAGECONFIG[qv4l2] = ",--disable-qv4l2" >>>> +PACKAGECONFIG[qvidcap] = ",--disable-qvidcap" >>>> + >>>> +SRC_URI = "\ >>>> + git://git.linuxtv.org/v4l-utils.git;protocol=https;branch=master \ >>>> + file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \ >>>> + file://0002-original-patch-mediactl-pkgconfig.patch \ >>>> + file://0003-original-patch-export-mediactl-headers.patch \ >>>> + file://0004-Do-not-use-getsubopt.patch \ >>>> +" >>>> + >>>> +SRCREV = "9431e4b26b4842d1401e80ada9f14593dca3a94c" >>>> + >>>> +PV .= "+git${SRCPV}" >>>> + >>>> +S = "${WORKDIR}/git" >>>> + >>>> +do_configure:prepend() { >>>> + cd ${S}; ./bootstrap.sh; cd - >>>> +} >>>> + >>>> +EXTRA_OECONF = "--enable-shared --with-udevdir=${base_libdir}/udev \ >>>> + --disable-v4l2-compliance-32 --disable-v4l2-ctl-32" >>>> + >>>> +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" >>>> + >>>> +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" >>
diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch new file mode 100644 index 00000000..8ac8fbe1 --- /dev/null +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch @@ -0,0 +1,44 @@ +From 0d5c0e9a75eca43667b0e29155b635e50622b66a Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Fri, 27 Feb 2015 21:55:36 +0000 +Subject: [PATCH] Revert "media-ctl: Don't install libmediactl and + + libv4l2subdev" + +This reverts commit 0911dce53b08b0df3066be2c75f67e8a314d8729. + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Conflicts: + utils/media-ctl/Makefile.am + +--- + utils/media-ctl/Makefile.am | 10 +++------- + 1 file changed, 3 insertions(+), 7 deletions(-) + +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am +index c48c8d6..e255e16 100644 +--- a/utils/media-ctl/Makefile.am ++++ b/utils/media-ctl/Makefile.am +@@ -1,8 +1,7 @@ +-noinst_LTLIBRARIES = libmediactl.la libv4l2subdev.la +- ++lib_LTLIBRARIES = libmediactl.la libv4l2subdev.la + libmediactl_la_SOURCES = libmediactl.c mediactl-priv.h +-libmediactl_la_CFLAGS = -static $(LIBUDEV_CFLAGS) +-libmediactl_la_LDFLAGS = -static $(LIBUDEV_LIBS) ++libmediactl_la_CFLAGS = $(LIBUDEV_CFLAGS) ++libmediactl_la_LDFLAGS = $(LIBUDEV_LIBS) + + media-bus-format-names.h: ../../include/linux/media-bus-format.h + $(AM_V_GEN) sed -e '/#define MEDIA_BUS_FMT/ ! d; s/.*FMT_//; /FIXED/ d; s/\t.*//; s/.*/{ \"&\", MEDIA_BUS_FMT_& },/;' \ +@@ -18,9 +17,6 @@ CLEANFILES = $(BUILT_SOURCES) + nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES) + libv4l2subdev_la_SOURCES = libv4l2subdev.c + libv4l2subdev_la_LIBADD = libmediactl.la +-libv4l2subdev_la_CFLAGS = -static +-libv4l2subdev_la_LDFLAGS = -static +- + mediactl_includedir=$(includedir)/mediactl + noinst_HEADERS = mediactl.h v4l2subdev.h + diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch new file mode 100644 index 00000000..52fc2d7a --- /dev/null +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch @@ -0,0 +1,21 @@ +From 320b8378ee30eb5e0fe83a8b397f822f2f88a4c1 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 1 Mar 2015 22:25:07 +0000 +Subject: [PATCH] %% original patch: mediactl-pkgconfig.patch + +--- + utils/media-ctl/Makefile.am | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am +index e255e16..ff7b417 100644 +--- a/utils/media-ctl/Makefile.am ++++ b/utils/media-ctl/Makefile.am +@@ -20,6 +20,7 @@ libv4l2subdev_la_LIBADD = libmediactl.la + mediactl_includedir=$(includedir)/mediactl + noinst_HEADERS = mediactl.h v4l2subdev.h + ++pkgconfig_DATA = libmediactl.pc + bin_PROGRAMS = media-ctl + media_ctl_SOURCES = media-ctl.c options.c options.h tools.h + media_ctl_LDADD = libmediactl.la libv4l2subdev.la diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch new file mode 100644 index 00000000..39dc3383 --- /dev/null +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch @@ -0,0 +1,24 @@ +From f7109d6b2fcb291824d795071c04a492d9fbc45b Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sun, 1 Mar 2015 22:25:07 +0000 +Subject: [PATCH] %% original patch: export-mediactl-headers.patch + +--- + utils/media-ctl/Makefile.am | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/utils/media-ctl/Makefile.am b/utils/media-ctl/Makefile.am +index ff7b417..6ce656f 100644 +--- a/utils/media-ctl/Makefile.am ++++ b/utils/media-ctl/Makefile.am +@@ -17,8 +17,8 @@ CLEANFILES = $(BUILT_SOURCES) + nodist_libv4l2subdev_la_SOURCES = $(BUILT_SOURCES) + libv4l2subdev_la_SOURCES = libv4l2subdev.c + libv4l2subdev_la_LIBADD = libmediactl.la +-mediactl_includedir=$(includedir)/mediactl +-noinst_HEADERS = mediactl.h v4l2subdev.h ++otherincludedir = $(includedir)/mediactl ++otherinclude_HEADERS = mediactl.h v4l2subdev.h + + pkgconfig_DATA = libmediactl.pc + bin_PROGRAMS = media-ctl diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch new file mode 100644 index 00000000..fb844acb --- /dev/null +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch @@ -0,0 +1,60 @@ +From 6e7e52de7afe29597016952a7317faf9c3ea3268 Mon Sep 17 00:00:00 2001 +From: Khem Raj <raj.khem@gmail.com> +Date: Sat, 30 Nov 2019 18:50:34 -0800 +Subject: [PATCH] Do not use getsubopt + +POSIX says that behavior when subopts list is empty is undefined. +musl libs will set value to NULL which leads to crash. + +Simply avoid getsubopt, since we cannot rely on it. + +Imported from Alpine Linux + +Upstream-Status: Pending + +Signed-off-by: Khem Raj <raj.khem@gmail.com> + +Adapt patch to 1.23.0. + +(v4l-utils rev fd544473800d02e90bc289434cc44e5aa8fadd0f). + +%% original patch: 0007-Do-not-use-getsubopt.patch + +Signed-off-by: Daniel Gomez <daniel@qtec.com> +--- + utils/v4l2-ctl/v4l2-ctl-common.cpp | 18 ++++++++++-------- + 1 file changed, 10 insertions(+), 8 deletions(-) + +diff --git a/utils/v4l2-ctl/v4l2-ctl-common.cpp b/utils/v4l2-ctl/v4l2-ctl-common.cpp +index d77f7104..838c297d 100644 +--- a/utils/v4l2-ctl/v4l2-ctl-common.cpp ++++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp +@@ -994,15 +994,17 @@ static bool parse_subset(char *optarg) + + static bool parse_next_subopt(char **subs, char **value) + { +- static char *const subopts[] = { +- nullptr +- }; +- int opt = v4l_getsubopt(subs, subopts, value); ++ char *p = *subs; ++ *value = *subs; + +- if (opt < 0 || *value) +- return false; +- fprintf(stderr, "Missing suboption value\n"); +- return true; ++ while (*p && *p != ',') ++ p++; ++ ++ if (*p) ++ *p++ = '\0'; ++ ++ *subs = p; ++ return false; + } + + void common_cmd(const std::string &media_bus_info, int ch, char *optarg) +-- +2.35.1 + diff --git a/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb new file mode 100644 index 00000000..21a08022 --- /dev/null +++ b/meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb @@ -0,0 +1,87 @@ +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 autotools gettext pkgconfig + +PACKAGECONFIG ??= "media-ctl" +PACKAGECONFIG[media-ctl] = "--enable-v4l-utils,--disable-v4l-utils,," +PACKAGECONFIG[qv4l2] = ",--disable-qv4l2" +PACKAGECONFIG[qvidcap] = ",--disable-qvidcap" + +SRC_URI = "\ + git://git.linuxtv.org/v4l-utils.git;protocol=https;branch=master \ + file://0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch \ + file://0002-original-patch-mediactl-pkgconfig.patch \ + file://0003-original-patch-export-mediactl-headers.patch \ + file://0004-Do-not-use-getsubopt.patch \ +" + +SRCREV = "9431e4b26b4842d1401e80ada9f14593dca3a94c" + +PV .= "+git${SRCPV}" + +S = "${WORKDIR}/git" + +do_configure:prepend() { + cd ${S}; ./bootstrap.sh; cd - +} + +EXTRA_OECONF = "--enable-shared --with-udevdir=${base_libdir}/udev \ + --disable-v4l2-compliance-32 --disable-v4l2-ctl-32" + +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" + +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"
An older recipe (v1.22.0) is present in the meta-openembedded/meta-oe layer for kirkstone. TI's 6.1 based kernel has backported multistream routing APIs [1] from upstream kernel, which requires a few patches to v4l-utils [2] that only apply cleanly on top of v1.23.0. Thus we override the recipe in this layer to the latest (v1.23.0) found from meta-oe master. Link: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/log/?h=ca55d70b41e [1] Link: https://lore.kernel.org/all/20230210115546.199809-1-tomi.valkeinen@ideasonboard.com/ [2] Signed-off-by: Jai Luthra <j-luthra@ti.com> --- ...-Don-t-install-libmediactl-and-libv4.patch | 44 ++++++++++ ...02-original-patch-mediactl-pkgconfig.patch | 21 +++++ ...iginal-patch-export-mediactl-headers.patch | 24 +++++ .../v4l-utils/0004-Do-not-use-getsubopt.patch | 60 +++++++++++++ .../v4l-utils/v4l-utils_1.23.0.bb | 87 +++++++++++++++++++ 5 files changed, 236 insertions(+) create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0001-Revert-media-ctl-Don-t-install-libmediactl-and-libv4.patch create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0002-original-patch-mediactl-pkgconfig.patch create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0003-original-patch-export-mediactl-headers.patch create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils/0004-Do-not-use-getsubopt.patch create mode 100644 meta-arago-extras/recipes-multimedia/v4l-utils/v4l-utils_1.23.0.bb