master: subtree updates oct 12 2023

poky: e444d2bed0..8d0ba08aa6:
  Alassane Yattara (1):
        bitbake: toaster: Monitoring - implement Django logging system

  Alexander Kanavin (1):
        nghttp2: update 1.56.0 -> 1.57.0

  Alexis Lothoré (2):
        oeqa/utils/gitarchive: fix tag pattern searching
        oeqa/utils/gitarchive: ensure tag matches regex before getting its fields

  Andreas Cord-Landwehr (1):
        wayland: consider pkgconfig sysroot for pkgdatadir

  André Draszik (1):
        wic: fix a typo in help output

  Archana Polampalli (1):
        gstreamer: upgrade 1.22.5 -> 1.22.6

  Bruce Ashfield (1):
        linux-yocto/6.5: integrate fixes for sanity issues

  Chris Laplante (1):
        recipetool/create_buildsys_python: use importlib instead of imp

  Daniel McGregor (2):
        meson: upgrade 1.2.1 -> 1.2.2
        libtirpc: conditionally enable gssapi

  Daniel Semkowicz (3):
        uboot-extlinux-config.bbclass: Remove repeated space character
        uboot-extlinux-config.bbclass: Uppercase "menu title" entry
        uboot-extlinux-config.bbclass: Add menu title configuration

  Fabio Estevam (1):
        u-boot: Upgrade to 2023.10

  Fahad Arslan (1):
        linux-firmware: create separate package for cirrus and cnm firmwares

  Jermain Horsman (1):
        scripts/oe-setup-layers: Update how to determine if directory is git repo

  Jose Quaresma (4):
        curl: 8.3.0 -> 8.4.0
        go: update 1.20.7 -> 1.20.8
        go: update 1.20.8 -> 1.20.9
        go: update 1.20.9 -> 1.20.10

  Joshua Watt (6):
        bitbake: hashserv: Add remove API
        bitbake: bitbake-hashclient: Add remove subcommand
        bitbake: hashserv: Extend get_outhash API to optionally include unihash
        bitbake: hashserv: Add API to clean unused entries
        bitbake: bitbake-hashclient: Add clean-unused subcommand
        overview: Add note about non-reproducibility side effects

  Julien Stephan (4):
        bitbake.conf: include bblock.conf
        sstatesig: add a new info level for SIGGEN_LOCKEDSIGS_TASKSIG_CHECK
        scripts/bblock: add a script to lock/unlock recipes
        oeqa/selftest/bblock: add self test for bblock tool

  Khem Raj (1):
        python3-docutils: Rename utilities to their canonical names

  Lee Chee Yang (1):
        migration-guides: add release notes for 4.0.13

  Marcus Flyckt (1):
        devtool/upgrade: check all git config locations

  Markus Volk (2):
        mesa: Upgrade 23.1.8 -> 23.2.1
        gtk: Upgrade 4.12.1 -> 4.12.3

  Marlon Rodriguez Garcia (1):
        bitbake: toaster: update selenium version and code syntax

  Martijn de Gouw (1):
        busybox: Set PATH in syslog initscript

  Michael Opdenacker (1):
        ref-manual: releases.svg: Scarthgap is now version 5.0

  Mikko Rapeli (2):
        qemurunner.py: detect login prompt without without utf-8 conversion
        openssh: drop sudo from ptest dependencies

  Peter Kjellerstedt (4):
        externalsrc.bbclass: Support specifying patterns in CONFIGURE_FILES
        autotools.bbclass: Add *.m4 to CONFIGURE_FILES
        packages.bbclass: Correct the check for conflicts with renamed packages
        cmake.bbclass: Add *.cmake to CONFIGURE_FILES

  Quentin Schulz (1):
        uboot-extlinux-config.bbclass: fix missed override syntax migration

  Randy MacLeod (1):
        strace: skip so_peerpidfd test

  Rasmus Villemoes (1):
        openssh: update sshd_check_keys script to make use of 'sshd -G'

  Richard Purdie (14):
        wic: Add console parameters to qemux86 canned-wks
        qemurunner: Skip conversion from/to binary data for logfile
        qemurunner: Use backslashreplace with utf8 to make invalid characters clear
        qemurunner: Log the second serial console as well as the first
        qemurunner: Show both the login console log and all logging upon failure
        oeqa/concurrencytest: Remove invalid buffering option
        bitbake: selftest/fetch: Ensure top level directory timestamp doesn't break test
        cryptodev: Update to latest git for 6.5 kernel fixes
        qemux86/qemuarm: Drop kernel version overrides
        oeqa/qemurunner: Add newlines serial workaround
        runqemu/qemurunner: Use nodelay with tcp serial connections
        oeqa/qemurunner: Add extra logging when console doesn't appear
        poky/poky-tiny: Switch to the 6.5 kernel
        oeqa/qemurunner: Ensure we retry after BrokenPipeError

  Ross Burton (12):
        python3-numpy: remove obsolete reproducible workaround
        libx11: upgrade to 1.8.7
        libxpm: upgrade to 3.5.17
        qemuboot: reduce default size of software I/O translation buffer
        sysvinit-initab: rewrite loop to generate inittab
        ttyrun: add new recipe
        sysvinit-inittab: use ttyrun to run getty only if the terminal exists
        busybox: use ttyrun to run getty only if the terminal exists
        oeqa/selftest: don't skip test_read_only_image on qemuarm64
        meta/conf/machine: remove SERIAL_CONSOLES_CHECK
        busybox-inittab: fix console handling
        oeqa/runtime/_qemutiny: rewrite test to be functional

  Sundeep KOKKONDA (1):
        rust: reproducibility issue fix

  Trevor Gamblin (1):
        dev-manual: fix testimage usage instructions

  Yogita Urade (1):
        qemu: fix CVE-2023-42467

