summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-oe/recipes-support
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2023-05-19 18:14:02 +0300
committerAndrew Geissler <geissonator@yahoo.com>2023-05-19 21:39:02 +0300
commit3eeda90d141cf2db6541a740e22e20be04504bb5 (patch)
tree09891347148b8e07eeedd6ce6a6a4566f4385d35 /meta-openembedded/meta-oe/recipes-support
parentdc9d614711d1f205166fa42a0af05054fe06b26d (diff)
downloadopenbmc-3eeda90d141cf2db6541a740e22e20be04504bb5.tar.xz
subtree updates
meta-openembedded: f3cdc9d7ee..0474e0b870: Alexander Amelkin (1): ipmitool: Update links Bhargav Das (1): python3-libevdev: Add recipe for python libevdev module. Changqing Li (1): redis: upgrade 6.2.11 -> 6.2.12 Chen Qi (1): frr: add CVE_PRODUCT Diego Dassie (2): paho-mqtt-c: Disable building tests paho-mqtt-c: Improve performance Fabio Estevam (1): lvgl: lvgl-demo-fb: Inherit features_check Johannes Kauffmann (2): open62541: allow overriding encryption providers open62541: disable warnings as errors Jun Nie (3): libcbor: Add initial support python3-pefile: Add initial support python3-uswid: Add initial support Khem Raj (27): gitpkgv: Fix python deprecation warning python3-pyzstd: Disable LTO on clang+arm libftdi: Remove sysroot paths from .cmake files libencode-perl: Remove buildpaths from generated .exh files libcdio: Drop need for LIBCDIO_SOURCE_PATH enca: Remove buildpaths from target scripts libirecovery: Add missing build dependency on readline usbmuxd: Remove recipe for 1.1.1 usbmuxd: Updgrade to latest on master branch packagegroup-meta-oe: Add kpatch for glibc + x86_64 only packagegroup-meta-oe: Remove minicoredumper-ptest for musl libimobiledevice: Delete recipe for 1.3.0 libimobiledevice: Update to latest tip libimobiledevice: Fix build with clang idevicerestore: Update to latest on master branch libpaper: Add recipe psutils: Add recipe nodejs: Upgrade to 18.16.0 python3-pylint: Fix missing deps for ptests etcd: Inherit missing features_check fftw: Remove hardcoded sysroot into binaries lmdb: Pass CFLAGS to Makefile squid: Remove buildpaths from generated binaries libiio: Do not generate lineinfo in lex/yacc generated files php: Remove buildpaths from scripts and generated headers uw-imap: Pass CFLAGS from environment libmad: Add a patch to pass cflags to build Marcel Ziswiler (1): libusbgx: fix device hot-plug use case Marek Vasut (7): lvgl: Upgrade lvgl to 8.3.7 and lv-driver to 8.3.0 lvgl: Activate custom tick implementation lvgl: Add configurable color depth, default to 32bpp lvgl: Support both fbdev and wayland backends lvgl: Update lvgl-demo-fb to 8.3.0 lvgl: Upgrade dialog-lvgl to next/main version lvgl: Add dependency on fbdev into lvgl-demo-fb DISTRO_FEATURES Markus Volk (12): xdg-desktop-portal-wlr: update 0.6.0 -> 0.7.0 python3-pillow: add libxcb to RDEPENDS for x11 adw-gtk3: update 4.5 -> 4.6 paprefs: add recipe imaagemagick: update 7.1.1-5 -> 7.1.1-8 fuse3: update 3.12.0 -> 3.14.1 gnome-software: update 44.0 -> 44.1 gjs: update 1.75.1 -> 1.76.0 evince: update 44.0 -> 44.1 gdm: update 44.0 -> 44.1 xdg-desktop-portal-gnome: update 44.0 -> 44.1 libcamera: update 0.0.4 -> 0.0.5 Martin Jansa (18): glfw: respect DISTRO_FEATURES when enabling x11 in default PACKAGECONFIG and return it to REQUIRED_DISTRO_FEATURES libreport: add dependency on libarchive libxmlb: add missing dependency on glib-2.0 and xz geoclue: fix build without gobject-introspection-data appstream: fix build without gobject-introspection-data ostree: fix build without gobject-introspection-data rdfind: fix build with -Werror=return-type spice-gtk: respect gobject-introspection-data cpulimit: fix do_install with multilib libnfs: fix installed-vs-shipped issues with multilib btrfsmaintenance: install to ${datadir}/${BPN} libtomcrypt: pass LIBPATH to fix installed-vs-shipped with multilib nanopb: fix installed-vs-shipped with multilib nv-codec-headers: fix installed-vs-shipped with multilib zfs: fix installation paths for multilib poppler: add dependency on glib-2.0-native paprefs: add x11 to REQUIRED_DISTRO_FEATURES etcd: don't hardcode /usr/lib in do_install Matija Tudan (1): serial: add recipe for version 1.2.1 Ming Liu (4): libusbgx: uprev to the latest commit libusbgx: fix some systemd service conditions libusbgx: drop hard-coded /usr/bin,/etc libusbgx: check scripts in /etc/usbgx.d Mingli Yu (1): minicoredumper: correct the sysvinit service file attribute Petr Gotthard (4): strongswan: add PACKAGECONFIG for the NetworkManager module openfortivpn: add new recipe networkmanager-fortisslvpn: add new recipe networkmanager-openconnect: add new recipe Ross Burton (6): v4l-utils: do out-of-tree builds python3-ninja: simplify recipe libisofs: add new recipe libburn: move to meta-filesystems libisoburn: add new recipe xorriso: remove obsolete recipe Trevor Gamblin (9): python3-pytest-mock: Add recipe python3-tomlkit: Add recipe ptest-packagelists-meta-python: Add new tests python3-platformdirs: Add recipe python3-pylint: upgrade 2.14.5 -> 2.17.3 python3-pylint: add ptest ptest-packagelists-meta-python: Add new tests python3-pylint: upgrade 2.17.3 -> 2.17.4 python3-pylint: omit failing pickle test Vasileios Anagnostopoulos (1): asio: update to 1.28.0 Wang Mingyu (74): abseil-cpp: upgrade 20230125.2 -> 20230125.3 appstream: upgrade 0.16.1 -> 0.16.2 babl: upgrade 0.1.104 -> 0.1.106 audit: upgrade 3.1 -> 3.1.1 boost-sml: upgrade 1.1.6 -> 1.1.8 ctags: upgrade 6.0.20230416.0 -> 6.0.20230430.0 eog: upgrade 44.0 -> 44.1 gspell: upgrade 1.12.0 -> 1.12.1 etcd-cpp-apiv3: upgrade 0.14.2 -> 0.14.3 googlebenchmark: upgrade 1.7.1 -> 1.8.0 hwdata: upgrade 0.369 -> 0.370 libbpf: upgrade 1.1.0 -> 1.2.0 iozone3: upgrade 492 -> 506 libadwaita: upgrade 1.3.1 -> 1.3.2 libcgi-perl: upgrade 4.56 -> 4.57 libjs-jquery-cookie: upgrade 3.0.1 -> 3.0.5 libmodule-build-tiny-perl: upgrade 0.043 -> 0.045 log4cpp: upgrade 1.1.3 -> 1.1.4 nautilus: upgrade 44.0 -> 44.1 makedumpfile: upgrade 1.7.2 -> 1.7.3 mg: upgrade 20230406 -> 20230501 python3-yarl: upgrade 1.8.2 -> 1.9.2 python3-alembic: upgrade 1.10.3 -> 1.10.4 python3-cassandra-driver: upgrade 3.26.0 -> 3.27.0 python3-can: upgrade 4.1.0 -> 4.2.0 python3-astroid: upgrade 2.15.3 -> 2.15.4 python3-argcomplete: upgrade 3.0.5 -> 3.0.8 python3-coverage: upgrade 7.2.3 -> 7.2.5 python3-imageio: upgrade 2.27.0 -> 2.28.1 python3-gast: upgrade 0.5.3 -> 0.5.4 python3-langtable: upgrade 0.0.61 -> 0.0.62 python3-flask-socketio: upgrade 5.3.3 -> 5.3.4 python3-elementpath: upgrade 4.1.1 -> 4.1.2 python3-nocasedict: upgrade 2.0.0 -> 2.0.1 python3-protobuf: upgrade 4.22.3 -> 4.22.4 python3-pint: upgrade 0.20.1 -> 0.21 python3-pulsectl: upgrade 22.3.2 -> 23.5.0 python3-pika: upgrade 1.3.1 -> 1.3.2 python3-pymisp: upgrade 2.4.170.1 -> 2.4.170.2 python3-pyudev: upgrade 0.24.0 -> 0.24.1 python3-regex: upgrade 2023.3.23 -> 2023.5.5 python3-rich: upgrade 13.3.4 -> 13.3.5 python3-smpplib: upgrade 2.2.2 -> 2.2.3 python3-sentry-sdk: upgrade 1.20.0 -> 1.22.1 python3-sqlalchemy: upgrade 2.0.9 -> 2.0.12 python3-termcolor: upgrade 2.2.0 -> 2.3.0 python3-twitter: upgrade 4.13.0 -> 4.14.0 python3-web3: upgrade 6.2.0 -> 6.3.0 tracker: upgrade 3.5.0 -> 3.5.1 python3-zeroconf: upgrade 0.56.0 -> 0.62.0 python3-xstatic: upgrade 1.0.2 -> 1.0.3 python3-requests-toolbelt: upgrade 0.10.1 -> 1.0.0 libimobiledevice-glue: SRCREV bump d2ff796..114098d libplist: upgrade 2.2.0 -> 2.3.0 ctags: upgrade 6.0.20230430.0 -> 6.0.20230507.0 libnet-dns-perl: upgrade 1.37 -> 1.38 libdivecomputer: upgrade 0.7.0 -> 0.8.0 python3-platformdirs: upgrade 3.5.0 -> 3.5.1 python3-sympy: upgrade 1.11.1 -> 1.12 python3-google-auth: upgrade 2.17.3 -> 2.18.0 php: upgrade 8.2.5 -> 8.2.6 postgresql: upgrade 15.2 -> 15.3 python3-protobuf: upgrade 4.22.4 -> 4.23.0 python3-pulsectl: upgrade 23.5.0 -> 23.5.1 python3-pymisp: upgrade 2.4.170.2 -> 2.4.171 python3-pyjwt: upgrade 2.6.0 -> 2.7.0 python3-redis: upgrade 4.5.4 -> 4.5.5 python3-pytest-xdist: upgrade 3.2.1 -> 3.3.0 python3-sentry-sdk: upgrade 1.22.1 -> 1.22.2 python3-typeguard: upgrade 3.0.2 -> 4.0.0 python3-sqlalchemy: upgrade 2.0.12 -> 2.0.13 python3-websockets: upgrade 11.0.2 -> 11.0.3 xterm: upgrade 379 -> 380 wavpack: upgrade 4.60.1 -> 5.1.0 Xiangyu Chen (1): pahole: fix native package build error ojayanth (2): etcd: systemd unit support to start existing etcd node etcd: add systemd unit support for clustering poky: 76cec94fad..35e5d29a7d: Alexander Kanavin (1): gcr: consider all versions, not only x.even.y Andrew Jeffery (1): Revert "ipk: Decode byte data to string in manifest handling" Anuj Mittal (2): gstreamer1.0: upgrade 1.22.0 -> 1.22.2 vte: upgrade 0.72.0 -> 0.72.1 Chen Qi (1): sqlite3: update CVE_PRODUCT Frederic Martinsons (1): ptest-cargo.bbclass: add the possibility to define test arguments Khem Raj (3): musl: Update to 1.2.4 release cpio: Run ptests under ptest user python3-requests: Upgrade to 2.30.0 Luca Ceresoli (2): ref-manual: classes: kernel: remove incorrect sentence opening ref-manual: classes: kernel: document automatic defconfig usage Martin Jansa (1): populate_sdk_base.bbclass: respect MLPREFIX for ptest-pkgs's ptest-runner Michael Opdenacker (2): migration-guides: start of 4.3 migration and release notes ref-manual: document FIT_ADDRESS_CELLS Paul Gortmaker (1): yocto-bsp: drop MIPS Edgerouter support Qiu Tingting (1): e2fsprogs: fix ptest bug for second running Richard Purdie (5): migration/release-notes-4.3: Add extra notes qemu: Update ppc instruction fix to match revised upstream version glib-networking: Add test retry to avoid failures glib-networking: Correct glib error handling in test patch qemu: Further updates to the ppc patch after upstream discussion Ross Burton (6): gdb: fix crashes when debugging threads with Arm Pointer Authentication enabled Revert "ffmpeg: move ffmpeg config into packageconfig" ffmpeg: add v4l2 PACKAGECONFIG python3: use libedit instead of readline python3: clean up PACKAGECONFIG python3: use system expat Tim Orling (2): python3-urllib3: upgrade 1.26.15 -> 2.0.2 python3-attrs: upgrade 22.2.0 -> 23.1.0 Trevor Gamblin (3): python3-trove-classifiers: Add recipe python3-hatchling: upgrade 1.13.0 -> 1.14.1 python3-calver: Add recipe Zang Ruochen (1): elfutils: upgrade 0.188 -> 0.189 nikhil (1): tiff: Remove unused patch from tiff Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: I5304cb7a7ca3c09a110f52fa5b2844f5f00f4851
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 = ""
+