diff mbox series

[meta-oe] v4l-utils: Update 1.22.1 -> 1.23.0+fd544473

Message ID 20220930064207.29453-1-daniel@qtec.com
State Under Review
Headers show
Series [meta-oe] v4l-utils: Update 1.22.1 -> 1.23.0+fd544473 | expand

Commit Message

Daniel Gomez Sept. 30, 2022, 6:42 a.m. UTC
Use git instead of release tarball to close the gap between the latest
1.22.1 and master.

Add 'bootstrap.sh' call to fix configuration issues:

Error:
config.status: error: cannot find input file:
`v4l-utils-po/Makefile.in.in

Adapt patch '0007-Do-not-use-getsubopt.patch': Upstream has replaced
the use of getsubopt with v4l_subopt which detects if getsubopt is
provided via glibc or not. Otherwise it uses a static
v4l_getsubopt copied from glibc.

(From v4l-utils: 6e19bb895a16a9a247524ac526ab47f576cc36f6)

Also rename patch number to '0004-Do-not-use-getsubopt.patch'.

Add qv4l2 and qvidcap packages support but keep them disabled as
they require meta-qt5.

Enable alsa support if alsa is part of the DISTRO_FEATURES.

Signed-off-by: Daniel Gomez <daniel@qtec.com>
---
 ....patch => 0004-Do-not-use-getsubopt.patch} | 19 ++++++--
 ...4l-utils_1.22.1.bb => v4l-utils_1.23.0.bb} | 45 +++++++++++++++----
 2 files changed, 51 insertions(+), 13 deletions(-)
 rename meta-oe/recipes-multimedia/v4l2apps/v4l-utils/{0007-Do-not-use-getsubopt.patch => 0004-Do-not-use-getsubopt.patch} (73%)
 rename meta-oe/recipes-multimedia/v4l2apps/{v4l-utils_1.22.1.bb => v4l-utils_1.23.0.bb} (59%)

Comments

Daniel Gomez Sept. 30, 2022, 6:55 a.m. UTC | #1
On Fri, 30 Sept 2022 at 08:51, Daniel Gomez <daniel@qtec.com> wrote:
>
> Use git instead of release tarball to close the gap between the latest
> 1.22.1 and master.
>
> Add 'bootstrap.sh' call to fix configuration issues:
>
> Error:
> config.status: error: cannot find input file:
> `v4l-utils-po/Makefile.in.in
>
> Adapt patch '0007-Do-not-use-getsubopt.patch': Upstream has replaced
> the use of getsubopt with v4l_subopt which detects if getsubopt is
> provided via glibc or not. Otherwise it uses a static
> v4l_getsubopt copied from glibc.
>
> (From v4l-utils: 6e19bb895a16a9a247524ac526ab47f576cc36f6)
>
> Also rename patch number to '0004-Do-not-use-getsubopt.patch'.
>
> Add qv4l2 and qvidcap packages support but keep them disabled as
> they require meta-qt5.
>
> Enable alsa support if alsa is part of the DISTRO_FEATURES.
>
> Signed-off-by: Daniel Gomez <daniel@qtec.com>
> ---
v2
- Remove PACKAGECONFIG new defaults (remove qv4l2 and qvidcap).
- Fix DEPENDS for qv4l2 and qvidcap using bb.utilscontains_any.
-
>  ....patch => 0004-Do-not-use-getsubopt.patch} | 19 ++++++--
>  ...4l-utils_1.22.1.bb => v4l-utils_1.23.0.bb} | 45 +++++++++++++++----
>  2 files changed, 51 insertions(+), 13 deletions(-)
>  rename meta-oe/recipes-multimedia/v4l2apps/v4l-utils/{0007-Do-not-use-getsubopt.patch => 0004-Do-not-use-getsubopt.patch} (73%)
>  rename meta-oe/recipes-multimedia/v4l2apps/{v4l-utils_1.22.1.bb => v4l-utils_1.23.0.bb} (59%)
>
> diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
> similarity index 73%
> rename from meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch
> rename to meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
> index d8d1b8d18..fb844acbe 100644
> --- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch
> +++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
> @@ -1,4 +1,4 @@
> -From e4582c11f76b9390a3e172dcf0741dca90a9dc8d Mon Sep 17 00:00:00 2001
> +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
> @@ -11,24 +11,32 @@ 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 c940171..49c0f39 100644
> +index d77f7104..838c297d 100644
>  --- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
>  +++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
> -@@ -956,15 +956,17 @@ static bool parse_subset(char *optarg)
> +@@ -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 = getsubopt(subs, subopts, value);
> +-      int opt = v4l_getsubopt(subs, subopts, value);
>  +      char *p = *subs;
>  +      *value = *subs;
>
> @@ -47,3 +55,6 @@ index c940171..49c0f39 100644
>   }
>
>   void common_cmd(const std::string &media_bus_info, int ch, char *optarg)
> +--
> +2.35.1
> +
> diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.23.0.bb
> similarity index 59%
> rename from meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb
> rename to meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.23.0.bb
> index 741e1030c..4a88d69f6 100644
> --- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb
> +++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.23.0.bb
> @@ -6,7 +6,10 @@ 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', '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"
> @@ -15,30 +18,54 @@ 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 = "fd544473800d02e90bc289434cc44e5aa8fadd0f"
> +
> +S = "${WORKDIR}/git"
> +B = "${S}"
>
> -SRC_URI = "http://linuxtv.org/downloads/v4l-utils/v4l-utils-${PV}.tar.bz2 \
> -           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://0007-Do-not-use-getsubopt.patch \
> -           "
> +do_configure:prepend() {
> +    ${S}/bootstrap.sh
> +}
>
>  SRC_URI[md5sum] = "8aa73287320a49e9170a8255d7b2c7e6"
>  SRC_URI[sha256sum] = "65c6fbe830a44ca105c443b027182c1b2c9053a91d1e72ad849dfab388b94e31"
>
> -EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev \
> +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"
> +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 += "qtbase"
> +RDEPENDS:qvidcap += "qtbase"
>
>  FILES:rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*"
>
> --
> 2.35.1
>
Khem Raj Sept. 30, 2022, 5:07 p.m. UTC | #2
seeing