meta-openembedded: ea42cec2ec..62039a2c33:
  Ahmad Fatoum (1):
        signing.bbclass: don't export OPENSSL environment variables globally

  Beniamin Sandu (1):
        libnet: upgrade version v1.2 -> v1.3

  Benjamin Bara (1):
        libvpx: upgrade 1.13.0 -> 1.13.1

  Chen Qi (1):
        libblockdev: fix QA error in case of multilib

  Christophe Vu-Brugier (3):
        libnvme: upgrade 1.5 -> 1.6
        nvme-cli: upgrade 2.5 -> 2.6
        libnvme: apply patch already upstream to fix build with musl

  Clément Péron (1):
        Revert "protobuf: stage protoc binary to sysroot"

  Daniel Klauer (1):
        graphviz: Fix build to not use $prefix as search dir

  Denys Zagorui (1):
        libbpf: add arm, powerpc and mips64 to COMPATIBLE_HOST

  Fabien Thomas (8):
        meta-filesystems/layer.conf : Add meta-networking dependency
        Add static-passwd and static-group files
        Add static-passwd and static-group files
        Add static-passwd and static-group files
        Add static-passwd and static-group files
        Add static-passwd and static-group files
        Add static-passwd and static-group files
        Add static-passwd and static-group files

  Gianfranco Costamagna (6):
        dlt-daemon: Make it work without systemd
        dlt-daemon: Enable experimental coredumphandler feature
        dlt-daemon: update patch 544.patch
        dlt-daemon: do not disable dlt-system build when systemd is set to off
        dlt-daemon: Add an additional fix for non-systemd builds
        cpprestsdk: fix typo in comment, tag is actually 2.0.18

  Jeffrey Pautler (1):
        bolt: change product name used for CVE checking

  Joe Slater (1):
        nginx: add configure option

  Johannes Kauffmann (1):
        open62541: add Backport status and link to patch

  Jörg Sommer (1):
        collectd: Use https in SRC_URI, add HOMEPAGE

  Khem Raj (16):
        python3-pyroute2: Add missing dependency on sqlite3 for ptests
        python3-pylint: Upgrade to 3.0.0
        python3-lz4: use python3-unittest-automake-output
        minicoredumber: Fix ptest reporting
        images: Inherit from core-image-base
        images: Delete layer specific base images
        images: Rename <layer>-image to <layer>-image-all
        images: Rename ptest images to rhyme with oe-core ptest images
        ptest-image: Switch to using core-image-minimal
        stressapptest: Upgrade to 1.0.11 release
        klibc: Upgrade to 2.0.13 release
        libnvme: Fix test builds on musl
        kernel-selftest: Build bpf tests again
        ptest-packagelists-meta-oe: Add kernel-selftest to x86/x86-64 images
        kernel-selftest: Copy the .config from kernel build
        kernel-selftest: Use clang options when clang is available

  Markus Volk (3):
        pugixml: Update 1.13 -> 1.14
        pipewire: Upgrade 0.3.80 -> 0.3.81
        gnome-control-center: Fix polkit gettext issue

  Martin Jansa (1):
        opencv: Fix build with protobuf v22 and dnn enabled

  Mickael RAMILISON (1):
        python3-rapidjson: add ptest

  Pawel Langowski (1):
        recipes-connectivity: Add tayga recipe

  Philip-Dylan Gleonec (1):
        cukinia: Fix license field

  Thomas Roos (1):
        python3-boto3, python3-botocore: remove recipes

  Tom Hochstein (1):
        libcamera: Avoid build break in signature recalculation

meta-arm: 95789365f7..e914891eee:
  Jon Mason (1):
        arm-bsp/u-boot: add recipe for 2023.07.02

meta-security: aca6d4a9e7..3f7d40b0fc:
  Rasmus Villemoes (3):
        fail2ban: add systemd support
        fail2ban: change sqlite3 dependency to python3-sqlite3
        fail2ban: add useful recommendations
Change-Id: I93672642f4e0392adc6223fdc4e073910b817bc9
Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.18.bb b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.18.bb
index 1633412..3654550 100644
--- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.18.bb
+++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.18.bb
@@ -11,7 +11,7 @@
            file://disable-float-tests.patch \
            file://disable-outside-tests.patch "
 
