summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-oe/recipes-support
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-support')
-rw-r--r--meta-openembedded/meta-oe/recipes-support/appstream/appstream_0.16.2.bb (renamed from meta-openembedded/meta-oe/recipes-support/appstream/appstream_0.16.1.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/asio/asio_1.28.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/asio/asio_1.20.0.bb)11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/asio/files/0001-Add-the-pkgconfigdir-location.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/enca/enca/0001-Do-not-use-MKTEMP_PROG-in-cross-build.patch30
-rw-r--r--meta-openembedded/meta-oe/recipes-support/enca/enca_1.19.bb4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.10.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.8.0.bb (renamed from meta-openembedded/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.7.1.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.370.bb (renamed from meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.369.bb)2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/idevicerestore/idevicerestore_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb23
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.5.bb5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.5.bb (renamed from meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.1.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libpaper/libpaper_2.1.0.bb11
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/0001-fix-stack-buffer-overflow-in-usbg_f_foo_attr_val-pro.patch796
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/0001-libusbgx-Add-interface-name-for-NCM-Feature-Descript.patch52
-rwxr-xr-xmeta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service6
-rw-r--r--meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb8
-rw-r--r--meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.4.bb (renamed from meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb)3
-rw-r--r--meta-openembedded/meta-oe/recipes-support/mg/mg_20230501.bb (renamed from meta-openembedded/meta-oe/recipes-support/mg/mg_20230406.bb)4
-rw-r--r--meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.04.0.bb2
-rw-r--r--meta-openembedded/meta-oe/recipes-support/psutils/psutils_2.10.bb24
-rw-r--r--meta-openembedded/meta-oe/recipes-support/rdfind/rdfind/0001-configure.ac-fix-C-11-support-check.patch37
-rw-r--r--meta-openembedded/meta-oe/recipes-support/rdfind/rdfind_1.5.0.bb1
-rw-r--r--meta-openembedded/meta-oe/recipes-support/serial/serial/Findcatkin.cmake5
-rw-r--r--meta-openembedded/meta-oe/recipes-support/serial/serial_1.2.1.bb28
29 files changed, 1074 insertions, 35 deletions
diff --git a/meta-openembedded/meta-oe/recipes-support/appstream/appstream_0.16.1.bb b/meta-openembedded/meta-oe/recipes-support/appstream/appstream_0.16.2.bb
index 50d8cdb4c2..1ba4521834 100644
--- a/meta-openembedded/meta-oe/recipes-support/appstream/appstream_0.16.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/appstream/appstream_0.16.2.bb
@@ -21,11 +21,11 @@ DEPENDS = " \
inherit meson gobject-introspection gettext gtk-doc pkgconfig vala
-GIR_MESON_OPTION = ""
+GIR_MESON_OPTION = "gir"
SRC_URI = "https://www.freedesktop.org/software/appstream/releases/AppStream-${PV}.tar.xz"
SRC_URI:append:class-target = " file://0001-fix-crosscompile.patch"
-SRC_URI[sha256sum] = "77e274e163db1f0a1bec8f4134b1d0f31e9c0a8c54cd37f724a7d30a71cf41d2"
+SRC_URI[sha256sum] = "f9cb80bd388fbf06be268afa7f2d65863c85d605ad874b905094f3982d03f232"
S = "${WORKDIR}/AppStream-${PV}"
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.20.0.bb b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.28.0.bb
index cedcf9fee0..ae721263dd 100644
--- a/meta-openembedded/meta-oe/recipes-support/asio/asio_1.20.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/asio/asio_1.28.0.bb
@@ -9,17 +9,18 @@ LICENSE = "BSL-1.0"
DEPENDS = "openssl"
-SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2"
+SRC_URI = " \
+ ${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2 \
+ file://0001-Add-the-pkgconfigdir-location.patch \
+"
inherit autotools
ALLOW_EMPTY:${PN} = "1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=416f4cc4f79551b690babb14ef1a5799"
+LIC_FILES_CHKSUM = "file://COPYING;md5=ff668366bbdb687b6029d33a5fe4b999"
-SRC_URI[sha256sum] = "204374d3cadff1b57a63f4c343cbadcee28374c072dc04b549d772dbba9f650c"
-
-SRC_URI = "${SOURCEFORGE_MIRROR}/asio/${BP}.tar.bz2"
+SRC_URI[sha256sum] = "d0ddc2361abd2f4c823e970aaf8e28b4b31ab21b1a68af16b114fc093661e232"
PACKAGECONFIG ??= "boost"
diff --git a/meta-openembedded/meta-oe/recipes-support/asio/files/0001-Add-the-pkgconfigdir-location.patch b/meta-openembedded/meta-oe/recipes-support/asio/files/0001-Add-the-pkgconfigdir-location.patch
new file mode 100644
index 0000000000..3f93e7e4b0
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/asio/files/0001-Add-the-pkgconfigdir-location.patch
@@ -0,0 +1,30 @@
+From 248e87869d748cfb72d3a5d3b2b91ad178172e30 Mon Sep 17 00:00:00 2001
+From: Vasileios Anagnostopoulos <anagnwstopoulos@hotmail.com>
+Date: Tue, 9 May 2023 12:48:29 +0200
+Subject: [PATCH] Add the pkgconfigdir location
+
+This change is necessary, because while building asio in yocto the
+compilation is failing and is complaining because the variable is
+undefined
+
+Signed-off-by: Vasileios Anagnostopoulos <anagnwstopoulos@hotmail.com>
+Upstream status: Submitted [https://github.com/chriskohlhoff/asio/pull/1294]
+---
+ asio/Makefile.am | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Makefile.am b/Makefile.am
+index b7760851..bc4f75b3 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,6 +1,7 @@
+ AUTOMAKE_OPTIONS = foreign dist-bzip2 dist-zip
+
+ pkgconfig_DATA = asio.pc
++pkgconfigdir = $(libdir)/pkgconfig
+
+ SUBDIRS = include src
+
+--
+2.34.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb b/meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb
index c83181cfea..a06122a644 100644
--- a/meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/boost-sml/boost-sml_git.bb
@@ -9,10 +9,10 @@ LIC_FILES_CHKSUM = "file://LICENSE.md;md5=e4224ccaecb14d942c71d31bef20d78c"
DEPENDS += "boost qemu-native"
-PV = "1.1.6"
+PV = "1.1.8"
SRC_URI = "git://github.com/boost-ext/sml.git;protocol=https;branch=master"
-SRCREV = "23e9a24e434cac9922039cbb43ca54ab70bef72c"
+SRCREV = "8eb63a8b77bb662075dd36b316e53f75e605fd0f"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb b/meta-openembedded/meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb
index 86a58beda4..58e4fd6e88 100644
--- a/meta-openembedded/meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/cpulimit/cpulimit_0.2.bb
@@ -4,7 +4,7 @@ LICENSE = "GPL-2.0-or-later"
LIC_FILES_CHKSUM = "file://LICENSE;md5=86c1c0d961a437e529db93aa3bb32dc4"
SRCREV ?= "f4d2682804931e7aea02a869137344bb5452a3cd"
-SRC_URI = "git://g...@github.com/opsengine/cpulimit.git;protocol=https;branch=master \
+SRC_URI = "git://github.com/opsengine/cpulimit.git;protocol=https;branch=master \
file://0001-Remove-sys-sysctl.h-and-add-missing-libgen.h-include.patch \
"
@@ -15,7 +15,7 @@ do_compile() {
}
do_install() {
install -d ${D}${sbindir}
- install -m 0755 ${B}/src/${PN} ${D}${sbindir}/
+ install -m 0755 ${B}/src/${BPN} ${D}${sbindir}/
}
CFLAGS += "-D_GNU_SOURCE ${LDFLAGS}"
diff --git a/meta-openembedded/meta-oe/recipes-support/enca/enca/0001-Do-not-use-MKTEMP_PROG-in-cross-build.patch b/meta-openembedded/meta-oe/recipes-support/enca/enca/0001-Do-not-use-MKTEMP_PROG-in-cross-build.patch
new file mode 100644
index 0000000000..32fa239084
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/enca/enca/0001-Do-not-use-MKTEMP_PROG-in-cross-build.patch
@@ -0,0 +1,30 @@
+From c6a59d512706978e8c67f9a2d84ec650f8763368 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 8 May 2023 18:02:52 -0700
+Subject: [PATCH] Do not use $MKTEMP_PROG in cross-build
+
+$MKTEMP_PROG points to native location which could be absolute path that
+wont exist on target rootfs. Therefore use it from PATH
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4852a2f..d23b384 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -186,7 +186,7 @@ ye_PATH_LOCALE_ALIAS
+
+ dnl Random filename generation in scripts
+ if test -n "$MKTEMP_PROG"; then
+- SHELL_RANDOM_FILENAME='`'$MKTEMP_PROG' /tmp/enca-$$-XXXXXXXX`'
++ SHELL_RANDOM_FILENAME='`mktemp /tmp/enca-$$-XXXXXXXX`'
+ else
+ SHELL_RANDOM_FILENAME='/tmp/enca-$$-$RANDOM'
+ fi
+--
+2.40.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/enca/enca_1.19.bb b/meta-openembedded/meta-oe/recipes-support/enca/enca_1.19.bb
index eed0ad1b93..774f05f7c4 100644
--- a/meta-openembedded/meta-oe/recipes-support/enca/enca_1.19.bb
+++ b/meta-openembedded/meta-oe/recipes-support/enca/enca_1.19.bb
@@ -10,8 +10,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=24b9569831c46d4818450b55282476b4"
SRC_URI = "https://dl.cihar.com/enca/enca-${PV}.tar.gz \
file://dont-run-tests.patch \
file://makefile-remove-tools.patch \
- file://libenca-003-iconv.patch "
-
+ file://libenca-003-iconv.patch \
+ file://0001-Do-not-use-MKTEMP_PROG-in-cross-build.patch"
SRC_URI[sha256sum] = "4c305cc59f3e57f2cfc150a6ac511690f43633595760e1cb266bf23362d72f8a"
inherit autotools
diff --git a/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.10.bb b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.10.bb
index cb45e2b91f..1fead4d029 100644
--- a/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.10.bb
+++ b/meta-openembedded/meta-oe/recipes-support/fftw/fftw_3.3.10.bb
@@ -55,6 +55,7 @@ do_configure() {
do_compile() {
for lib in fftw fftwl fftwf; do
cd ${WORKDIR}/build-$lib
+ sed -i -e 's|${TOOLCHAIN_OPTIONS}||g' config.h
autotools_do_compile
done
}
diff --git a/meta-openembedded/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.7.1.bb b/meta-openembedded/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.8.0.bb
index 1a565636d5..209f51ea3d 100644
--- a/meta-openembedded/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.7.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/googlebenchmark/googlebenchmark_1.8.0.bb
@@ -5,7 +5,7 @@ LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
SRC_URI = "git://github.com/google/benchmark.git;protocol=https;branch=main"
-SRCREV = "d572f4777349d43653b21d6c2fc63020ab326db2"
+SRCREV = "2dd015dfef425c866d9a43f2c67d8b52d709acb6"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.369.bb b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.370.bb
index c20e2430bc..56d4253772 100644
--- a/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.369.bb
+++ b/meta-openembedded/meta-oe/recipes-support/hwdata/hwdata_0.370.bb
@@ -5,7 +5,7 @@ SECTION = "System/Base"
LICENSE = "GPL-2.0-or-later | XFree86-1.0"
LIC_FILES_CHKSUM = "file://LICENSE;md5=1556547711e8246992b999edd9445a57"
-SRCREV = "ced93f9d1c15e45e35378e82b8da96027e58174a"
+SRCREV = "21cb47beb1716545b25dfe8ae1b9e079c73b85d9"
SRC_URI = "git://github.com/vcrhonek/${BPN}.git;branch=master;protocol=https"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/idevicerestore/idevicerestore_git.bb b/meta-openembedded/meta-oe/recipes-support/idevicerestore/idevicerestore_git.bb
index d7c76a5971..2a0a129fee 100644
--- a/meta-openembedded/meta-oe/recipes-support/idevicerestore/idevicerestore_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/idevicerestore/idevicerestore_git.bb
@@ -10,7 +10,7 @@ DEPENDS = "libirecovery libimobiledevice libzip curl libimobiledevice-glue opens
PV = "1.0.1+git${SRCPV}"
-SRCREV = "7d622d916be16f2df5a72bf53a42f3a326bbfaa4"
+SRCREV = "163a1647dedb7ca4656c0f072e4733573f9f982b"
SRC_URI = "git://github.com/libimobiledevice/idevicerestore;protocol=https;branch=master"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb
index 07434c0564..e59b511a72 100644
--- a/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/imagemagick/imagemagick_7.1.1.bb
@@ -10,23 +10,19 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=ac58ac14f9d9d02cafd2d81ef38fb2cc \
DEPENDS = "lcms bzip2 jpeg libpng tiff zlib fftw freetype libtool"
BASE_PV := "${PV}"
-PV .= "-5"
+PV .= "-8"
SRC_URI = "git://github.com/ImageMagick/ImageMagick.git;branch=main;protocol=https \
file://0001-m4-Use-autconf-provided-AC_FUNC_FSEEKO.patch"
-SRCREV = "2d24be538f286962c355cf422bb525375ac77998"
+SRCREV = "920f79206ff59f30a4cff22c9c9c393508b82663"
S = "${WORKDIR}/git"
inherit autotools pkgconfig update-alternatives
export ac_cv_sys_file_offset_bits="64"
-# xml disabled because it's using xml2-config --prefix to determine prefix which returns just /usr with our libxml2
-# if someone needs xml support then fix it first
-EXTRA_OECONF = "--program-prefix= --program-suffix=.im7 --without-perl \
- --disable-openmp --without-xml --disable-opencl \
- --enable-largefile"
+EXTRA_OECONF = "--program-prefix= --program-suffix=.im7 --without-perl --enable-largefile"
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)} cxx webp xml"
PACKAGECONFIG[cxx] = "--with-magick-plus-plus,--without-magick-plus-plus"
PACKAGECONFIG[graphviz] = "--with-gvc,--without-gvc,graphviz"
PACKAGECONFIG[jp2] = "--with-jp2,,jasper"
@@ -38,6 +34,17 @@ PACKAGECONFIG[tcmalloc] = "--with-tcmalloc=yes,--with-tcmalloc=no,gperftools"
PACKAGECONFIG[webp] = "--with-webp,--without-webp,libwebp"
PACKAGECONFIG[wmf] = "--with-wmf,--without-wmf,libwmf"
PACKAGECONFIG[x11] = "--with-x,--without-x,virtual/libx11 libxext libxt"
+PACKAGECONFIG[xml] = "--with-xml,--without-xml,libxml2"
+
+do_install:append:class-target() {
+ for file in MagickCore-config.im7 MagickWand-config.im7 Magick++-config.im7; do
+ sed -i 's,${STAGING_DIR_NATIVE},,g' ${D}${bindir}/"$file"
+ done
+ sed -i 's,${S},,g' ${D}${libdir}/ImageMagick-${BASE_PV}/config-Q16HDRI/configure.xml
+ sed -i 's,${B},,g' ${D}${libdir}/ImageMagick-${BASE_PV}/config-Q16HDRI/configure.xml
+ sed -i 's,${RECIPE_SYSROOT},,g' ${D}${libdir}/ImageMagick-${BASE_PV}/config-Q16HDRI/configure.xml
+ sed -i 's,${HOSTTOOLS_DIR},${bindir},g' ${D}${sysconfdir}/ImageMagick-7/delegates.xml
+}
FILES:${PN} += "${libdir}/ImageMagick-${BASE_PV}/config-Q16* \
${datadir}/ImageMagick-7"
diff --git a/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.5.bb b/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.5.bb
index bc5897413f..7f0cfa237c 100644
--- a/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libftdi/libftdi_1.5.bb
@@ -27,6 +27,11 @@ EXTRA_OECMAKE = "-DSTATICLIBS=off -DEXAMPLES=off \
-DPYTHON_LIBRARY=${STAGING_LIBDIR}/lib${PYTHON_DIR}${PYTHON_ABI}.so \
-DPYTHON_INCLUDE_DIR=${STAGING_INCDIR}/${PYTHON_DIR}${PYTHON_ABI}"
+do_install:append() {
+ # remove absolute paths
+ sed -i -e 's|${RECIPE_SYSROOT}||g' ${D}${libdir}/cmake/libftdi1/LibFTDI1Config.cmake
+}
+
BBCLASSEXTEND = "native nativesdk"
PACKAGES =+ "${PN}-python ftdi-eeprom"
diff --git a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
index bb253f421a..c8ff0d34bc 100644
--- a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -24,6 +24,8 @@ inherit cmake python3native systemd setuptools3
EXTRA_OECMAKE = " \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DFLEX_TARGET_ARG_COMPILE_FLAGS='--noline' \
+ -DBISON_TARGET_ARG_COMPILE_FLAGS='--no-lines' \
-DUDEV_RULES_INSTALL_DIR=${nonarch_base_libdir}/udev/rules.d \
${@bb.utils.contains('DISTRO_FEATURES', 'systemd', '-DWITH_SYSTEMD=ON -DSYSTEMD_UNIT_INSTALL_DIR=${systemd_system_unitdir}', '', d)} \
"
diff --git a/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.1.bb b/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.5.bb
index 53882b2f34..38ffd032ab 100644
--- a/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-cookie_3.0.5.bb
@@ -3,9 +3,9 @@ HOMEPAGE = "https://github.com/js-cookie/js-cookie"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE;md5=e16cf0e247d84f8999bf55865a9c98cf"
-SRC_URI = "git://github.com/js-cookie/js-cookie.git;protocol=https;branch=master"
+SRC_URI = "git://github.com/js-cookie/js-cookie.git;protocol=https;branch=main"
-SRCREV = "0ba77141dd215782cc7770347a457906908c66ff"
+SRCREV = "ab3f67fc4fad88cdf07b258c08e4164e06bf7506"
S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/libpaper/libpaper_2.1.0.bb b/meta-openembedded/meta-oe/recipes-support/libpaper/libpaper_2.1.0.bb
new file mode 100644
index 0000000000..26f8fab200
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libpaper/libpaper_2.1.0.bb
@@ -0,0 +1,11 @@
+LICENSE = "LGPL-2.1-only"
+LIC_FILES_CHKSUM = "file://COPYING;md5=4fbd65380cdd255951079008b364516c"
+
+SRC_URI = "https://github.com/rrthomas/libpaper/releases/download/v${PV}/libpaper-${PV}.tar.gz"
+SRC_URI[sha256sum] = "474e9575e1235a0d8e3661f072de0193bab6ea1023363772f698a2cc39d640cf"
+
+inherit perlnative autotools
+
+EXTRA_AUTORECONF += "--install"
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/0001-fix-stack-buffer-overflow-in-usbg_f_foo_attr_val-pro.patch b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/0001-fix-stack-buffer-overflow-in-usbg_f_foo_attr_val-pro.patch
new file mode 100644
index 0000000000..1ab3494e18
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/0001-fix-stack-buffer-overflow-in-usbg_f_foo_attr_val-pro.patch
@@ -0,0 +1,796 @@
+From fc7855891c66599487265701294963bb0772bb80 Mon Sep 17 00:00:00 2001
+From: Wlodzimierz Lipert <wlodzimierz.lipert@gmail.com>
+Date: Mon, 28 Nov 2022 08:29:54 +0100
+Subject: [PATCH] fix: stack-buffer-overflow in usbg_f_foo_attr_val processing.
+ Changed ABI version from 2 to 3.
+
+Upstream-Status: Submitted [https://github.com/linux-usb-gadgets/libusbgx/pull/72]
+
+Signed-off-by: Wlodzimierz Lipert <wlodzimierz.lipert@gmail.com>
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ include/usbg/function/hid.h | 28 ++++++++++++----------------
+ include/usbg/function/midi.h | 35 +++++++++++++----------------------
+ include/usbg/function/ms.h | 30 +++++++++++-------------------
+ include/usbg/function/net.h | 34 ++++++++++++++--------------------
+ include/usbg/function/uac2.h | 29 +++++++++++++----------------
+ include/usbg/usbg_internal.h | 10 +++++-----
+ src/Makefile.am | 2 +-
+ src/function/ether.c | 10 +++++-----
+ src/function/hid.c | 12 ++++++------
+ src/function/midi.c | 10 +++++-----
+ src/function/ms.c | 10 +++++-----
+ src/function/uac2.c | 10 +++++-----
+ src/function/uvc.c | 10 +++++-----
+ src/usbg_common.c | 2 +-
+ 14 files changed, 101 insertions(+), 131 deletions(-)
+
+diff --git a/include/usbg/function/hid.h b/include/usbg/function/hid.h
+index 3463140..3b3907b 100644
+--- a/include/usbg/function/hid.h
++++ b/include/usbg/function/hid.h
+@@ -56,11 +56,6 @@ union usbg_f_hid_attr_val {
+ unsigned int subclass;
+ };
+
+-#define USBG_F_HID_UINT_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_hid_attr_val, protocol, WHAT)
+-
+-#define USBG_F_HID_RDESC_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_hid_attr_val, report_desc, WHAT)
+ /**
+ * @brief Cast from generic function to hid function
+ * @param[in] f function to be converted to hid funciton.
+@@ -137,7 +132,7 @@ int usbg_f_hid_get_attr_val(usbg_f_hid *hf, enum usbg_f_hid_attr attr,
+ * @return 0 on success usbg_error if error occurred.
+ */
+ int usbg_f_hid_set_attr_val(usbg_f_hid *hf, enum usbg_f_hid_attr attr,
+- union usbg_f_hid_attr_val val);
++ const union usbg_f_hid_attr_val *val);
+
+ /**
+ * @brief Get the minor and major of corresponding character device
+@@ -173,8 +168,9 @@ static inline int usbg_f_hid_get_protocol(usbg_f_hid *hf,
+ static inline int usbg_f_hid_set_protocol(usbg_f_hid *hf,
+ unsigned int protocol)
+ {
+- return usbg_f_hid_set_attr_val(hf, USBG_F_HID_PROTOCOL,
+- USBG_F_HID_UINT_TO_ATTR_VAL(protocol));
++
++ union usbg_f_hid_attr_val val = {.protocol = protocol};
++ return usbg_f_hid_set_attr_val(hf, USBG_F_HID_PROTOCOL, &val);
+ }
+
+ /**
+@@ -199,8 +195,8 @@ static inline int usbg_f_hid_get_report_desc(usbg_f_hid *hf,
+ static inline int usbg_f_hid_set_report_desc(usbg_f_hid *hf,
+ struct usbg_f_hid_report_desc report_desc)
+ {
+- return usbg_f_hid_set_attr_val(hf, USBG_F_HID_REPORT_DESC,
+- USBG_F_HID_RDESC_TO_ATTR_VAL(report_desc));
++ union usbg_f_hid_attr_val val = {.report_desc = report_desc};
++ return usbg_f_hid_set_attr_val(hf, USBG_F_HID_REPORT_DESC, &val);
+ }
+
+ /**
+@@ -242,8 +238,8 @@ static inline int usbg_f_hid_set_report_desc_raw(usbg_f_hid *hf,
+ .len = len,
+ };
+
+- return usbg_f_hid_set_attr_val(hf, USBG_F_HID_REPORT_DESC,
+- USBG_F_HID_RDESC_TO_ATTR_VAL(report_desc));
++ union usbg_f_hid_attr_val val = {.report_desc = report_desc};
++ return usbg_f_hid_set_attr_val(hf, USBG_F_HID_REPORT_DESC, &val);
+ }
+
+ /**
+@@ -268,8 +264,8 @@ static inline int usbg_f_hid_get_report_length(usbg_f_hid *hf,
+ static inline int usbg_f_hid_set_report_length(usbg_f_hid *hf,
+ unsigned int report_length)
+ {
+- return usbg_f_hid_set_attr_val(hf, USBG_F_HID_REPORT_LENGTH,
+- USBG_F_HID_UINT_TO_ATTR_VAL(report_length));
++ union usbg_f_hid_attr_val val = {.report_length = report_length};
++ return usbg_f_hid_set_attr_val(hf, USBG_F_HID_REPORT_LENGTH, &val);
+ }
+
+ /**
+@@ -294,8 +290,8 @@ static inline int usbg_f_hid_get_subclass(usbg_f_hid *hf,
+ static inline int usbg_f_hid_set_subclass(usbg_f_hid *hf,
+ unsigned int subclass)
+ {
+- return usbg_f_hid_set_attr_val(hf, USBG_F_HID_SUBCLASS,
+- USBG_F_HID_UINT_TO_ATTR_VAL(subclass));
++ union usbg_f_hid_attr_val val = {.subclass = subclass};
++ return usbg_f_hid_set_attr_val(hf, USBG_F_HID_SUBCLASS, &val);
+ }
+
+ #ifdef __cplusplus
+diff --git a/include/usbg/function/midi.h b/include/usbg/function/midi.h
+index 39df047..b9d9d4f 100644
+--- a/include/usbg/function/midi.h
++++ b/include/usbg/function/midi.h
+@@ -53,15 +53,6 @@ union usbg_f_midi_attr_val {
+ unsigned int qlen;
+ };
+
+-#define USBG_F_MIDI_INT_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_midi_attr_val, index, WHAT)
+-
+-#define USBG_F_MIDI_UINT_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_midi_attr_val, qlen, WHAT)
+-
+-#define USBG_F_MIDI_CCHAR_PTR_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_midi_attr_val, id, WHAT)
+-
+ /**
+ * @brief Cast from generic function to midi function
+ * @param[in] f function to be converted to midi funciton.
+@@ -126,7 +117,7 @@ int usbg_f_midi_get_attr_val(usbg_f_midi *mf, enum usbg_f_midi_attr attr,
+ * @return 0 on success usbg_error if error occurred.
+ */
+ int usbg_f_midi_set_attr_val(usbg_f_midi *mf, enum usbg_f_midi_attr attr,
+- union usbg_f_midi_attr_val val);
++ const union usbg_f_midi_attr_val *val);
+
+ /**
+ * @brief Get the index value of MIDI adapter
+@@ -148,8 +139,8 @@ static inline int usbg_f_midi_get_index(usbg_f_midi *mf, int *index)
+ */
+ static inline int usbg_f_midi_set_index(usbg_f_midi *mf, int index)
+ {
+- return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_INDEX,
+- USBG_F_MIDI_INT_TO_ATTR_VAL(index));
++ union usbg_f_midi_attr_val val = {.index = index};
++ return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_INDEX, &val);
+ }
+
+ /**
+@@ -188,8 +179,8 @@ int usbg_f_midi_get_id_s(usbg_f_midi *mf, char *buf, int len);
+ */
+ static inline int usbg_f_midi_set_id(usbg_f_midi *mf, const char *id)
+ {
+- return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_ID,
+- USBG_F_MIDI_CCHAR_PTR_TO_ATTR_VAL(id));
++ union usbg_f_midi_attr_val val = {.id = id};
++ return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_ID, &val);
+ }
+
+ /**
+@@ -212,8 +203,8 @@ static inline int usbg_f_midi_get_in_ports(usbg_f_midi *mf, unsigned *in_ports)
+ */
+ static inline int usbg_f_midi_set_in_ports(usbg_f_midi *mf, unsigned in_ports)
+ {
+- return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_IN_PORTS,
+- USBG_F_MIDI_UINT_TO_ATTR_VAL(in_ports));
++ union usbg_f_midi_attr_val val = {.in_ports = in_ports};
++ return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_IN_PORTS, &val);
+ }
+
+ /**
+@@ -236,8 +227,8 @@ static inline int usbg_f_midi_get_out_ports(usbg_f_midi *mf, unsigned *out_ports
+ */
+ static inline int usbg_f_midi_set_out_ports(usbg_f_midi *mf, unsigned out_ports)
+ {
+- return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_OUT_PORTS,
+- USBG_F_MIDI_UINT_TO_ATTR_VAL(out_ports));
++ union usbg_f_midi_attr_val val = {.out_ports = out_ports};
++ return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_OUT_PORTS, &val);
+ }
+
+ /**
+@@ -264,8 +255,8 @@ static inline int usbg_f_midi_get_buflen(usbg_f_midi *mf, int *buflen)
+ */
+ static inline int usbg_f_midi_set_buflen(usbg_f_midi *mf, unsigned buflen)
+ {
+- return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_BUFLEN,
+- USBG_F_MIDI_UINT_TO_ATTR_VAL(buflen));
++ union usbg_f_midi_attr_val val = {.buflen = buflen};
++ return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_BUFLEN, &val);
+ }
+
+ /**
+@@ -288,8 +279,8 @@ static inline int usbg_f_midi_get_qlen(usbg_f_midi *mf, unsigned *qlen)
+ */
+ static inline int usbg_f_midi_set_qlen(usbg_f_midi *mf, unsigned qlen)
+ {
+- return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_QLEN,
+- USBG_F_MIDI_UINT_TO_ATTR_VAL(qlen));
++ union usbg_f_midi_attr_val val = {.qlen = qlen};
++ return usbg_f_midi_set_attr_val(mf, USBG_F_MIDI_QLEN, &val);
+ }
+
+ #ifdef __cplusplus
+diff --git a/include/usbg/function/ms.h b/include/usbg/function/ms.h
+index 780464c..f52eb78 100644
+--- a/include/usbg/function/ms.h
++++ b/include/usbg/function/ms.h
+@@ -56,14 +56,6 @@ union usbg_f_ms_lun_attr_val {
+ const char *file;
+ };
+
+-#define USBG_F_MS_LUN_BOOL_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_ms_lun_attr_val, cdrom, WHAT)
+-
+-#define USBG_F_MS_LUN_CCHAR_PTR_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_ms_lun_attr_val, file, WHAT)
+-
+-
+-
+ /**
+ * @brief Cast from generic function to mass storage function
+ * @param[in] f function to be converted to ms funciton.
+@@ -157,7 +149,7 @@ int usbg_f_ms_get_lun_attr_val(usbg_f_ms *mf, int lun_id,
+ */
+ int usbg_f_ms_set_lun_attr_val(usbg_f_ms *mf, int lun_id,
+ enum usbg_f_ms_lun_attr lattr,
+- const union usbg_f_ms_lun_attr_val val);
++ const union usbg_f_ms_lun_attr_val *val);
+
+ /**
+ * @brief Get the value which determines if lun is visible as a cdrom
+@@ -183,8 +175,8 @@ static inline int usbg_f_ms_get_lun_cdrom(usbg_f_ms *mf, int lun_id,
+ static inline int usbg_f_ms_set_lun_cdrom(usbg_f_ms *mf, int lun_id,
+ bool cdrom)
+ {
+- return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_CDROM,
+- USBG_F_MS_LUN_BOOL_TO_ATTR_VAL(cdrom));
++ union usbg_f_ms_lun_attr_val val = {.cdrom = cdrom};
++ return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_CDROM, &val);
+ }
+
+ /**
+@@ -209,8 +201,8 @@ static inline int usbg_f_ms_get_lun_ro(usbg_f_ms *mf, int lun_id, bool *ro)
+ */
+ static inline int usbg_f_ms_set_lun_ro(usbg_f_ms *mf, int lun_id, bool ro)
+ {
+- return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_RO,
+- USBG_F_MS_LUN_BOOL_TO_ATTR_VAL(ro));
++ union usbg_f_ms_lun_attr_val val = {.ro = ro};
++ return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_RO, &val);
+ }
+
+ /**
+@@ -239,8 +231,8 @@ static inline int usbg_f_ms_get_lun_nofua(usbg_f_ms *mf, int lun_id,
+ static inline int usbg_f_ms_set_lun_nofua(usbg_f_ms *mf, int lun_id,
+ bool nofua)
+ {
+- return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_NOFUA,
+- USBG_F_MS_LUN_BOOL_TO_ATTR_VAL(nofua));
++ union usbg_f_ms_lun_attr_val val = {.nofua = nofua};
++ return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_NOFUA, &val);
+ }
+
+ /**
+@@ -267,8 +259,8 @@ static inline int usbg_f_ms_get_lun_removable(usbg_f_ms *mf, int lun_id,
+ static inline int usbg_f_ms_set_lun_removable(usbg_f_ms *mf, int lun_id,
+ bool removable)
+ {
+- return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_REMOVABLE,
+- USBG_F_MS_LUN_BOOL_TO_ATTR_VAL(removable));
++ union usbg_f_ms_lun_attr_val val = {.removable = removable};
++ return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_REMOVABLE, &val);
+ }
+
+ /**
+@@ -313,8 +305,8 @@ int usbg_f_ms_get_lun_file_s(usbg_f_ms *mf, int lun_id,
+ static inline int usbg_f_ms_set_lun_file(usbg_f_ms *mf, int lun_id,
+ const char *file)
+ {
+- return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_FILE,
+- USBG_F_MS_LUN_CCHAR_PTR_TO_ATTR_VAL(file));
++ union usbg_f_ms_lun_attr_val val = {.file = file};
++ return usbg_f_ms_set_lun_attr_val(mf, lun_id, USBG_F_MS_LUN_FILE, &val);
+ }
+
+ /**
+diff --git a/include/usbg/function/net.h b/include/usbg/function/net.h
+index b0409f1..06cee30 100644
+--- a/include/usbg/function/net.h
++++ b/include/usbg/function/net.h
+@@ -56,12 +56,6 @@ union usbg_f_net_attr_val {
+ unsigned int protocol;
+ };
+
+-#define USBG_F_NET_ETHER_ADDR_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_net_attr_val, dev_addr, WHAT)
+-
+-#define USBG_F_NET_INT_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_net_attr_val, qmult, WHAT)
+-
+ /**
+ * @brief Cast from generic function to net function
+ * @param[in] f function to be converted to net funciton.
+@@ -125,7 +119,7 @@ int usbg_f_net_get_attr_val(usbg_f_net *nf, enum usbg_f_net_attr attr,
+ * @return 0 on success usbg_error if error occurred.
+ */
+ int usbg_f_net_set_attr_val(usbg_f_net *nf, enum usbg_f_net_attr attr,
+- const union usbg_f_net_attr_val val);
++ const union usbg_f_net_attr_val *val);
+
+ /**
+ * @brief Get the value of device side MAC address
+@@ -136,7 +130,7 @@ int usbg_f_net_set_attr_val(usbg_f_net *nf, enum usbg_f_net_attr attr,
+ static inline int usbg_f_net_get_dev_addr(usbg_f_net *nf,
+ struct ether_addr *addr)
+ {
+- union usbg_f_net_attr_val val = { .dev_addr = *addr, };
++ union usbg_f_net_attr_val val = {.dev_addr = *addr};
+ return usbg_f_net_get_attr_val(nf, USBG_F_NET_DEV_ADDR, &val);
+ }
+
+@@ -149,8 +143,8 @@ static inline int usbg_f_net_get_dev_addr(usbg_f_net *nf,
+ static inline int usbg_f_net_set_dev_addr(usbg_f_net *nf,
+ const struct ether_addr *addr)
+ {
+- return usbg_f_net_set_attr_val(nf, USBG_F_NET_DEV_ADDR,
+- USBG_F_NET_ETHER_ADDR_TO_ATTR_VAL(*addr));
++ union usbg_f_net_attr_val val = {.dev_addr = *addr};
++ return usbg_f_net_set_attr_val(nf, USBG_F_NET_DEV_ADDR, &val);
+ }
+
+ /**
+@@ -175,8 +169,8 @@ static inline int usbg_f_net_get_host_addr(usbg_f_net *nf,
+ static inline int usbg_f_net_set_host_addr(usbg_f_net *nf,
+ const struct ether_addr *addr)
+ {
+- return usbg_f_net_set_attr_val(nf, USBG_F_NET_HOST_ADDR,
+- USBG_F_NET_ETHER_ADDR_TO_ATTR_VAL(*addr));
++ union usbg_f_net_attr_val val = {.host_addr = *addr};
++ return usbg_f_net_set_attr_val(nf, USBG_F_NET_HOST_ADDR, &val);
+ }
+
+ /**
+@@ -226,8 +220,8 @@ static inline int usbg_f_net_get_qmult(usbg_f_net *nf, int *qmult)
+ */
+ static inline int usbg_f_net_set_qmult(usbg_f_net *nf, int qmult)
+ {
+- return usbg_f_net_set_attr_val(nf, USBG_F_NET_QMULT,
+- USBG_F_NET_INT_TO_ATTR_VAL(qmult));
++ union usbg_f_net_attr_val val = {.qmult = qmult};
++ return usbg_f_net_set_attr_val(nf, USBG_F_NET_QMULT, &val);
+ }
+
+ /**
+@@ -250,8 +244,8 @@ static inline int usbg_f_net_get_class(usbg_f_net *nf, unsigned int *class_)
+ */
+ static inline int usbg_f_net_set_class(usbg_f_net *nf, unsigned int class_)
+ {
+- return usbg_f_net_set_attr_val(nf, USBG_F_NET_CLASS,
+- USBG_F_NET_INT_TO_ATTR_VAL(class_));
++ union usbg_f_net_attr_val val = {.class_ = class_};
++ return usbg_f_net_set_attr_val(nf, USBG_F_NET_CLASS, &val);
+ }
+
+ /**
+@@ -274,8 +268,8 @@ static inline int usbg_f_net_get_subclass(usbg_f_net *nf, int *subclass)
+ */
+ static inline int usbg_f_net_set_subclass(usbg_f_net *nf, unsigned int subclass)
+ {
+- return usbg_f_net_set_attr_val(nf, USBG_F_NET_SUBCLASS,
+- USBG_F_NET_INT_TO_ATTR_VAL(subclass));
++ union usbg_f_net_attr_val val = {.subclass = subclass};
++ return usbg_f_net_set_attr_val(nf, USBG_F_NET_SUBCLASS, &val);
+ }
+
+ /**
+@@ -298,8 +292,8 @@ static inline int usbg_f_net_get_protocol(usbg_f_net *nf, int *protocol)
+ */
+ static inline int usbg_f_net_set_protocol(usbg_f_net *nf, unsigned int protocol)
+ {
+- return usbg_f_net_set_attr_val(nf, USBG_F_NET_PROTOCOL,
+- USBG_F_NET_INT_TO_ATTR_VAL(protocol));
++ union usbg_f_net_attr_val val = {.protocol = protocol};
++ return usbg_f_net_set_attr_val(nf, USBG_F_NET_PROTOCOL, &val);
+ }
+
+ #ifdef __cplusplus
+diff --git a/include/usbg/function/uac2.h b/include/usbg/function/uac2.h
+index c1bbb14..1ea55dc 100644
+--- a/include/usbg/function/uac2.h
++++ b/include/usbg/function/uac2.h
+@@ -53,9 +53,6 @@ union usbg_f_uac2_attr_val {
+ int p_ssize;
+ };
+
+-#define USBG_F_UAC2_INT_TO_ATTR_VAL(WHAT) \
+- USBG_TO_UNION(usbg_f_uac2_attr_val, c_chmask, WHAT)
+-
+ /**
+ * @brief Cast from generic function to uac2 function
+ * @param[in] f function to be converted to uac2 funciton.
+@@ -115,7 +112,7 @@ int usbg_f_uac2_get_attr_val(usbg_f_uac2 *af, enum usbg_f_uac2_attr attr,
+ * @return 0 on success usbg_error if error occurred.
+ */
+ int usbg_f_uac2_set_attr_val(usbg_f_uac2 *af, enum usbg_f_uac2_attr attr,
+- union usbg_f_uac2_attr_val val);
++ const union usbg_f_uac2_attr_val *val);
+
+ /**
+ * @brief Get the capture channel mask of UAC2 adapter
+@@ -137,8 +134,8 @@ static inline int usbg_f_uac2_get_c_chmask(usbg_f_uac2 *af, int *c_chmask)
+ */
+ static inline int usbg_f_uac2_set_c_chmask(usbg_f_uac2 *af, int c_chmask)
+ {
+- return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_C_CHMASK,
+- USBG_F_UAC2_INT_TO_ATTR_VAL(c_chmask));
++ union usbg_f_uac2_attr_val val = {.c_chmask = c_chmask};
++ return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_C_CHMASK, &val);
+ }
+
+ /**
+@@ -161,8 +158,8 @@ static inline int usbg_f_uac2_get_c_srate(usbg_f_uac2 *af, int *c_srate)
+ */
+ static inline int usbg_f_uac2_set_c_srate(usbg_f_uac2 *af, int c_srate)
+ {
+- return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_C_SRATE,
+- USBG_F_UAC2_INT_TO_ATTR_VAL(c_srate));
++ union usbg_f_uac2_attr_val val = {.c_srate = c_srate};
++ return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_C_SRATE, &val);
+ }
+
+ /**
+@@ -185,8 +182,8 @@ static inline int usbg_f_uac2_get_c_ssize(usbg_f_uac2 *af, int *c_ssize)
+ */
+ static inline int usbg_f_uac2_set_c_ssize(usbg_f_uac2 *af, int c_ssize)
+ {
+- return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_C_SSIZE,
+- USBG_F_UAC2_INT_TO_ATTR_VAL(c_ssize));
++ union usbg_f_uac2_attr_val val = {.c_ssize = c_ssize};
++ return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_C_SSIZE, &val);
+ }
+
+ /**
+@@ -209,8 +206,8 @@ static inline int usbg_f_uac2_get_p_chmask(usbg_f_uac2 *af, int *p_chmask)
+ */
+ static inline int usbg_f_uac2_set_p_chmask(usbg_f_uac2 *af, int p_chmask)
+ {
+- return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_P_CHMASK,
+- USBG_F_UAC2_INT_TO_ATTR_VAL(p_chmask));
++ union usbg_f_uac2_attr_val val = {.p_chmask = p_chmask};
++ return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_P_CHMASK, &val);
+ }
+
+ /**
+@@ -233,8 +230,8 @@ static inline int usbg_f_uac2_get_p_srate(usbg_f_uac2 *af, int *p_srate)
+ */
+ static inline int usbg_f_uac2_set_p_srate(usbg_f_uac2 *af, int p_srate)
+ {
+- return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_P_SRATE,
+- USBG_F_UAC2_INT_TO_ATTR_VAL(p_srate));
++ union usbg_f_uac2_attr_val val = {.p_srate = p_srate};
++ return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_P_SRATE, &val);
+ }
+
+ /**
+@@ -257,8 +254,8 @@ static inline int usbg_f_uac2_get_p_ssize(usbg_f_uac2 *af, int *p_ssize)
+ */
+ static inline int usbg_f_uac2_set_p_ssize(usbg_f_uac2 *af, int p_ssize)
+ {
+- return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_P_SSIZE,
+- USBG_F_UAC2_INT_TO_ATTR_VAL(p_ssize));
++ union usbg_f_uac2_attr_val val = {.p_ssize = p_ssize};
++ return usbg_f_uac2_set_attr_val(af, USBG_F_UAC2_P_SSIZE, &val);
+ }
+
+ #ifdef __cplusplus
+diff --git a/include/usbg/usbg_internal.h b/include/usbg/usbg_internal.h
+index 1d8dfe2..d6a3e3a 100644
+--- a/include/usbg/usbg_internal.h
++++ b/include/usbg/usbg_internal.h
+@@ -322,7 +322,7 @@ void usbg_cleanup_function(struct usbg_function *f);
+ }
+
+ typedef int (*usbg_attr_get_func)(const char *, const char *, const char *, void *);
+-typedef int (*usbg_attr_set_func)(const char *, const char *, const char *, void *);
++typedef int (*usbg_attr_set_func)(const char *, const char *, const char *, const void *);
+
+ static inline int usbg_get_dec(const char *path, const char *name,
+ const char *attr, void *val)
+@@ -331,7 +331,7 @@ static inline int usbg_get_dec(const char *path, const char *name,
+ }
+
+ static inline int usbg_set_dec(const char *path, const char *name,
+- const char *attr, void *val)
++ const char *attr, const void *val)
+ {
+ return usbg_write_dec(path, name, attr, *((int *)val));
+ }
+@@ -343,7 +343,7 @@ static inline int usbg_get_bool(const char *path, const char *name,
+ }
+
+ static inline int usbg_set_bool(const char *path, const char *name,
+- const char *attr, void *val)
++ const char *attr, const void *val)
+ {
+ return usbg_write_bool(path, name, attr, *((bool *)val));
+ }
+@@ -355,7 +355,7 @@ static inline int usbg_get_string(const char *path, const char *name,
+ }
+
+ static inline int usbg_set_string(const char *path, const char *name,
+- const char *attr, void *val)
++ const char *attr, const void *val)
+ {
+ return usbg_write_string(path, name, attr, *(char **)val);
+ }
+@@ -364,7 +364,7 @@ int usbg_get_ether_addr(const char *path, const char *name, const char *attr,
+ void *val);
+
+ int usbg_set_ether_addr(const char *path, const char *name, const char *attr,
+- void *val);
++ const void *val);
+
+ int usbg_get_dev(const char *path, const char *name, const char *attr,
+ void *val);
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 634209f..ac97bc8 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -7,6 +7,6 @@ else
+ libusbgx_la_SOURCES += usbg_schemes_none.c
+ endif
+ libusbgx_la_LDFLAGS = $(LIBCONFIG_LIBS)
+-libusbgx_la_LDFLAGS += -version-info 2:0:0
++libusbgx_la_LDFLAGS += -version-info 3:0:0
+ libusbgx_la_CFLAGS = $(LIBCONFIG_CFLAGS)
+ AM_CPPFLAGS=-I$(top_srcdir)/include/ -I$(top_builddir)/include/usbg
+diff --git a/src/function/ether.c b/src/function/ether.c
+index ab91af9..d7dcd5d 100644
+--- a/src/function/ether.c
++++ b/src/function/ether.c
+@@ -124,7 +124,7 @@ static int ether_libconfig_import(struct usbg_function *f,
+ if (ret < 0)
+ break;
+
+- ret = usbg_f_net_set_attr_val(nf, i, val);
++ ret = usbg_f_net_set_attr_val(nf, i, &val);
+ if (ret)
+ break;
+ }
+@@ -258,8 +258,8 @@ int usbg_f_net_set_attrs(usbg_f_net *nf,
+ continue;
+
+ ret = usbg_f_net_set_attr_val(nf, i,
+- *(union usbg_f_net_attr_val *)
+- ((char *)attrs
++ (const union usbg_f_net_attr_val *)
++ ((const char *)attrs
+ + net_attr[i].offset));
+ if (ret)
+ break;
+@@ -277,12 +277,12 @@ int usbg_f_net_get_attr_val(usbg_f_net *nf, enum usbg_f_net_attr attr,
+ }
+
+ int usbg_f_net_set_attr_val(usbg_f_net *nf, enum usbg_f_net_attr attr,
+- union usbg_f_net_attr_val val)
++ const union usbg_f_net_attr_val *val)
+ {
+ return net_attr[attr].ro ?
+ USBG_ERROR_INVALID_PARAM :
+ net_attr[attr].set(nf->func.path, nf->func.name,
+- net_attr[attr].name, &val);
++ net_attr[attr].name, val);
+ }
+
+ int usbg_f_net_get_ifname_s(usbg_f_net *nf, char *buf, int len)
+diff --git a/src/function/hid.c b/src/function/hid.c
+index 4d075cf..895c2c6 100644
+--- a/src/function/hid.c
++++ b/src/function/hid.c
+@@ -69,9 +69,9 @@ static int hid_get_report(const char *path, const char *name, const char *attr,
+ }
+
+ static int hid_set_report(const char *path, const char *name, const char *attr,
+- void *val)
++ const void *val)
+ {
+- struct usbg_f_hid_report_desc *report_desc = val;
++ const struct usbg_f_hid_report_desc *report_desc = val;
+ char *buf = report_desc->desc;
+ int len = report_desc->len;
+ int ret;
+@@ -239,7 +239,7 @@ static int hid_libconfig_import(struct usbg_function *f,
+ if (ret < 0)
+ break;
+
+- ret = usbg_f_hid_set_attr_val(hf, i, val);
++ ret = usbg_f_hid_set_attr_val(hf, i, &val);
+ if (ret)
+ break;
+ }
+@@ -327,7 +327,7 @@ int usbg_f_hid_set_attrs(usbg_f_hid *hf,
+ continue;
+
+ ret = usbg_f_hid_set_attr_val(hf, i,
+- *(union usbg_f_hid_attr_val *)
++ (union usbg_f_hid_attr_val *)
+ ((char *)attrs
+ + hid_attr[i].offset));
+ if (ret)
+@@ -346,11 +346,11 @@ int usbg_f_hid_get_attr_val(usbg_f_hid *hf, enum usbg_f_hid_attr attr,
+ }
+
+ int usbg_f_hid_set_attr_val(usbg_f_hid *hf, enum usbg_f_hid_attr attr,
+- union usbg_f_hid_attr_val val)
++ const union usbg_f_hid_attr_val *val)
+ {
+ return hid_attr[attr].ro ?
+ USBG_ERROR_INVALID_PARAM :
+ hid_attr[attr].set(hf->func.path, hf->func.name,
+- hid_attr[attr].name, &val);
++ hid_attr[attr].name, val);
+ }
+
+diff --git a/src/function/midi.c b/src/function/midi.c
+index 1cedb97..2318b49 100644
+--- a/src/function/midi.c
++++ b/src/function/midi.c
+@@ -100,7 +100,7 @@ static int midi_libconfig_import(struct usbg_function *f,
+ if (ret < 0)
+ break;
+
+- ret = usbg_f_midi_set_attr_val(mf, i, val);
++ ret = usbg_f_midi_set_attr_val(mf, i, &val);
+ if (ret)
+ break;
+ }
+@@ -185,8 +185,8 @@ int usbg_f_midi_set_attrs(usbg_f_midi *mf,
+
+ for (i = USBG_F_MIDI_ATTR_MIN; i < USBG_F_MIDI_ATTR_MAX; ++i) {
+ ret = usbg_f_midi_set_attr_val(mf, i,
+- *(union usbg_f_midi_attr_val *)
+- ((char *)attrs
++ (const union usbg_f_midi_attr_val *)
++ ((const char *)attrs
+ + midi_attr[i].offset));
+ if (ret)
+ break;
+@@ -204,10 +204,10 @@ int usbg_f_midi_get_attr_val(usbg_f_midi *mf, enum usbg_f_midi_attr attr,
+ }
+
+ int usbg_f_midi_set_attr_val(usbg_f_midi *mf, enum usbg_f_midi_attr attr,
+- union usbg_f_midi_attr_val val)
++ const union usbg_f_midi_attr_val *val)
+ {
+ return midi_attr[attr].set(mf->func.path, mf->func.name,
+- midi_attr[attr].name, &val);
++ midi_attr[attr].name, val);
+ }
+
+ int usbg_f_midi_get_id_s(usbg_f_midi *mf, char *buf, int len)
+diff --git a/src/function/ms.c b/src/function/ms.c
+index 519b012..5cdd814 100644
+--- a/src/function/ms.c
++++ b/src/function/ms.c
+@@ -207,7 +207,7 @@ static int ms_import_lun_attrs(struct usbg_f_ms *mf, int lun_id,
+ if (ret < 0)
+ break;
+
+- ret = usbg_f_ms_set_lun_attr_val(mf, lun_id, i, val);
++ ret = usbg_f_ms_set_lun_attr_val(mf, lun_id, i, &val);
+ if (ret)
+ break;
+ }
+@@ -605,8 +605,8 @@ int usbg_f_ms_set_lun_attrs(usbg_f_ms *mf, int lun_id,
+
+ for (i = USBG_F_MS_LUN_ATTR_MIN; i < USBG_F_MS_LUN_ATTR_MAX; ++i) {
+ ret = usbg_f_ms_set_lun_attr_val(mf, lun_id, i,
+- *(union usbg_f_ms_lun_attr_val *)
+- ((char *)lattrs
++ (const union usbg_f_ms_lun_attr_val *)
++ ((const char *)lattrs
+ + ms_lun_attr[i].offset));
+ if (ret)
+ break;
+@@ -633,7 +633,7 @@ int usbg_f_ms_get_lun_attr_val(usbg_f_ms *mf, int lun_id,
+
+ int usbg_f_ms_set_lun_attr_val(usbg_f_ms *mf, int lun_id,
+ enum usbg_f_ms_lun_attr lattr,
+- union usbg_f_ms_lun_attr_val val)
++ const union usbg_f_ms_lun_attr_val *val)
+ {
+ char lpath[USBG_MAX_PATH_LENGTH];
+ int ret;
+@@ -644,7 +644,7 @@ int usbg_f_ms_set_lun_attr_val(usbg_f_ms *mf, int lun_id,
+ return USBG_ERROR_PATH_TOO_LONG;
+
+ return ms_lun_attr[lattr].set(lpath, "",
+- ms_lun_attr[lattr].name, &val);
++ ms_lun_attr[lattr].name, val);
+ }
+
+ int usbg_f_ms_get_lun_file_s(usbg_f_ms *mf, int lun_id,
+diff --git a/src/function/uac2.c b/src/function/uac2.c
+index f2c1a49..38a9b0f 100644
+--- a/src/function/uac2.c
++++ b/src/function/uac2.c
+@@ -89,7 +89,7 @@ static int uac2_libconfig_import(struct usbg_function *f,
+ if (ret < 0)
+ break;
+
+- ret = usbg_f_uac2_set_attr_val(af, i, val);
++ ret = usbg_f_uac2_set_attr_val(af, i, &val);
+ if (ret)
+ break;
+ }
+@@ -174,8 +174,8 @@ int usbg_f_uac2_set_attrs(usbg_f_uac2 *af,
+
+ for (i = USBG_F_UAC2_ATTR_MIN; i < USBG_F_UAC2_ATTR_MAX; ++i) {
+ ret = usbg_f_uac2_set_attr_val(af, i,
+- *(union usbg_f_uac2_attr_val *)
+- ((char *)attrs
++ (const union usbg_f_uac2_attr_val *)
++ ((const char *)attrs
+ + uac2_attr[i].offset));
+ if (ret)
+ break;
+@@ -193,8 +193,8 @@ int usbg_f_uac2_get_attr_val(usbg_f_uac2 *af, enum usbg_f_uac2_attr attr,
+ }
+
+ int usbg_f_uac2_set_attr_val(usbg_f_uac2 *af, enum usbg_f_uac2_attr attr,
+- union usbg_f_uac2_attr_val val)
++ const union usbg_f_uac2_attr_val *val)
+ {
+ return uac2_attr[attr].set(af->func.path, af->func.name,
+- uac2_attr[attr].name, &val);
++ uac2_attr[attr].name, val);
+ }
+diff --git a/src/function/uvc.c b/src/function/uvc.c
+index f39594b..947b94e 100644
+--- a/src/function/uvc.c
++++ b/src/function/uvc.c
+@@ -303,7 +303,7 @@ int usbg_f_uvc_get_config_attr_val(usbg_f_uvc *uvcf, enum usbg_f_uvc_config_attr
+ }
+
+ int usbg_f_uvc_set_config_attr_val(usbg_f_uvc *uvcf, enum usbg_f_uvc_config_attr iattr,
+- union usbg_f_uvc_config_attr_val val)
++ const union usbg_f_uvc_config_attr_val *val)
+ {
+ char ipath[USBG_MAX_PATH_LENGTH];
+ int nmb;
+@@ -314,7 +314,7 @@ int usbg_f_uvc_set_config_attr_val(usbg_f_uvc *uvcf, enum usbg_f_uvc_config_attr
+ return USBG_ERROR_PATH_TOO_LONG;
+
+ return uvc_config_attr[iattr].set(ipath, "",
+- uvc_config_attr[iattr].name, &val);
++ uvc_config_attr[iattr].name, val);
+ }
+
+ int usbg_f_uvc_get_config_attrs(usbg_f_uvc *uvcf, struct usbg_f_uvc_config_attrs *iattrs)
+@@ -341,8 +341,8 @@ int usbg_f_uvc_set_config_attrs(usbg_f_uvc *uvcf, const struct usbg_f_uvc_config
+
+ for (i = USBG_F_UVC_FRAME_ATTR_MIN; i < USBG_F_UVC_FRAME_ATTR_MAX; ++i) {
+ ret = usbg_f_uvc_set_config_attr_val(uvcf, i,
+- *(union usbg_f_uvc_config_attr_val *)
+- ((char *)iattrs
++ (const union usbg_f_uvc_config_attr_val *)
++ ((const char *)iattrs
+ + uvc_config_attr[i].offset));
+ if (ret)
+ break;
+@@ -774,7 +774,7 @@ static int uvc_import_config(struct usbg_f_uvc *uvcf, config_setting_t *root)
+ if (ret < 0)
+ break;
+
+- ret = usbg_f_uvc_set_config_attr_val(uvcf, i, val);
++ ret = usbg_f_uvc_set_config_attr_val(uvcf, i, &val);
+ if (ret)
+ break;
+ }
+diff --git a/src/usbg_common.c b/src/usbg_common.c
+index 5f7f4e5..7234649 100644
+--- a/src/usbg_common.c
++++ b/src/usbg_common.c
+@@ -337,7 +337,7 @@ int usbg_get_ether_addr(const char *path, const char *name,
+ }
+
+ int usbg_set_ether_addr(const char *path, const char *name,
+- const char *attr, void *val)
++ const char *attr, const void *val)
+ {
+ char str_addr[USBG_MAX_STR_LENGTH];
+
+--
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/0001-libusbgx-Add-interface-name-for-NCM-Feature-Descript.patch b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/0001-libusbgx-Add-interface-name-for-NCM-Feature-Descript.patch
new file mode 100644
index 0000000000..cc122c844c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/0001-libusbgx-Add-interface-name-for-NCM-Feature-Descript.patch
@@ -0,0 +1,52 @@
+From 4f3f2ad08e6ca132bd1dd388e02b57223bf4219d Mon Sep 17 00:00:00 2001
+From: Ming Liu <liu.ming50@gmail.com>
+Date: Sun, 11 Dec 2022 14:11:49 +0100
+Subject: [PATCH] libusbgx: Add interface name for NCM Feature Descriptors
+
+In commit: abf422bffca4a4767e7e242c44910dbf5ef7094f
+[
+Author: Stefan Agner <stefan.agner@toradex.com>
+Date: Tue Jan 24 14:22:25 2017 -0800
+
+ libusbgx: Add interface name for Feature Descriptors
+
+ This adds interface name required for "Feature Descriptors". If
+ specified, we can assume that a Feature Descriptor with the
+ interface name of the specified string is understood by the
+ kernel (e.g. interface.rndis).
+]
+
+it only added Feature Descriptors for RNDIS, NCM also needs that, or
+else it could not be recognized by Windows systems.
+
+Add Feature Descriptors interface name for NCM.
+
+Upstream-Status: Submitted [https://github.com/linux-usb-gadgets/libusbgx/pull/73]
+
+Signed-off-by: Ming Liu <liu.ming50@gmail.com>
+---
+ src/function/ether.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/function/ether.c b/src/function/ether.c
+index b1fe1d2..a9eaf33 100644
+--- a/src/function/ether.c
++++ b/src/function/ether.c
+@@ -184,8 +184,14 @@ struct usbg_function_type usbg_f_type_subset = {
+ ETHER_FUNCTION_OPTS
+ };
+
++static char *ncm_os_desc_ifnames[] = {
++ "ncm",
++ NULL
++};
++
+ struct usbg_function_type usbg_f_type_ncm = {
+ .name = "ncm",
++ .os_desc_iname = ncm_os_desc_ifnames,
+ ETHER_FUNCTION_OPTS
+ };
+
+--
+2.25.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start
index 9e22671a9e..e80cb2c340 100755
--- a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start
+++ b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/gadget-start
@@ -6,6 +6,10 @@ for i in $IMPORT_SCHEMAS; do
/usr/bin/gadget-import "$i" /etc/usbgx/"$i".schema
done
+for script in $(find -L /etc/usbgx.d -type f -exec test -e {} \; -print 2>/dev/null); do
+ $script
+done
+
for i in $ENABLED_SCHEMAS; do
configured_udc=$(eval 'echo ${UDC_FOR_SCHEMA_'"$i"'}')
if [ -n "${configured_udc}" ] && [ -e "/sys/class/udc/${configured_udc}" ]; then
diff --git a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service
index 74541d3c2d..ba92f1ab83 100644
--- a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service
+++ b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx/usbgx.service
@@ -1,9 +1,11 @@
[Unit]
Description=Load USB gadget schemas
+Requires=sys-kernel-config.mount
+After=sys-kernel-config.mount
[Service]
-Type=oneshot
+Type=simple
ExecStart=/usr/bin/gadget-start
[Install]
-WantedBy=multi-user.target
+WantedBy=usb-gadget.target
diff --git a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
index 11e88935ef..7998b0c155 100644
--- a/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libusbgx/libusbgx_git.bb
@@ -6,10 +6,12 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
inherit autotools pkgconfig systemd update-rc.d update-alternatives
PV = "0.2.0+git${SRCPV}"
-SRCREV = "45c14ef4d5d7ced0fbf984208de44ced6d5ed898"
+SRCREV = "721e3a1cbd7e2b6361bb439d3959e7403e4f0092"
SRCBRANCH = "master"
SRC_URI = " \
git://github.com/libusbgx/libusbgx.git;branch=${SRCBRANCH};protocol=https \
+ file://0001-libusbgx-Add-interface-name-for-NCM-Feature-Descript.patch \
+ file://0001-fix-stack-buffer-overflow-in-usbg_f_foo_attr_val-pro.patch \
file://gadget-start \
file://usbgx.initd \
file://usbgx.service \
@@ -35,7 +37,9 @@ INITSCRIPT_PARAMS = "defaults"
INHIBIT_UPDATERCD_BBCLASS = "${@bb.utils.contains('PACKAGECONFIG', 'examples', '1', '0', d)}"
do_install:append() {
- install -Dm 0755 ${WORKDIR}/gadget-start ${D}/${bindir}/gadget-start
+ install -Dm 0755 ${WORKDIR}/gadget-start ${D}${bindir}/gadget-start
+ sed -i -e 's,/usr/bin,${bindir},g' -e 's,/etc,${sysconfdir},g' ${D}${bindir}/gadget-start
+
if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
install -Dm 0644 ${WORKDIR}/usbgx.service ${D}${systemd_system_unitdir}/usbgx.service
fi
diff --git a/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb b/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.4.bb
index 8e6d455174..729857eb62 100644
--- a/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.3.bb
+++ b/meta-openembedded/meta-oe/recipes-support/log4cpp/log4cpp_1.1.4.bb
@@ -6,8 +6,7 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=7fbc338309ac38fefcd64b04bb903e34"
SRC_URI = "http://downloads.sourceforge.net/${BPN}/${BP}.tar.gz \
file://fix-pc.patch;striplevel=2 \
"
-SRC_URI[md5sum] = "b9e2cee932da987212f2c74b767b4d8b"
-SRC_URI[sha256sum] = "2cbbea55a5d6895c9f0116a9a9ce3afb86df383cd05c9d6c1a4238e5e5c8f51d"
+SRC_URI[sha256sum] = "696113659e426540625274a8b251052cc04306d8ee5c42a0c7639f39ca90c9d6"
S = "${WORKDIR}/${BPN}"
diff --git a/meta-openembedded/meta-oe/recipes-support/mg/mg_20230406.bb b/meta-openembedded/meta-oe/recipes-support/mg/mg_20230501.bb
index 8d61b7f7bc..ee00003977 100644
--- a/meta-openembedded/meta-oe/recipes-support/mg/mg_20230406.bb
+++ b/meta-openembedded/meta-oe/recipes-support/mg/mg_20230501.bb
@@ -1,11 +1,11 @@
SUMMARY = "A portable version of the mg maintained by the OpenBSD team"
HOMEPAGE = "http://homepage.boetes.org/software/mg/"
LICENSE = "PD"
-LIC_FILES_CHKSUM = "file://version.c;md5=36d8ace99e6cd003132975a9266d3f77"
+LIC_FILES_CHKSUM = "file://version.c;md5=a8e0b53d89d277bf3b40878ac568bedd"
DEPENDS = "ncurses libbsd"
SECTION = "console/editors"
-SRCREV = "4e6d2de9582cfe7f0977be4ce9532e3d33c5be15"
+SRCREV = "f21c2ba36772ffa68d9cfa55305e427d37903b4a"
SRC_URI = "git://github.com/hboetes/mg;branch=master;protocol=https \
file://0001-fileio-Include-sys-param.h-for-MAXNAMLEN.patch \
file://0002-fileio-Define-DEFFILEMODE-if-platform-is-missing.patch \
diff --git a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.04.0.bb b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.04.0.bb
index 19bdce4d86..099be58a42 100644
--- a/meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.04.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/poppler/poppler_23.04.0.bb
@@ -10,7 +10,7 @@ SRC_URI = "http://poppler.freedesktop.org/${BP}.tar.xz \
"
SRC_URI[sha256sum] = "b6d893dc7dcd4138b9e9df59a13c59695e50e80dc5c2cacee0674670693951a1"
-DEPENDS = "fontconfig zlib cairo lcms glib-2.0"
+DEPENDS = "fontconfig zlib cairo lcms glib-2.0 glib-2.0-native"
inherit cmake pkgconfig gobject-introspection
diff --git a/meta-openembedded/meta-oe/recipes-support/psutils/psutils_2.10.bb b/meta-openembedded/meta-oe/recipes-support/psutils/psutils_2.10.bb
new file mode 100644
index 0000000000..1f1894a5f2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/psutils/psutils_2.10.bb
@@ -0,0 +1,24 @@
+LICENSE = "GPL-3.0-or-later"
+LIC_FILES_CHKSUM = "file://COPYING;md5=87212b5f1ae096371049a12f80034f32"
+
+SRC_URI = "https://github.com/rrthomas/psutils/releases/download/v${PV}/psutils-${PV}.tar.gz"
+SRC_URI[sha256sum] = "6f8339fd5322df5c782bfb355d9f89e513353220fca0700a5a28775404d7e98b"
+
+inherit perlnative autotools
+
+export PERL="/usr/bin/env perl"
+
+DEPENDS += "libpaper-native"
+
+do_install:append() {
+ sed -i -e 's|${STAGING_BINDIR_NATIVE}/perl-native/|/usr/bin/env |g' ${D}${bindir}/pstops
+ for f in psbook psresize psnup psselect; do
+ grep -v '${B}' ${D}${bindir}/$f > ${D}${bindir}/$f.temp
+ install -m 0755 ${D}${bindir}/$f.temp ${D}${bindir}/$f
+ rm -f ${D}${bindir}/$f.temp
+ done
+}
+
+BBCLASSEXTEND += "native"
+# /usr/bin/pstops contained in package psutils requires perl
+RDEPENDS:${PN} += "perl"
diff --git a/meta-openembedded/meta-oe/recipes-support/rdfind/rdfind/0001-configure.ac-fix-C-11-support-check.patch b/meta-openembedded/meta-oe/recipes-support/rdfind/rdfind/0001-configure.ac-fix-C-11-support-check.patch
new file mode 100644
index 0000000000..815939b82d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/rdfind/rdfind/0001-configure.ac-fix-C-11-support-check.patch
@@ -0,0 +1,37 @@
+From 9070bc210b2ecff641b73e4ade30040c1461969c Mon Sep 17 00:00:00 2001
+From: Martin Jansa <Martin.Jansa@gmail.com>
+Date: Wed, 3 May 2023 18:31:57 +0200
+Subject: [PATCH] configure.ac: fix C++11 support check
+
+* with -Werror=return-type in CFLAGS this test fails with:
+
+ configure:4290: checking for C++11 support or better
+ configure:4303: x86_64-webos-linux-g++ -m64 -march=core2 -mtune=core2 -msse3 -mfpmath=sse -fstack-protector-strong -O2 -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security -Werror=return-type --sysroot=/OE/lge/build/webos/mickledore/BUILD/work/qemux86_64-webos-linux/rdfind/1.5.0-r0/recipe-sysroot -c -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map=/OE/lge/build/webos/mickledore/BUILD/work/qemux86_64-webos-linux/rdfind/1.5.0-r0/rdfind-1.5.0=/usr/src/debug/rdfind/1.5.0-r0 -fdebug-prefix-map=/OE/lge/build/webos/mickledore/BUILD/work/qemux86_64-webos-linux/rdfind/1.5.0-r0/rdfind-1.5.0=/usr/src/debug/rdfind/1.5.0-r0 -fmacro-prefix-map=/OE/lge/build/webos/mickledore/BUILD/work/qemux86_64-webos-linux/rdfind/1.5.0-r0/build=/usr/src/debug/rdfind/1.5.0-r0 -fdebug-prefix-map=/OE/lge/build/webos/mickledore/BUILD/work/qemux86_64-webos-linux/rdfind/1.5.0-r0/build=/usr/src/debug/rdfind/1.5.0-r0 -fdebug-prefix-map=/OE/lge/build/webos/mickledore/BUILD/work/qemux86_64-webos-linux/rdfind/1.5.0-r0/recipe-sysroot= -fmacro-prefix-map=/OE/lge/build/webos/mickledore/BUILD/work/qemux86_64-webos-linux/rdfind/1.5.0-r0/recipe-sysroot= -fdebug-prefix-map=/OE/lge/build/webos/mickledore/BUILD/work/qemux86_64-webos-linux/rdfind/1.5.0-r0/recipe-sysroot-native= -fvisibility-inlines-hidden conftest.cpp >&5
+ conftest.cpp: In function 'int f()':
+ conftest.cpp:22:20: error: no return statement in function returning non-void [-Werror=return-type]
+ 22 | int f() { auto a=1;} | ^
+ cc1plus: some warnings being treated as errors
+ ...
+ configure:4308: error: no c++11 support, please set CXXFLAGS properly
+
+* fix the test to pass
+
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+Upstream-Status: Submitted [https://github.com/pauldreik/rdfind/pull/132]
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index be1b2fd..9c3513c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -64,7 +64,7 @@ AC_SYS_LARGEFILE
+
+ dnl make sure we have c++11 or better,
+ AC_MSG_CHECKING([for C++11 support or better])
+-AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int f() { auto a=1;}])],
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int f() { auto a=1;return a;}])],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_ERROR([no c++11 support, please set CXXFLAGS properly])])
+
diff --git a/meta-openembedded/meta-oe/recipes-support/rdfind/rdfind_1.5.0.bb b/meta-openembedded/meta-oe/recipes-support/rdfind/rdfind_1.5.0.bb
index 8f2c5e8852..dab66c3827 100644
--- a/meta-openembedded/meta-oe/recipes-support/rdfind/rdfind_1.5.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/rdfind/rdfind_1.5.0.bb
@@ -8,6 +8,7 @@ DEPENDS = "nettle autoconf-archive"
SRC_URI = "https://rdfind.pauldreik.se/${BP}.tar.gz \
file://0001-configure-Fix-check-for-AC_CHECK_LIB.patch \
file://0001-include-standard-headers-limits-and-cstdint.patch \
+ file://0001-configure.ac-fix-C-11-support-check.patch \
"
SRC_URI[sha256sum] = "4150ed1256f7b12b928c65113c485761552b9496c433778aac3f9afc3e767080"
diff --git a/meta-openembedded/meta-oe/recipes-support/serial/serial/Findcatkin.cmake b/meta-openembedded/meta-oe/recipes-support/serial/serial/Findcatkin.cmake
new file mode 100644
index 0000000000..2f93564be3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/serial/serial/Findcatkin.cmake
@@ -0,0 +1,5 @@
+# Work-around for https://github.com/wjwwood/serial/issues/135
+
+function(catkin_package)
+endfunction()
+
diff --git a/meta-openembedded/meta-oe/recipes-support/serial/serial_1.2.1.bb b/meta-openembedded/meta-oe/recipes-support/serial/serial_1.2.1.bb
new file mode 100644
index 0000000000..8c1fb063b3
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/serial/serial_1.2.1.bb
@@ -0,0 +1,28 @@
+SUMMARY = "Cross-platform library for interfacing with rs-232 serial like ports"
+HOMEPAGE = "http://wjwwood.io/serial/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://README.md;beginline=53;endline=62;md5=049c68d559533f90250404746e6a1045"
+
+SRC_URI = " \
+ git://github.com/wjwwood/${BPN}.git;protocol=https;branch=main \
+ file://Findcatkin.cmake \
+"
+SRCREV = "10ac4e1c25c2cda1dc0a32a8e12b87fd89f3bb4f"
+SRC_URI[sha256sum] = "c8cd235dda2ef7d977ba06dfcb35c35e42f45cfd9149ba3ad257756123d8ff96"
+
+S = "${WORKDIR}/git"
+
+inherit cmake
+
+# Work-around for https://github.com/wjwwood/serial/issues/135
+EXTRA_OECMAKE = " \
+ -DCMAKE_MODULE_PATH=${WORKDIR} \
+ -DCATKIN_PACKAGE_LIB_DESTINATION=${libdir} \
+ -DCATKIN_PACKAGE_BIN_DESTINATION=${bindir} \
+ -DCATKIN_GLOBAL_INCLUDE_DESTINATION=${includedir} \
+ -DCATKIN_ENABLE_TESTING=OFF \
+"
+
+# Do not depend on the main package since it will be empty
+RDEPENDS:${PN}-dev = ""
+