https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/2067

On Thu, Sep 29, 2022 at 11:56 PM Daniel Gomez <daniel@qtec.com> wrote:
>
> On Fri, 30 Sept 2022 at 08:51, Daniel Gomez <daniel@qtec.com> wrote:
> >
> > Use git instead of release tarball to close the gap between the latest
> > 1.22.1 and master.
> >
> > Add 'bootstrap.sh' call to fix configuration issues:
> >
> > Error:
> > config.status: error: cannot find input file:
> > `v4l-utils-po/Makefile.in.in
> >
> > Adapt patch '0007-Do-not-use-getsubopt.patch': Upstream has replaced
> > the use of getsubopt with v4l_subopt which detects if getsubopt is
> > provided via glibc or not. Otherwise it uses a static
> > v4l_getsubopt copied from glibc.
> >
> > (From v4l-utils: 6e19bb895a16a9a247524ac526ab47f576cc36f6)
> >
> > Also rename patch number to '0004-Do-not-use-getsubopt.patch'.
> >
> > Add qv4l2 and qvidcap packages support but keep them disabled as
> > they require meta-qt5.
> >
> > Enable alsa support if alsa is part of the DISTRO_FEATURES.
> >
> > Signed-off-by: Daniel Gomez <daniel@qtec.com>
> > ---
> v2
> - Remove PACKAGECONFIG new defaults (remove qv4l2 and qvidcap).
> - Fix DEPENDS for qv4l2 and qvidcap using bb.utilscontains_any.
> -
> >  ....patch => 0004-Do-not-use-getsubopt.patch} | 19 ++++++--
> >  ...4l-utils_1.22.1.bb => v4l-utils_1.23.0.bb} | 45 +++++++++++++++----
> >  2 files changed, 51 insertions(+), 13 deletions(-)
> >  rename meta-oe/recipes-multimedia/v4l2apps/v4l-utils/{0007-Do-not-use-getsubopt.patch => 0004-Do-not-use-getsubopt.patch} (73%)
> >  rename meta-oe/recipes-multimedia/v4l2apps/{v4l-utils_1.22.1.bb => v4l-utils_1.23.0.bb} (59%)
> >
> > diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
> > similarity index 73%
> > rename from meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch
> > rename to meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
> > index d8d1b8d18..fb844acbe 100644
> > --- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch
> > +++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
> > @@ -1,4 +1,4 @@
> > -From e4582c11f76b9390a3e172dcf0741dca90a9dc8d Mon Sep 17 00:00:00 2001
> > +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
> > @@ -11,24 +11,32 @@ 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 c940171..49c0f39 100644
> > +index d77f7104..838c297d 100644
> >  --- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
> >  +++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
> > -@@ -956,15 +956,17 @@ static bool parse_subset(char *optarg)
> > +@@ -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 = getsubopt(subs, subopts, value);
> > +-      int opt = v4l_getsubopt(subs, subopts, value);
> >  +      char *p = *subs;
> >  +      *value = *subs;
> >
> > @@ -47,3 +55,6 @@ index c940171..49c0f39 100644
> >   }
> >
> >   void common_cmd(const std::string &media_bus_info, int ch, char *optarg)
> > +--
> > +2.35.1
> > +
> > diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.23.0.bb
> > similarity index 59%
> > rename from meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb
> > rename to meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.23.0.bb
> > index 741e1030c..4a88d69f6 100644
> > --- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb
> > +++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.23.0.bb
> > @@ -6,7 +6,10 @@ 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', '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"
> > @@ -15,30 +18,54 @@ 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 = "fd544473800d02e90bc289434cc44e5aa8fadd0f"
> > +
> > +S = "${WORKDIR}/git"
> > +B = "${S}"
> >
> > -SRC_URI = "http://linuxtv.org/downloads/v4l-utils/v4l-utils-${PV}.tar.bz2 \
> > -           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://0007-Do-not-use-getsubopt.patch \
> > -           "
> > +do_configure:prepend() {
> > +    ${S}/bootstrap.sh
> > +}
> >
> >  SRC_URI[md5sum] = "8aa73287320a49e9170a8255d7b2c7e6"
> >  SRC_URI[sha256sum] = "65c6fbe830a44ca105c443b027182c1b2c9053a91d1e72ad849dfab388b94e31"
> >
> > -EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev \
> > +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"
> > +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 += "qtbase"
> > +RDEPENDS:qvidcap += "qtbase"
> >
> >  FILES:rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*"
> >
> > --
> > 2.35.1
> >
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#99020): https://lists.openembedded.org/g/openembedded-devel/message/99020
> Mute This Topic: https://lists.openembedded.org/mt/94011567/1997914
> Group Owner: openembedded-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Daniel Gomez Sept. 30, 2022, 6:32 p.m. UTC | #3
On Fri, 30 Sept 2022 at 19:07, Khem Raj <raj.khem@gmail.com> wrote:
>
> seeing
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/88/builds/2067

Ups. Sorry Khem. This seems to be a missing conditional in the
RDEPENDS:<package>. I thought this was only parsed if the
PACKAGECONFIG had '<package>' in it. I'll send a v3 with the fix.
>
> On Thu, Sep 29, 2022 at 11:56 PM Daniel Gomez <daniel@qtec.com> wrote:
> >
> > On Fri, 30 Sept 2022 at 08:51, Daniel Gomez <daniel@qtec.com> wrote:
> > >
> > > Use git instead of release tarball to close the gap between the latest
> > > 1.22.1 and master.
> > >
> > > Add 'bootstrap.sh' call to fix configuration issues:
> > >
> > > Error:
> > > config.status: error: cannot find input file:
> > > `v4l-utils-po/Makefile.in.in
> > >
> > > Adapt patch '0007-Do-not-use-getsubopt.patch': Upstream has replaced
> > > the use of getsubopt with v4l_subopt which detects if getsubopt is
> > > provided via glibc or not. Otherwise it uses a static
> > > v4l_getsubopt copied from glibc.
> > >
> > > (From v4l-utils: 6e19bb895a16a9a247524ac526ab47f576cc36f6)
> > >
> > > Also rename patch number to '0004-Do-not-use-getsubopt.patch'.
> > >
> > > Add qv4l2 and qvidcap packages support but keep them disabled as
> > > they require meta-qt5.
> > >
> > > Enable alsa support if alsa is part of the DISTRO_FEATURES.
> > >
> > > Signed-off-by: Daniel Gomez <daniel@qtec.com>
> > > ---
> > v2
> > - Remove PACKAGECONFIG new defaults (remove qv4l2 and qvidcap).
> > - Fix DEPENDS for qv4l2 and qvidcap using bb.utilscontains_any.
> > -
> > >  ....patch => 0004-Do-not-use-getsubopt.patch} | 19 ++++++--
> > >  ...4l-utils_1.22.1.bb => v4l-utils_1.23.0.bb} | 45 +++++++++++++++----
> > >  2 files changed, 51 insertions(+), 13 deletions(-)
> > >  rename meta-oe/recipes-multimedia/v4l2apps/v4l-utils/{0007-Do-not-use-getsubopt.patch => 0004-Do-not-use-getsubopt.patch} (73%)
> > >  rename meta-oe/recipes-multimedia/v4l2apps/{v4l-utils_1.22.1.bb => v4l-utils_1.23.0.bb} (59%)
> > >
> > > diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
> > > similarity index 73%
> > > rename from meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch
> > > rename to meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
> > > index d8d1b8d18..fb844acbe 100644
> > > --- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch
> > > +++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
> > > @@ -1,4 +1,4 @@
> > > -From e4582c11f76b9390a3e172dcf0741dca90a9dc8d Mon Sep 17 00:00:00 2001
> > > +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
> > > @@ -11,24 +11,32 @@ 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 c940171..49c0f39 100644
> > > +index d77f7104..838c297d 100644
> > >  --- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
> > >  +++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
> > > -@@ -956,15 +956,17 @@ static bool parse_subset(char *optarg)
> > > +@@ -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 = getsubopt(subs, subopts, value);
> > > +-      int opt = v4l_getsubopt(subs, subopts, value);
> > >  +      char *p = *subs;
> > >  +      *value = *subs;
> > >
> > > @@ -47,3 +55,6 @@ index c940171..49c0f39 100644
> > >   }
> > >
> > >   void common_cmd(const std::string &media_bus_info, int ch, char *optarg)
> > > +--
> > > +2.35.1
> > > +
> > > diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.23.0.bb
> > > similarity index 59%
> > > rename from meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb
> > > rename to meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.23.0.bb
> > > index 741e1030c..4a88d69f6 100644
> > > --- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb
> > > +++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.23.0.bb
> > > @@ -6,7 +6,10 @@ 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', '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"
> > > @@ -15,30 +18,54 @@ 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 = "fd544473800d02e90bc289434cc44e5aa8fadd0f"
> > > +
> > > +S = "${WORKDIR}/git"
> > > +B = "${S}"
> > >
> > > -SRC_URI = "http://linuxtv.org/downloads/v4l-utils/v4l-utils-${PV}.tar.bz2 \
> > > -           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://0007-Do-not-use-getsubopt.patch \
> > > -           "
> > > +do_configure:prepend() {
> > > +    ${S}/bootstrap.sh
> > > +}
> > >
> > >  SRC_URI[md5sum] = "8aa73287320a49e9170a8255d7b2c7e6"
> > >  SRC_URI[sha256sum] = "65c6fbe830a44ca105c443b027182c1b2c9053a91d1e72ad849dfab388b94e31"
> > >
> > > -EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev \
> > > +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"
> > > +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 += "qtbase"
> > > +RDEPENDS:qvidcap += "qtbase"
> > >
> > >  FILES:rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*"
> > >
> > > --
> > > 2.35.1
> > >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#99020): https://lists.openembedded.org/g/openembedded-devel/message/99020
> > Mute This Topic: https://lists.openembedded.org/mt/94011567/1997914
> > Group Owner: openembedded-devel+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
diff mbox series