-# tag 2.10.17
+# tag 2.10.18
 SRCREV= "122d09549201da5383321d870bed45ecb9e168c5"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-oe/recipes-support/libnvme/libnvme/0001-test-handle-POSIX-ioctl-prototype.patch b/meta-openembedded/meta-oe/recipes-support/libnvme/libnvme/0001-test-handle-POSIX-ioctl-prototype.patch
new file mode 100644
index 0000000..ef9cc47
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libnvme/libnvme/0001-test-handle-POSIX-ioctl-prototype.patch
@@ -0,0 +1,68 @@
+From ca47ba3119365eafac0ab25a86cab9d9a1b29bd4 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sat, 30 Sep 2023 06:38:53 +0100
+Subject: [PATCH] test: handle POSIX ioctl prototype
+
+glibc has the following prototype for ioctl: int ioctl(int fd, unsigned long request, ...)
+POSIX (inc. musl) has the following for ioctl: int ioctl(int fd, int request, ...)
+
+Check which prototype is used in <sys/ioctl.h> to avoid a conflict and conditionally
+define the right one for the system.
+
+Bug: https://bugs.gentoo.org/914921
+Signed-off-by: Sam James <sam@gentoo.org>
+Upstream-Status: Backport [https://github.com/linux-nvme/libnvme/commit/ca47ba3119365eafac0ab25a86cab9d9a1b29bd4]
+---
+ meson.build       | 10 ++++++++++
+ test/ioctl/mock.c |  6 +++++-
+ 2 files changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index 6fcf1da..2c979cc 100644
+--- a/meson.build
++++ b/meson.build
+@@ -230,6 +230,16 @@ conf.set(
+     ),
+     description: 'Is network address and service translation available'
+ )
++conf.set(
++    'HAVE_GLIBC_IOCTL',
++    cc.compiles(
++        '''#include <sys/ioctl.h>
++        int ioctl(int fd, unsigned long request, ...);
++        ''',
++        name: 'ioctl has glibc-style prototype'
++    ),
++    description: 'Is ioctl the glibc interface (rather than POSIX)'
++)
+ 
+ if cc.has_function_attribute('fallthrough')
+   conf.set('fallthrough', '__attribute__((__fallthrough__))')
+diff --git a/test/ioctl/mock.c b/test/ioctl/mock.c
+index e917244..5d2ac94 100644
+--- a/test/ioctl/mock.c
++++ b/test/ioctl/mock.c
+@@ -114,7 +114,11 @@ void end_mock_cmds(void)
+ 	} \
+ })
+ 
++#ifdef HAVE_GLIBC_IOCTL
+ int ioctl(int fd, unsigned long request, ...)
++#else
++int ioctl(int fd, int request, ...)
++#endif
+ {
+ 	struct mock_cmds *mock_cmds;
+ 	bool result64;
+@@ -141,7 +145,7 @@ int ioctl(int fd, unsigned long request, ...)
+ 		result64 = true;
+ 		break;
+ 	default:
+-		fail("unexpected %s %lu", __func__, request);
++		fail("unexpected %s %lu", __func__, (unsigned long) request);
+ 	}
+ 	check(mock_cmds->remaining_cmds,
+ 	      "unexpected %s command", mock_cmds->name);
+-- 
+2.40.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libnvme/libnvme_1.5.bb b/meta-openembedded/meta-oe/recipes-support/libnvme/libnvme_1.6.bb
similarity index 86%
rename from meta-openembedded/meta-oe/recipes-support/libnvme/libnvme_1.5.bb
rename to meta-openembedded/meta-oe/recipes-support/libnvme/libnvme_1.6.bb
index 4b6f1e3..802edac 100644
--- a/meta-openembedded/meta-oe/recipes-support/libnvme/libnvme_1.5.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libnvme/libnvme_1.6.bb
@@ -11,9 +11,11 @@
                     file://ccan/licenses/CC0;md5=c17af43b05840255a6fedc5eda9d56cc \
                     file://ccan/licenses/BSD-MIT;md5=838c366f69b72c5df05c96dff79b35f2"
 DEPENDS = "json-c"
-SRCREV = "4fea83db8328ea788ea8f1001e8ce1cb80ef5fae"
+SRCREV = "37a803cf77e224f66d86b1e1d9e74a15f55ea600"
 
-SRC_URI = "git://github.com/linux-nvme/libnvme;protocol=https;branch=master"
+SRC_URI = "git://github.com/linux-nvme/libnvme;protocol=https;branch=master \
+           file://0001-test-handle-POSIX-ioctl-prototype.patch \
+"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fix-build-with-protobuf-v22.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fix-build-with-protobuf-v22.patch
new file mode 100644
index 0000000..536060c
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/fix-build-with-protobuf-v22.patch
@@ -0,0 +1,412 @@
+From 5e4150826fea6f37276f348c65d94ce4847d1211 Mon Sep 17 00:00:00 2001
+From: Kumataro <Kumataro@users.noreply.github.com>
+Date: Sat, 7 Oct 2023 10:11:25 +0900
+Subject: [PATCH] 3rdparty: supporting protobuf v22 and later
+
+Upstream-Status: Submitted [https://github.com/opencv/opencv/pull/24372]
+---
+ cmake/OpenCVFindProtobuf.cmake | 37 ++++++++++++++++++++++++++++++++++
+ modules/dnn/CMakeLists.txt     |  9 +++++++++
+ 2 files changed, 46 insertions(+)
+
+diff --git a/cmake/OpenCVFindProtobuf.cmake b/cmake/OpenCVFindProtobuf.cmake
+index 8835347d1d..9bd5c28db8 100644
+--- a/cmake/OpenCVFindProtobuf.cmake
++++ b/cmake/OpenCVFindProtobuf.cmake
+@@ -67,6 +67,38 @@ else()
+   endif()
+ endif()
+ 
++# See https://github.com/opencv/opencv/issues/24369
++# In Protocol Buffers v22.0 and later drops C++11 support and depends abseil-cpp.
++#   Details: https://protobuf.dev/news/2022-08-03/
++# And if std::text_view is in abseil-cpp requests C++17 and later.
++if(HAVE_PROTOBUF)
++    if("${Protobuf_VERSION}" MATCHES [[[0-9]+.([0-9]+).[0-9]+]])
++        string(COMPARE GREATER_EQUAL "${CMAKE_MATCH_1}" "22" REQUEST_ABSL)
++
++        if(REQUEST_ABSL)
++            string(COMPARE GREATER_EQUAL "${CMAKE_CXX_STANDARD}" "17" USED_AFTER_CXX17)
++            if(NOT USED_AFTER_CXX17)
++                message("CMAKE_CXX_STANDARD : ${CMAKE_CXX_STANDARD}")
++                message("protobuf           : ${Protobuf_VERSION}")
++                message(FATAL_ERROR "protobuf(v22 and later) and abseil-cpp request CMAKE_CXX_STANDARD=17 and later.")
++            endif()
++
++            ocv_check_modules(ABSL_STRINGS absl_strings)
++            if(NOT ABSL_STRINGS_FOUND)
++                message(FATAL_ERROR "protobuf(v22 and later) requests abseil-cpp(strings), but missing.")
++            endif()
++
++            ocv_check_modules(ABSL_LOG absl_log)
++            if(NOT ABSL_LOG_FOUND)
++                message(FATAL_ERROR "protobuf(v22 and later) requests abseil-cpp(log), but missing.")
++            endif()
++
++        endif()
++    else()
++        message(FATAL_ERROR "Protobuf version(${Protobuf_VERSION}) is unexpected to split.")
++    endif()
++endif()
++
+ if(HAVE_PROTOBUF AND PROTOBUF_UPDATE_FILES AND NOT COMMAND PROTOBUF_GENERATE_CPP)
+   message(FATAL_ERROR "Can't configure protobuf dependency (BUILD_PROTOBUF=${BUILD_PROTOBUF} PROTOBUF_UPDATE_FILES=${PROTOBUF_UPDATE_FILES})")
+ endif()
+@@ -89,3 +121,8 @@ if(HAVE_PROTOBUF)
+     BUILD_PROTOBUF THEN "build (${Protobuf_VERSION})"
+     ELSE "${__location} (${Protobuf_VERSION})")
+ endif()
++
++if(HAVE_ABSL_STRINGS AND HAVE_ABSL_LOG)
++  list(APPEND CUSTOM_STATUS absl)
++  list(APPEND CUSTOM_STATUS_absl "      abseil-cpp:" "YES (${ABSL_STRINGS_VERSION})" )
++endif()
+diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt
+index 804b78ead2..d32007b37e 100644
+--- a/modules/dnn/CMakeLists.txt
++++ b/modules/dnn/CMakeLists.txt
+@@ -149,6 +149,15 @@ if(NOT BUILD_PROTOBUF)
+   list(APPEND include_dirs ${Protobuf_INCLUDE_DIRS})
+ endif()
+ 
++if(HAVE_ABSL_STRINGS)
++  list(APPEND libs ${ABSL_STRINGS_LIBRARIES})
++  list(APPEND include_dirs ${ABSL_STRTRINGS_INCLUDE_DIRS})
++endif()
++if(HAVE_ABSL_LOG)
++  list(APPEND libs ${ABSL_LOG_LIBRARIES})
++  list(APPEND include_dirs ${ABSL_LOG_INCLUDE_DIRS})
++endif()
++
+ set(sources_options "")
+ 
+ list(APPEND libs ${LAPACK_LIBRARIES})
+From 06a7669521d205f647d3e718322ccd153cdbbb77 Mon Sep 17 00:00:00 2001
+From: Kumataro <Kumataro@users.noreply.github.com>
+Date: Sun, 8 Oct 2023 09:39:35 +0900
+Subject: [PATCH] dnn: disable some tests for external protobuf
+
+---
+ modules/dnn/CMakeLists.txt         |  5 +++++
+ modules/dnn/src/caffe/caffe_io.cpp | 24 ++++++++++++++++++++++--
+ modules/dnn/test/test_layers.cpp   | 16 ++++++++++++++++
+ 3 files changed, 43 insertions(+), 2 deletions(-)
+
+diff --git a/modules/dnn/CMakeLists.txt b/modules/dnn/CMakeLists.txt
+index d32007b37e..face38465f 100644
+--- a/modules/dnn/CMakeLists.txt
++++ b/modules/dnn/CMakeLists.txt
+@@ -254,6 +254,12 @@ ocv_create_module(${libs} ${dnn_runtime_libs})
+ ocv_add_samples()
+ ocv_add_accuracy_tests(${dnn_runtime_libs})
+ 
++if(NOT BUILD_PROTOBUF)
++  if(TARGET opencv_test_dnn)
++    ocv_target_compile_definitions(opencv_test_dnn PRIVATE "OPENCV_DNN_EXTERNAL_PROTOBUF=1")
++  endif()
++endif()
++
+ set(perf_path "${CMAKE_CURRENT_LIST_DIR}/perf")
+ file(GLOB_RECURSE perf_srcs "${perf_path}/*.cpp")
+ file(GLOB_RECURSE perf_hdrs "${perf_path}/*.hpp" "${perf_path}/*.h")
+@@ -318,3 +322,4 @@ if(OPENCV_TEST_DNN_TFLITE)
+     ocv_target_compile_definitions(opencv_perf_dnn PRIVATE "OPENCV_TEST_DNN_TFLITE=1")
+   endif()
+ endif()
++
+diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp
+index ebecf95eea..ebceca84cf 100644
+--- a/modules/dnn/src/caffe/caffe_io.cpp
++++ b/modules/dnn/src/caffe/caffe_io.cpp
+@@ -1130,7 +1130,17 @@ bool ReadProtoFromTextFile(const char* filename, Message* proto) {
+     parser.AllowUnknownField(true);
+     parser.SetRecursionLimit(1000);
+ #endif
+-    return parser.Parse(&input, proto);
++    const bool ret = parser.Parse(&input, proto);
++
++#ifdef OPENCV_DNN_EXTERNAL_PROTOBUF
++    if(!ret)
++    {
++        LOG(ERROR) << "Some data requires patched protobuf (available in OpenCV source tree only).";
++        CV_Error_(Error::StsError,("Some data requires patched protobuf (available in OpenCV source tree only)."));
++    }
++#endif
++
++    return ret;
+ }
+ 
+ bool ReadProtoFromBinaryFile(const char* filename, Message* proto) {
+@@ -1148,7 +1158,17 @@ bool ReadProtoFromTextBuffer(const char* data, size_t len, Message* proto) {
+     parser.AllowUnknownField(true);
+     parser.SetRecursionLimit(1000);
+ #endif
+-    return parser.Parse(&input, proto);
++    const bool ret = parser.Parse(&input, proto);
++
++#ifdef OPENCV_DNN_EXTERNAL_PROTOBUF
++    if(!ret)
++    {
++        LOG(ERROR) << "Some data requires patched protobuf (available in OpenCV source tree only).";
++        CV_Error_(Error::StsError,("Some data requires patched protobuf (available in OpenCV source tree only)."));
++    }
++#endif
++
++    return ret;
+ }
+ 
+ 
+diff --git a/modules/dnn/test/test_layers.cpp b/modules/dnn/test/test_layers.cpp
+index 763d94b99c..a07d442d76 100644
+--- a/modules/dnn/test/test_layers.cpp
++++ b/modules/dnn/test/test_layers.cpp
+@@ -754,7 +754,11 @@ TEST_F(Layer_RNN_Test, get_set_test)
+     EXPECT_EQ(shape(outputs[1]), shape(nT, nS, nH));
+ }
+ 
++#ifndef OPENCV_DNN_EXTERNAL_PROTOBUF
+ TEST_P(Test_Caffe_layers, Accum)
++#else
++TEST_P(Test_Caffe_layers, DISABLED_Accum)  // requires patched protobuf (available in OpenCV source tree only)
++#endif
+ {
+     if (backend == DNN_BACKEND_OPENCV && target != DNN_TARGET_CPU)
+         applyTestTag(CV_TEST_TAG_DNN_SKIP_OPENCL, CV_TEST_TAG_DNN_SKIP_OPENCL_FP16);
+@@ -778,7 +782,11 @@ TEST_P(Test_Caffe_layers, ChannelNorm)
+     testLayerUsingCaffeModels("channel_norm", false, false);
+ }
+ 
++#ifndef OPENCV_DNN_EXTERNAL_PROTOBUF
+ TEST_P(Test_Caffe_layers, DataAugmentation)
++#else
++TEST_P(Test_Caffe_layers, DISABLED_DataAugmentation)  // requires patched protobuf (available in OpenCV source tree only)
++#endif
+ {
+     if (backend == DNN_BACKEND_OPENCV && target == DNN_TARGET_OPENCL_FP16)
+         applyTestTag(CV_TEST_TAG_DNN_SKIP_OPENCL_FP16);
+@@ -787,7 +795,11 @@ TEST_P(Test_Caffe_layers, DataAugmentation)
+     testLayerUsingCaffeModels("data_augmentation_8x6", true, false);
+ }
+ 
++#ifndef OPENCV_DNN_EXTERNAL_PROTOBUF
+ TEST_P(Test_Caffe_layers, Resample)
++#else
++TEST_P(Test_Caffe_layers, DISABLED_Resample)  // requires patched protobuf (available in OpenCV source tree only)
++#endif
+ {
+     if (backend != DNN_BACKEND_OPENCV)
+         applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER, CV_TEST_TAG_DNN_SKIP_IE_NGRAPH);
+@@ -795,7 +807,11 @@ TEST_P(Test_Caffe_layers, Resample)
+     testLayerUsingCaffeModels("nearest", false, false);
+ }
+ 
++#ifndef OPENCV_DNN_EXTERNAL_PROTOBUF
+ TEST_P(Test_Caffe_layers, Correlation)
++#else
++TEST_P(Test_Caffe_layers, DISABLED_Correlation)  // requires patched protobuf (available in OpenCV source tree only)
++#endif
+ {
+     if (backend == DNN_BACKEND_OPENCV && target == DNN_TARGET_OPENCL_FP16)
+         applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_NGRAPH, CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER,
+From 2c33798f41942aefc203183d673ce4846f32dba4 Mon Sep 17 00:00:00 2001
+From: Kumataro <Kumataro@users.noreply.github.com>
+Date: Sun, 8 Oct 2023 13:28:40 +0900
+Subject: [PATCH] use GREATER instead of GREATER_EQUAL and remove new blank
+ line at EOF
+
+---
+ cmake/OpenCVFindProtobuf.cmake | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/cmake/OpenCVFindProtobuf.cmake b/cmake/OpenCVFindProtobuf.cmake
+index 9bd5c28db8..ba147526d6 100644
+--- a/cmake/OpenCVFindProtobuf.cmake
++++ b/cmake/OpenCVFindProtobuf.cmake
+@@ -71,12 +71,14 @@ endif()
+ # In Protocol Buffers v22.0 and later drops C++11 support and depends abseil-cpp.
+ #   Details: https://protobuf.dev/news/2022-08-03/
+ # And if std::text_view is in abseil-cpp requests C++17 and later.
++
+ if(HAVE_PROTOBUF)
+     if("${Protobuf_VERSION}" MATCHES [[[0-9]+.([0-9]+).[0-9]+]])
+-        string(COMPARE GREATER_EQUAL "${CMAKE_MATCH_1}" "22" REQUEST_ABSL)
++        string(COMPARE GREATER "${CMAKE_MATCH_1}" "21" REQUEST_ABSL)  # >=22
+ 
+         if(REQUEST_ABSL)
+-            string(COMPARE GREATER_EQUAL "${CMAKE_CXX_STANDARD}" "17" USED_AFTER_CXX17)
++            string(COMPARE GREATER "${CMAKE_CXX_STANDARD}" "16" USED_AFTER_CXX17)  # >=17
++
+             if(NOT USED_AFTER_CXX17)
+                 message("CMAKE_CXX_STANDARD : ${CMAKE_CXX_STANDARD}")
+                 message("protobuf           : ${Protobuf_VERSION}")
+From cd709eefbeedd116bf3495b42280323b932791ff Mon Sep 17 00:00:00 2001
+From: Kumataro <Kumataro@users.noreply.github.com>
+Date: Mon, 9 Oct 2023 21:51:04 +0900
+Subject: [PATCH] fix for review
+
+---
+ cmake/OpenCVFindProtobuf.cmake     |  5 ----
+ modules/dnn/src/caffe/caffe_io.cpp | 24 ++----------------
+ modules/dnn/test/test_layers.cpp   | 40 +++++++++++++++---------------
+ 3 files changed, 22 insertions(+), 47 deletions(-)
+
+diff --git a/cmake/OpenCVFindProtobuf.cmake b/cmake/OpenCVFindProtobuf.cmake
+index ba147526d6..2faf1010bf 100644
+--- a/cmake/OpenCVFindProtobuf.cmake
++++ b/cmake/OpenCVFindProtobuf.cmake
+@@ -123,8 +123,3 @@ if(HAVE_PROTOBUF)
+     BUILD_PROTOBUF THEN "build (${Protobuf_VERSION})"
+     ELSE "${__location} (${Protobuf_VERSION})")
+ endif()
+-
+-if(HAVE_ABSL_STRINGS AND HAVE_ABSL_LOG)
+-  list(APPEND CUSTOM_STATUS absl)
+-  list(APPEND CUSTOM_STATUS_absl "      abseil-cpp:" "YES (${ABSL_STRINGS_VERSION})" )
+-endif()
+diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp
+index ebceca84cf..ebecf95eea 100644
+--- a/modules/dnn/src/caffe/caffe_io.cpp
++++ b/modules/dnn/src/caffe/caffe_io.cpp
+@@ -1130,17 +1130,7 @@ bool ReadProtoFromTextFile(const char* filename, Message* proto) {
+     parser.AllowUnknownField(true);
+     parser.SetRecursionLimit(1000);
+ #endif
+-    const bool ret = parser.Parse(&input, proto);
+-
+-#ifdef OPENCV_DNN_EXTERNAL_PROTOBUF
+-    if(!ret)
+-    {
+-        LOG(ERROR) << "Some data requires patched protobuf (available in OpenCV source tree only).";
+-        CV_Error_(Error::StsError,("Some data requires patched protobuf (available in OpenCV source tree only)."));
+-    }
+-#endif
+-
+-    return ret;
++    return parser.Parse(&input, proto);
+ }
+ 
+ bool ReadProtoFromBinaryFile(const char* filename, Message* proto) {
+@@ -1158,17 +1148,7 @@ bool ReadProtoFromTextBuffer(const char* data, size_t len, Message* proto) {
+     parser.AllowUnknownField(true);
+     parser.SetRecursionLimit(1000);
+ #endif
+-    const bool ret = parser.Parse(&input, proto);
+-
+-#ifdef OPENCV_DNN_EXTERNAL_PROTOBUF
+-    if(!ret)
+-    {
+-        LOG(ERROR) << "Some data requires patched protobuf (available in OpenCV source tree only).";
+-        CV_Error_(Error::StsError,("Some data requires patched protobuf (available in OpenCV source tree only)."));
+-    }
+-#endif
+-
+-    return ret;
++    return parser.Parse(&input, proto);
+ }
+ 
+ 
+diff --git a/modules/dnn/test/test_layers.cpp b/modules/dnn/test/test_layers.cpp
+index a07d442d76..5c6fc541d7 100644
+--- a/modules/dnn/test/test_layers.cpp
++++ b/modules/dnn/test/test_layers.cpp
+@@ -754,17 +754,17 @@ TEST_F(Layer_RNN_Test, get_set_test)
+     EXPECT_EQ(shape(outputs[1]), shape(nT, nS, nH));
+ }
+ 
+-#ifndef OPENCV_DNN_EXTERNAL_PROTOBUF
+ TEST_P(Test_Caffe_layers, Accum)
+-#else
+-TEST_P(Test_Caffe_layers, DISABLED_Accum)  // requires patched protobuf (available in OpenCV source tree only)
+-#endif
+ {
++#ifdef OPENCV_DNN_EXTERNAL_PROTOBUF
++    throw SkipTestException("Requires patched protobuf");
++#else
+     if (backend == DNN_BACKEND_OPENCV && target != DNN_TARGET_CPU)
+         applyTestTag(CV_TEST_TAG_DNN_SKIP_OPENCL, CV_TEST_TAG_DNN_SKIP_OPENCL_FP16);
+ 
+     testLayerUsingCaffeModels("accum", false, false, 0.0, 0.0, 2);
+     testLayerUsingCaffeModels("accum_ref", false, false, 0.0, 0.0, 2);
++#endif
+ }
+ 
+ TEST_P(Test_Caffe_layers, FlowWarp)
+@@ -782,42 +782,42 @@ TEST_P(Test_Caffe_layers, ChannelNorm)
+     testLayerUsingCaffeModels("channel_norm", false, false);
+ }
+ 
+-#ifndef OPENCV_DNN_EXTERNAL_PROTOBUF
+ TEST_P(Test_Caffe_layers, DataAugmentation)
+-#else
+-TEST_P(Test_Caffe_layers, DISABLED_DataAugmentation)  // requires patched protobuf (available in OpenCV source tree only)
+-#endif
+ {
++#ifdef OPENCV_DNN_EXTERNAL_PROTOBUF
++    throw SkipTestException("Requires patched protobuf");
++#else
+     if (backend == DNN_BACKEND_OPENCV && target == DNN_TARGET_OPENCL_FP16)
+         applyTestTag(CV_TEST_TAG_DNN_SKIP_OPENCL_FP16);
+     testLayerUsingCaffeModels("data_augmentation", true, false);
+     testLayerUsingCaffeModels("data_augmentation_2x1", true, false);
+     testLayerUsingCaffeModels("data_augmentation_8x6", true, false);
++#endif
+ }
+ 
+-#ifndef OPENCV_DNN_EXTERNAL_PROTOBUF
+ TEST_P(Test_Caffe_layers, Resample)
+-#else
+-TEST_P(Test_Caffe_layers, DISABLED_Resample)  // requires patched protobuf (available in OpenCV source tree only)
+-#endif
+ {
++#ifdef OPENCV_DNN_EXTERNAL_PROTOBUF
++    throw SkipTestException("Requires patched protobuf");
++#else
+     if (backend != DNN_BACKEND_OPENCV)
+         applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER, CV_TEST_TAG_DNN_SKIP_IE_NGRAPH);
+     testLayerUsingCaffeModels("nearest_2inps", false, false, 0.0, 0.0, 2);
+     testLayerUsingCaffeModels("nearest", false, false);
++#endif
+ }
+ 
+-#ifndef OPENCV_DNN_EXTERNAL_PROTOBUF
+ TEST_P(Test_Caffe_layers, Correlation)
+-#else
+-TEST_P(Test_Caffe_layers, DISABLED_Correlation)  // requires patched protobuf (available in OpenCV source tree only)
+-#endif
+ {
++#ifdef OPENCV_DNN_EXTERNAL_PROTOBUF
++    throw SkipTestException("Requires patched protobuf");
++#else
+     if (backend == DNN_BACKEND_OPENCV && target == DNN_TARGET_OPENCL_FP16)
+         applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_NGRAPH, CV_TEST_TAG_DNN_SKIP_IE_NN_BUILDER,
+                      CV_TEST_TAG_DNN_SKIP_OPENCL, CV_TEST_TAG_DNN_SKIP_OPENCL_FP16);
+     testLayerUsingCaffeModels("correlation", false, false, 0.0, 0.0, 2);
+ }
++#endif
+ 
+ TEST_P(Test_Caffe_layers, Convolution2Inputs)
+ {
+@@ -1657,12 +1657,11 @@ private:
+     int outWidth, outHeight, zoomFactor;
+ };
+ 
+-#ifndef OPENCV_DNN_EXTERNAL_PROTOBUF
+ TEST_P(Test_Caffe_layers, Interp)
+-#else
+-TEST_P(Test_Caffe_layers, DISABLED_Interp)  // requires patched protobuf (available in OpenCV source tree only)
+-#endif
+ {
++#ifdef OPENCV_DNN_EXTERNAL_PROTOBUF
++    throw SkipTestException("Requires patched protobuf");
++#else
+ #if defined(INF_ENGINE_RELEASE) && INF_ENGINE_VER_MAJOR_EQ(2021030000)
+     if (backend == DNN_BACKEND_INFERENCE_ENGINE_NGRAPH && target == DNN_TARGET_MYRIAD)
+         applyTestTag(CV_TEST_TAG_DNN_SKIP_IE_MYRIAD, CV_TEST_TAG_DNN_SKIP_IE_NGRAPH);  // exception
+@@ -1686,6 +1685,7 @@ TEST_P(Test_Caffe_layers, DISABLED_Interp)  // requires patched protobuf (availa
+ 
+     // Test an implemented layer.
+     testLayerUsingCaffeModels("layer_interp", false, false);
++#endif
+ }
+ 
+ INSTANTIATE_TEST_CASE_P(/*nothing*/, Test_Caffe_layers, dnnBackendsAndTargets());
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.8.0.bb b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.8.0.bb
index 9564bbb..85eb230 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.8.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.8.0.bb
@@ -31,6 +31,7 @@
            file://download.patch \
            file://0001-Make-ts-module-external.patch \
            file://0008-Do-not-embed-build-directory-in-binaries.patch \