Patch

diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
similarity index 73%
rename from meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch
rename to meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
index d8d1b8d18..fb844acbe 100644
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0007-Do-not-use-getsubopt.patch
+++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils/0004-Do-not-use-getsubopt.patch
@@ -1,4 +1,4 @@ 
-From e4582c11f76b9390a3e172dcf0741dca90a9dc8d Mon Sep 17 00:00:00 2001
+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
@@ -11,24 +11,32 @@  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 c940171..49c0f39 100644
+index d77f7104..838c297d 100644
 --- a/utils/v4l2-ctl/v4l2-ctl-common.cpp
 +++ b/utils/v4l2-ctl/v4l2-ctl-common.cpp
-@@ -956,15 +956,17 @@ static bool parse_subset(char *optarg)
+@@ -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 = getsubopt(subs, subopts, value);
+-	int opt = v4l_getsubopt(subs, subopts, value);
 +	char *p = *subs;
 +	*value = *subs;
  
@@ -47,3 +55,6 @@  index c940171..49c0f39 100644
  }
  
  void common_cmd(const std::string &media_bus_info, int ch, char *optarg)
+-- 
+2.35.1
+
diff --git a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.23.0.bb
similarity index 59%
rename from meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb
rename to meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.23.0.bb
index 741e1030c..4a88d69f6 100644
--- a/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.22.1.bb
+++ b/meta-oe/recipes-multimedia/v4l2apps/v4l-utils_1.23.0.bb
@@ -6,7 +6,10 @@  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', '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"
@@ -15,30 +18,54 @@  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 = "fd544473800d02e90bc289434cc44e5aa8fadd0f"
+
+S = "${WORKDIR}/git"
+B = "${S}"
 
-SRC_URI = "http://linuxtv.org/downloads/v4l-utils/v4l-utils-${PV}.tar.bz2 \
-           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://0007-Do-not-use-getsubopt.patch \
-           "
+do_configure:prepend() {
+    ${S}/bootstrap.sh
+}
 
 SRC_URI[md5sum] = "8aa73287320a49e9170a8255d7b2c7e6"
 SRC_URI[sha256sum] = "65c6fbe830a44ca105c443b027182c1b2c9053a91d1e72ad849dfab388b94e31"
 
-EXTRA_OECONF = "--disable-qv4l2 --enable-shared --with-udevdir=${base_libdir}/udev \
+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"
+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 += "qtbase"
+RDEPENDS:qvidcap += "qtbase"
 
 FILES:rc-keymaps = "${sysconfdir}/rc* ${base_libdir}/udev/rc*"