+           file://fix-build-with-protobuf-v22.patch \
            "
 SRC_URI:append:riscv64 = " file://0001-Use-Os-to-compile-tinyxml2.cpp.patch;patchdir=contrib"
 
@@ -98,7 +99,7 @@
 PACKAGECONFIG[gapi] = "-DWITH_ADE=ON -Dade_DIR=${STAGING_LIBDIR},-DWITH_ADE=OFF,ade"
 PACKAGECONFIG[amdblas] = "-DWITH_OPENCLAMDBLAS=ON,-DWITH_OPENCLAMDBLAS=OFF,libclamdblas,"
 PACKAGECONFIG[amdfft] = "-DWITH_OPENCLAMDFFT=ON,-DWITH_OPENCLAMDFFT=OFF,libclamdfft,"
-PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native,"
+PACKAGECONFIG[dnn] = "-DBUILD_opencv_dnn=ON -DPROTOBUF_UPDATE_FILES=ON -DBUILD_PROTOBUF=OFF -DCMAKE_CXX_STANDARD=17,-DBUILD_opencv_dnn=OFF,protobuf protobuf-native,"
 PACKAGECONFIG[eigen] = "-DWITH_EIGEN=ON,-DWITH_EIGEN=OFF,libeigen gflags glog,"
 PACKAGECONFIG[freetype] = "-DBUILD_opencv_freetype=ON,-DBUILD_opencv_freetype=OFF,freetype,"
 PACKAGECONFIG[gphoto2] = "-DWITH_GPHOTO2=ON,-DWITH_GPHOTO2=OFF,libgphoto2,"