subtree updates

meta-openembedded: 7d8115d550..098dc606f9:
  Alex Kiernan (2):
        c-ares: Filter out "Live" tests
        ptest-packagelists-meta-oe.inc Add c-ares to PTESTS_SLOW_META_OE

  Alexander Kanavin (25):
        fontforge: add a readline PACKAGECONFIG
        volume-key: disable python bindings
        audit: disable python bindings as incompatible with python 3.12
        cmpi-bindings: update 1.0.1 -> 1.0.4
        libpwquality: backport a python 3.12 compatibility patch
        mycroft: do not depend on python3-xmlrunner
        python3-xmlrunner: remove the recipe
        system-config-printer: rely on setuptools to obtain distutils copy
        python3-gmpy2: fix python 3.12 issues
        python3-custom-inherit: fix python 3.12 builds
        python3-jsonrpcserver: remove
        python3-oslash: remove
        nmap: disable ndiff
        wireshark: update 4.0.10 -> 4.2.0
        openipmi: update 2.0.32 -> 2.0.34
        libsigrokdecode: add python 3.12 support
        cockpit: add setuptools dependency to bring in distutils copy
        mongodb: skip until python 3.12 fixes are available.
        mercurial: ensure setuptools is present as distutils is no longer (mercurial tries both)
        rwmem: fix python modules packaging
        upm: get disutils copy via setuptools
        python3-kmod: remove the recipe
        hplip: provide setuptools for the distutils copy
        audit: reenable python bindings and bring in distutils via setuptools (needed with python 3.12)
        python3-h5py: backport a cython 3.x compatibility patch

  Christophe Vu-Brugier (1):
        nvme-cli: upgrade 2.6 -> 2.7.1

  Enrico Scholz (1):
        krb5: use PACKAGE_BEFORE_PN

  Fabio Estevam (2):
        i2cdev_git: Remove AUTHOR field
        picocom: Update to 2023-04

  Ilya A. Kriveshko (1):
        srecord: fix install prefix

  Jordan Crouse (2):
        collectd: Remove rrdtool from DEPENDS
        keepalived: Move the sample configuration files to a separate package

  Jose Quaresma (1):
        layer.conf: Add libdevmapper-native PREFERRED_RPROVIDER

  Khem Raj (8):
        mraa: Update to latest tip of trunk
        libcppkafka: Update to tip of trunk
        python3-pydantic-core: Rename the cpython module on musl
        libtinyxml2: Package needed resources to run ptests
        python3-pylint: Ignore failing ptests
        libconfig-general-perl: Enable on musl targets
        tgt: Fix build with musl
        kernel-selftest: remove Wno-alloc-size-larger-than from scripts/Makefile.extrawarn

  Leon Anavi (5):
        ssd1306_git.bb: Add ssd1306_linux
        ssd1306: Update and remove patch
        python3-webargs: Upgrade 8.3.0 -> 8.4.0
        python3-wtforms: Upgrade 3.1.1 -> 3.1.2
        python3-kivy: Upgrade 2.2.1 -> 2.3.0

  Markus Volk (9):
        luajit: upgrade 2.1beta -> 2.1
        gnome-terminal: fix search_provider build
        libplist: make sure rm doesn't fail on nonexistent file
        imagemagick: upgrade 7.1.1-8 -> 7.1.1.26
        mutter: update 45.1 -> 45.3
        gnome-shell: update 45.1 -> 45.3
        gnome-control-center: update 45.1 -> 45.2
        gnome-software: update 45.1 -> 45.3
        gnome-shell-extensions: update 45.1 -> 45.2

  Martin Jansa (1):
        libpwquality: respect PYTHONSITEDIR

  Michael Haener (1):
        mdio-tools: upgrade 1.3.0 -> 1.3.1

  Mingli Yu (2):
        usleep: Make the version consistent
        ipmitool: Make the version consistent

  Peter Marko (1):
        protobuf-c: upgrade 1.4.1 -> 1.5.0

  Richard Leitner (1):
        python3-pytest-cov: add missing python3-coverage dependency

  Robert Yang (1):
        v4l-utils: Add PACKAGECONFIG for v4l2-tracer to fix determinstic build

  Wang Mingyu (52):
        cglm: upgrade 0.9.1 -> 0.9.2
        ctags: upgrade 6.0.20231224.0 -> 6.1.20231231.0
        exiftool: upgrade 12.71 -> 12.72
        feh: upgrade 3.10.1 -> 3.10.2
        libssh: upgrade 0.10.5 -> 0.10.6
        squid: upgrade 6.5 -> 6.6
        imapfilter: upgrade 2.8.1 -> 2.8.2
        redis-plus-plus: upgrade 1.3.10 -> 1.3.11
        python3-netaddr: upgrade 0.9.0 -> 0.10.0
        plocate: upgrade 1.1.19 -> 1.1.20
        python3-cantools: upgrade 39.4.1 -> 39.4.2
        python3-coverage: upgrade 7.3.4 -> 7.4.0
        python3-flask: upgrade 2.3.3 -> 3.0.0
        python3-gspread: upgrade 5.12.3 -> 5.12.4
        python3-pydot: upgrade 1.4.2 -> 2.0.0
        qpdf: upgrade 11.6.4 -> 11.7.0
        thingsboard-gateway: upgrade 3.4.3.1 -> 3.4.4
        python3-pydantic-core: upgrade 2.14.5 -> 2.14.6
        libtinyxml2: upgrade 9.0.0 -> 10.0.0
        adw-gtk3: upgrade 5.1 -> 5.2
        dialog: upgrade 1.3-20231002 -> 1.3-20240101
        ghex: upgrade 45.0 -> 45.1
        jwt-cpp: upgrade 0.6.0 -> 0.7.0
        libcloudproviders: upgrade 0.3.4 -> 0.3.5
        libgedit-gtksourceview: upgrade 299.0.4 -> 299.0.5
        libjcat: upgrade 0.1.14 -> 0.2.0
        libraw: upgrade 0.21.1 -> 0.21.2
        libsass: upgrade 3.6.5 -> 3.6.6
        chrony: upgrade 4.4 -> 4.5
        tgt: upgrade 1.0.83 -> 1.0.90
        lapack: upgrade 3.10.1 -> 3.12.0
        libio-pty-perl: upgrade 1.17 -> 1.20
        webkitgtk3: upgrade 2.42.3 -> 2.42.4
        xmlsec1: upgrade 1.3.2 -> 1.3.3
        python3-argh: upgrade 0.30.5 -> 0.31.0
        python3-cvxopt: upgrade 1.2.7 -> 1.3.2
        python3-sqlalchemy: upgrade 2.0.24 -> 2.0.25
        python3-aiohttp-jinja2: upgrade 1.5.1 -> 1.6
        python3-bitarray: upgrade 2.9.1 -> 2.9.2
        python3-google-api-python-client: upgrade 2.111.0 -> 2.112.0
        python3-google-auth: upgrade 2.25.2 -> 2.26.1
        python3-lz4: upgrade 4.3.2 -> 4.3.3
        python3-pdm: upgrade 2.11.1 -> 2.11.2
        python3-pyflakes: upgrade 3.1.0 -> 3.2.0
        python3-pymisp: upgrade 2.4.182 -> 2.4.183
        python3-pytest-asyncio: upgrade 0.23.2 -> 0.23.3
        python3-traitlets: upgrade 5.14.0 -> 5.14.1
        traceroute: upgrade 2.1.3 -> 2.1.5
        wolfssl: upgrade 5.6.4 -> 5.6.6
        xerces-c: upgrade 3.2.4 -> 3.2.5
        zenity: upgrade 4.0.0 -> 4.0.1
        daq: Fix install conflict when enable multilib.

  Yi Zhao (6):
        vsomeip: upgrade 3.3.8 -> 3.4.10
        libtdb: upgrade 1.4.8 -> 1.4.9
        libtalloc: upgrade 2.4.0 -> 2.4.1
        libtevent: upgrade 0.14.1 -> 0.16.0
        libldb: upgrade 2.7.2 -> 2.8.0
        samba: upgrade 4.18.9 -> 4.19.3

  alperak (10):
        libnvme: upgrade 1.6 -> 1.7.1
        libpaper: upgrade 2.1.0 -> 2.1.2
        onig: upgrade 6.9.8 -> 6.9.9
        clinfo: upgrade 3.0.21.02.21 -> 3.0.23.01.25
        opensc: upgrade 0.23.0 -> 0.24.0
        pcsc-lite: upgrade 2.0.0 -> 2.0.1
        pcsc-tools: upgrade 1.6.2 -> 1.7.1
        wavpack: upgrade 5.1.0 -> 5.6.0
        nginx: fix CVE-2023-44487
        grpc: upgrade 1.59.2 -> 1.60.0

meta-arm: 4d22f982bc..5712422011:
  Emekcan Aras (1):
        arm-bsp/linux-yocto: corstone1000: bump to v6.6%

  Jon Mason (8):
        arm-bsp/trusted-firmware-m: update libmetal and open-amp to a release
        arm-bsp/trusted-firmware-m: update libmetal and open-amp to 2023.04.0
        arm: modify patches to have email headers and correct date fields
        arm-bsp/optee-os: remove unused 3.18 files
        arm/optee-os: use sysroot in CFLAGS
        arm/optee-os: remove unneeded clang patches
        arm/scp-firmware: update git repository to new location
        arm-bsp/u-boot: rebase patches for v2024.01

  Ross Burton (1):
        arm-bsp/linux-yocto: add linux-yocto 6.5 temporarily

meta-raspberrypi: 4c033eb074..b859bc3eca:
  Leon Anavi (1):
        bcm2835: update 1.71 -> 1.73

poky: 4675bbb757..61182659c2:
  Adrian Freihofer (1):
        ref-manual: document cmake-qemu class

  Alassane Yattara (7):
        bitbake: toaster/tests: Bug-fix on TestProjectConfigTab::test_image_recipe_show_rows
        bitbake: toaster/tests: Bug-fix element click intercepted
        bitbake: toaster/tests: Delay driver first action on create new project page
        bitbake: toaster/tests: Setup delay after driver action self.get(url)
        bitbake: toaster/tests: bug-fix "#hint-error-project-name" should be visible
        bitbake: toaster/tests: Bug-fix "element not interactable" in TestLayerDetailsPage::test_edit_layerdetails
        bitbake: toaster/tests: Bug-fix ToasterTable show_rows testcases

  Alexander Kanavin (16):
        speexdsp: enable native variant
        devtool/standard: correctly escape \
        bitbake: fetch/checkstatus(): do not print the URI twice in FetchError exception
        bitbake: fetch/wget/checkstatus(): include the URL in debugging output about status check failure
        bitbake: bitbake/runqueue: rework 'bitbake -S printdiff' logic
        selftest/sstatetests: fix up printdiff test to match rework of printdiff logic
        selftest/sstatetest: re-enable gcc printdiff test
        python3-pyyaml: make compatible with cython 3.x
        python3-cython: update 0.29.36 -> 3.0.7
        taglib: fix upstream version check
        libpcre2: fix upstream version check
        icon-naming-utils: take tarball from debian
        selftest/sstatetests: include fetcher diagnostics into CDN test failure message
        selftest/SStatePrintdiff: ensure all base signatures are present in sstate in test_image_minimal_vs_base_do_configure
        shadow: update 4.13 -> 4.14.2
        shadow: link executables statically for -native variant

  Chen Qi (5):
        gawk: upgrade from 5.2.2 to 5.3.0
        systemd-bootchart: upgrade from 234 to 235
        dbus-wait: bump srcrev
        sudo: upgrade from 1.9.15p2 to 1.9.15p5
        util-linux/util-linux-libuuid: ugprade from 2.39.2 to 2.39.3

  Corentin Guillevic (1):
        systemd: add udev-bash-completion package

  Enguerrand de Ribaucourt (1):
        manuals: document VSCode extension

  Fabio Estevam (5):
        libusb1: Do not match on -rc versions
        usbutils: Update to version 017
        u-boot: Upgrade to 2024.01
        kmscube: Change header file to <GLES3/gl3.h>
        kmscube: Add package version

  Ilya A. Kriveshko (1):
        dev-manual: update license manifest path

  Jamin Lin (1):
        devtool: modify: fix exception

  Joshua Watt (1):
        syslinux: Allow mtools to be optional

  Jörg Sommer (1):
        documentation: Add UBOOT_BINARY, extend UBOOT_CONFIG

  Khem Raj (6):
        connman: Fix build with musl
        rpm: Fix build with musl
        gawk: Add coreutils to rdeps for ptests package
        tcl: Fix prepending to run-ptest script
        coreutils: Ignore line-bytes.sh and no-allocate tests on musl
        opkg-utils: Backport fix to drop --numeric-owner parameter

  Lee Chee Yang (1):
        migration-guide: add release notes for 4.3.2

  Mark Asselstine (2):
        bitbake: server/process: catch and expand multiprocessing connection exceptions
        bitbake: ui/knotty: properly handle exceptions when calling runCommand()

  Maxin B. John (1):
        ref-manual: classes: remove insserv bbclass

  Michael Opdenacker (2):
        contributor-guide: use "apt" instead of "aptitude"
        ref-manual: update tested and supported distros

  Mikko Rapeli (1):
        oeqa systemd.py: settle() using "running" or "degraded" state

  Ming Liu (1):
        qemu.bbclass: fix a python TypeError

  Mingli Yu (2):
        openssh: Add PACKAGECONFIG option to customize sshd mode
        gptfdisk: Make the version consistent

  Richard Purdie (2):
        bitbake: ast: Fix EXPORT_FUNCTIONS bug
        bitbake: runqueue: Fix runall all bug

  Robert Yang (2):
        bitbake: bitbake: event: Inject empty lines to make code match lineno in filename
        bitbake: bitbake: tests/event: Add test_lineno_in_eventhandler

  Rodrigo M. Duarte (1):
        linux-firmware: Fix the linux-firmware-bcm4373 FILES variable

  Ross Burton (12):
        glib-2.0: no need to depend on target gtk-doc
        autotools: append to EXTRA_AUTORECONF
        autotools: don't exclude gtkdocize
        gtk-doc: fix DEPENDS
        gtk-doc: remove obsolete logic
        gtk-doc: don't use docdir set in environment in gtkdocize
        gtk-doc: don't manually call gtkdocize
        kmod: fix configure with autopoint calling gtkdocize
        util-linux: enable gtk-doc
        meson: use pkg-config in the cross files
        cairo: upgrade to 1.18.0
        xmlcatalog: limit to native recipes only

  Simone Weiß (2):
        dev-manual: start.rst: update use of Download page
        glibc: Set status for CVE-2023-5156 & CVE-2023-0687

  Tim Orling (2):
        python3-bcrypt: upgrade 4.1.1 -> 4.1.2
        python3-attrs: enable ptest

  Wang Mingyu (13):
        ffmpeg: upgrade 6.1 -> 6.1.1
        meson: upgrade 1.3.0 -> 1.3.1
        ccache: upgrade 4.8.3 -> 4.9
        mesa: upgrade 23.3.1 -> 23.3.2
        subversion: upgrade 1.14.2 -> 1.14.3
        python3-dbusmock: upgrade 0.30.1 -> 0.30.2
        python3-hatch-fancy-pypi-readme: upgrade 23.1.0 -> 24.1.0
        python3-hypothesis: upgrade 6.92.1 -> 6.92.2
        python3-pycryptodome: upgrade 3.19.0 -> 3.19.1
        python3-pycryptodomex: upgrade 3.19.0 -> 3.19.1
        python3-pytest: upgrade 7.4.3 -> 7.4.4
        python3-attrs: upgrade 22.1.0 -> 23.2.0
        python3-lxml: upgrade 4.9.4 -> 45.0.0

  William Lyu (1):
        elfutils: Update license information

  Yang Xu (1):
        rootfs.py: check depmodwrapper execution result

  Yi Zhao (2):
        libcap-ng: upgrade 0.8.3 -> 0.8.4
        libcap-ng-python: upgrade 0.8.3 -> 0.8.4

  david d zuhn (1):
        rng-tools: remove obsolete build time dependency on sysfsutils

Change-Id: I43eda44bb889eedb45fae65caf2e5ed8d2c9de39
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/poky/bitbake/lib/bb/event.py b/poky/bitbake/lib/bb/event.py
index f8acacd..4761c86 100644
--- a/poky/bitbake/lib/bb/event.py
+++ b/poky/bitbake/lib/bb/event.py
@@ -257,14 +257,15 @@
         # handle string containing python code
         if isinstance(handler, str):
             tmp = "def %s(e, d):\n%s" % (name, handler)
+            # Inject empty lines to make code match lineno in filename
+            if lineno is not None:
+                tmp = "\n" * (lineno-1) + tmp
             try:
                 code = bb.methodpool.compile_cache(tmp)
                 if not code:
                     if filename is None:
                         filename = "%s(e, d)" % name
                     code = compile(tmp, filename, "exec", ast.PyCF_ONLY_AST)
-                    if lineno is not None:
-                        ast.increment_lineno(code, lineno-1)
                     code = compile(code, filename, "exec")
                     bb.methodpool.compile_cache_add(tmp, code)
             except SyntaxError:
diff --git a/poky/bitbake/lib/bb/fetch2/__init__.py b/poky/bitbake/lib/bb/fetch2/__init__.py
index 22a2f80..677968a 100644
--- a/poky/bitbake/lib/bb/fetch2/__init__.py
+++ b/poky/bitbake/lib/bb/fetch2/__init__.py
@@ -1947,7 +1947,7 @@
                     ret = m.try_mirrors(self, ud, self.d, mirrors, True)
 
             if not ret:
-                raise FetchError("URL %s doesn't work" % u, u)
+                raise FetchError("URL doesn't work", u)
 
     def unpack(self, root, urls=None):
         """
diff --git a/poky/bitbake/lib/bb/fetch2/wget.py b/poky/bitbake/lib/bb/fetch2/wget.py
index dc88317..dc02580 100644
--- a/poky/bitbake/lib/bb/fetch2/wget.py
+++ b/poky/bitbake/lib/bb/fetch2/wget.py
@@ -375,7 +375,7 @@
                     return self.checkstatus(fetch, ud, d, False)
                 else:
                     # debug for now to avoid spamming the logs in e.g. remote sstate searches
-                    logger.debug2("checkstatus() urlopen failed: %s" % e)
+                    logger.debug2("checkstatus() urlopen failed for %s: %s" % (uri,e))
                     return False
 
         return True
diff --git a/poky/bitbake/lib/bb/parse/ast.py b/poky/bitbake/lib/bb/parse/ast.py
index 6441c5c..d30b688 100644
--- a/poky/bitbake/lib/bb/parse/ast.py
+++ b/poky/bitbake/lib/bb/parse/ast.py
@@ -211,10 +211,12 @@
 
     def eval(self, data):
 
+        sentinel = "    # Export function set\n"
         for func in self.n:
             calledfunc = self.classname + "_" + func
 
-            if data.getVar(func, False) and not data.getVarFlag(func, 'export_func', False):
+            basevar = data.getVar(func, False)
+            if basevar and sentinel not in basevar:
                 continue
 
             if data.getVar(func, False):
@@ -231,12 +233,11 @@
             data.setVarFlag(func, "lineno", 1)
 
             if data.getVarFlag(calledfunc, "python", False):
-                data.setVar(func, "    bb.build.exec_func('" + calledfunc + "', d)\n", parsing=True)
+                data.setVar(func, sentinel + "    bb.build.exec_func('" + calledfunc + "', d)\n", parsing=True)
             else:
                 if "-" in self.classname:
                    bb.fatal("The classname %s contains a dash character and is calling an sh function %s using EXPORT_FUNCTIONS. Since a dash is illegal in sh function names, this cannot work, please rename the class or don't use EXPORT_FUNCTIONS." % (self.classname, calledfunc))
-                data.setVar(func, "    " + calledfunc + "\n", parsing=True)
-            data.setVarFlag(func, 'export_func', '1')
+                data.setVar(func, sentinel + "    " + calledfunc + "\n", parsing=True)
 
 class AddTaskNode(AstNode):
     def __init__(self, filename, lineno, func, before, after):
diff --git a/poky/bitbake/lib/bb/runqueue.py b/poky/bitbake/lib/bb/runqueue.py
index 5a45943..af11e9a 100644
--- a/poky/bitbake/lib/bb/runqueue.py
+++ b/poky/bitbake/lib/bb/runqueue.py
@@ -1004,26 +1004,32 @@
         # Handle --runall
         if self.cooker.configuration.runall:
             # re-run the mark_active and then drop unused tasks from new list
-            reduced_tasklist = set(self.runtaskentries.keys())
-            for tid in list(self.runtaskentries.keys()):
-                if tid not in runq_build:
-                   reduced_tasklist.remove(tid)
-            runq_build = {}
 
-            for task in self.cooker.configuration.runall:
-                if not task.startswith("do_"):
-                    task = "do_{0}".format(task)
+            runall_tids = set()
+            added = True
+            while added:
+                reduced_tasklist = set(self.runtaskentries.keys())
+                for tid in list(self.runtaskentries.keys()):
+                    if tid not in runq_build:
+                       reduced_tasklist.remove(tid)
+                runq_build = {}
+
+                orig = runall_tids
                 runall_tids = set()
-                for tid in reduced_tasklist:
-                    wanttid = "{0}:{1}".format(fn_from_tid(tid), task)
-                    if wanttid in self.runtaskentries:
-                        runall_tids.add(wanttid)
+                for task in self.cooker.configuration.runall:
+                    if not task.startswith("do_"):
+                        task = "do_{0}".format(task)
+                    for tid in reduced_tasklist:
+                        wanttid = "{0}:{1}".format(fn_from_tid(tid), task)
+                        if wanttid in self.runtaskentries:
+                            runall_tids.add(wanttid)
 
-                for tid in list(runall_tids):
-                    mark_active(tid, 1)
-                    self.target_tids.append(tid)
-                    if self.cooker.configuration.force:
-                        invalidate_task(tid, False)
+                    for tid in list(runall_tids):
+                        mark_active(tid, 1)
+                        self.target_tids.append(tid)
+                        if self.cooker.configuration.force:
+                            invalidate_task(tid, False)
+                added = runall_tids - orig
 
         delcount = set()
         for tid in list(self.runtaskentries.keys()):
@@ -1685,6 +1691,17 @@
         return
 
     def print_diffscenetasks(self):
+        def get_root_invalid_tasks(task, taskdepends, valid, noexec, visited_invalid):
+            invalidtasks = []
+            for t in taskdepends[task].depends:
+                if t not in valid and t not in visited_invalid:
+                    invalidtasks.extend(get_root_invalid_tasks(t, taskdepends, valid, noexec, visited_invalid))
+                    visited_invalid.add(t)
+
+            direct_invalid = [t for t in taskdepends[task].depends if t not in valid]
+            if not direct_invalid and task not in noexec:
+                invalidtasks = [task]
+            return invalidtasks
 
         noexec = []
         tocheck = set()
@@ -1718,35 +1735,35 @@
                     valid_new.add(dep)
 
         invalidtasks = set()
-        for tid in self.rqdata.runtaskentries:
-            if tid not in valid_new and tid not in noexec:
-                invalidtasks.add(tid)
 
-        found = set()
-        processed = set()
-        for tid in invalidtasks:
+        toptasks = set(["{}:{}".format(t[3], t[2]) for t in self.rqdata.targets])
+        for tid in toptasks:
             toprocess = set([tid])
             while toprocess:
                 next = set()
+                visited_invalid = set()
                 for t in toprocess:
-                    for dep in self.rqdata.runtaskentries[t].depends:
-                        if dep in invalidtasks:
-                            found.add(tid)
-                        if dep not in processed:
-                            processed.add(dep)
+                    if t not in valid_new and t not in noexec:
+                        invalidtasks.update(get_root_invalid_tasks(t, self.rqdata.runtaskentries, valid_new, noexec, visited_invalid))
+                        continue
+                    if t in self.rqdata.runq_setscene_tids:
+                        for dep in self.rqexe.sqdata.sq_deps[t]:
                             next.add(dep)
+                        continue
+
+                    for dep in self.rqdata.runtaskentries[t].depends:
+                        next.add(dep)
+
                 toprocess = next
-                if tid in found:
-                    toprocess = set()
 
         tasklist = []
-        for tid in invalidtasks.difference(found):
+        for tid in invalidtasks:
             tasklist.append(tid)
 
         if tasklist:
             bb.plain("The differences between the current build and any cached tasks start at the following tasks:\n" + "\n".join(tasklist))
 
-        return invalidtasks.difference(found)
+        return invalidtasks
 
     def write_diffscenetasks(self, invalidtasks):
         bb.siggen.check_siggen_version(bb.siggen)
diff --git a/poky/bitbake/lib/bb/server/process.py b/poky/bitbake/lib/bb/server/process.py
index d495ac6..6d77ce4 100644
--- a/poky/bitbake/lib/bb/server/process.py
+++ b/poky/bitbake/lib/bb/server/process.py
@@ -500,12 +500,18 @@
         self.recv = recv
 
     def runCommand(self, command):
-        self.connection.send(command)
+        try:
+            self.connection.send(command)
+        except BrokenPipeError as e:
+            raise BrokenPipeError("bitbake-server might have died or been forcibly stopped, ie. OOM killed") from e
         if not self.recv.poll(30):
             logger.info("No reply from server in 30s (for command %s at %s)" % (command[0], currenttime()))
             if not self.recv.poll(30):
                 raise ProcessTimeout("Timeout while waiting for a reply from the bitbake server (60s at %s)" % currenttime())
-        ret, exc = self.recv.get()
+        try:
+            ret, exc = self.recv.get()
+        except EOFError as e:
+            raise EOFError("bitbake-server might have died or been forcibly stopped, ie. OOM killed") from e
         # Should probably turn all exceptions in exc back into exceptions?
         # For now, at least handle BBHandledException
         if exc and ("BBHandledException" in exc or "SystemExit" in exc):
diff --git a/poky/bitbake/lib/bb/tests/event.py b/poky/bitbake/lib/bb/tests/event.py
index d959f2d..ef61891 100644
--- a/poky/bitbake/lib/bb/tests/event.py
+++ b/poky/bitbake/lib/bb/tests/event.py
@@ -13,6 +13,7 @@
 import threading
 import time
 import unittest
+import tempfile
 from unittest.mock import Mock
 from unittest.mock import call
 
@@ -468,6 +469,8 @@
 
     def setUp(self):
         bb.event.worker_pid = EventClassesTest._worker_pid
+        self.d = bb.data.init()
+        bb.parse.siggen = bb.siggen.init(self.d)
 
     def test_Event(self):
         """ Test the Event base class """
@@ -950,3 +953,24 @@
         event = bb.event.FindSigInfoResult(result)
         self.assertEqual(event.result, result)
         self.assertEqual(event.pid, EventClassesTest._worker_pid)
+
+    def test_lineno_in_eventhandler(self):
+        # The error lineno is 5, not 4 since the first line is '\n'
+        error_line = """
+# Comment line1
+# Comment line2
+python test_lineno_in_eventhandler() {
+    This is an error line
+}
+addhandler test_lineno_in_eventhandler
+test_lineno_in_eventhandler[eventmask] = "bb.event.ConfigParsed"
+"""
+
+        with self.assertLogs() as logs:
+            f = tempfile.NamedTemporaryFile(suffix = '.bb')
+            f.write(bytes(error_line, "utf-8"))
+            f.flush()
+            d = bb.parse.handle(f.name, self.d)['']
+
+        output = "".join(logs.output)
+        self.assertTrue(" line 5\n" in output)
diff --git a/poky/bitbake/lib/bb/tests/parse.py b/poky/bitbake/lib/bb/tests/parse.py
index 304bbbe..72d1962 100644
--- a/poky/bitbake/lib/bb/tests/parse.py
+++ b/poky/bitbake/lib/bb/tests/parse.py
@@ -243,3 +243,101 @@
         with self.assertRaises(bb.parse.ParseError):
             d = bb.parse.handle(f.name, self.d)['']
 
+    export_function_recipe = """
+inherit someclass
+"""
+
+    export_function_recipe2 = """
+inherit someclass
+
+do_compile () {
+    false
+}
+
+python do_compilepython () {
+    bb.note("Something else")
+}
+
+"""
+    export_function_class = """
+someclass_do_compile() {
+    true
+}
+
+python someclass_do_compilepython () {
+    bb.note("Something")
+}
+
+EXPORT_FUNCTIONS do_compile do_compilepython
+"""
+
+    export_function_class2 = """
+secondclass_do_compile() {
+    true
+}
+
+python secondclass_do_compilepython () {
+    bb.note("Something")
+}
+
+EXPORT_FUNCTIONS do_compile do_compilepython
+"""
+
+    def test_parse_export_functions(self):
+        def check_function_flags(d):
+            self.assertEqual(d.getVarFlag("do_compile", "func"), 1)
+            self.assertEqual(d.getVarFlag("do_compilepython", "func"), 1)
+            self.assertEqual(d.getVarFlag("do_compile", "python"), None)
+            self.assertEqual(d.getVarFlag("do_compilepython", "python"), "1")
+
+        with tempfile.TemporaryDirectory() as tempdir:
+            self.d.setVar("__bbclasstype", "recipe")
+            recipename = tempdir + "/recipe.bb"
+            os.makedirs(tempdir + "/classes")
+            with open(tempdir + "/classes/someclass.bbclass", "w") as f:
+                f.write(self.export_function_class)
+                f.flush()
+            with open(tempdir + "/classes/secondclass.bbclass", "w") as f:
+                f.write(self.export_function_class2)
+                f.flush()
+
+            with open(recipename, "w") as f:
+                f.write(self.export_function_recipe)
+                f.flush()
+            os.chdir(tempdir)
+            d = bb.parse.handle(recipename, bb.data.createCopy(self.d))['']
+            self.assertIn("someclass_do_compile", d.getVar("do_compile"))
+            self.assertIn("someclass_do_compilepython", d.getVar("do_compilepython"))
+            check_function_flags(d)
+
+            recipename2 = tempdir + "/recipe2.bb"
+            with open(recipename2, "w") as f:
+                f.write(self.export_function_recipe2)
+                f.flush()
+
+            d = bb.parse.handle(recipename2, bb.data.createCopy(self.d))['']
+            self.assertNotIn("someclass_do_compile", d.getVar("do_compile"))
+            self.assertNotIn("someclass_do_compilepython", d.getVar("do_compilepython"))
+            self.assertIn("false", d.getVar("do_compile"))
+            self.assertIn("else", d.getVar("do_compilepython"))
+            check_function_flags(d)
+
+            with open(recipename, "a+") as f:
+                f.write("\ninherit secondclass\n")
+                f.flush()
+            with open(recipename2, "a+") as f:
+                f.write("\ninherit secondclass\n")
+                f.flush()
+
+            d = bb.parse.handle(recipename, bb.data.createCopy(self.d))['']
+            self.assertIn("secondclass_do_compile", d.getVar("do_compile"))
+            self.assertIn("secondclass_do_compilepython", d.getVar("do_compilepython"))
+            check_function_flags(d)
+
+            d = bb.parse.handle(recipename2, bb.data.createCopy(self.d))['']
+            self.assertNotIn("someclass_do_compile", d.getVar("do_compile"))
+            self.assertNotIn("someclass_do_compilepython", d.getVar("do_compilepython"))
+            self.assertIn("false", d.getVar("do_compile"))
+            self.assertIn("else", d.getVar("do_compilepython"))
+            check_function_flags(d)
+
diff --git a/poky/bitbake/lib/bb/ui/knotty.py b/poky/bitbake/lib/bb/ui/knotty.py
index 431baa1..5a97d04 100644
--- a/poky/bitbake/lib/bb/ui/knotty.py
+++ b/poky/bitbake/lib/bb/ui/knotty.py
@@ -420,6 +420,11 @@
     except bb.BBHandledException:
         drain_events_errorhandling(eventHandler)
         return 1
+    except Exception as e:
+        # bitbake-server comms failure
+        early_logger = bb.msg.logger_create('bitbake', sys.stdout)
+        early_logger.fatal("Attempting to set server environment: %s", e)
+        return 1
 
     if params.options.quiet == 0:
         console_loglevel = loglevel
@@ -585,7 +590,12 @@
         return
 
     llevel, debug_domains = bb.msg.constructLogOptions()
-    server.runCommand(["setEventMask", server.getEventHandle(), llevel, debug_domains, _evt_list])
+    try:
+        server.runCommand(["setEventMask", server.getEventHandle(), llevel, debug_domains, _evt_list])
+    except (BrokenPipeError, EOFError) as e:
+        # bitbake-server comms failure
+        logger.fatal("Attempting to set event mask: %s", e)
+        return 1
 
     # The logging_tree module is *extremely* helpful in debugging logging
     # domains. Uncomment here to dump the logging tree when bitbake starts
@@ -594,7 +604,11 @@
 
     universe = False
     if not params.observe_only:
-        params.updateFromServer(server)
+        try:
+            params.updateFromServer(server)
+        except Exception as e:
+            logger.fatal("Fetching command line: %s", e)
+            return 1
         cmdline = params.parseActions()
         if not cmdline:
             print("Nothing to do.  Use 'bitbake world' to build everything, or run 'bitbake --help' for usage information.")
@@ -605,7 +619,12 @@
         if cmdline['action'][0] == "buildTargets" and "universe" in cmdline['action'][1]:
             universe = True
 
-        ret, error = server.runCommand(cmdline['action'])
+        try:
+            ret, error = server.runCommand(cmdline['action'])
+        except (BrokenPipeError, EOFError) as e:
+            # bitbake-server comms failure
+            logger.fatal("Command '{}' failed: %s".format(cmdline), e)
+            return 1
         if error:
             logger.error("Command '%s' failed: %s" % (cmdline, error))
             return 1
@@ -854,15 +873,26 @@
 
             logger.error("Unknown event: %s", event)
 
+        except (BrokenPipeError, EOFError) as e:
+            # bitbake-server comms failure, don't attempt further comms and exit
+            logger.fatal("Executing event: %s", e)
+            return_value = 1
+            errors = errors + 1
+            main.shutdown = 3
         except EnvironmentError as ioerror:
             termfilter.clearFooter()
             # ignore interrupted io
             if ioerror.args[0] == 4:
                 continue
             sys.stderr.write(str(ioerror))
-            if not params.observe_only:
-                _, error = server.runCommand(["stateForceShutdown"])
             main.shutdown = 2
+            if not params.observe_only:
+                try:
+                    _, error = server.runCommand(["stateForceShutdown"])
+                except (BrokenPipeError, EOFError) as e:
+                    # bitbake-server comms failure, don't attempt further comms and exit
+                    logger.fatal("Unable to force shutdown: %s", e)
+                    main.shutdown = 3
         except KeyboardInterrupt:
             termfilter.clearFooter()
             if params.observe_only:
@@ -871,9 +901,13 @@
 
             def state_force_shutdown():
                 print("\nSecond Keyboard Interrupt, stopping...\n")
-                _, error = server.runCommand(["stateForceShutdown"])
-                if error:
-                    logger.error("Unable to cleanly stop: %s" % error)
+                try:
+                    _, error = server.runCommand(["stateForceShutdown"])
+                    if error:
+                        logger.error("Unable to cleanly stop: %s" % error)
+                except (BrokenPipeError, EOFError) as e:
+                    # bitbake-server comms failure
+                    logger.fatal("Unable to cleanly stop: %s", e)
 
             if not params.observe_only and main.shutdown == 1:
                 state_force_shutdown()
@@ -886,6 +920,9 @@
                     _, error = server.runCommand(["stateShutdown"])
                     if error:
                         logger.error("Unable to cleanly shutdown: %s" % error)
+                except (BrokenPipeError, EOFError) as e:
+                    # bitbake-server comms failure
+                    logger.fatal("Unable to cleanly shutdown: %s", e)
                 except KeyboardInterrupt:
                     state_force_shutdown()
 
@@ -893,9 +930,14 @@
         except Exception as e:
             import traceback
             sys.stderr.write(traceback.format_exc())
-            if not params.observe_only:
-                _, error = server.runCommand(["stateForceShutdown"])
             main.shutdown = 2
+            if not params.observe_only:
+                try:
+                    _, error = server.runCommand(["stateForceShutdown"])
+                except (BrokenPipeError, EOFError) as e:
+                    # bitbake-server comms failure, don't attempt further comms and exit
+                    logger.fatal("Unable to force shutdown: %s", e)
+                    main.shudown = 3
             return_value = 1
     try:
         termfilter.clearFooter()
diff --git a/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py b/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py
index 562fede..393be75 100644
--- a/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py
+++ b/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py
@@ -182,6 +182,13 @@
         abs_url = '%s%s' % (self.live_server_url, url)
         self.driver.get(abs_url)
 
+        try:  # Ensure page is loaded before proceeding
+            self.wait_until_visible("#global-nav", poll=3)
+        except NoSuchElementException:
+            self.driver.implicitly_wait(3)
+        except TimeoutException:
+            self.driver.implicitly_wait(3)
+
     def find(self, selector):
         """ Find single element by CSS selector """
         return self.driver.find_element(By.CSS_SELECTOR, selector)
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py b/poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py
index 7019b3d..b9356a0 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_all_builds_page.py
@@ -224,6 +224,7 @@
 
         url = reverse('all-builds')
         self.get(url)
+        self.wait_until_visible('#allbuildstable', poll=3)
 
         # get the project name cells from the table
         cells = self.find_all('#allbuildstable td[class="project"]')
@@ -232,7 +233,7 @@
 
         for cell in cells:
             content = cell.get_attribute('innerHTML')
-            help_icons = cell.find_elements_by_css_selector(selector)
+            help_icons = cell.find_elements(By.CSS_SELECTOR, selector)
 
             if re.search(self.PROJECT_NAME, content):
                 # no help icon next to non-cli project name
@@ -256,6 +257,7 @@
 
         url = reverse('all-builds')
         self.get(url)
+        self.wait_until_visible('#allbuildstable', poll=3)
 
         # test recent builds area for successful build
         element = self._get_build_time_element(build1)
@@ -450,9 +452,10 @@
         def test_show_rows(row_to_show, show_row_link):
             # Check that we can show rows == row_to_show
             show_row_link.select_by_value(str(row_to_show))
-            self.wait_until_visible('#allbuildstable tbody tr', poll=2)
+            self.wait_until_visible('#allbuildstable tbody tr', poll=3)
+            # check at least some rows are visible
             self.assertTrue(
-                len(self.find_all('#allbuildstable tbody tr')) == row_to_show
+                len(self.find_all('#allbuildstable tbody tr')) > 0
             )
 
         url = reverse('all-builds')
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py b/poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py
index 6540dfa..9ed1901 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_all_projects_page.py
@@ -314,8 +314,9 @@
             # Check that we can show rows == row_to_show
             show_row_link.select_by_value(str(row_to_show))
             self.wait_until_visible('#projectstable tbody tr', poll=3)
+            # check at least some rows are visible
             self.assertTrue(
-                len(self.find_all('#projectstable tbody tr')) == row_to_show
+                len(self.find_all('#projectstable tbody tr')) > 0
             )
 
         url = reverse('all-projects')
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py b/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py
index b713f30..d838ce3 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_builddashboard_page.py
@@ -162,6 +162,7 @@
         """
         url = reverse('builddashboard', args=(build.id,))
         self.get(url)
+        self.wait_until_visible('#global-nav', poll=3)
 
     def _get_build_dashboard_errors(self, build):
         """
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py b/poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py
index 9deef67..5c29548 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_layerdetails_page.py
@@ -64,7 +64,7 @@
                            args=(self.project.pk,
                                  self.imported_layer_version.pk))
 
-    def test_edit_layerdetails(self):
+    def _edit_layerdetails(self):
         """ Edit all the editable fields for the layer refresh the page and
         check that the new values exist"""
 
@@ -168,6 +168,13 @@
                         "Expected %s in the dir value for layer directory" %
                         new_dir)
 
+    def test_edit_layerdetails_page(self):
+        try:
+            self._edit_layerdetails()
+        except ElementClickInterceptedException:
+            self.skipTest(
+                "ElementClickInterceptedException occured. Element not visible or maybe covered by another element.")
+
     def test_delete_layer(self):
         """ Delete the layer """
 
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py b/poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py
index 4ad22c7..9f0b639 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_new_custom_image_page.py
@@ -90,6 +90,7 @@
         """
         url = reverse('newcustomimage', args=(self.project.id,))
         self.get(url)
+        self.wait_until_visible('#global-nav', poll=3)
 
         self.click('button[data-recipe="%s"]' % self.recipe.id)
 
diff --git a/poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py b/poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py
index 0c33c44..458bb65 100644
--- a/poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py
+++ b/poky/bitbake/lib/toaster/tests/browser/test_new_project_page.py
@@ -47,6 +47,7 @@
 
         url = reverse('newproject')
         self.get(url)
+        self.wait_until_visible('#new-project-name', poll=3)
         self.enter_text('#new-project-name', project_name)
 
         select = Select(self.find('#projectversion'))
@@ -78,6 +79,7 @@
 
         url = reverse('newproject')
         self.get(url)
+        self.wait_until_visible('#new-project-name', poll=3)
 
         self.enter_text('#new-project-name', project_name)
 
@@ -89,7 +91,8 @@
 
         self.click("#create-project-button")
 
-        element = self.wait_until_visible('#hint-error-project-name', poll=3)
+        self.wait_until_present('#hint-error-project-name', poll=3)
+        element = self.find('#hint-error-project-name')
 
         self.assertTrue(("Project names must be unique" in element.text),
                         "Did not find unique project name error message")
diff --git a/poky/bitbake/lib/toaster/tests/functional/test_create_new_project.py b/poky/bitbake/lib/toaster/tests/functional/test_create_new_project.py
index 9f88010..94d9045 100644
--- a/poky/bitbake/lib/toaster/tests/functional/test_create_new_project.py
+++ b/poky/bitbake/lib/toaster/tests/functional/test_create_new_project.py
@@ -32,6 +32,7 @@
           - Merge Toaster settings: True or False
         """
         self.get(reverse('newproject'))
+        self.wait_until_visible('#new-project-name', poll=3)
         self.driver.find_element(By.ID,
                                  "new-project-name").send_keys(project_name)
 
@@ -111,7 +112,7 @@
         """
         release = '5'
         release_title = 'Yocto Project 3.1 "Dunfell"'
-        project_name = 'projectdunfull'
+        project_name = 'projectdunfell'
         self._create_test_new_project(
             project_name,
             release,
diff --git a/poky/bitbake/lib/toaster/tests/functional/test_project_page.py b/poky/bitbake/lib/toaster/tests/functional/test_project_page.py
index 31177cc..adbe358 100644
--- a/poky/bitbake/lib/toaster/tests/functional/test_project_page.py
+++ b/poky/bitbake/lib/toaster/tests/functional/test_project_page.py
@@ -192,9 +192,10 @@
         def test_show_rows(row_to_show, show_row_link):
             # Check that we can show rows == row_to_show
             show_row_link.select_by_value(str(row_to_show))
-            self.wait_until_visible(f'#{table_selector} tbody tr', poll=2)
+            self.wait_until_visible(f'#{table_selector} tbody tr', poll=3)
+            # check at least some rows are visible
             self.assertTrue(
-                len(self.find_all(f'#{table_selector} tbody tr')) == row_to_show
+                len(self.find_all(f'#{table_selector} tbody tr')) > 0
             )
         self.wait_until_present(f'#{table_selector} tbody tr')
         show_rows = self.driver.find_elements(
diff --git a/poky/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py b/poky/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py
index ee1f5c4..eb905dd 100644
--- a/poky/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py
+++ b/poky/bitbake/lib/toaster/tests/functional/test_project_page_tab_config.py
@@ -12,7 +12,7 @@
 from django.urls import reverse
 from selenium.webdriver import Keys
 from selenium.webdriver.support.select import Select
-from selenium.common.exceptions import NoSuchElementException, TimeoutException
+from selenium.common.exceptions import ElementClickInterceptedException, NoSuchElementException, TimeoutException
 from orm.models import Project
 from tests.functional.functional_helpers import SeleniumFunctionalTestCase
 from selenium.webdriver.common.by import By
@@ -253,9 +253,10 @@
         def test_show_rows(row_to_show, show_row_link):
             # Check that we can show rows == row_to_show
             show_row_link.select_by_value(str(row_to_show))
-            self.wait_until_visible('#imagerecipestable tbody tr')
+            self.wait_until_visible('#imagerecipestable tbody tr', poll=3)
+            # check at least some rows are visible
             self.assertTrue(
-                len(self.find_all('#imagerecipestable tbody tr')) == row_to_show
+                len(self.find_all('#imagerecipestable tbody tr'))  > 0
             )
 
         self._navigate_to_project_page()
@@ -361,7 +362,11 @@
             By.XPATH,
             '//*[@id="layer-container"]/form/div/span/div'
         )
-        dropdown_item.click()
+        try:
+            dropdown_item.click()
+        except ElementClickInterceptedException:
+            self.skipTest(
+                "layer-container dropdown item click intercepted. Element not properly visible.")
         add_layer_btn = layers.find_element(By.ID, 'add-layer-btn')
         add_layer_btn.click()
         self.wait_until_visible('#layers-in-project-list')
diff --git a/poky/documentation/contributor-guide/submit-changes.rst b/poky/documentation/contributor-guide/submit-changes.rst
index 5a6136c..95728c2 100644
--- a/poky/documentation/contributor-guide/submit-changes.rst
+++ b/poky/documentation/contributor-guide/submit-changes.rst
@@ -57,7 +57,7 @@
 The first thing to do is to install Git packages. Here is an example
 on Debian and Ubuntu::
 
-   sudo aptitude install git-core git-email
+   sudo apt install git-core git-email
 
 Then, you need to set a name and e-mail address that Git will
 use to identify your commits::
diff --git a/poky/documentation/dev-manual/building.rst b/poky/documentation/dev-manual/building.rst
index a395793..e964bd1 100644
--- a/poky/documentation/dev-manual/building.rst
+++ b/poky/documentation/dev-manual/building.rst
@@ -32,6 +32,10 @@
       OpenEmbedded build system, see the
       :doc:`/brief-yoctoprojectqs/index` document.
 
+   -  You can also use the `Yocto Project BitBake
+      <https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
+      extension for Visual Studio Code to build images.
+
 The build process creates an entire Linux distribution from source and
 places it in your :term:`Build Directory` under ``tmp/deploy/images``. For
 detailed information on the build process using BitBake, see the
diff --git a/poky/documentation/dev-manual/licenses.rst b/poky/documentation/dev-manual/licenses.rst
index 3b9190d..57713ef 100644
--- a/poky/documentation/dev-manual/licenses.rst
+++ b/poky/documentation/dev-manual/licenses.rst
@@ -332,7 +332,7 @@
 
    The Yocto Project generates a license manifest during image creation
    that is located in
-   ``${DEPLOY_DIR}/licenses/<image-name>-<machine>.rootfs-<datestamp>/``
+   ``${DEPLOY_DIR}/licenses/${SSTATE_PKGARCH}/<image-name>-<machine>.rootfs-<datestamp>/``
    to assist with any audits.
 
 Providing the Source Code
diff --git a/poky/documentation/dev-manual/start.rst b/poky/documentation/dev-manual/start.rst
index 4a55696..762605a 100644
--- a/poky/documentation/dev-manual/start.rst
+++ b/poky/documentation/dev-manual/start.rst
@@ -334,7 +334,10 @@
 Project Application Development and the Extensible Software Development
 Kit (eSDK) manual. If you want to work on the kernel, see the :doc:`/kernel-dev/index`. If you are going to use
 Toaster, see the ":doc:`/toaster-manual/setup-and-use`"
-section in the Toaster User Manual.
+section in the Toaster User Manual. If you are a VSCode user, you can configure
+the `Yocto Project BitBake
+<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
+extension accordingly.
 
 Setting Up to Use CROss PlatformS (CROPS)
 -----------------------------------------
@@ -426,7 +429,10 @@
 Project Application Development and the Extensible Software Development
 Kit (eSDK) manual. If you are going to use the Toaster container, see
 the ":doc:`/toaster-manual/setup-and-use`"
-section in the Toaster User Manual.
+section in the Toaster User Manual. If you are a VSCode user, you can configure
+the `Yocto Project BitBake
+<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
+extension accordingly.
 
 Setting Up to Use Windows Subsystem For Linux (WSL 2)
 -----------------------------------------------------
@@ -554,7 +560,10 @@
 Project Application Development and the Extensible Software Development
 Kit (eSDK) manual. If you are going to use the Toaster container, see
 the ":doc:`/toaster-manual/setup-and-use`"
-section in the Toaster User Manual.
+section in the Toaster User Manual. If you are a VSCode user, you can configure
+the `Yocto Project BitBake
+<https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
+extension accordingly.
 
 Locating Yocto Project Source Files
 ===================================
@@ -621,7 +630,7 @@
 Using the Downloads Page
 ------------------------
 
-The :yocto_home:`Yocto Project Website <>` uses a "DOWNLOADS" page
+The :yocto_home:`Yocto Project Website <>` uses a "RELEASES" page
 from which you can locate and download tarballs of any Yocto Project
 release. Rather than Git repositories, these files represent snapshot
 tarballs similar to the tarballs located in the Index of Releases
@@ -630,11 +639,13 @@
 #. *Go to the Yocto Project Website:* Open The
    :yocto_home:`Yocto Project Website <>` in your browser.
 
-#. *Get to the Downloads Area:* Select the "DOWNLOADS" item from the
-   pull-down "SOFTWARE" tab menu near the top of the page.
+#. *Get to the Downloads Area:* Select the "RELEASES" item from the
+   pull-down "DEVELOPMENT" tab menu near the top of the page.
 
-#. *Select a Yocto Project Release:* Use the menu next to "RELEASE" to
-   display and choose a recent or past supported Yocto Project release
+#. *Select a Yocto Project Release:* On the top of the "RELEASE" page currently
+   supported releases are displayed, further down past supported Yocto Project
+   releases are visible. The "Download" links in the rows of the table there
+   will lead to the download tarballs for the release.
    (e.g. &DISTRO_NAME_NO_CAP;, &DISTRO_NAME_NO_CAP_MINUS_ONE;, and so forth).
 
    .. note::
@@ -645,9 +656,9 @@
    You can use the "RELEASE ARCHIVE" link to reveal a menu of all Yocto
    Project releases.
 
-#. *Download Tools or Board Support Packages (BSPs):* From the
-   "DOWNLOADS" page, you can download tools or BSPs as well. Just scroll
-   down the page and look for what you need.
+#. *Download Tools or Board Support Packages (BSPs):* Next to the tarballs you
+   will find download tools or BSPs as well. Just select a Yocto Project
+   release and look for what you need.
 
 Cloning and Checking Out Branches
 =================================
diff --git a/poky/documentation/migration-guides/release-4.3.rst b/poky/documentation/migration-guides/release-4.3.rst
index 5b651a2..3adb5b6 100644
--- a/poky/documentation/migration-guides/release-4.3.rst
+++ b/poky/documentation/migration-guides/release-4.3.rst
@@ -8,3 +8,4 @@
    migration-4.3
    release-notes-4.3
    release-notes-4.3.1
+   release-notes-4.3.2
diff --git a/poky/documentation/migration-guides/release-notes-4.3.2.rst b/poky/documentation/migration-guides/release-notes-4.3.2.rst
new file mode 100644
index 0000000..3a40d83
--- /dev/null
+++ b/poky/documentation/migration-guides/release-notes-4.3.2.rst
@@ -0,0 +1,247 @@
+.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+
+Release notes for Yocto-4.3.2 (Nanbield)
+----------------------------------------
+
+Security Fixes in Yocto-4.3.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  avahi: Fix :cve:`2023-1981`, :cve:`2023-38469`, :cve:`2023-38470`, :cve:`2023-38471`, :cve:`2023-38472` and :cve:`2023-38473`
+-  curl: Fix :cve:`2023-46218`
+-  ghostscript: Fix :cve:`2023-46751`
+-  grub: fix :cve:`2023-4692` and :cve:`2023-4693`
+-  gstreamer1.0: Fix :cve_mitre:`2023-44446`
+-  linux-yocto/6.1: Ignore :cve_mitre:`2023-39197`, :cve:`2023-39198`, :cve:`2023-5090`, :cve:`2023-5633`, :cve:`2023-6111`, :cve:`2023-6121` and :cve:`2023-6176`
+-  linux-yocto/6.5: Ignore :cve:`2022-44034`, :cve_mitre:`2023-39197`, :cve:`2023-39198`, :cve:`2023-5972`, :cve:`2023-6039`, :cve:`2023-6111` and :cve:`2023-6176`
+-  perl: fix :cve:`2023-47100`
+-  python3-urllib3: Fix :cve:`2023-45803`
+-  rust: Fix :cve:`2023-40030`
+-  vim: Fix :cve:`2023-48231`, :cve:`2023-48232`, :cve:`2023-48233`, :cve:`2023-48234`, :cve:`2023-48235`, :cve:`2023-48236` and :cve:`2023-48237`
+-  xserver-xorg: Fix :cve:`2023-5367` and :cve:`2023-5380`
+-  xwayland: Fix :cve:`2023-5367`
+
+
+Fixes in Yocto-4.3.2
+~~~~~~~~~~~~~~~~~~~~
+
+-  base-passwd: Upgrade to 3.6.2
+-  bind: Upgrade to 9.18.20
+-  binutils: stable 2.41 branch updates
+-  bitbake: command: Make parseRecipeFile() handle virtual recipes correctly
+-  bitbake: lib/bb: Add workaround for libgcc issues with python 3.8 and 3.9
+-  bitbake: toastergui: verify that an existing layer path is given
+-  bluez5: fix connection for ps5/dualshock controllers
+-  build-appliance-image: Update to nanbield head revision
+-  cmake: Upgrade to 3.27.7
+-  contributor-guide: add License-Update tag
+-  contributor-guide: fix command option
+-  cups: Add root,sys,wheel to system groups
+-  cve-update-nvd2-native: faster requests with API keys
+-  cve-update-nvd2-native: increase the delay between subsequent request failures
+-  cve-update-nvd2-native: make number of fetch attemtps configurable
+-  cve-update-nvd2-native: remove unused variable CVE_SOCKET_TIMEOUT
+-  dev-manual: Discourage the use of SRC_URI[md5sum]
+-  dev-manual: layers: update link to YP Compatible form
+-  dev-manual: runtime-testing: fix test module name
+-  devtool: finish/update-recipe: restrict mode srcrev to recipes fetched from SCM
+-  devtool: fix update-recipe dry-run mode
+-  ell: Upgrade to 0.60
+-  enchant2: Upgrade to 2.6.2
+-  ghostscript: Upgrade to 10.02.1
+-  glib-2.0: Upgrade to 2.78.1
+-  glibc: stable 2.38 branch updates
+-  gstreamer1.0: Upgrade to 1.22.7
+-  gtk: Add rdepend on printbackend for cups
+-  harfbuzz: Upgrade to 8.2.2
+-  json-c: fix icecc compilation
+-  kern-tools: bump :term:`SRCREV` for queue processing changes
+-  kern-tools: make lower context patches reproducible
+-  kern-tools: update :term:`SRCREV` to include SECURITY.md file
+-  kernel-arch: use ccache only for compiler
+-  kernel-yocto: improve metadata patching
+-  lib/oe/buildcfg.py: Include missing import
+-  lib/oe/buildcfg.py: Remove unused parameter
+-  lib/oe/patch: ensure os.chdir restoring always happens
+-  lib/oe/path: Deploy files can start only with a dot
+-  libgcrypt: Upgrade to 1.10.3
+-  libjpeg-turbo: Upgrade to 3.0.1
+-  libnewt: Upgrade to 0.52.24
+-  libnsl2: Upgrade to 2.0.1
+-  libsolv: Upgrade to 0.7.26
+-  libxslt: Upgrade to 1.1.39
+-  linux-firmware: add audio topology symlink to the X13's audio package
+-  linux-firmware: add missing depenencies on license packages
+-  linux-firmware: add new fw file to ${PN}-rtl8821
+-  linux-firmware: add notice file to sdm845 modem firmware
+-  linux-firmware: create separate packages
+-  linux-firmware: package Qualcomm Venus 6.0 firmware
+-  linux-firmware: package Robotics RB5 sensors DSP firmware
+-  linux-firmware: package firmware for Qualcomm Adreno a702
+-  linux-firmware: package firmware for Qualcomm QCM2290 / QRB4210
+-  linux-firmware: Upgrade to 20231030
+-  linux-yocto-rt/6.1: update to -rt18
+-  linux-yocto/6.1: cfg: restore CONFIG_DEVMEM
+-  linux-yocto/6.1: drop removed IMA option
+-  linux-yocto/6.1: Upgrade to v6.1.68
+-  linux-yocto/6.5: cfg: restore CONFIG_DEVMEM
+-  linux-yocto/6.5: cfg: split runtime and symbol debug
+-  linux-yocto/6.5: drop removed IMA option
+-  linux-yocto/6.5: fix AB-INT: QEMU kernel panic: No irq handler for vector
+-  linux-yocto/6.5: Upgrade to v6.5.13
+-  linux/cve-exclusion6.1: Update to latest kernel point release
+-  log4cplus: Upgrade to 2.1.1
+-  lsb-release: use https for :term:`UPSTREAM_CHECK_URI`
+-  manuals: brief-yoctoprojectqs: align variable order with default local.conf
+-  manuals: fix URL
+-  meson: use correct targets for rust binaries
+-  migration-guide: add release notes for 4.0.14, 4.0.15, 4.2.4, 4.3.1
+-  migration-guides: release 3.5 is actually 4.0
+-  migration-guides: reword fix in release-notes-4.3.1
+-  msmtp: Upgrade to 1.8.25
+-  oeqa/selftest/tinfoil: Add tests that parse virtual recipes
+-  openssl: improve handshake test error reporting
+-  package_ipk: Fix Source: field variable dependency
+-  patchtest: shorten patch signed-off-by test output
+-  perf: lift :term:`TARGET_CC_ARCH` modification out of security_flags.inc
+-  perl: Upgrade to 5.38.2
+-  perlcross: Upgrade to 1.5.2
+-  poky.conf: bump version for 4.3.2 release
+-  python3-ptest: skip test_storlines
+-  python3-urllib3: Upgrade to 2.0.7
+-  qemu: Upgrade to 8.1.2
+-  ref-manual: Fix reference to MIRRORS/PREMIRRORS defaults
+-  ref-manual: releases.svg: update nanbield release status
+-  useradd_base: sed -i destroys symlinks
+-  rootfs-postcommands: sed -i destroys symlinks
+-  sstate: Ensure sstate searches update file mtime
+-  strace: backport fix for so_peerpidfd-test
+-  systemd-boot: Fix build issues on armv7a-linux
+-  systemd-compat-units.bb: fix postinstall script
+-  systemd: fix DynamicUser issue
+-  systemd: update :term:`LICENSE` statement
+-  tcl: skip async and event tests in run-ptest
+-  tcl: skip timing-dependent tests in run-ptest
+-  test-manual: add links to python unittest
+-  test-manual: add or improve hyperlinks
+-  test-manual: explicit or fix file paths
+-  test-manual: resource updates
+-  test-manual: text and formatting fixes
+-  test-manual: use working example
+-  testimage: Drop target_dumper and most of monitor_dumper
+-  testimage: Exclude wtmp from target-dumper commands
+-  tzdata: Upgrade to 2023d
+-  update_gtk_icon_cache: Fix for GTK4-only builds
+-  useradd_base: Fix sed command line for passwd-expire
+-  vim: Upgrade to 9.0.2130
+-  xserver-xorg: Upgrade to 21.1.9
+-  xwayland: Upgrade to 23.2.2
+
+
+Known Issues in Yocto-4.3.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- N/A
+
+Contributors to Yocto-4.3.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  Adam Johnston
+-  Alexander Kanavin
+-  Anuj Mittal
+-  Bastian Krause
+-  Bruce Ashfield
+-  Chen Qi
+-  Deepthi Hemraj
+-  Dhairya Nagodra
+-  Dmitry Baryshkov
+-  Fahad Arslan
+-  Javier Tia
+-  Jermain Horsman
+-  Joakim Tjernlund
+-  Julien Stephan
+-  Justin Bronder
+-  Khem Raj
+-  Lee Chee Yang
+-  Marco Felsch
+-  Markus Volk
+-  Marta Rybczynska
+-  Massimiliano Minella
+-  Michael Opdenacker
+-  Paul Barker
+-  Peter Kjellerstedt
+-  Peter Marko
+-  Randy MacLeod
+-  Rasmus Villemoes
+-  Richard Purdie
+-  Ross Burton
+-  Shubham Kulkarni
+-  Simone Weiß
+-  Steve Sakoman
+-  Sundeep KOKKONDA
+-  Tim Orling
+-  Trevor Gamblin
+-  Vijay Anusuri
+-  Viswanath Kraleti
+-  Vyacheslav Yurkov
+-  Wang Mingyu
+-  William Lyu
+-  Zoltán Böszörményi
+
+Repositories / Downloads for Yocto-4.3.2
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+poky
+
+-  Repository Location: :yocto_git:`/poky`
+-  Branch: :yocto_git:`nanbield </poky/log/?h=nanbield>`
+-  Tag:  :yocto_git:`yocto-4.3.2 </poky/log/?h=yocto-4.3.2>`
+-  Git Revision: :yocto_git:`f768ffb8916feb6542fcbe3e946cbf30e247b151 </poky/commit/?id=f768ffb8916feb6542fcbe3e946cbf30e247b151>`
+-  Release Artefact: poky-f768ffb8916feb6542fcbe3e946cbf30e247b151
+-  sha: 21ca1695d70aba9b4bd8626d160111feab76206883cd14fe41eb024692bdfd7b
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.3.2/poky-f768ffb8916feb6542fcbe3e946cbf30e247b151.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.3.2/poky-f768ffb8916feb6542fcbe3e946cbf30e247b151.tar.bz2
+
+openembedded-core
+
+-  Repository Location: :oe_git:`/openembedded-core`
+-  Branch: :oe_git:`nanbield </openembedded-core/log/?h=nanbield>`
+-  Tag:  :oe_git:`yocto-4.3.2 </openembedded-core/log/?h=yocto-4.3.2>`
+-  Git Revision: :oe_git:`ff595b937d37d2315386aebf315cea719e2362ea </openembedded-core/commit/?id=ff595b937d37d2315386aebf315cea719e2362ea>`
+-  Release Artefact: oecore-ff595b937d37d2315386aebf315cea719e2362ea
+-  sha: a7c6332dc0e09ecc08221e78b11151e8e2a3fd9fa3eaad96a4c03b67012bfb97
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.3.2/oecore-ff595b937d37d2315386aebf315cea719e2362ea.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.3.2/oecore-ff595b937d37d2315386aebf315cea719e2362ea.tar.bz2
+
+meta-mingw
+
+-  Repository Location: :yocto_git:`/meta-mingw`
+-  Branch: :yocto_git:`nanbield </meta-mingw/log/?h=nanbield>`
+-  Tag:  :yocto_git:`yocto-4.3.2 </meta-mingw/log/?h=yocto-4.3.2>`
+-  Git Revision: :yocto_git:`49617a253e09baabbf0355bc736122e9549c8ab2 </meta-mingw/commit/?id=49617a253e09baabbf0355bc736122e9549c8ab2>`
+-  Release Artefact: meta-mingw-49617a253e09baabbf0355bc736122e9549c8ab2
+-  sha: 2225115b73589cdbf1e491115221035c6a61679a92a93b2a3cf761ff87bf4ecc
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.3.2/meta-mingw-49617a253e09baabbf0355bc736122e9549c8ab2.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.3.2/meta-mingw-49617a253e09baabbf0355bc736122e9549c8ab2.tar.bz2
+
+bitbake
+
+-  Repository Location: :oe_git:`/bitbake`
+-  Branch: :oe_git:`2.6 </bitbake/log/?h=2.6>`
+-  Tag:  :oe_git:`yocto-4.3.2 </bitbake/log/?h=yocto-4.3.2>`
+-  Git Revision: :oe_git:`72bf75f0b2e7f36930185e18a1de8277ce7045d8 </bitbake/commit/?id=72bf75f0b2e7f36930185e18a1de8277ce7045d8>`
+-  Release Artefact: bitbake-72bf75f0b2e7f36930185e18a1de8277ce7045d8
+-  sha: 0b6ccd4796ccd211605090348a3d4378358c839ae1bb4c35964d0f36f2663187
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.3.2/bitbake-72bf75f0b2e7f36930185e18a1de8277ce7045d8.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.3.2/bitbake-72bf75f0b2e7f36930185e18a1de8277ce7045d8.tar.bz2
+
+yocto-docs
+
+-  Repository Location: :yocto_git:`/yocto-docs`
+-  Branch: :yocto_git:`nanbield </yocto-docs/log/?h=nanbield>`
+-  Tag: :yocto_git:`yocto-4.3.2 </yocto-docs/log/?h=yocto-4.3.2>`
+-  Git Revision: :yocto_git:`fac88b9e80646a68b31975c915a718a9b6b2b439 </yocto-docs/commit/?id=fac88b9e80646a68b31975c915a718a9b6b2b439>`
+
diff --git a/poky/documentation/overview-manual/development-environment.rst b/poky/documentation/overview-manual/development-environment.rst
index 262d5cb..d79173f 100644
--- a/poky/documentation/overview-manual/development-environment.rst
+++ b/poky/documentation/overview-manual/development-environment.rst
@@ -131,6 +131,14 @@
    Toaster and on how to use Toaster in general, see the
    :doc:`/toaster-manual/index`.
 
+-  *Using the VSCode Extension:* You can use the `Yocto Project BitBake
+   <https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
+   extension for Visual Studio Code to start your BitBake builds through a
+   graphical user interface.
+
+   Learn more about the VSCode Extension on the `extension's marketplace page
+   <https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__.
+
 Yocto Project Source Repositories
 =================================
 
diff --git a/poky/documentation/overview-manual/yp-intro.rst b/poky/documentation/overview-manual/yp-intro.rst
index d694642..1e6820c 100644
--- a/poky/documentation/overview-manual/yp-intro.rst
+++ b/poky/documentation/overview-manual/yp-intro.rst
@@ -340,6 +340,18 @@
    view information about builds. For information on Toaster, see the
    :doc:`/toaster-manual/index`.
 
+-  *VSCode IDE Extension:* The `Yocto Project BitBake
+   <https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
+   extension for Visual Studio Code provides a rich set of features for working
+   with BitBake recipes. The extension provides syntax highlighting,
+   hover tips, and completion for BitBake files as well as embedded Python and
+   Bash languages. Additional views and commands allow you to efficiently
+   browse, build and edit recipes. It also provides SDK integration for
+   cross-compiling and debugging through ``devtool``.
+
+   Learn more about the VSCode Extension on the `extension's frontpage
+   <https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__.
+
 Production Tools
 ----------------
 
@@ -605,6 +617,14 @@
    For information about and how to use Toaster, see the
    :doc:`/toaster-manual/index`.
 
+-  *Using the VSCode Extension:* You can use the `Yocto Project BitBake
+   <https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
+   extension for Visual Studio Code to start your BitBake builds through a
+   graphical user interface.
+
+   Learn more about the VSCode Extension on the `extension's marketplace page
+   <https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
+
 Reference Embedded Distribution (Poky)
 ======================================
 
diff --git a/poky/documentation/ref-manual/classes.rst b/poky/documentation/ref-manual/classes.rst
index a8afe9f..844433c 100644
--- a/poky/documentation/ref-manual/classes.rst
+++ b/poky/documentation/ref-manual/classes.rst
@@ -377,6 +377,35 @@
 being built, you should install them (during :ref:`ref-tasks-install`) to the
 preferred CMake Module directory: ``${D}${datadir}/cmake/modules/``.
 
+.. _ref-classes-cmake-qemu:
+
+``cmake-qemu``
+==============
+
+The :ref:`ref-classes-cmake-qemu` class might be used instead of the
+:ref:`ref-classes-cmake` class. In addition to the features provided by the
+:ref:`ref-classes-cmake` class, the :ref:`ref-classes-cmake-qemu` class passes
+the ``CMAKE_CROSSCOMPILING_EMULATOR`` setting to ``cmake``. This allows to use
+QEMU user-mode emulation for the execution of cross-compiled binaries on the
+host machine.  For more information about ``CMAKE_CROSSCOMPILING_EMULATOR``
+please refer to the `related section of the CMake documentation
+<https://cmake.org/cmake/help/latest/variable/CMAKE_CROSSCOMPILING_EMULATOR.html>`__.
+
+Not all platforms are supported by QEMU. This class only works for machines with
+``qemu-usermode`` in the :ref:`ref-features-machine`. Using QEMU user-mode therefore
+involves a certain risk, which is also the reason why this feature is not part of
+the main :ref:`ref-classes-cmake` class by default.
+
+One use case is the execution of cross-compiled unit tests with CTest on the build
+machine. If ``CMAKE_CROSSCOMPILING_EMULATOR`` is configured::
+
+   cmake --build --target test
+
+works transparently with QEMU user-mode.
+
+If the CMake project is developed with this use case in mind this works very nicely.
+This also applies to an IDE configured to use ``cmake-native`` for cross-compiling.
+
 .. _ref-classes-cml1:
 
 ``cml1``
@@ -1538,16 +1567,6 @@
    automatically get these versions. Consequently, you should only need
    to explicitly add dependencies to binary driver recipes.
 
-.. _ref-classes-insserv:
-
-``insserv``
-===========
-
-The :ref:`ref-classes-insserv` class uses the ``insserv`` utility to update the order
-of symbolic links in ``/etc/rc?.d/`` within an image based on
-dependencies specified by LSB headers in the ``init.d`` scripts
-themselves.
-
 .. _ref-classes-kernel:
 
 ``kernel``
@@ -3210,7 +3229,7 @@
 a machine. Specify the machine in your recipe as follows::
 
    UBOOT_CONFIG ??= <default>
-   UBOOT_CONFIG[foo] = "config,images"
+   UBOOT_CONFIG[foo] = "config,images,binary"
 
 You can also specify the machine using this method::
 
diff --git a/poky/documentation/ref-manual/resources.rst b/poky/documentation/ref-manual/resources.rst
index 8c3726e..8e54ac8 100644
--- a/poky/documentation/ref-manual/resources.rst
+++ b/poky/documentation/ref-manual/resources.rst
@@ -169,6 +169,11 @@
    the :term:`OpenEmbedded Build System`, which uses
    BitBake, that reports build information.
 
+-  `Yocto Project BitBake extension for VSCode
+   <https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__:
+   This extension provides a rich feature set when working with BitBake recipes
+   within the Visual Studio Code IDE.
+
 -  :yocto_wiki:`FAQ </FAQ>`: A list of commonly asked
    questions and their answers.
 
diff --git a/poky/documentation/ref-manual/system-requirements.rst b/poky/documentation/ref-manual/system-requirements.rst
index e1ff51c8..9e2dd53 100644
--- a/poky/documentation/ref-manual/system-requirements.rst
+++ b/poky/documentation/ref-manual/system-requirements.rst
@@ -62,8 +62,6 @@
 
 -  Ubuntu 22.04 (LTS)
 
--  Fedora 37
-
 -  Fedora 38
 
 -  CentOS Stream 8
@@ -74,19 +72,18 @@
 
 -  OpenSUSE Leap 15.4
 
--  AlmaLinux 8.8
+-  AlmaLinux 8
 
--  AlmaLinux 9.2
+-  AlmaLinux 9
 
-The following distribution versions are still tested (being listed
-in :term:`SANITY_TESTED_DISTROS`), even though the organizations
-publishing them no longer make updates publicly available:
+-  Rocky 9
+
+The following distribution versions are still tested, even though the
+organizations publishing them no longer make updates publicly available:
 
 -  Ubuntu 18.04 (LTS)
 
--  Ubuntu 22.10
-
--  OpenSUSE Leap 15.3
+-  Ubuntu 23.04
 
 Note that the Yocto Project doesn't have access to private updates
 that some of these versions may have. Therefore, our testing has
diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst
index b394d31..6f7d6ff 100644
--- a/poky/documentation/ref-manual/variables.rst
+++ b/poky/documentation/ref-manual/variables.rst
@@ -9383,23 +9383,30 @@
       See the machine include files in the :term:`Source Directory`
       for these features.
 
+   :term:`UBOOT_BINARY`
+      Specifies the name of the binary build by U-Boot.
+
    :term:`UBOOT_CONFIG`
-      Configures the :term:`UBOOT_MACHINE` and can
-      also define :term:`IMAGE_FSTYPES` for individual
-      cases.
+      Configures one or more U-Boot configurations to build. Each
+      configuration can define the :term:`UBOOT_MACHINE` and optionally the
+      :term:`IMAGE_FSTYPES` and the :term:`UBOOT_BINARY`.
 
-      Following is an example from the ``meta-fsl-arm`` layer. ::
+      Following is an example from the ``meta-freescale`` layer. ::
 
-         UBOOT_CONFIG ??= "sd"
-         UBOOT_CONFIG[sd] = "mx6qsabreauto_config,sdcard"
-         UBOOT_CONFIG[eimnor] = "mx6qsabreauto_eimnor_config"
-         UBOOT_CONFIG[nand] = "mx6qsabreauto_nand_config,ubifs"
-         UBOOT_CONFIG[spinor] = "mx6qsabreauto_spinor_config"
+         UBOOT_CONFIG ??= "sdcard-ifc-secure-boot sdcard-ifc sdcard-qspi lpuart qspi secure-boot nor"
+         UBOOT_CONFIG[nor] = "ls1021atwr_nor_defconfig"
+         UBOOT_CONFIG[sdcard-ifc] = "ls1021atwr_sdcard_ifc_defconfig,,u-boot-with-spl-pbl.bin"
+         UBOOT_CONFIG[sdcard-qspi] = "ls1021atwr_sdcard_qspi_defconfig,,u-boot-with-spl-pbl.bin"
+         UBOOT_CONFIG[lpuart] = "ls1021atwr_nor_lpuart_defconfig"
+         UBOOT_CONFIG[qspi] = "ls1021atwr_qspi_defconfig"
+         UBOOT_CONFIG[secure-boot] = "ls1021atwr_nor_SECURE_BOOT_defconfig"
+         UBOOT_CONFIG[sdcard-ifc-secure-boot] = "ls1021atwr_sdcard_ifc_SECURE_BOOT_defconfig,,u-boot-with-spl-pbl.bin"
 
-      In this example, "sd" is selected as the configuration of the possible four for the
-      :term:`UBOOT_MACHINE`. The "sd" configuration defines
-      "mx6qsabreauto_config" as the value for :term:`UBOOT_MACHINE`, while the
-      "sdcard" specifies the :term:`IMAGE_FSTYPES` to use for the U-Boot image.
+      In this example, all possible seven configurations are selected. Each
+      configuration specifies "..._defconfig" as :term:`UBOOT_MACHINE`, and
+      the "sd..." configurations define an individual name for
+      :term:`UBOOT_BINARY`. No configuration defines a second parameter for
+      :term:`IMAGE_FSTYPES` to use for the U-Boot image.
 
       For more information on how the :term:`UBOOT_CONFIG` is handled, see the
       :ref:`ref-classes-uboot-config` class.
diff --git a/poky/documentation/what-i-wish-id-known.rst b/poky/documentation/what-i-wish-id-known.rst
index fe79bc0..5bc5580 100644
--- a/poky/documentation/what-i-wish-id-known.rst
+++ b/poky/documentation/what-i-wish-id-known.rst
@@ -214,6 +214,13 @@
      OpenEmbedded build system. If you are interested in using this type of
      interface to create images, see the :doc:`/toaster-manual/index`.
 
+   * **Discover the VSCode extension**: The `Yocto Project BitBake
+     <https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__
+     extension for the Visual Studio Code IDE provides language features and
+     commands for working with the Yocto Project. If you are interested in using
+     this extension, visit its `marketplace page
+     <https://marketplace.visualstudio.com/items?itemName=yocto-project.yocto-bitbake>`__.
+
    * **Have Available the Yocto Project Reference Manual**: Unlike the rest of
      the Yocto Project manual set, this manual is comprised of material suited
      for reference rather than procedures. You can get build details, a closer
diff --git a/poky/meta-selftest/recipes-test/quilt-native/quilt-native_%.bbappend b/poky/meta-selftest/recipes-test/perlcross/perlcross_%.bbappend
similarity index 100%
rename from poky/meta-selftest/recipes-test/quilt-native/quilt-native_%.bbappend
rename to poky/meta-selftest/recipes-test/perlcross/perlcross_%.bbappend
diff --git a/poky/meta/classes-recipe/autotools.bbclass b/poky/meta/classes-recipe/autotools.bbclass
index 1663307..ca76cde 100644
--- a/poky/meta/classes-recipe/autotools.bbclass
+++ b/poky/meta/classes-recipe/autotools.bbclass
@@ -37,7 +37,7 @@
 export CONFIG_SITE
 
 acpaths ?= "default"
-EXTRA_AUTORECONF = "--exclude=autopoint --exclude=gtkdocize"
+EXTRA_AUTORECONF += "--exclude=autopoint"
 
 export lt_cv_sys_lib_dlsearch_path_spec = "${libdir} ${base_libdir}"
 
diff --git a/poky/meta/classes-recipe/gtk-doc.bbclass b/poky/meta/classes-recipe/gtk-doc.bbclass
index 68fa2cc..9d39119 100644
--- a/poky/meta/classes-recipe/gtk-doc.bbclass
+++ b/poky/meta/classes-recipe/gtk-doc.bbclass
@@ -25,36 +25,19 @@
 GTKDOC_MESON_DISABLE_FLAG ?= 'false'
 
 # Auto enable/disable based on GTKDOC_ENABLED
-EXTRA_OECONF:prepend:class-target = "${@bb.utils.contains('GTKDOC_ENABLED', 'True', '--enable-gtk-doc --enable-gtk-doc-html --disable-gtk-doc-pdf', \
+EXTRA_OECONF:prepend = "${@bb.utils.contains('GTKDOC_ENABLED', 'True', '--enable-gtk-doc --enable-gtk-doc-html --disable-gtk-doc-pdf', \
                                                                                     '--disable-gtk-doc', d)} "
-EXTRA_OEMESON:prepend:class-target = "-D${GTKDOC_MESON_OPTION}=${@bb.utils.contains('GTKDOC_ENABLED', 'True', '${GTKDOC_MESON_ENABLE_FLAG}', '${GTKDOC_MESON_DISABLE_FLAG}', d)} "
-
-# When building native recipes, disable gtkdoc, as it is not necessary,
-# pulls in additional dependencies, and makes build times longer
-EXTRA_OECONF:prepend:class-native = "--disable-gtk-doc "
-EXTRA_OECONF:prepend:class-nativesdk = "--disable-gtk-doc "
-EXTRA_OEMESON:prepend:class-native = "-D${GTKDOC_MESON_OPTION}=${GTKDOC_MESON_DISABLE_FLAG} "
-EXTRA_OEMESON:prepend:class-nativesdk = "-D${GTKDOC_MESON_OPTION}=${GTKDOC_MESON_DISABLE_FLAG} "
+EXTRA_OEMESON:prepend = "-D${GTKDOC_MESON_OPTION}=${@bb.utils.contains('GTKDOC_ENABLED', 'True', '${GTKDOC_MESON_ENABLE_FLAG}', '${GTKDOC_MESON_DISABLE_FLAG}', d)} "
 
 # Even though gtkdoc is disabled on -native, gtk-doc package is still
 # needed for m4 macros.
 DEPENDS:append = " gtk-doc-native"
 
-# The documentation directory, where the infrastructure will be copied.
-# gtkdocize has a default of "." so to handle out-of-tree builds set this to $S.
-GTKDOC_DOCDIR ?= "${S}"
-
 export STAGING_DIR_HOST
 
 inherit python3native pkgconfig qemu
 DEPENDS:append = "${@' qemu-native' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}"
 
-do_configure:prepend () {
-	# Need to use ||true as this is only needed if configure.ac both exists
-	# and uses GTK_DOC_CHECK.
-	gtkdocize --srcdir ${S} --docdir ${GTKDOC_DOCDIR} || true
-}
-
 do_compile:prepend:class-target () {
     if [ ${GTKDOC_ENABLED} = True ]; then
         # Write out a qemu wrapper that will be given to gtkdoc-scangobj so that it
diff --git a/poky/meta/classes-recipe/meson.bbclass b/poky/meta/classes-recipe/meson.bbclass
index a85d120..3304323 100644
--- a/poky/meta/classes-recipe/meson.bbclass
+++ b/poky/meta/classes-recipe/meson.bbclass
@@ -74,7 +74,7 @@
 strip = ${@meson_array('STRIP', d)}
 readelf = ${@meson_array('READELF', d)}
 objcopy = ${@meson_array('OBJCOPY', d)}
-pkgconfig = 'pkg-config'
+pkg-config = 'pkg-config'
 llvm-config = 'llvm-config'
 cups-config = 'cups-config'
 g-ir-scanner = '${STAGING_BINDIR}/g-ir-scanner-wrapper'
@@ -115,7 +115,7 @@
 readelf = ${@meson_array('BUILD_READELF', d)}
 objcopy = ${@meson_array('BUILD_OBJCOPY', d)}
 llvm-config = '${STAGING_BINDIR_NATIVE}/llvm-config'
-pkgconfig = 'pkg-config-native'
+pkg-config = 'pkg-config-native'
 ${@rust_tool(d, "RUST_BUILD_SYS")}
 
 [built-in options]
diff --git a/poky/meta/classes-recipe/qemu.bbclass b/poky/meta/classes-recipe/qemu.bbclass
index 874b151..dbb5ee0 100644
--- a/poky/meta/classes-recipe/qemu.bbclass
+++ b/poky/meta/classes-recipe/qemu.bbclass
@@ -34,7 +34,7 @@
     if qemu_binary == "qemu-allarch":
         qemu_binary = "qemuwrapper"
 
-    qemu_options = data.getVar("QEMU_OPTIONS")    
+    qemu_options = data.getVar("QEMU_OPTIONS") or ""
 
     return "PSEUDO_UNLOAD=1 " + qemu_binary + " " + qemu_options + " -L " + rootfs_path\
             + " -E LD_LIBRARY_PATH=" + ":".join(library_paths) + " "
diff --git a/poky/meta/classes-recipe/xmlcatalog.bbclass b/poky/meta/classes-recipe/xmlcatalog.bbclass
index 5826d0a..d3ef7ff 100644
--- a/poky/meta/classes-recipe/xmlcatalog.bbclass
+++ b/poky/meta/classes-recipe/xmlcatalog.bbclass
@@ -4,13 +4,17 @@
 # SPDX-License-Identifier: MIT
 #
 
-DEPENDS = "libxml2-native"
+# Note that this recipe only handles XML catalogues in the native sysroot, and doesn't
+# yet support catalogue management in the target sysroot or on the target itself.
+# (https://bugzilla.yoctoproject.org/13271)
 
 # A whitespace-separated list of XML catalogs to be registered, for example
 # "${sysconfdir}/xml/docbook-xml.xml".
 XMLCATALOGS ?= ""
 
-SYSROOT_PREPROCESS_FUNCS:append = " xmlcatalog_sstate_postinst"
+DEPENDS:append = " libxml2-native"
+
+SYSROOT_PREPROCESS_FUNCS:append:class-native = " xmlcatalog_sstate_postinst"
 
 xmlcatalog_complete() {
 	ROOTCATALOG="${STAGING_ETCDIR_NATIVE}/xml/catalog"
diff --git a/poky/meta/conf/distro/include/no-static-libs.inc b/poky/meta/conf/distro/include/no-static-libs.inc
index 7535992..8898d53 100644
--- a/poky/meta/conf/distro/include/no-static-libs.inc
+++ b/poky/meta/conf/distro/include/no-static-libs.inc
@@ -21,6 +21,11 @@
 # needed by rust
 DISABLE_STATIC:pn-musl = ""
 
+# needed by shadow-native to build static executables, particularly useradd
+DISABLE_STATIC:pn-attr-native = ""
+DISABLE_STATIC:pn-libbsd-native = ""
+DISABLE_STATIC:pn-libmd-native = ""
+
 EXTRA_OECONF:append = "${DISABLE_STATIC}"
 
 EXTRA_OECMAKE:append:pn-libical = " -DSHARED_ONLY=True"
diff --git a/poky/meta/conf/distro/include/ptest-packagelists.inc b/poky/meta/conf/distro/include/ptest-packagelists.inc
index 9057c12..ef6f471 100644
--- a/poky/meta/conf/distro/include/ptest-packagelists.inc
+++ b/poky/meta/conf/distro/include/ptest-packagelists.inc
@@ -57,6 +57,7 @@
     pango \
     popt \
     python3-atomicwrites \
+    python3-attrs \
     python3-bcrypt \
     python3-calver \
     python3-hypothesis \
diff --git a/poky/meta/lib/oe/rootfs.py b/poky/meta/lib/oe/rootfs.py
index 1a48ed1..3f27164 100644
--- a/poky/meta/lib/oe/rootfs.py
+++ b/poky/meta/lib/oe/rootfs.py
@@ -349,7 +349,8 @@
             bb.utils.mkdirhier(versioned_modules_dir)
 
             bb.note("Running depmodwrapper for %s ..." % versioned_modules_dir)
-            self._exec_shell_cmd(['depmodwrapper', '-a', '-b', self.image_rootfs, kernel_ver, kernel_package_name])
+            if self._exec_shell_cmd(['depmodwrapper', '-a', '-b', self.image_rootfs, kernel_ver, kernel_package_name]):
+                bb.fatal("Kernel modules dependency generation failed")
 
     """
     Create devfs:
diff --git a/poky/meta/lib/oeqa/runtime/cases/systemd.py b/poky/meta/lib/oeqa/runtime/cases/systemd.py
index 2865887..5481e1d 100644
--- a/poky/meta/lib/oeqa/runtime/cases/systemd.py
+++ b/poky/meta/lib/oeqa/runtime/cases/systemd.py
@@ -69,8 +69,8 @@
         """
         endtime = time.time() + (60 * 2)
         while True:
-            status, output = self.target.run('SYSTEMD_BUS_TIMEOUT=240s systemctl --state=activating')
-            if "0 loaded units listed" in output:
+            status, output = self.target.run('SYSTEMD_BUS_TIMEOUT=240s systemctl is-system-running')
+            if "running" in output or "degraded" in output:
                 return (True, '')
             if time.time() >= endtime:
                 return (False, output)
diff --git a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
index 393eaf6..f763228 100644
--- a/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/sstatetests.py
@@ -797,13 +797,14 @@
         for item in expected_difftmp_output:
             self.assertIn(item, result_difftmp.output, msg = "Item {} not found in output:\n{}".format(item, result_difftmp.output))
 
-    def run_test_printdiff_changeconfig(self, target, change_content, expected_sametmp_output, expected_difftmp_output):
+    def run_test_printdiff_changeconfig(self, target, change_bbtasks, change_content, expected_sametmp_output, expected_difftmp_output):
         import time
         self.write_config("""
 TMPDIR = "${{TOPDIR}}/tmp-sstateprintdiff-sametmp-{}"
 """.format(time.time()))
         bitbake("--runall build --runall deploy_source_date_epoch {}".format(target))
         bitbake("-S none {}".format(target))
+        bitbake(" ".join(change_bbtasks))
         self.append_config(change_content)
         result_sametmp = bitbake("-S printdiff {}".format(target))
 
@@ -820,14 +821,16 @@
 
 
     # Check if printdiff walks the full dependency chain from the image target to where the change is in a specific recipe
-    def test_image_minimal_vs_quilt(self):
-        expected_output = ("Task quilt-native:do_install couldn't be used from the cache because:",
+    def test_image_minimal_vs_perlcross(self):
+        expected_output = ("Task perlcross-native:do_install couldn't be used from the cache because:",
 "We need hash",
 "most recent matching task was")
-        expected_sametmp_output = expected_output + ("Variable do_install value changed",'+    echo "this changes the task signature"')
+        expected_sametmp_output = expected_output + (
+"Variable do_install value changed",
+'+    echo "this changes the task signature"')
         expected_difftmp_output = expected_output
 
-        self.run_test_printdiff_changerecipe("core-image-minimal", "quilt-native", "-c do_install quilt-native",
+        self.run_test_printdiff_changerecipe("core-image-minimal", "perlcross", "-c do_install perlcross-native",
 """
 do_install:append() {
     echo "this changes the task signature"
@@ -836,16 +839,16 @@
 expected_sametmp_output, expected_difftmp_output)
 
     # Check if changes to gcc-source (which uses tmp/work-shared) are correctly discovered
-    def _test_gcc_runtime_vs_gcc_source(self):
+    def test_gcc_runtime_vs_gcc_source(self):
         gcc_source_pn = 'gcc-source-%s' % get_bb_vars(['PV'], 'gcc')['PV']
 
         expected_output = ("Task {}:do_preconfigure couldn't be used from the cache because:".format(gcc_source_pn),
 "We need hash",
 "most recent matching task was")
-        expected_sametmp_output = expected_output + ("Variable do_preconfigure value changed",'+    print("this changes the task signature")')
-        #FIXME: printdiff is supposed to find at least one preconfigure task signature in the sstate cache, but isn't able to
-        #expected_difftmp_output = expected_output
-        expected_difftmp_output = ()
+        expected_sametmp_output = expected_output + (
+"Variable do_preconfigure value changed",
+'+    print("this changes the task signature")')
+        expected_difftmp_output = expected_output
 
         self.run_test_printdiff_changerecipe("gcc-runtime", "gcc-source", "-c do_preconfigure {}".format(gcc_source_pn),
 """
@@ -857,22 +860,27 @@
 
     # Check if changing a really base task definiton is reported against multiple core recipes using it
     def test_image_minimal_vs_base_do_configure(self):
-        expected_output = ("Task zstd-native:do_configure couldn't be used from the cache because:",
-"Task texinfo-dummy-native:do_configure couldn't be used from the cache because:",
-"Task ldconfig-native:do_configure couldn't be used from the cache because:",
-"Task gettext-minimal-native:do_configure couldn't be used from the cache because:",
-"Task tzcode-native:do_configure couldn't be used from the cache because:",
-"Task makedevs-native:do_configure couldn't be used from the cache because:",
-"Task pigz-native:do_configure couldn't be used from the cache because:",
-"Task update-rc.d-native:do_configure couldn't be used from the cache because:",
-"Task unzip-native:do_configure couldn't be used from the cache because:",
-"Task gnu-config-native:do_configure couldn't be used from the cache because:",
+        change_bbtasks = ('zstd-native:do_configure',
+'texinfo-dummy-native:do_configure',
+'ldconfig-native:do_configure',
+'gettext-minimal-native:do_configure',
+'tzcode-native:do_configure',
+'makedevs-native:do_configure',
+'pigz-native:do_configure',
+'update-rc.d-native:do_configure',
+'unzip-native:do_configure',
+'gnu-config-native:do_configure')
+
+        expected_output = ["Task {} couldn't be used from the cache because:".format(t) for t in change_bbtasks] + [
 "We need hash",
-"most recent matching task was")
-        expected_sametmp_output = expected_output + ("Variable base_do_configure value changed",'+	echo "this changes base_do_configure() definiton "')
+"most recent matching task was"]
+
+        expected_sametmp_output = expected_output + [
+"Variable base_do_configure value changed",
+'+	echo "this changes base_do_configure() definiton "']
         expected_difftmp_output = expected_output
 
-        self.run_test_printdiff_changeconfig("core-image-minimal",
+        self.run_test_printdiff_changeconfig("core-image-minimal",change_bbtasks,
 """
 INHERIT += "base-do-configure-modified"
 """,
@@ -901,6 +909,7 @@
             self.fail("Did not find 'Sstate summary' line in bitbake output")
 
         failed_urls = []
+        failed_urls_extrainfo = []
         for l in output_l:
             if "SState: Unsuccessful fetch test for" in l and check_cdn:
                 missing_object = l.split()[6]
@@ -914,8 +923,11 @@
                 else:
                     missing_objects -= 1
 
-        self.assertEqual(len(failed_urls), missing_objects, "Amount of reported missing objects does not match failed URLs: {}\nFailed URLs:\n{}".format(missing_objects, "\n".join(failed_urls)))
-        self.assertEqual(len(failed_urls), 0, "Missing objects in the cache:\n{}".format("\n".join(failed_urls)))
+            if "urlopen failed for" in l:
+                failed_urls_extrainfo.append(l)
+
+        self.assertEqual(len(failed_urls), missing_objects, "Amount of reported missing objects does not match failed URLs: {}\nFailed URLs:\n{}\nFetcher diagnostics:\n{}".format(missing_objects, "\n".join(failed_urls), "\n".join(failed_urls_extrainfo)))
+        self.assertEqual(len(failed_urls), 0, "Missing objects in the cache:\n{}\nFetcher diagnostics:\n{}".format("\n".join(failed_urls), "\n".join(failed_urls_extrainfo)))
 
     def run_test(self, machine, targets, exceptions, check_cdn = True):
         # sstate is checked for existence of these, but they never get written out to begin with
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
index c7190d5..1f17bd7 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -12,7 +12,7 @@
 
 # We use the revision in order to avoid having to fetch it from the
 # repo during parse
-SRCREV = "4459ed60cb1e0562bc5b40405e2b4b9bbf766d57"
+SRCREV = "866ca972d6c3cabeaf6dbac431e8e08bb30b3c8e"
 
 SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master"
 
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools_2023.10.bb b/poky/meta/recipes-bsp/u-boot/u-boot-tools_2024.01.bb
similarity index 100%
rename from poky/meta/recipes-bsp/u-boot/u-boot-tools_2023.10.bb
rename to poky/meta/recipes-bsp/u-boot/u-boot-tools_2024.01.bb
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot_2023.10.bb b/poky/meta/recipes-bsp/u-boot/u-boot_2024.01.bb
similarity index 100%
rename from poky/meta/recipes-bsp/u-boot/u-boot_2023.10.bb
rename to poky/meta/recipes-bsp/u-boot/u-boot_2024.01.bb
diff --git a/poky/meta/recipes-bsp/usbutils/usbutils/0001-usbutils.pc.in-Fix-Cflags-entry.patch b/poky/meta/recipes-bsp/usbutils/usbutils/0001-usbutils.pc.in-Fix-Cflags-entry.patch
new file mode 100644
index 0000000..039dd5c
--- /dev/null
+++ b/poky/meta/recipes-bsp/usbutils/usbutils/0001-usbutils.pc.in-Fix-Cflags-entry.patch
@@ -0,0 +1,34 @@
+From f558919e858453a31313a3df35906de2e036940c Mon Sep 17 00:00:00 2001
+From: Fabio Estevam <festevam@denx.de>
+Date: Thu, 4 Jan 2024 03:32:11 +0100
+Subject: [PATCH] usbutils.pc.in: Fix Cflags entry
+
+When updating the usbutils version in OpenEmbedded from 015 to 017,
+the following QA error is seen:
+
+QA Issue: File /usr/lib/pkgconfig/usbutils.pc in package usbutils-dev contains reference to TMPDIR [buildpaths]
+
+As this causes reproducibility problem due to the host PC path being
+leaked, it is treated as error.
+
+Fix it by using the standard Cflags entry.
+
+Upstream-Status: Submitted [https://github.com/gregkh/usbutils/pull/184/commits/3b3e5e1ebea7060bfa118d25a91b816dfa176b31]
+Signed-off-by: Fabio Estevam <festevam@denx.de>
+---
+ usbutils.pc.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/usbutils.pc.in b/usbutils.pc.in
+index e69778c3195c..0aa0005de951 100644
+--- a/usbutils.pc.in
++++ b/usbutils.pc.in
+@@ -15,4 +15,4 @@ Requires: libusb-1.0 >= 1.0.14  libudev >= 196
+ Conflicts:
+ Libs: -L${libdir}
+ Libs.private: @LIBUSB_LIBS@ @UDEV_LIBS@
+-Cflags: @CFLAGS@ @LIBUSB_CFLAGS@ @UDEV_CFLAGS@
++Cflags: -I${includedir}
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-bsp/usbutils/usbutils_015.bb b/poky/meta/recipes-bsp/usbutils/usbutils_017.bb
similarity index 87%
rename from poky/meta/recipes-bsp/usbutils/usbutils_015.bb
rename to poky/meta/recipes-bsp/usbutils/usbutils_017.bb
index a30037b..a2e340e 100644
--- a/poky/meta/recipes-bsp/usbutils/usbutils_015.bb
+++ b/poky/meta/recipes-bsp/usbutils/usbutils_017.bb
@@ -12,8 +12,9 @@
 DEPENDS = "libusb1 virtual/libiconv udev"
 
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/usb/usbutils/usbutils-${PV}.tar.gz \
+           file://0001-usbutils.pc.in-Fix-Cflags-entry.patch \
           "
-SRC_URI[sha256sum] = "2b8140664578f39c3f6f0166a1b950f8655304e63e3d7f89899acb99bc5cb8e7"
+SRC_URI[sha256sum] = "f704c4cb78a060db88b43aac6ebfd3d93c2c5cf1d6dd0e42936faaf00814ab00"
 
 inherit autotools pkgconfig update-alternatives
 
diff --git a/poky/meta/recipes-connectivity/connman/connman/0001-src-log.c-Include-libgen.h-for-basename-API.patch b/poky/meta/recipes-connectivity/connman/connman/0001-src-log.c-Include-libgen.h-for-basename-API.patch
new file mode 100644
index 0000000..8012606
--- /dev/null
+++ b/poky/meta/recipes-connectivity/connman/connman/0001-src-log.c-Include-libgen.h-for-basename-API.patch
@@ -0,0 +1,55 @@
+From cbba6638986c2de763981bf6fc59df6a86fed44f Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 1 Jan 2024 17:42:21 -0800
+Subject: [PATCH v2] src/log.c: Include libgen.h for basename API
+
+Use POSIX version of basename. This comes to front with latest musl
+which dropped the declaration from string.h [1] it fails to build with
+clang-17+ because it treats implicit function declaration as error.
+
+Fix it by applying the basename on a copy of string since posix version
+may modify the input string.
+
+[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
+
+Upstream-Status: Submitted [https://lore.kernel.org/connman/20240102015917.3732089-1-raj.khem@gmail.com/T/#u]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+
+ src/log.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/log.c b/src/log.c
+index 554b046..2df3af7 100644
+--- a/src/log.c
++++ b/src/log.c
+@@ -24,6 +24,7 @@
+ #endif
+ 
+ #include <stdio.h>
++#include <libgen.h>
+ #include <unistd.h>
+ #include <stdarg.h>
+ #include <stdlib.h>
+@@ -196,6 +197,7 @@ int __connman_log_init(const char *program, const char *debug,
+ 		const char *program_name, const char *program_version)
+ {
+ 	static char path[PATH_MAX];
++	char* tmp = strdup(program);
+ 	int option = LOG_NDELAY | LOG_PID;
+ 
+ 	program_exec = program;
+@@ -212,8 +214,8 @@ int __connman_log_init(const char *program, const char *debug,
+ 	if (backtrace)
+ 		signal_setup(signal_handler);
+ 
+-	openlog(basename(program), option, LOG_DAEMON);
+-
++	openlog(basename(tmp), option, LOG_DAEMON);
++	free(tmp);
+ 	syslog(LOG_INFO, "%s version %s", program_name, program_version);
+ 
+ 	return 0;
+-- 
+2.43.0
+
diff --git a/poky/meta/recipes-connectivity/connman/connman_1.42.bb b/poky/meta/recipes-connectivity/connman/connman_1.42.bb
index c2fcd61..91ab989 100644
--- a/poky/meta/recipes-connectivity/connman/connman_1.42.bb
+++ b/poky/meta/recipes-connectivity/connman/connman_1.42.bb
@@ -6,6 +6,7 @@
            file://connman \
            file://no-version-scripts.patch \
            file://0001-vpn-Adding-support-for-latest-pppd-2.5.0-release.patch \
+           file://0001-src-log.c-Include-libgen.h-for-basename-API.patch \
            "
 
 SRC_URI:append:libc-musl = " file://0002-resolve-musl-does-not-implement-res_ninit.patch"
diff --git a/poky/meta/recipes-connectivity/openssh/openssh_9.5p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_9.5p1.bb
index bbb8fb0..0312d5b 100644
--- a/poky/meta/recipes-connectivity/openssh/openssh_9.5p1.bb
+++ b/poky/meta/recipes-connectivity/openssh/openssh_9.5p1.bb
@@ -50,16 +50,20 @@
 INITSCRIPT_PARAMS:${PN}-sshd = "defaults 9"
 
 SYSTEMD_PACKAGES = "${PN}-sshd"
-SYSTEMD_SERVICE:${PN}-sshd = "sshd.socket sshd.service"
+SYSTEMD_SERVICE:${PN}-sshd = "${@bb.utils.contains('PACKAGECONFIG','systemd-sshd-socket-mode','sshd.socket', '', d)} ${@bb.utils.contains('PACKAGECONFIG','systemd-sshd-service-mode','sshd.service', '', d)}"
 
 inherit autotools-brokensep ptest pkgconfig
 DEPENDS += "${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'systemd', '', d)}"
 
-PACKAGECONFIG ??= ""
+# systemd-sshd-socket-mode means installing sshd.socket
+# and systemd-sshd-service-mode corresponding to sshd.service
+PACKAGECONFIG ??= "systemd-sshd-socket-mode"
 PACKAGECONFIG[kerberos] = "--with-kerberos5,--without-kerberos5,krb5"
 PACKAGECONFIG[ldns] = "--with-ldns,--without-ldns,ldns"
 PACKAGECONFIG[libedit] = "--with-libedit,--without-libedit,libedit"
 PACKAGECONFIG[manpages] = "--with-mantype=man,--with-mantype=cat"
+PACKAGECONFIG[systemd-sshd-socket-mode] = ""
+PACKAGECONFIG[systemd-sshd-service-mode] = ""
 
 EXTRA_AUTORECONF += "--exclude=aclocal"
 
@@ -125,15 +129,24 @@
 	echo "HostKey /var/run/ssh/ssh_host_ed25519_key" >> ${D}${sysconfdir}/ssh/sshd_config_readonly
 
 	install -d ${D}${systemd_system_unitdir}
-	install -c -m 0644 ${WORKDIR}/sshd.socket ${D}${systemd_system_unitdir}
-	install -c -m 0644 ${WORKDIR}/sshd.service ${D}${systemd_system_unitdir}
-	install -c -m 0644 ${WORKDIR}/sshd@.service ${D}${systemd_system_unitdir}
+	if ${@bb.utils.contains('PACKAGECONFIG','systemd-sshd-socket-mode','true','false',d)}; then
+	    install -c -m 0644 ${WORKDIR}/sshd.socket ${D}${systemd_system_unitdir}
+	    install -c -m 0644 ${WORKDIR}/sshd@.service ${D}${systemd_system_unitdir}
+	    sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
+		    -e 's,@SBINDIR@,${sbindir},g' \
+		    -e 's,@BINDIR@,${bindir},g' \
+		    -e 's,@LIBEXECDIR@,${libexecdir}/${BPN},g' \
+            ${D}${systemd_system_unitdir}/sshd.socket
+	fi
+	if ${@bb.utils.contains('PACKAGECONFIG','systemd-sshd-service-mode','true','false',d)}; then
+	    install -c -m 0644 ${WORKDIR}/sshd.service ${D}${systemd_system_unitdir}
+	fi
 	install -c -m 0644 ${WORKDIR}/sshdgenkeys.service ${D}${systemd_system_unitdir}
 	sed -i -e 's,@BASE_BINDIR@,${base_bindir},g' \
 		-e 's,@SBINDIR@,${sbindir},g' \
 		-e 's,@BINDIR@,${bindir},g' \
 		-e 's,@LIBEXECDIR@,${libexecdir}/${BPN},g' \
-		${D}${systemd_system_unitdir}/sshd.socket ${D}${systemd_system_unitdir}/*.service
+		${D}${systemd_system_unitdir}/*.service
 
 	sed -i -e 's,@LIBEXECDIR@,${libexecdir}/${BPN},g' \
 		${D}${sysconfdir}/init.d/sshd
diff --git a/poky/meta/recipes-core/coreutils/coreutils_9.4.bb b/poky/meta/recipes-core/coreutils/coreutils_9.4.bb
index f210df2..367b011 100644
--- a/poky/meta/recipes-core/coreutils/coreutils_9.4.bb
+++ b/poky/meta/recipes-core/coreutils/coreutils_9.4.bb
@@ -210,4 +210,10 @@
     sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
 }
 
+do_install_ptest:append:libc-musl () {
+    # these tests fail due to bash on musl systems
+    # xmalloc: cannot allocate 16146 bytes
+    sed -i -e '/tests\/dd\/no-allocate.sh/d' ${D}${PTEST_PATH}/Makefile
+    sed -i -e '/tests\/split\/line-bytes.sh/d' ${D}${PTEST_PATH}/Makefile
+}
 FILES:${PN}-ptest += "${bindir}/getlimits"
diff --git a/poky/meta/recipes-core/dbus-wait/dbus-wait_git.bb b/poky/meta/recipes-core/dbus-wait/dbus-wait_git.bb
index 1cdf07d..39363b9 100644
--- a/poky/meta/recipes-core/dbus-wait/dbus-wait_git.bb
+++ b/poky/meta/recipes-core/dbus-wait/dbus-wait_git.bb
@@ -7,7 +7,7 @@
 
 DEPENDS = "dbus"
 
-SRCREV = "6cc6077a36fe2648a5f993fe7c16c9632f946517"
+SRCREV = "64bc7c8fae61ded0c4e555aa775911f84c56e438"
 PV = "0.1+git"
 
 SRC_URI = "git://git.yoctoproject.org/${BPN};branch=master;protocol=https"
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/native-gtkdoc.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/native-gtkdoc.patch
new file mode 100644
index 0000000..f56c2b8
--- /dev/null
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/native-gtkdoc.patch
@@ -0,0 +1,21 @@
+docs/reference: depend on a native gtk-doc
+
+In a cross-compiled environment we don't need a target gtk-doc, but a
+native gtk-doc.
+
+Upstream-Status: Backport [f3ff370d1b24f8afb51cd4e865593d5b678188a9]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+
+diff --git a/docs/reference/meson.build b/docs/reference/meson.build
+index c417ffecb..67c1dda56 100644
+--- a/docs/reference/meson.build
++++ b/docs/reference/meson.build
+@@ -42,7 +42,7 @@ ignore_decorators = '|'.join(ignore_decorators)
+ if get_option('gtk_doc')
+   # Check we have the minimum gtk-doc version required. Older versions won't
+   # generate correct documentation.
+-  dependency('gtk-doc', version : '>=1.32.1',
++  dependency('gtk-doc', version : '>=1.32.1', native: true,
+     fallback : ['gtk-doc', 'dummy_dep'],
+     default_options : ['tests=false'])
+ 
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb
index 13d4b38..2729b2a 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.78.3.bb
@@ -14,6 +14,7 @@
            file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
            file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
            file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
+           file://native-gtkdoc.patch \
            "
 SRC_URI:append:class-native = " file://relocate-modules.patch \ 
                                 file://0001-meson.build-do-not-enable-pidfd-features-on-native-g.patch \
diff --git a/poky/meta/recipes-core/glib-2.0/glib.inc b/poky/meta/recipes-core/glib-2.0/glib.inc
index eb292c5..ae6fc51 100644
--- a/poky/meta/recipes-core/glib-2.0/glib.inc
+++ b/poky/meta/recipes-core/glib-2.0/glib.inc
@@ -30,8 +30,6 @@
 
 inherit meson gettext gtk-doc pkgconfig ptest-gnome upstream-version-is-even bash-completion gio-module-cache manpages
 
-DEPENDS:append:class-target = "${@' gtk-doc' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}"
-
 GTKDOC_MESON_OPTION = "gtk_doc"
 
 S = "${WORKDIR}/glib-${PV}"
diff --git a/poky/meta/recipes-core/glibc/glibc-version.inc b/poky/meta/recipes-core/glibc/glibc-version.inc
index ccf9d50..5f24a10 100644
--- a/poky/meta/recipes-core/glibc/glibc-version.inc
+++ b/poky/meta/recipes-core/glibc/glibc-version.inc
@@ -10,4 +10,6 @@
 CVE_STATUS[CVE-2023-4527] = "fixed-version: Fixed in stable branch updates"
 CVE_STATUS[CVE-2023-4911] = "fixed-version: Fixed in stable branch updates"
 CVE_STATUS[CVE-2023-4806] = "fixed-version: Fixed in stable branch updates"
+CVE_STATUS[CVE-2023-5156] = "fixed-version: Fixed in stable branch updates"
 CVE_STATUS[CVE-2023-4527] = "fixed-version: Fixed in stable branch updates"
+CVE_STATUS[CVE-2023-0687] = "fixed-version: Fixed in stable branch updates"
diff --git a/poky/meta/recipes-core/systemd/systemd_254.4.bb b/poky/meta/recipes-core/systemd/systemd_254.4.bb
index 0c12926..05cfc73 100644
--- a/poky/meta/recipes-core/systemd/systemd_254.4.bb
+++ b/poky/meta/recipes-core/systemd/systemd_254.4.bb
@@ -408,6 +408,7 @@
     ${PN}-zsh-completion \
     libsystemd-shared \
     udev \
+    udev-bash-completion \
     udev-hwdb \
 "
 
@@ -721,6 +722,7 @@
 
 RPROVIDES:udev = "hotplug"
 
+RDEPENDS:udev-bash-completion += "bash-completion"
 RDEPENDS:udev-hwdb += "udev"
 
 FILES:udev += "${base_sbindir}/udevd \
@@ -782,10 +784,10 @@
                ${base_bindir}/systemd-hwdb \
                ${base_bindir}/udevadm \
                ${base_sbindir}/udevadm \
-               ${datadir}/bash-completion/completions/udevadm \
                ${systemd_system_unitdir}/systemd-hwdb-update.service \
               "
 
+FILES:udev-bash-completion = "${datadir}/bash-completion/completions/udevadm"
 FILES:udev-hwdb = "${rootlibexecdir}/udev/hwdb.d \
                    "
 
diff --git a/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.2.bb b/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.3.bb
similarity index 91%
rename from poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.2.bb
rename to poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.3.bb
index 5d759ae..ec04c1d 100644
--- a/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.2.bb
+++ b/poky/meta/recipes-core/util-linux/util-linux-libuuid_2.39.3.bb
@@ -6,7 +6,10 @@
 inherit autotools gettext pkgconfig
 
 S = "${WORKDIR}/util-linux-${PV}"
+
+EXTRA_AUTORECONF += "--exclude=gtkdocize"
 EXTRA_OECONF += "--disable-all-programs --enable-libuuid"
+
 LICENSE = "BSD-3-Clause"
 
 do_install:append() {
diff --git a/poky/meta/recipes-core/util-linux/util-linux.inc b/poky/meta/recipes-core/util-linux/util-linux.inc
index e3bef5a..4e9d22f 100644
--- a/poky/meta/recipes-core/util-linux/util-linux.inc
+++ b/poky/meta/recipes-core/util-linux/util-linux.inc
@@ -6,13 +6,14 @@
 
 SECTION = "base"
 
-LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & BSD-2-Clause & BSD-3-Clause & BSD-4-Clause"
+LICENSE = "GPL-1.0-or-later & GPL-2.0-or-later & LGPL-2.1-or-later & BSD-2-Clause & BSD-3-Clause & BSD-4-Clause"
+LICENSE:${PN}-fdisk = "GPL-1.0-or-later"
 LICENSE:${PN}-libblkid = "LGPL-2.1-or-later"
 LICENSE:${PN}-libfdisk = "LGPL-2.1-or-later"
 LICENSE:${PN}-libmount = "LGPL-2.1-or-later"
 LICENSE:${PN}-libsmartcols = "LGPL-2.1-or-later"
 
-LIC_FILES_CHKSUM = "file://README.licensing;md5=12ae7768a65ec8f2e44d930df9cb43fa \
+LIC_FILES_CHKSUM = "file://README.licensing;md5=6b0e0a2320e66e62eef9b8149a6faec4 \
                     file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://Documentation/licenses/COPYING.GPL-2.0-or-later;md5=b234ee4d69f5fce4486a80fdaf4a4263 \
                     file://Documentation/licenses/COPYING.LGPL-2.1-or-later;md5=4fbd65380cdd255951079008b364516c \
@@ -35,8 +36,7 @@
            file://run-ptest \
            file://display_testname_for_subtest.patch \
            file://avoid_parallel_tests.patch \
-           file://0001-lscpu-Use-4K-buffer-size-instead-of-BUFSIZ.patch \
            file://0001-login-utils-include-libgen.h-for-basename-API.patch \
            "
 
-SRC_URI[sha256sum] = "87abdfaa8e490f8be6dde976f7c80b9b5ff9f301e1b67e3899e1f05a59a1531f"
+SRC_URI[sha256sum] = "7b6605e48d1a49f43cc4b4cfc59f313d0dd5402fa40b96810bd572e167dfed0f"
diff --git a/poky/meta/recipes-core/util-linux/util-linux/0001-login-utils-include-libgen.h-for-basename-API.patch b/poky/meta/recipes-core/util-linux/util-linux/0001-login-utils-include-libgen.h-for-basename-API.patch
index 2b9897a..6258710 100644
--- a/poky/meta/recipes-core/util-linux/util-linux/0001-login-utils-include-libgen.h-for-basename-API.patch
+++ b/poky/meta/recipes-core/util-linux/util-linux/0001-login-utils-include-libgen.h-for-basename-API.patch
@@ -1,4 +1,4 @@
-From 6581cf8ac95b99b5a35fea88c52646558d05b5e7 Mon Sep 17 00:00:00 2001
+From d44e3ad1f6f8b5c1b3098bb7d537943a4c21d22f Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sun, 3 Dec 2023 19:59:46 -0800
 Subject: [PATCH] login-utils: include libgen.h for basename API
@@ -17,10 +17,13 @@
 
 Upstream-Status: Submitted [https://github.com/util-linux/util-linux/pull/2615]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- login-utils/su-common.c | 8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
 
+---
+ login-utils/su-common.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/login-utils/su-common.c b/login-utils/su-common.c
+index b674920..3297c78 100644
 --- a/login-utils/su-common.c
 +++ b/login-utils/su-common.c
 @@ -26,6 +26,7 @@
diff --git a/poky/meta/recipes-core/util-linux/util-linux/0001-lscpu-Use-4K-buffer-size-instead-of-BUFSIZ.patch b/poky/meta/recipes-core/util-linux/util-linux/0001-lscpu-Use-4K-buffer-size-instead-of-BUFSIZ.patch
deleted file mode 100644
index 4d7487c..0000000
--- a/poky/meta/recipes-core/util-linux/util-linux/0001-lscpu-Use-4K-buffer-size-instead-of-BUFSIZ.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 95b0405338440cf5cd6d4b2b5c66cda8bf381b28 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 15 Sep 2023 00:18:18 -0700
-Subject: [PATCH] lscpu: Use 4K buffer size instead of BUFSIZ
-
-Some lines in /proc/cpuinfo can be large e.g. flags and can then
-truncate them in displaying them
-
-BUFSIZ can vary quite a bit  e.g. glibc/linux systems its 8192
-but on musl/linux and OSX its 1024, on mingW it is 256, some tests e.g.
-x86_64-64cpu-linux6.2.tar.gz has added really long line for cpu flags
-line which is greater than 1024 characters and hence this test fails
-on musl because lscpu -s reports truncated string
-
-Upstream-Status: Submitted [https://github.com/util-linux/util-linux/pull/2492]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- sys-utils/lscpu-cputype.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/sys-utils/lscpu-cputype.c b/sys-utils/lscpu-cputype.c
-index 3fd5f7a3c..c8f72ab8a 100644
---- a/sys-utils/lscpu-cputype.c
-+++ b/sys-utils/lscpu-cputype.c
-@@ -462,7 +462,9 @@ static int cpuinfo_parse_cache(struct lscpu_cxt *cxt, int keynum, char *data)
- int lscpu_read_cpuinfo(struct lscpu_cxt *cxt)
- {
- 	FILE *fp;
--	char buf[BUFSIZ];
-+	/* Used to be BUFSIZ which is small on some platforms e.g, musl,
-+	 * therefore hardcode to 4K */
-+	char buf[4096];
- 	size_t i;
- 	struct lscpu_cputype *ct;
- 	struct cpuinfo_parser _pr = { .cxt = cxt }, *pr = &_pr;
--- 
-2.42.0
-
diff --git a/poky/meta/recipes-core/util-linux/util-linux/avoid_parallel_tests.patch b/poky/meta/recipes-core/util-linux/util-linux/avoid_parallel_tests.patch
index f1cbdb3..85ad7a5 100644
--- a/poky/meta/recipes-core/util-linux/util-linux/avoid_parallel_tests.patch
+++ b/poky/meta/recipes-core/util-linux/util-linux/avoid_parallel_tests.patch
@@ -1,4 +1,4 @@
-From ee3c7812e1efa6719af68b994804f0e6caceabd8 Mon Sep 17 00:00:00 2001
+From 0b05e4695a0616badef71dfa459a00ef6ff1b521 Mon Sep 17 00:00:00 2001
 From: Tudor Florea <tudor.florea@enea.com>
 Date: Mon, 14 Jun 2021 14:00:31 +0200
 Subject: [PATCH] util-linux: Add ptest
@@ -15,7 +15,7 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/configure.ac b/configure.ac
-index 5664f9f..075ef27 100644
+index 890212f..870e817 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -11,7 +11,7 @@ AC_CONFIG_MACRO_DIR([m4])
diff --git a/poky/meta/recipes-core/util-linux/util-linux/configure-sbindir.patch b/poky/meta/recipes-core/util-linux/util-linux/configure-sbindir.patch
index e475289..75adeca 100644
--- a/poky/meta/recipes-core/util-linux/util-linux/configure-sbindir.patch
+++ b/poky/meta/recipes-core/util-linux/util-linux/configure-sbindir.patch
@@ -1,3 +1,8 @@
+From c79222a9a5e3425c55e150edc0b7ac59c573aa2f Mon Sep 17 00:00:00 2001
+From: Phil Blundell <pb@pbcl.net>
+Date: Mon, 24 Sep 2012 07:24:51 +0100
+Subject: [PATCH] util-linux: Ensure that ${sbindir} is respected
+
 util-linux: take ${sbindir} from the environment if it is set there
 fix the test, the [ ] syntax was getting eaten by autoconf
 
@@ -5,11 +10,15 @@
 Signed-off-by: Saul Wold <sgw@linux.intel.com
 Upstream-Status: Inappropriate [configuration]
 
-Index: util-linux-2.31/configure.ac
-===================================================================
---- util-linux-2.31.orig/configure.ac
-+++ util-linux-2.31/configure.ac
-@@ -89,7 +89,10 @@ AC_SUBST([runstatedir])
+---
+ configure.ac | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 36c24b4..890212f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -102,7 +102,10 @@ AC_SUBST([runstatedir])
  usrbin_execdir='${exec_prefix}/bin'
  AC_SUBST([usrbin_execdir])
  
diff --git a/poky/meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch b/poky/meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch
index 417ca1d..815ae9c 100644
--- a/poky/meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch
+++ b/poky/meta/recipes-core/util-linux/util-linux/display_testname_for_subtest.patch
@@ -1,4 +1,7 @@
-Display testname for subtest
+From fc5de1de898fd1a372a2fd2fa493dc57323a029d Mon Sep 17 00:00:00 2001
+From: Tudor Florea <tudor.florea@enea.com>
+Date: Thu, 3 Dec 2015 04:08:00 +0100
+Subject: [PATCH] Display testname for subtest
 
 Signed-off-by: Tudor Florea <tudor.florea@enea.com>
 Upstream-Status: Pending
@@ -8,10 +11,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/tests/functions.sh b/tests/functions.sh
-index 5246605..b24dc15 100644
+index 5a562a3..098145e 100644
 --- a/tests/functions.sh
 +++ b/tests/functions.sh
-@@ -320,7 +320,7 @@ function ts_init_subtest {
+@@ -437,7 +437,7 @@ function ts_init_subtest {
  
  	if [ "$TS_PARSABLE" != "yes" ]; then
  		[ $TS_NSUBTESTS -eq 1 ] && echo
@@ -20,6 +23,3 @@
  	fi
  }
  
--- 
-2.8.3
-
diff --git a/poky/meta/recipes-core/util-linux/util-linux/ptest.patch b/poky/meta/recipes-core/util-linux/util-linux/ptest.patch
index ba2bd3f..6221de7 100644
--- a/poky/meta/recipes-core/util-linux/util-linux/ptest.patch
+++ b/poky/meta/recipes-core/util-linux/util-linux/ptest.patch
@@ -1,4 +1,4 @@
-From af073c13ef184ca75811df688e0a0a25827b36c3 Mon Sep 17 00:00:00 2001
+From d0a69ce80c579cbb7627a2f20e8b92e006a8d8ad Mon Sep 17 00:00:00 2001
 From: Tudor Florea <tudor.florea@enea.com>
 Date: Thu, 3 Dec 2015 04:08:00 +0100
 Subject: [PATCH] Define TESTS variable
@@ -11,7 +11,7 @@
  1 file changed, 1 insertion(+)
 
 diff --git a/Makefile.am b/Makefile.am
-index 886598d..1cf4346 100644
+index effbb02..7d2bd1e 100644
 --- a/Makefile.am
 +++ b/Makefile.am
 @@ -57,6 +57,7 @@ systemdsystemunit_DATA =
diff --git a/poky/meta/recipes-core/util-linux/util-linux_2.39.2.bb b/poky/meta/recipes-core/util-linux/util-linux_2.39.3.bb
similarity index 98%
rename from poky/meta/recipes-core/util-linux/util-linux_2.39.2.bb
rename to poky/meta/recipes-core/util-linux/util-linux_2.39.3.bb
index 8c08167..9fd3a5f 100644
--- a/poky/meta/recipes-core/util-linux/util-linux_2.39.2.bb
+++ b/poky/meta/recipes-core/util-linux/util-linux_2.39.3.bb
@@ -1,7 +1,6 @@
 require util-linux.inc
 
-#gtk-doc is not enabled as it requires xmlto which requires util-linux
-inherit autotools gettext manpages pkgconfig systemd update-alternatives python3-dir bash-completion ptest
+inherit autotools gettext manpages pkgconfig systemd update-alternatives python3-dir bash-completion ptest gtk-doc
 DEPENDS = "libcap-ng ncurses virtual/crypt zlib util-linux-libuuid"
 
 PACKAGES =+ "${PN}-swaponoff"
diff --git a/poky/meta/recipes-devtools/ccache/ccache_4.8.3.bb b/poky/meta/recipes-devtools/ccache/ccache_4.9.bb
similarity index 82%
rename from poky/meta/recipes-devtools/ccache/ccache_4.8.3.bb
rename to poky/meta/recipes-devtools/ccache/ccache_4.9.bb
index 03372aa..8550470 100644
--- a/poky/meta/recipes-devtools/ccache/ccache_4.8.3.bb
+++ b/poky/meta/recipes-devtools/ccache/ccache_4.9.bb
@@ -7,14 +7,14 @@
 SECTION = "devel"
 
 LICENSE = "GPL-3.0-or-later"
-LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=6a6fe0ae4e57592b187ab72fa6d420ec"
+LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=11b0b581dd56bbac4f5de214d47927ca"
 
 DEPENDS = "zstd"
 
 SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
            file://0001-xxhash.h-Fix-build-with-gcc-12.patch \
            "
-SRC_URI[sha256sum] = "d59dd569ad2bbc826c0bc335c8ebd73e78ed0f2f40ba6b30069347e63585d9ef"
+SRC_URI[sha256sum] = "866b2223d59333640f0e7a003cbb85b32d9ca3c9445bd9e3cf142942e69dd3ec"
 
 inherit cmake github-releases
 
diff --git a/poky/meta/recipes-devtools/ccache/files/0001-xxhash.h-Fix-build-with-gcc-12.patch b/poky/meta/recipes-devtools/ccache/files/0001-xxhash.h-Fix-build-with-gcc-12.patch
index 67c74a1..e65b830 100644
--- a/poky/meta/recipes-devtools/ccache/files/0001-xxhash.h-Fix-build-with-gcc-12.patch
+++ b/poky/meta/recipes-devtools/ccache/files/0001-xxhash.h-Fix-build-with-gcc-12.patch
@@ -1,4 +1,4 @@
-From 550834a3ec2e05e379be63b084e7fa06a1723f84 Mon Sep 17 00:00:00 2001
+From d17fdacf4892a15fafb56b0890ece05b485e89fb Mon Sep 17 00:00:00 2001
 From: Mingli Yu <mingli.yu@windriver.com>
 Date: Mon, 6 Jun 2022 17:53:20 +0800
 Subject: [PATCH] xxhash.h: Fix build with gcc-12
@@ -23,10 +23,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/third_party/xxhash.h b/src/third_party/xxhash.h
-index 08ab794..c754e99 100644
+index a18e8c7..1b72307 100644
 --- a/src/third_party/xxhash.h
 +++ b/src/third_party/xxhash.h
-@@ -1501,7 +1501,7 @@ static void* XXH_memcpy(void* dest, const void* src, size_t size)
+@@ -2107,7 +2107,7 @@ static void* XXH_memcpy(void* dest, const void* src, size_t size)
  #  define XXH_NO_INLINE static
  /* enable inlining hints */
  #elif defined(__GNUC__) || defined(__clang__)
diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.189.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.189.bb
index 220f747..e9b432e 100644
--- a/poky/meta/recipes-devtools/elfutils/elfutils_0.189.bb
+++ b/poky/meta/recipes-devtools/elfutils/elfutils_0.189.bb
@@ -2,7 +2,7 @@
 HOMEPAGE = "https://sourceware.org/elfutils"
 DESCRIPTION = "elfutils is a collection of utilities and libraries to read, create and modify ELF binary files, find and handle DWARF debug data, symbols, thread state and stacktraces for processes and core files on GNU/Linux."
 SECTION = "base"
-LICENSE = "GPL-2.0-only & GPL-2.0-or-later & LGPL-3.0-or-later & GPL-3.0-or-later"
+LICENSE = "( GPL-2.0-or-later | LGPL-3.0-or-later ) & GPL-3.0-or-later"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
                     file://debuginfod/debuginfod-client.c;endline=28;md5=f0a7c3170776866ee94e8f9225a6ad79 \
                     "
@@ -109,19 +109,18 @@
 
 BBCLASSEXTEND = "native nativesdk"
 
-# Package utilities separately
+# Package utilities and libraries are listed separately
 PACKAGES =+ "${PN}-binutils libelf libasm libdw libdebuginfod"
 
-# Shared libraries are licensed GPL-2.0-only or GPL-3.0-or-later, binaries
-# GPL-3.0-or-later. According to NEWS file:
-# "The license is now GPLv2/LGPLv3+ for the libraries and GPLv3+ for stand-alone
-# programs. There is now also a formal CONTRIBUTING document describing how to
-# submit patches."
+# According to the upstream website https://sourceware.org/elfutils, the latest
+# license policy is as follows:
+# "License. The libraries and backends are dual GPLv2+/LGPLv3+. The utilities
+# are GPLv3+."
 LICENSE:${PN}-binutils = "GPL-3.0-or-later"
 LICENSE:${PN} = "GPL-3.0-or-later"
-LICENSE:libelf = "GPL-2.0-only | LGPL-3.0-or-later"
-LICENSE:libasm = "GPL-2.0-only | LGPL-3.0-or-later"
-LICENSE:libdw = "GPL-2.0-only | LGPL-3.0-or-later"
+LICENSE:libelf = "GPL-2.0-or-later | LGPL-3.0-or-later"
+LICENSE:libasm = "GPL-2.0-or-later | LGPL-3.0-or-later"
+LICENSE:libdw = "GPL-2.0-or-later | LGPL-3.0-or-later"
 LICENSE:libdebuginfod = "GPL-2.0-or-later | LGPL-3.0-or-later"
 
 FILES:${PN}-binutils = "\
diff --git a/poky/meta/recipes-devtools/fdisk/gptfdisk/0001-Fix-failure-crash-of-sgdisk-when-compiled-with-lates.patch b/poky/meta/recipes-devtools/fdisk/gptfdisk/0001-Fix-failure-crash-of-sgdisk-when-compiled-with-lates.patch
index 218d9d6..095d00b 100644
--- a/poky/meta/recipes-devtools/fdisk/gptfdisk/0001-Fix-failure-crash-of-sgdisk-when-compiled-with-lates.patch
+++ b/poky/meta/recipes-devtools/fdisk/gptfdisk/0001-Fix-failure-crash-of-sgdisk-when-compiled-with-lates.patch
@@ -1,4 +1,4 @@
-From 5d5e76d369a412bfb3d2cebb5fc0a7509cef878d Mon Sep 17 00:00:00 2001
+From e7f9c9909c27d6ceed5aa4ca17023a1bc94b620a Mon Sep 17 00:00:00 2001
 From: Rod Smith <rodsmith@rodsbooks.com>
 Date: Fri, 15 Apr 2022 18:10:14 -0400
 Subject: [PATCH] Fix failure & crash of sgdisk when compiled with latest popt
@@ -6,11 +6,11 @@
 
 Upstream-Status: Backport [https://sourceforge.net/p/gptfdisk/code/ci/5d5e76d369a412bfb3d2cebb5fc0a7509cef878d/]
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+Signed-off-by: Mingli Yu <mingli.yu@windriver.com>
 ---
- NEWS      | 8 ++++++++
- gptcl.cc  | 2 +-
- support.h | 2 +-
- 3 files changed, 10 insertions(+), 2 deletions(-)
+ NEWS     | 8 ++++++++
+ gptcl.cc | 2 +-
+ 2 files changed, 9 insertions(+), 1 deletion(-)
 
 diff --git a/NEWS b/NEWS
 index c7add56..9e153fd 100644
@@ -41,19 +41,6 @@
     poptResetContext(poptCon);
  
     if (device != NULL) {
-diff --git a/support.h b/support.h
-index 8ba9ad1..f91f1bc 100644
---- a/support.h
-+++ b/support.h
-@@ -8,7 +8,7 @@
- #include <stdlib.h>
- #include <string>
- 
--#define GPTFDISK_VERSION "1.0.9"
-+#define GPTFDISK_VERSION "1.0.9.1"
- 
- #if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
- // Darwin (Mac OS) & FreeBSD: disk IOCTLs are different, and there is no lseek64
 -- 
-2.30.2
+2.35.5
 
diff --git a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
index 8fbcb5a..8ea7c35 100644
--- a/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0001-Make-CPU-family-warnings-fatal.patch
@@ -1,4 +1,4 @@
-From fcd3260c03f313676720e6219c5953d412fb0a2c Mon Sep 17 00:00:00 2001
+From b77cbe67df5fa0998946503f207c256ee740bb5f Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Tue, 3 Jul 2018 13:59:09 +0100
 Subject: [PATCH] Make CPU family warnings fatal
@@ -12,10 +12,10 @@
  2 files changed, 4 insertions(+), 6 deletions(-)
 
 diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index 7e0c567..a180065 100644
+index 07f1229..a35c356 100644
 --- a/mesonbuild/envconfig.py
 +++ b/mesonbuild/envconfig.py
-@@ -284,8 +284,8 @@ class MachineInfo(HoldableObject):
+@@ -285,8 +285,8 @@ class MachineInfo(HoldableObject):
                  'but is missing {}.'.format(minimum_literal - set(literal)))
  
          cpu_family = literal['cpu_family']
@@ -27,10 +27,10 @@
          endian = literal['endian']
          if endian not in ('little', 'big'):
 diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
-index e212c7a..9d2bff3 100644
+index 2ba2054..d798e3b 100644
 --- a/mesonbuild/environment.py
 +++ b/mesonbuild/environment.py
-@@ -345,10 +345,8 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
+@@ -359,10 +359,8 @@ def detect_cpu_family(compilers: CompilersDict) -> str:
          if compilers and not any_compiler_has_define(compilers, '__mips64'):
              trial = 'mips'
  
diff --git a/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch b/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
index 19502fa..2e0a4b1 100644
--- a/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0001-python-module-do-not-manipulate-the-environment-when.patch
@@ -1,4 +1,4 @@
-From a97dba12cff6c4c9181909141a1a9f38d7c900bf Mon Sep 17 00:00:00 2001
+From e85683698aa3556bf14fc6d35f2c067f16af520b Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 19 Nov 2018 14:24:26 +0100
 Subject: [PATCH] python module: do not manipulate the environment when calling
@@ -12,10 +12,10 @@
  1 file changed, 1 insertion(+), 5 deletions(-)
 
 diff --git a/mesonbuild/dependencies/python.py b/mesonbuild/dependencies/python.py
-index 14386f9..118a15f 100644
+index 9aea6bd..8c13ede 100644
 --- a/mesonbuild/dependencies/python.py
 +++ b/mesonbuild/dependencies/python.py
-@@ -354,9 +354,6 @@ def python_factory(env: 'Environment', for_machine: 'MachineChoice',
+@@ -380,9 +380,6 @@ def python_factory(env: 'Environment', for_machine: 'MachineChoice',
                      empty.name = 'python'
                      return empty
  
@@ -25,7 +25,7 @@
                  try:
                      return PythonPkgConfigDependency(name, env, kwargs, installation, True)
                  finally:
-@@ -365,8 +362,7 @@ def python_factory(env: 'Environment', for_machine: 'MachineChoice',
+@@ -391,8 +388,7 @@ def python_factory(env: 'Environment', for_machine: 'MachineChoice',
                              os.environ[name] = value
                          elif name in os.environ:
                              del os.environ[name]
diff --git a/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch b/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
index dcc1ce9..a8396f3 100644
--- a/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
+++ b/poky/meta/recipes-devtools/meson/meson/0002-Support-building-allarch-recipes-again.patch
@@ -1,21 +1,22 @@
-From 656bf55fed01df2d2e2ad6d9d9887173cb16b85c Mon Sep 17 00:00:00 2001
+From 6fb8db54929b40e1fd7ac949ef44f0d37df0bae9 Mon Sep 17 00:00:00 2001
 From: Peter Kjellerstedt <pkj@axis.com>
 Date: Thu, 26 Jul 2018 16:32:49 +0200
-Subject: [PATCH 2/2] Support building allarch recipes again
+Subject: [PATCH] Support building allarch recipes again
 
 This registers "allarch" as a known CPU family.
 
 Upstream-Status: Inappropriate [OE specific]
 Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
+
 ---
  mesonbuild/envconfig.py | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/mesonbuild/envconfig.py b/mesonbuild/envconfig.py
-index 4d58c91..ff01ad1 100644
+index a35c356..436355f 100644
 --- a/mesonbuild/envconfig.py
 +++ b/mesonbuild/envconfig.py
-@@ -36,6 +36,7 @@ from pathlib import Path
+@@ -38,6 +38,7 @@ from pathlib import Path
  
  
  known_cpu_families = (
@@ -23,6 +24,3 @@
      'aarch64',
      'alpha',
      'arc',
--- 
-2.24.0
-
diff --git a/poky/meta/recipes-devtools/meson/meson_1.3.0.bb b/poky/meta/recipes-devtools/meson/meson_1.3.1.bb
similarity index 98%
rename from poky/meta/recipes-devtools/meson/meson_1.3.0.bb
rename to poky/meta/recipes-devtools/meson/meson_1.3.1.bb
index e794bb2..3a4bb14 100644
--- a/poky/meta/recipes-devtools/meson/meson_1.3.0.bb
+++ b/poky/meta/recipes-devtools/meson/meson_1.3.1.bb
@@ -15,7 +15,7 @@
            file://0001-Make-CPU-family-warnings-fatal.patch \
            file://0002-Support-building-allarch-recipes-again.patch \
            "
-SRC_URI[sha256sum] = "4ba253ef60e454e23234696119cbafa082a0aead0bd3bbf6991295054795f5dc"
+SRC_URI[sha256sum] = "6020568bdede1643d4fb41e28215be38eff5d52da28ac7d125457c59e0032ad7"
 
 inherit python_setuptools_build_meta github-releases
 
diff --git a/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-remove-numeric-owner-parameter-overzealou.patch b/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-remove-numeric-owner-parameter-overzealou.patch
new file mode 100644
index 0000000..0cdeb95
--- /dev/null
+++ b/poky/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-build-remove-numeric-owner-parameter-overzealou.patch
@@ -0,0 +1,34 @@
+From 19c2c6a14c8760c3595f5dc6cc89cde85fbdbac1 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Piotr=20=C5=81obacz?= <p.lobacz@welotec.com>
+Date: Tue, 9 Jan 2024 09:20:55 +0100
+Subject: [PATCH] opkg-build: remove `--numeric-owner` parameter overzealously
+ added
+
+In some corner cases this parameter has been added overzealously.
+All discussion on this topic can be read in here:
+https://bugzilla.yoctoproject.org/show_bug.cgi?id=15334
+
+Upstream-Status: Backport [https://git.yoctoproject.org/opkg-utils/commit/?id=68a969f0e867ace0d94faf8ebe7c7bb67f59d386]
+
+Signed-off-by: Alex Stewart <alex.stewart@ni.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ opkg-build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/opkg-build b/opkg-build
+index 6edd938..0582958 100755
+--- a/opkg-build
++++ b/opkg-build
+@@ -337,7 +337,7 @@ export LANG=C
+ export LC_ALL=C
+ ( cd $pkg_dir/$CONTROL && find . -type f | sort > $tmp_dir/control_list )
+ ( cd $pkg_dir && find . -path ./$CONTROL -prune -o -path . -o -print  | sort > $tmp_dir/file_list )
+-( cd $pkg_dir && tar $attributesargs $ogargs $tsortargs --numeric-owner --no-recursion $mtime_args -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext )
++( cd $pkg_dir && tar $attributesargs $ogargs $tsortargs --no-recursion $mtime_args -c $tarformat -T $tmp_dir/file_list | $compressor $compressorargs > $tmp_dir/data.tar.$cext )
+ ( cd $pkg_dir/$CONTROL && tar $ogargs $tsortargs --no-recursion $mtime_args -c $tarformat -T $tmp_dir/control_list | gzip $zipargs > $tmp_dir/control.tar.gz )
+ rm $tmp_dir/file_list
+ rm $tmp_dir/control_list
+-- 
+2.43.0
+
diff --git a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.6.3.bb b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.6.3.bb
index b509227..e138bc2 100644
--- a/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.6.3.bb
+++ b/poky/meta/recipes-devtools/opkg-utils/opkg-utils_0.6.3.bb
@@ -9,6 +9,7 @@
 
 SRC_URI = "git://git.yoctoproject.org/opkg-utils;protocol=https;branch=master \
            file://0001-update-alternatives-correctly-match-priority.patch \
+           file://0001-opkg-build-remove-numeric-owner-parameter-overzealou.patch \
            "
 SRCREV = "589880d01969eb9af1e66120e731d43193504718"
 
diff --git a/poky/meta/recipes-devtools/python/python-cython.inc b/poky/meta/recipes-devtools/python/python-cython.inc
index 6aec6b0..bc1953c 100644
--- a/poky/meta/recipes-devtools/python/python-cython.inc
+++ b/poky/meta/recipes-devtools/python/python-cython.inc
@@ -5,11 +5,11 @@
 and the messy, low-level world of C."
 SECTION = "devel/python"
 LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=e23fadd6ceef8c618fc1c65191d846fa"
+LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=61c3ee8961575861fa86c7e62bc9f69c"
 PYPI_PACKAGE = "Cython"
 BBCLASSEXTEND = "native nativesdk"
 
-SRC_URI[sha256sum] = "41c0cfd2d754e383c9eeb95effc9aa4ab847d0c9747077ddd7c0dcb68c3bc01f"
+SRC_URI[sha256sum] = "fb299acf3a578573c190c858d49e0cf9d75f4bc49c3f24c5a63804997ef09213"
 UPSTREAM_CHECK_REGEX = "Cython-(?P<pver>.*)\.tar"
 
 inherit pypi
@@ -39,4 +39,7 @@
 	for PYTHSCRIPT in `grep -rIl '^#!.*python' ${D}`; do
 		sed -i -e '1s|^#!.*|#!/usr/bin/env ${PYTHON_PN}|' $PYTHSCRIPT
 	done
+
+        # remove build paths from generated sources
+        sed -i -e 's|${WORKDIR}||' ${S}/Cython/*.c ${S}/Cython/Compiler/*.c ${S}/Cython/Plex/*.c
 }
diff --git a/poky/meta/recipes-devtools/python/python3-attrs/run-ptest b/poky/meta/recipes-devtools/python/python3-attrs/run-ptest
new file mode 100644
index 0000000..8d2017d
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-attrs/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+pytest --automake
diff --git a/poky/meta/recipes-devtools/python/python3-attrs_23.1.0.bb b/poky/meta/recipes-devtools/python/python3-attrs_23.1.0.bb
deleted file mode 100644
index 314053d..0000000
--- a/poky/meta/recipes-devtools/python/python3-attrs_23.1.0.bb
+++ /dev/null
@@ -1,21 +0,0 @@
-SUMMARY = "Classes Without Boilerplate"
-HOMEPAGE = "http://www.attrs.org/"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5e55731824cf9205cfabeab9a0600887"
-
-SRC_URI[sha256sum] = "6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015"
-
-inherit pypi python_hatchling
-
-DEPENDS += " \
-    python3-hatch-vcs-native \
-    python3-hatch-fancy-pypi-readme-native \
-"
-
-RDEPENDS:${PN}+= " \
-    python3-compression \
-    python3-ctypes \
-    python3-crypt \
-"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-attrs_23.2.0.bb b/poky/meta/recipes-devtools/python/python3-attrs_23.2.0.bb
new file mode 100644
index 0000000..7b6a6bd
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-attrs_23.2.0.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Classes Without Boilerplate"
+HOMEPAGE = "http://www.attrs.org/"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5e55731824cf9205cfabeab9a0600887"
+
+SRC_URI[sha256sum] = "935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30"
+
+inherit pypi ptest python_hatchling
+
+SRC_URI += " \
+	file://run-ptest \
+"
+
+DEPENDS += " \
+    python3-hatch-vcs-native \
+    python3-hatch-fancy-pypi-readme-native \
+"
+
+RDEPENDS:${PN}+= " \
+    python3-compression \
+    python3-ctypes \
+    python3-crypt \
+"
+
+RDEPENDS:${PN}-ptest += " \
+    ${PYTHON_PN}-hypothesis \
+    ${PYTHON_PN}-pytest \
+    ${PYTHON_PN}-unittest-automake-output \
+"
+
+do_install_ptest() {
+    install -d ${D}${PTEST_PATH}/tests
+    cp -rf ${S}/tests/* ${D}${PTEST_PATH}/tests/
+    install ${S}/conftest.py ${D}${PTEST_PATH}/
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-bcrypt-crates.inc b/poky/meta/recipes-devtools/python/python3-bcrypt-crates.inc
index b99d753..5db6d1e 100644
--- a/poky/meta/recipes-devtools/python/python3-bcrypt-crates.inc
+++ b/poky/meta/recipes-devtools/python/python3-bcrypt-crates.inc
@@ -20,10 +20,10 @@
     crate://crates.io/heck/0.4.1 \
     crate://crates.io/indoc/2.0.4 \
     crate://crates.io/inout/0.1.3 \
-    crate://crates.io/libc/0.2.150 \
+    crate://crates.io/libc/0.2.151 \
     crate://crates.io/lock_api/0.4.11 \
     crate://crates.io/memoffset/0.9.0 \
-    crate://crates.io/once_cell/1.18.0 \
+    crate://crates.io/once_cell/1.19.0 \
     crate://crates.io/parking_lot/0.12.1 \
     crate://crates.io/parking_lot_core/0.9.9 \
     crate://crates.io/pbkdf2/0.12.2 \
@@ -39,7 +39,7 @@
     crate://crates.io/sha2/0.10.8 \
     crate://crates.io/smallvec/1.11.2 \
     crate://crates.io/subtle/2.5.0 \
-    crate://crates.io/syn/2.0.39 \
+    crate://crates.io/syn/2.0.41 \
     crate://crates.io/target-lexicon/0.12.12 \
     crate://crates.io/typenum/1.17.0 \
     crate://crates.io/unicode-ident/1.0.12 \
@@ -75,10 +75,10 @@
 SRC_URI[heck-0.4.1.sha256sum] = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 SRC_URI[indoc-2.0.4.sha256sum] = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
 SRC_URI[inout-0.1.3.sha256sum] = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5"
-SRC_URI[libc-0.2.150.sha256sum] = "89d92a4743f9a61002fae18374ed11e7973f530cb3a3255fb354818118b2203c"
+SRC_URI[libc-0.2.151.sha256sum] = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
 SRC_URI[lock_api-0.4.11.sha256sum] = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
 SRC_URI[memoffset-0.9.0.sha256sum] = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
-SRC_URI[once_cell-1.18.0.sha256sum] = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d"
+SRC_URI[once_cell-1.19.0.sha256sum] = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
 SRC_URI[parking_lot_core-0.9.9.sha256sum] = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
 SRC_URI[pbkdf2-0.12.2.sha256sum] = "f8ed6a7761f76e3b9f92dfb0a60a6a6477c61024b775147ff0973a02653abaf2"
@@ -94,7 +94,7 @@
 SRC_URI[sha2-0.10.8.sha256sum] = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
 SRC_URI[smallvec-1.11.2.sha256sum] = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
 SRC_URI[subtle-2.5.0.sha256sum] = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
-SRC_URI[syn-2.0.39.sha256sum] = "23e78b90f2fcf45d3e842032ce32e3f2d1545ba6636271dcbf24fa306d87be7a"
+SRC_URI[syn-2.0.41.sha256sum] = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269"
 SRC_URI[target-lexicon-0.12.12.sha256sum] = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
 SRC_URI[typenum-1.17.0.sha256sum] = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
 SRC_URI[unicode-ident-1.0.12.sha256sum] = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
diff --git a/poky/meta/recipes-devtools/python/python3-bcrypt_4.1.1.bb b/poky/meta/recipes-devtools/python/python3-bcrypt_4.1.2.bb
similarity index 90%
rename from poky/meta/recipes-devtools/python/python3-bcrypt_4.1.1.bb
rename to poky/meta/recipes-devtools/python/python3-bcrypt_4.1.2.bb
index 30063c3..860f291 100644
--- a/poky/meta/recipes-devtools/python/python3-bcrypt_4.1.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-bcrypt_4.1.2.bb
@@ -6,7 +6,7 @@
 DEPENDS += "${PYTHON_PN}-cffi-native"
 LDFLAGS:append = "${@bb.utils.contains('DISTRO_FEATURES', 'ptest', ' -fuse-ld=bfd', '', d)}"
 
-SRC_URI[sha256sum] = "df37f5418d4f1cdcff845f60e747a015389fa4e63703c918330865e06ad80007"
+SRC_URI[sha256sum] = "33313a1200a3ae90b75587ceac502b048b840fc69e7f7a0905b5f87fac7a1258"
 
 inherit pypi python_setuptools3_rust ptest-cargo cargo-update-recipe-crates
 
diff --git a/poky/meta/recipes-devtools/python/python3-cython_0.29.36.bb b/poky/meta/recipes-devtools/python/python3-cython_3.0.7.bb
similarity index 100%
rename from poky/meta/recipes-devtools/python/python3-cython_0.29.36.bb
rename to poky/meta/recipes-devtools/python/python3-cython_3.0.7.bb
diff --git a/poky/meta/recipes-devtools/python/python3-dbusmock_0.30.1.bb b/poky/meta/recipes-devtools/python/python3-dbusmock_0.30.2.bb
similarity index 87%
rename from poky/meta/recipes-devtools/python/python3-dbusmock_0.30.1.bb
rename to poky/meta/recipes-devtools/python/python3-dbusmock_0.30.2.bb
index 7fa1154..17438cd 100644
--- a/poky/meta/recipes-devtools/python/python3-dbusmock_0.30.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-dbusmock_0.30.2.bb
@@ -4,7 +4,7 @@
 LICENSE = "GPL-3.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
 
-SRC_URI[sha256sum] = "aa865e5345aa7626583b83f70e7956c576c24dbc19491ce7fd19281cfef49690"
+SRC_URI[sha256sum] = "1d7b3794af7b280942f7f6cda4d8bb5d17d8c7216000825cf8b43b6af8792d7d"
 
 PYPI_PACKAGE = "python-dbusmock"
 
diff --git a/poky/meta/recipes-devtools/python/python3-hatch-fancy-pypi-readme_23.1.0.bb b/poky/meta/recipes-devtools/python/python3-hatch-fancy-pypi-readme_24.1.0.bb
similarity index 81%
rename from poky/meta/recipes-devtools/python/python3-hatch-fancy-pypi-readme_23.1.0.bb
rename to poky/meta/recipes-devtools/python/python3-hatch-fancy-pypi-readme_24.1.0.bb
index 8f6e996..1e5c67f 100644
--- a/poky/meta/recipes-devtools/python/python3-hatch-fancy-pypi-readme_23.1.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-hatch-fancy-pypi-readme_24.1.0.bb
@@ -7,7 +7,7 @@
 
 PYPI_PACKAGE = "hatch_fancy_pypi_readme"
 
-SRC_URI[sha256sum] = "b1df44063094af1e8248ceacd47a92c9cf313d6b9823bf66af8a927c3960287d"
+SRC_URI[sha256sum] = "44dd239f1a779b9dcf8ebc9401a611fd7f7e3e14578dcf22c265dfaf7c1514b8"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.92.1.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.92.2.bb
similarity index 91%
rename from poky/meta/recipes-devtools/python/python3-hypothesis_6.92.1.bb
rename to poky/meta/recipes-devtools/python/python3-hypothesis_6.92.2.bb
index 764ca28..ab5dd32 100644
--- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.92.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.92.2.bb
@@ -13,7 +13,7 @@
     file://test_rle.py \
     "
 
-SRC_URI[sha256sum] = "fa755ded526e50b7e2f642cdc5d64519f88d4e4ee71d9d29ec3eb2f2fddf1274"
+SRC_URI[sha256sum] = "841f89a486c43bdab55698de8929bd2635639ec20bf6ce98ccd75622d7ee6d41"
 
 RDEPENDS:${PN} += " \
     python3-attrs \
diff --git a/poky/meta/recipes-devtools/python/python3-lxml_4.9.4.bb b/poky/meta/recipes-devtools/python/python3-lxml_5.0.0.bb
similarity index 94%
rename from poky/meta/recipes-devtools/python/python3-lxml_4.9.4.bb
rename to poky/meta/recipes-devtools/python/python3-lxml_5.0.0.bb
index ed8bce0..e27405f 100644
--- a/poky/meta/recipes-devtools/python/python3-lxml_4.9.4.bb
+++ b/poky/meta/recipes-devtools/python/python3-lxml_5.0.0.bb
@@ -18,10 +18,11 @@
 
 DEPENDS += "libxml2 libxslt"
 
-SRC_URI[sha256sum] = "b1541e50b78e15fa06a2670157a1962ef06591d4c998b998047fff5e3236880e"
+SRC_URI[sha256sum] = "2219cbf790e701acf9a21a31ead75f983e73daf0eceb9da6990212e4d20ebefe"
 
 SRC_URI += "${PYPI_SRC_URI}"
 inherit pkgconfig pypi setuptools3
+PYPI_PACKAGE_EXT = "zip"
 
 # {standard input}: Assembler messages:
 # {standard input}:1488805: Error: branch out of range
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.19.0.bb b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.19.0.bb
deleted file mode 100644
index 92fe1aa..0000000
--- a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.19.0.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require python-pycryptodome.inc
-inherit setuptools3
-
-SRC_URI[sha256sum] = "bc35d463222cdb4dbebd35e0784155c81e161b9284e567e7e933d722e533331e"
-
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodome_3.19.1.bb b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.19.1.bb
new file mode 100644
index 0000000..70f16c7
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pycryptodome_3.19.1.bb
@@ -0,0 +1,5 @@
+require python-pycryptodome.inc
+inherit setuptools3
+
+SRC_URI[sha256sum] = "8ae0dd1bcfada451c35f9e29a3e5db385caabc190f98e4a80ad02a61098fb776"
+
diff --git a/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.19.0.bb b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.19.1.bb
similarity index 69%
rename from poky/meta/recipes-devtools/python/python3-pycryptodomex_3.19.0.bb
rename to poky/meta/recipes-devtools/python/python3-pycryptodomex_3.19.1.bb
index 87aff01..d6e5c6d 100644
--- a/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.19.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-pycryptodomex_3.19.1.bb
@@ -1,7 +1,7 @@
 require python-pycryptodome.inc
 inherit setuptools3
 
-SRC_URI[sha256sum] = "af83a554b3f077564229865c45af0791be008ac6469ef0098152139e6bd4b5b6"
+SRC_URI[sha256sum] = "0b7154aff2272962355f8941fd514104a88cb29db2d8f43a29af900d6398eb1c"
 
 FILES:${PN}-tests = " \
     ${PYTHON_SITEPACKAGES_DIR}/Cryptodome/SelfTest/ \
diff --git a/poky/meta/recipes-devtools/python/python3-pytest_7.4.3.bb b/poky/meta/recipes-devtools/python/python3-pytest_7.4.4.bb
similarity index 92%
rename from poky/meta/recipes-devtools/python/python3-pytest_7.4.3.bb
rename to poky/meta/recipes-devtools/python/python3-pytest_7.4.4.bb
index 6fa0feb..18062c8 100644
--- a/poky/meta/recipes-devtools/python/python3-pytest_7.4.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-pytest_7.4.4.bb
@@ -5,7 +5,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=bd27e41b6550fe0fc45356d1d81ee37c"
 
-SRC_URI[sha256sum] = "d989d136982de4e3b29dabcc838ad581c64e8ed52c11fbe86ddebd9da0818cd5"
+SRC_URI[sha256sum] = "2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"
 
 DEPENDS += "python3-setuptools-scm-native"
 
diff --git a/poky/meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch b/poky/meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch
new file mode 100644
index 0000000..a87d588
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-pyyaml/0001-Fix-builds-with-Cython-3.patch
@@ -0,0 +1,54 @@
+From 9cc23db56add79357b8f8257fe6fc0d6879d4579 Mon Sep 17 00:00:00 2001
+From: "Andrew J. Hesford" <ajh@sideband.org>
+Date: Fri, 21 Jul 2023 09:50:00 -0400
+Subject: [PATCH] Fix builds with Cython 3
+
+This is a *de minimis* fix for building with Cython 3. Recent Cython<3
+releases provided `Cython.Distutils.build_ext` as an alias to
+`Cython.Distutils.old_build_ext.old_build_ext`; Cython 3 drops this
+alias and instead uses a wholly new `Cython.Distutils.build_ext` that
+does not provide the `cython_sources` function used in `setup.py`.
+
+Explicitly importing `old_build_ext` preserves the existing behavior for
+recent Cython<3 and uses the correct behavior for Cython 3. Should the
+import fail (*e.g.*, because the version of Cython available predates
+the availability of `old_build_ext`), the import falls back to just
+`Cython.Distutils.build_ext`.
+
+Signed-off-by: Andrew J. Hesford <ajh@sideband.org>
+Upstream-Status: Denied [https://github.com/yaml/pyyaml/pull/731]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ pyproject.toml | 2 +-
+ setup.py       | 6 +++++-
+ 2 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 4bc04c0..2bf5ec8 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,3 +1,3 @@
+ [build-system]
+-requires = ["setuptools", "wheel", "Cython<3.0"]
++requires = ["setuptools", "wheel", "Cython"]
+ build-backend = "setuptools.build_meta"
+diff --git a/setup.py b/setup.py
+index 65b0ea0..4461580 100644
+--- a/setup.py
++++ b/setup.py
+@@ -82,7 +82,11 @@ if 'sdist' in sys.argv or os.environ.get('PYYAML_FORCE_CYTHON') == '1':
+     with_cython = True
+ try:
+     from Cython.Distutils.extension import Extension as _Extension
+-    from Cython.Distutils import build_ext as _build_ext
++    try:
++        from Cython.Distutils.old_build_ext import old_build_ext as _build_ext
++    except ImportError:
++        from Cython.Distutils import build_ext as _build_ext
++
+     with_cython = True
+ except ImportError:
+     if with_cython:
+-- 
+2.39.2
+
diff --git a/poky/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb b/poky/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
index 4ab8f03..61f7cbc 100644
--- a/poky/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
+++ b/poky/meta/recipes-devtools/python/python3-pyyaml_6.0.1.bb
@@ -9,6 +9,7 @@
 
 inherit pypi python_setuptools_build_meta
 
+SRC_URI += "file://0001-Fix-builds-with-Cython-3.patch"
 SRC_URI[sha256sum] = "bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"
 
 RDEPENDS:${PN} += "\
diff --git a/poky/meta/recipes-devtools/rpm/files/0001-Duplicate-filename-before-passing-it-to-basename.patch b/poky/meta/recipes-devtools/rpm/files/0001-Duplicate-filename-before-passing-it-to-basename.patch
new file mode 100644
index 0000000..f9b809d
--- /dev/null
+++ b/poky/meta/recipes-devtools/rpm/files/0001-Duplicate-filename-before-passing-it-to-basename.patch
@@ -0,0 +1,40 @@
+From 3fa2ae78db9b31edb4c22f3b5cd36c6c972947f1 Mon Sep 17 00:00:00 2001
+From: Florian Festi <ffesti@redhat.com>
+Date: Wed, 26 Jul 2023 15:01:35 +0200
+Subject: [PATCH] Duplicate filename before passing it to basename
+
+basename is allowed change the string passed to it. While we don't need
+the filename after that just casting away the const seems a bit too
+hacky.
+
+Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/3fa2ae78db9b31edb4c22f3b5cd36c6c972947f1]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/rpmuncompress.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/tools/rpmuncompress.c b/tools/rpmuncompress.c
+index 58ddf5683..e13cc6a66 100644
+--- a/tools/rpmuncompress.c
++++ b/tools/rpmuncompress.c
+@@ -98,7 +98,8 @@ static char *doUntar(const char *fn)
+ 	if (needtar) {
+ 	    rasprintf(&buf, "%s '%s' | %s %s -", zipper, fn, tar, taropts);
+ 	} else if (at->compressed == COMPRESSED_GEM) {
+-	    const char *bn = basename(fn);
++	    char *tmp = xstrdup(fn);
++	    const char *bn = basename(tmp);
+ 	    size_t nvlen = strlen(bn) - 3;
+ 	    char *gem = rpmGetPath("%{__gem}", NULL);
+ 	    char *gemspec = NULL;
+@@ -112,6 +113,7 @@ static char *doUntar(const char *fn)
+ 
+ 	    free(gemspec);
+ 	    free(gem);
++	    free(tmp);
+ 	} else {
+ 	    rasprintf(&buf, "%s '%s'", zipper, fn);
+ 	}
+-- 
+2.43.0
+
diff --git a/poky/meta/recipes-devtools/rpm/files/0001-Fix-missing-basename-include-on-macOS.patch b/poky/meta/recipes-devtools/rpm/files/0001-Fix-missing-basename-include-on-macOS.patch
new file mode 100644
index 0000000..a93597a
--- /dev/null
+++ b/poky/meta/recipes-devtools/rpm/files/0001-Fix-missing-basename-include-on-macOS.patch
@@ -0,0 +1,26 @@
+From b2e67642fd8cb64d8cb1cca9e759396c1c10807d Mon Sep 17 00:00:00 2001
+From: Calvin Buckley <calvin@cmpct.info>
+Date: Tue, 11 Jul 2023 19:22:41 -0300
+Subject: [PATCH] Fix missing basename include on macOS
+
+Upstream-Status: Backport [https://github.com/rpm-software-management/rpm/commit/b2e67642fd8cb64d8cb1cca9e759396c1c10807d]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ tools/rpmuncompress.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/tools/rpmuncompress.c b/tools/rpmuncompress.c
+index bd4146d54..58ddf5683 100644
+--- a/tools/rpmuncompress.c
++++ b/tools/rpmuncompress.c
+@@ -1,6 +1,7 @@
+ #include "system.h"
+ 
+ #include <popt.h>
++#include <libgen.h>
+ #include <errno.h>
+ #include <stdio.h>
+ #include <string.h>
+-- 
+2.43.0
+
diff --git a/poky/meta/recipes-devtools/rpm/rpm_4.18.1.bb b/poky/meta/recipes-devtools/rpm/rpm_4.18.1.bb
index 95a9e92..3e85cbb 100644
--- a/poky/meta/recipes-devtools/rpm/rpm_4.18.1.bb
+++ b/poky/meta/recipes-devtools/rpm/rpm_4.18.1.bb
@@ -40,6 +40,8 @@
            file://0001-python-Use-Py_hash_t-instead-of-long-in-hdr_hash.patch \
            file://fix-declaration.patch \
            file://ea3187cfcf9cac87e5bc5e7db79b0338da9e355e.patch \
+           file://0001-Duplicate-filename-before-passing-it-to-basename.patch \
+           file://0001-Fix-missing-basename-include-on-macOS.patch \
            "
 
 PE = "1"
diff --git a/poky/meta/recipes-devtools/subversion/subversion_1.14.2.bb b/poky/meta/recipes-devtools/subversion/subversion_1.14.3.bb
similarity index 97%
rename from poky/meta/recipes-devtools/subversion/subversion_1.14.2.bb
rename to poky/meta/recipes-devtools/subversion/subversion_1.14.3.bb
index ba208d9..1cf4e17 100644
--- a/poky/meta/recipes-devtools/subversion/subversion_1.14.2.bb
+++ b/poky/meta/recipes-devtools/subversion/subversion_1.14.3.bb
@@ -12,7 +12,7 @@
            file://serfmacro.patch \
            "
 
-SRC_URI[sha256sum] = "c9130e8d0b75728a66f0e7038fc77052e671830d785b5616aad53b4810d3cc28"
+SRC_URI[sha256sum] = "949efd451a09435f7e8573574c71c7b71b194d844890fa49cd61d2262ea1a440"
 
 inherit autotools pkgconfig gettext python3native
 
diff --git a/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb b/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
index 1931bfb..332655b 100644
--- a/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
+++ b/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
@@ -63,6 +63,10 @@
 	RANLIB="${RANLIB}" \
 "
 
+# mtools allows non-root users to install syslinux
+PACKAGECONFIG ??= "mtools"
+PACKAGECONFIG[mtools] = ",,,"
+
 #
 # Tasks for native/nativesdk which just build the installer.
 #
@@ -77,10 +81,15 @@
 do_install() {
 	install -d ${D}${bindir}
 	install \
-		${B}/bios/mtools/syslinux \
 		${B}/bios/extlinux/extlinux \
 		${B}/bios/utils/isohybrid \
 		${D}${bindir}
+
+	if ${@bb.utils.contains("PACKAGECONFIG", "mtools", "true", "false", d)}; then
+		install ${B}/bios/mtools/syslinux ${D}${bindir}
+	else
+		install ${B}/bios/linux/syslinux ${D}${bindir}
+	fi
 }
 
 #
@@ -104,14 +113,12 @@
 	install -m 644 ${S}/bios/core/ldlinux.bss ${D}${datadir}/syslinux/
 }
 
-PACKAGES += "${PN}-nomtools ${PN}-extlinux ${PN}-mbr ${PN}-chain ${PN}-pxelinux ${PN}-isolinux ${PN}-misc"
+PACKAGES += "${PN}-extlinux ${PN}-mbr ${PN}-chain ${PN}-pxelinux ${PN}-isolinux ${PN}-misc"
 
-RDEPENDS:${PN} += "mtools"
-RDEPENDS:${PN}-nomtools += "libext2fs"
+RDEPENDS:${PN} += "${@bb.utils.contains("PACKAGECONFIG", "mtools", "mtools", "", d)}"
 RDEPENDS:${PN}-misc += "perl"
 
 FILES:${PN} = "${bindir}/syslinux"
-FILES:${PN}-nomtools = "${bindir}/syslinux-nomtools"
 FILES:${PN}-extlinux = "${sbindir}/extlinux"
 FILES:${PN}-mbr = "${datadir}/${BPN}/mbr.bin"
 FILES:${PN}-chain = "${datadir}/${BPN}/chain.c32"
diff --git a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0001-architecture-Recognise-RISCV-32-RISCV-64.patch b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0001-architecture-Recognise-RISCV-32-RISCV-64.patch
deleted file mode 100644
index fc03812..0000000
--- a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart/0001-architecture-Recognise-RISCV-32-RISCV-64.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 4a6ace0a965965ea15e88c3418c7158ca5cc9f8f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 21 Nov 2019 10:12:05 -0800
-Subject: [PATCH] architecture: Recognise RISCV-32/RISCV-64
-
-Upstream-Status: Backport [https://github.com/systemd/systemd/commit/171b53380085b1288b03b19a2b978f36a5c003d0]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/architecture.h | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/src/architecture.h b/src/architecture.h
-index 26679e2..89c7d32 100644
---- a/src/architecture.h
-+++ b/src/architecture.h
-@@ -57,6 +57,8 @@ enum {
-         ARCHITECTURE_M68K,
-         ARCHITECTURE_TILEGX,
-         ARCHITECTURE_CRIS,
-+       ARCHITECTURE_RISCV32,
-+       ARCHITECTURE_RISCV64,
-         _ARCHITECTURE_MAX,
-         _ARCHITECTURE_INVALID = -1
- };
-@@ -194,6 +196,17 @@ int uname_architecture(void);
- #elif defined(__cris__)
- #  define native_architecture() ARCHITECTURE_CRIS
- #  error "Missing LIB_ARCH_TUPLE for CRIS"
-+#elif defined(__riscv)
-+#  if __SIZEOF_POINTER__ == 4
-+#    define native_architecture() ARCHITECTURE_RISCV32
-+#    define LIB_ARCH_TUPLE "riscv32-linux-gnu"
-+#  elif __SIZEOF_POINTER__ == 8
-+#    define native_architecture() ARCHITECTURE_RISCV64
-+#    define LIB_ARCH_TUPLE "riscv64-linux-gnu"
-+#  else
-+#    error "Unrecognized riscv architecture variant"
-+#  endif
-+#  define PROC_CPUINFO_MODEL "cpu model"
- #else
- #  error "Please register your architecture here!"
- #endif
--- 
-2.24.0
-
diff --git a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_234.bb b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_235.bb
similarity index 90%
rename from poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_234.bb
rename to poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_235.bb
index bc3eee2..2554402 100644
--- a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_234.bb
+++ b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_235.bb
@@ -8,8 +8,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c \
                     file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe"
 
-SRC_URI = "git://github.com/systemd/systemd-bootchart.git;protocol=https;branch=master \
-           file://0001-architecture-Recognise-RISCV-32-RISCV-64.patch \
+SRC_URI = "git://github.com/systemd/systemd-bootchart.git;protocol=https;branch=main \
            file://mips64.patch \
            file://no_lto.patch \
 "
@@ -21,7 +20,7 @@
     "
 
 
-SRCREV = "8183cfd9dad8beca5434d625cf6b2df87775e956"
+SRCREV = "8ab9680a1bd5eb8fe7a7dcc44897af7ee41e56e7"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-devtools/tcltk/tcl_8.6.13.bb b/poky/meta/recipes-devtools/tcltk/tcl_8.6.13.bb
index b33a78e..bb75353 100644
--- a/poky/meta/recipes-devtools/tcltk/tcl_8.6.13.bb
+++ b/poky/meta/recipes-devtools/tcltk/tcl_8.6.13.bb
@@ -88,7 +88,7 @@
 
 do_install_ptest:append:libc-musl () {
 	# Assumes locales other than provided by musl-locales
-	sed -i -e 's|SKIPPED_TESTS=|SKIPPED_TESTS="unixInit-3*"|' ${D}${PTEST_PATH}/run-ptest
+	sed -i -e "s|SKIPPED_TESTS='|SKIPPED_TESTS='unixInit-3* |" ${D}${PTEST_PATH}/run-ptest
 }
 
 # Fix some paths that might be used by Tcl extensions
diff --git a/poky/meta/recipes-extended/gawk/gawk_5.2.2.bb b/poky/meta/recipes-extended/gawk/gawk_5.3.0.bb
similarity index 94%
rename from poky/meta/recipes-extended/gawk/gawk_5.2.2.bb
rename to poky/meta/recipes-extended/gawk/gawk_5.3.0.bb
index 3c18b69..d7a0fc6 100644
--- a/poky/meta/recipes-extended/gawk/gawk_5.2.2.bb
+++ b/poky/meta/recipes-extended/gawk/gawk_5.3.0.bb
@@ -19,7 +19,7 @@
            file://run-ptest \
            "
 
-SRC_URI[sha256sum] = "945aef7ccff101f20b22a10802bc005e994ab2b8ea3e724cc1a197c62f41f650"
+SRC_URI[sha256sum] = "378f8864ec21cfceaa048f7e1869ac9b4597b449087caf1eb55e440d30273336"
 
 inherit autotools gettext texinfo update-alternatives
 
@@ -79,7 +79,7 @@
 	done
 }
 
-RDEPENDS:${PN}-ptest += "make locale-base-en-us"
+RDEPENDS:${PN}-ptest += "make locale-base-en-us coreutils"
 
 RDEPENDS:${PN}-ptest:append:libc-glibc = " locale-base-en-us.iso-8859-1"
 RDEPENDS:${PN}-ptest:append:libc-musl = " musl-locales"
diff --git a/poky/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch b/poky/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch
deleted file mode 100644
index fa1532c..0000000
--- a/poky/meta/recipes-extended/shadow/files/0001-Disable-use-of-syslog-for-sysroot.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 85d0444229ee3d14fefcf10d093f49c862826f82 Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard.purdie@linuxfoundation.org>
-Date: Thu, 14 Apr 2022 23:11:53 +0000
-Subject: [PATCH] Disable use of syslog for shadow-native tools
-
-Disable use of syslog to prevent sysroot user and group additions from
-writing entries to the host's syslog. This patch should only be used
-with the shadow-native recipe.
-
-Upstream-Status: Inappropriate [OE specific configuration]
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
-
----
- configure.ac      | 2 +-
- src/login_nopam.c | 3 ++-
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 924254a..603af81 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -191,7 +191,7 @@ AC_DEFINE_UNQUOTED(PASSWD_PROGRAM, "$shadow_cv_passwd_dir/passwd",
- 	[Path to passwd program.])
- 
- dnl XXX - quick hack, should disappear before anyone notices :).
--AC_DEFINE(USE_SYSLOG, 1, [Define to use syslog().])
-+#AC_DEFINE(USE_SYSLOG, 1, [Define to use syslog().])
- if test "$ac_cv_func_ruserok" = "yes"; then
- 	AC_DEFINE(RLOGIN, 1, [Define if login should support the -r flag for rlogind.])
- 	AC_DEFINE(RUSEROK, 0, [Define to the ruserok() "success" return value (0 or 1).])
-diff --git a/src/login_nopam.c b/src/login_nopam.c
-index df6ba88..fc24e13 100644
---- a/src/login_nopam.c
-+++ b/src/login_nopam.c
-@@ -29,7 +29,6 @@
- #ifndef USE_PAM
- #ident "$Id$"
- 
--#include "prototypes.h"
-     /*
-      * This module implements a simple but effective form of login access
-      * control based on login names and on host (or domain) names, internet
-@@ -57,6 +56,8 @@
- #include <netinet/in.h>
- #include <arpa/inet.h>		/* for inet_ntoa() */
- 
-+#include "prototypes.h"
-+
- #if !defined(MAXHOSTNAMELEN) || (MAXHOSTNAMELEN < 64)
- #undef MAXHOSTNAMELEN
- #define MAXHOSTNAMELEN 256
diff --git a/poky/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch b/poky/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch
deleted file mode 100644
index 89f9c05..0000000
--- a/poky/meta/recipes-extended/shadow/files/0001-Fix-can-not-print-full-login.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-commit 670cae834827a8f794e6f7464fa57790d911b63c
-Author: SoumyaWind <121475834+SoumyaWind@users.noreply.github.com>
-Date:   Tue Dec 27 17:40:17 2022 +0530
-
-    shadow: Fix can not print full login timeout message
-    
-    Login timed out message prints only first few bytes when write is immediately followed by exit.
-    Calling exit from new handler provides enough time to display full message.
-
-Upstream-Status: Backport [https://github.com/shadow-maint/shadow/commit/670cae834827a8f794e6f7464fa57790d911b63c]
-
-diff --git a/src/login.c b/src/login.c
-index 116e2cb3..c55f4de0 100644
---- a/src/login.c
-+++ b/src/login.c
-@@ -120,6 +120,7 @@ static void get_pam_user (char **ptr_pam_user);
- 
- static void init_env (void);
- static void alarm_handler (int);
-+static void exit_handler (int);
- 
- /*
-  * usage - print login command usage and exit
-@@ -391,11 +392,16 @@ static void init_env (void)
- #endif				/* !USE_PAM */
- }
- 
-+static void exit_handler (unused int sig)
-+{
-+	_exit (0);
-+}
- 
- static void alarm_handler (unused int sig)
- {
- 	write (STDERR_FILENO, tmsg, strlen (tmsg));
--	_exit (0);
-+	signal(SIGALRM, exit_handler);
-+	alarm(2);
- }
- 
- #ifdef USE_PAM
diff --git a/poky/meta/recipes-extended/shadow/files/0001-Overhaul-valid_field.patch b/poky/meta/recipes-extended/shadow/files/0001-Overhaul-valid_field.patch
deleted file mode 100644
index ac08be5..0000000
--- a/poky/meta/recipes-extended/shadow/files/0001-Overhaul-valid_field.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 2eaea70111f65b16d55998386e4ceb4273c19eb4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= <cgzones@googlemail.com>
-Date: Fri, 31 Mar 2023 14:46:50 +0200
-Subject: [PATCH] Overhaul valid_field()
-
-e5905c4b ("Added control character check") introduced checking for
-control characters but had the logic inverted, so it rejects all
-characters that are not control ones.
-
-Cast the character to `unsigned char` before passing to the character
-checking functions to avoid UB.
-
-Use strpbrk(3) for the illegal character test and return early.
-
-Upstream-Status: Backport [https://github.com/shadow-maint/shadow/commit/2eaea70111f65b16d55998386e4ceb4273c19eb4]
-
-Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
----
- lib/fields.c | 24 ++++++++++--------------
- 1 file changed, 10 insertions(+), 14 deletions(-)
-
-diff --git a/lib/fields.c b/lib/fields.c
-index fb51b582..53929248 100644
---- a/lib/fields.c
-+++ b/lib/fields.c
-@@ -37,26 +37,22 @@ int valid_field (const char *field, const char *illegal)
- 
- 	/* For each character of field, search if it appears in the list
- 	 * of illegal characters. */
-+	if (illegal && NULL != strpbrk (field, illegal)) {
-+		return -1;
-+	}
-+
-+	/* Search if there are non-printable or control characters */
- 	for (cp = field; '\0' != *cp; cp++) {
--		if (strchr (illegal, *cp) != NULL) {
-+		unsigned char c = *cp;
-+		if (!isprint (c)) {
-+			err = 1;
-+		}
-+		if (iscntrl (c)) {
- 			err = -1;
- 			break;
- 		}
- 	}
- 
--	if (0 == err) {
--		/* Search if there are non-printable or control characters */
--		for (cp = field; '\0' != *cp; cp++) {
--			if (!isprint (*cp)) {
--				err = 1;
--			}
--			if (!iscntrl (*cp)) {
--				err = -1;
--				break;
--			}
--		}
--	}
--
- 	return err;
- }
- 
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-extended/shadow/files/CVE-2023-29383.patch b/poky/meta/recipes-extended/shadow/files/CVE-2023-29383.patch
deleted file mode 100644
index f53341d..0000000
--- a/poky/meta/recipes-extended/shadow/files/CVE-2023-29383.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From e5905c4b84d4fb90aefcd96ee618411ebfac663d Mon Sep 17 00:00:00 2001
-From: tomspiderlabs <128755403+tomspiderlabs@users.noreply.github.com>
-Date: Thu, 23 Mar 2023 23:39:38 +0000
-Subject: [PATCH] Added control character check
-
-Added control character check, returning -1 (to "err") if control characters are present.
-
-CVE: CVE-2023-29383
-Upstream-Status: Backport
-
-Reference to upstream:
-https://github.com/shadow-maint/shadow/commit/e5905c4b84d4fb90aefcd96ee618411ebfac663d
-
-Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
----
- lib/fields.c | 11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/lib/fields.c b/lib/fields.c
-index 640be931..fb51b582 100644
---- a/lib/fields.c
-+++ b/lib/fields.c
-@@ -21,9 +21,9 @@
-  *
-  * The supplied field is scanned for non-printable and other illegal
-  * characters.
-- *  + -1 is returned if an illegal character is present.
-- *  +  1 is returned if no illegal characters are present, but the field
-- *       contains a non-printable character.
-+ *  + -1 is returned if an illegal or control character is present.
-+ *  +  1 is returned if no illegal or control characters are present,
-+ *       but the field contains a non-printable character.
-  *  +  0 is returned otherwise.
-  */
- int valid_field (const char *field, const char *illegal)
-@@ -45,10 +45,13 @@ int valid_field (const char *field, const char *illegal)
- 	}
- 
- 	if (0 == err) {
--		/* Search if there are some non-printable characters */
-+		/* Search if there are non-printable or control characters */
- 		for (cp = field; '\0' != *cp; cp++) {
- 			if (!isprint (*cp)) {
- 				err = 1;
-+			}
-+			if (!iscntrl (*cp)) {
-+				err = -1;
- 				break;
- 			}
- 		}
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-extended/shadow/files/CVE-2023-4641.patch b/poky/meta/recipes-extended/shadow/files/CVE-2023-4641.patch
deleted file mode 100644
index 1fabfe9..0000000
--- a/poky/meta/recipes-extended/shadow/files/CVE-2023-4641.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 25dbe2ce166a13322b7536ff2f738786ea2e61e7 Mon Sep 17 00:00:00 2001
-From: Alejandro Colomar <alx@kernel.org>
-Date: Sat, 10 Jun 2023 16:20:05 +0200
-Subject: [PATCH] gpasswd(1): Fix password leak
-
-How to trigger this password leak?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-When gpasswd(1) asks for the new password, it asks twice (as is usual
-for confirming the new password).  Each of those 2 password prompts
-uses agetpass() to get the password.  If the second agetpass() fails,
-the first password, which has been copied into the 'static' buffer
-'pass' via STRFCPY(), wasn't being zeroed.
-
-agetpass() is defined in <./libmisc/agetpass.c> (around line 91), and
-can fail for any of the following reasons:
-
--  malloc(3) or readpassphrase(3) failure.
-
-   These are going to be difficult to trigger.  Maybe getting the system
-   to the limits of memory utilization at that exact point, so that the
-   next malloc(3) gets ENOMEM, and possibly even the OOM is triggered.
-   About readpassphrase(3), ENFILE and EINTR seem the only plausible
-   ones, and EINTR probably requires privilege or being the same user;
-   but I wouldn't discard ENFILE so easily, if a process starts opening
-   files.
-
--  The password is longer than PASS_MAX.
-
-   The is plausible with physical access.  However, at that point, a
-   keylogger will be a much simpler attack.
-
-And, the attacker must be able to know when the second password is being
-introduced, which is not going to be easy.
-
-How to read the password after the leak?
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-
-Provoking the leak yourself at the right point by entering a very long
-password is easy, and inspecting the process stack at that point should
-be doable.  Try to find some consistent patterns.
-
-Then, search for those patterns in free memory, right after the victim
-leaks their password.
-
-Once you get the leak, a program should read all the free memory
-searching for patterns that gpasswd(1) leaves nearby the leaked
-password.
-
-On 6/10/23 03:14, Seth Arnold wrote:
-> An attacker process wouldn't be able to use malloc(3) for this task.
-> There's a handful of tools available for userspace to allocate memory:
->
-> -  brk / sbrk
-> -  mmap MAP_ANONYMOUS
-> -  mmap /dev/zero
-> -  mmap some other file
-> -  shm_open
-> -  shmget
->
-> Most of these return only pages of zeros to a process.  Using mmap of an
-> existing file, you can get some of the contents of the file demand-loaded
-> into the memory space on the first use.
->
-> The MAP_UNINITIALIZED flag only works if the kernel was compiled with
-> CONFIG_MMAP_ALLOW_UNINITIALIZED.  This is rare.
->
-> malloc(3) doesn't zero memory, to our collective frustration, but all the
-> garbage in the allocations is from previous allocations in the current
-> process.  It isn't leftover from other processes.
->
-> The avenues available for reading the memory:
-> -  /dev/mem and /dev/kmem (requires root, not available with Secure Boot)
-> -  /proc/pid/mem (requires ptrace privileges, mediated by YAMA)
-> -  ptrace (requires ptrace privileges, mediated by YAMA)
-> -  causing memory to be swapped to disk, and then inspecting the swap
->
-> These all require a certain amount of privileges.
-
-How to fix it?
-~~~~~~~~~~~~~~
-
-memzero(), which internally calls explicit_bzero(3), or whatever
-alternative the system provides with a slightly different name, will
-make sure that the buffer is zeroed in memory, and optimizations are not
-allowed to impede this zeroing.
-
-This is not really 100% effective, since compilers may place copies of
-the string somewhere hidden in the stack.  Those copies won't get zeroed
-by explicit_bzero(3).  However, that's arguably a compiler bug, since
-compilers should make everything possible to avoid optimizing strings
-that are later passed to explicit_bzero(3).  But we all know that
-sometimes it's impossible to have perfect knowledge in the compiler, so
-this is plausible.  Nevertheless, there's nothing we can do against such
-issues, except minimizing the time such passwords are stored in plain
-text.
-
-Security concerns
-~~~~~~~~~~~~~~~~~
-
-We believe this isn't easy to exploit.  Nevertheless, and since the fix
-is trivial, this fix should probably be applied soon, and backported to
-all supported distributions, to prevent someone else having more
-imagination than us to find a way.
-
-Affected versions
-~~~~~~~~~~~~~~~~~
-
-All.  Bug introduced in shadow 19990709.  That's the second commit in
-the git history.
-
-Fixes: 45c6603cc86c ("[svn-upgrade] Integrating new upstream version, shadow (19990709)")
-
-CVE: CVE-2023-4641
-Upstream-Status: Backport [https://github.com/shadow-maint/shadow/commit/65c88a43a23c2391dcc90c0abda3e839e9c57904]
-
-Reported-by: Alejandro Colomar <alx@kernel.org>
-Cc: Serge Hallyn <serge@hallyn.com>
-Cc: Iker Pedrosa <ipedrosa@redhat.com>
-Cc: Seth Arnold <seth.arnold@canonical.com>
-Cc: Christian Brauner <christian@brauner.io>
-Cc: Balint Reczey <rbalint@debian.org>
-Cc: Sam James <sam@gentoo.org>
-Cc: David Runge <dvzrv@archlinux.org>
-Cc: Andreas Jaeger <aj@suse.de>
-Cc: <~hallyn/shadow@lists.sr.ht>
-Signed-off-by: Alejandro Colomar <alx@kernel.org>
-Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
----
- src/gpasswd.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/src/gpasswd.c b/src/gpasswd.c
-index 5983f787..2d8869ef 100644
---- a/src/gpasswd.c
-+++ b/src/gpasswd.c
-@@ -896,6 +896,7 @@ static void change_passwd (struct group *gr)
- 		strzero (cp);
- 		cp = getpass (_("Re-enter new password: "));
- 		if (NULL == cp) {
-+			memzero (pass, sizeof pass);
- 			exit (1);
- 		}
- 
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch b/poky/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch
index 85d9175..4a932d2 100644
--- a/poky/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch
+++ b/poky/meta/recipes-extended/shadow/files/commonio.c-fix-unexpected-open-failure-in-chroot-env.patch
@@ -1,4 +1,4 @@
-From 21583da072aa66901d859ac00ce209bac87ddecc Mon Sep 17 00:00:00 2001
+From a773c6b240d27e23d6be41decef0edf24fcee523 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Thu, 17 Jul 2014 15:53:34 +0800
 Subject: [PATCH] commonio.c-fix-unexpected-open-failure-in-chroot-env
@@ -15,35 +15,37 @@
 the codes.
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
 ---
  lib/commonio.c | 16 ++++++++++++----
  1 file changed, 12 insertions(+), 4 deletions(-)
 
 diff --git a/lib/commonio.c b/lib/commonio.c
-index 9a02ce1..61384ec 100644
+index 73fdb3a..d1231e9 100644
 --- a/lib/commonio.c
 +++ b/lib/commonio.c
-@@ -616,10 +616,18 @@ int commonio_open (struct commonio_db *db, int mode)
+@@ -606,10 +606,18 @@ int commonio_open (struct commonio_db *db, int mode)
  	db->cursor = NULL;
  	db->changed = false;
  
 -	fd = open (db->filename,
 -	             (db->readonly ? O_RDONLY : O_RDWR)
--	           | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW);
+-	           | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW | O_CLOEXEC);
 -	saved_errno = errno;
 +	if (db->readonly) {
 +		fd = open (db->filename,
 +			   (true ? O_RDONLY : O_RDWR)
-+			   | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW);
++			   | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW | O_CLOEXEC);
 +		saved_errno = errno;
 +	} else {
 +		fd = open (db->filename,
 +			   (false ? O_RDONLY : O_RDWR)
-+			   | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW);
++			   | O_NOCTTY | O_NONBLOCK | O_NOFOLLOW| O_CLOEXEC);
 +		saved_errno = errno;
 +	}
 +
  	db->fp = NULL;
  	if (fd >= 0) {
  #ifdef WITH_TCB
+-- 
+2.30.2
+
diff --git a/poky/meta/recipes-extended/shadow/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc
index ce3ce62..43f4562 100644
--- a/poky/meta/recipes-extended/shadow/shadow.inc
+++ b/poky/meta/recipes-extended/shadow/shadow.inc
@@ -5,7 +5,7 @@
 SECTION = "base/utils"
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://COPYING;md5=c9a450b7be84eac23e6353efecb60b5b \
-                    file://src/passwd.c;beginline=2;endline=30;md5=758c26751513b6795395275969dd3be1 \
+                    file://src/passwd.c;beginline=2;endline=7;md5=67bcf314687820b2f010d4863fce3fc5 \
                     "
 
 DEPENDS = "virtual/crypt"
@@ -14,10 +14,6 @@
 SRC_URI = "${GITHUB_BASE_URI}/download/${PV}/${BP}.tar.gz \
            ${@bb.utils.contains('PACKAGECONFIG', 'pam', '${PAM_SRC_URI}', '', d)} \
            file://useradd \
-	   file://0001-Fix-can-not-print-full-login.patch \
-           file://CVE-2023-29383.patch \
-           file://0001-Overhaul-valid_field.patch \
-           file://CVE-2023-4641.patch \
            "
 
 SRC_URI:append:class-target = " \
@@ -26,14 +22,9 @@
            "
 
 SRC_URI:append:class-native = " \
-           file://0001-Disable-use-of-syslog-for-sysroot.patch \
            file://commonio.c-fix-unexpected-open-failure-in-chroot-env.patch \
            "
-SRC_URI:append:class-nativesdk = " \
-           file://0001-Disable-use-of-syslog-for-sysroot.patch \
-           "
-SRC_URI[sha256sum] = "813057047499c7fe81108adcf0cffa3ad4ec75e19a80151f9cbaa458ff2e86cd"
-
+SRC_URI[sha256sum] = "a305edf5d19bddbdf5e836d2d609fa8bff2d35458819de4d9f06306a1cf24342"
 
 # Additional Policy files for PAM
 PAM_SRC_URI = "file://pam.d/chfn \
@@ -44,7 +35,7 @@
                file://pam.d/passwd \
                file://pam.d/su"
 
-inherit autotools gettext github-releases
+inherit autotools gettext github-releases pkgconfig
 
 export CONFIG_SHELL="/bin/sh"
 
@@ -54,6 +45,18 @@
                  --without-sssd \
                  ${NSCDOPT}"
 
+CFLAGS:append:libc-musl = " -DLIBBSD_OVERLAY"
+
+# Force static linking of utilities so we can use from the sysroot/sstate for useradd
+# without worrying about the dependency libraries being available
+LDFLAGS:append:class-native = " -no-pie"
+do_compile:prepend:class-native () {
+	sed -i -e 's#\(LIBS.*\)-lbsd#\1 ${STAGING_LIBDIR}/libbsd.a ${STAGING_LIBDIR}/libmd.a#g' \
+	       -e 's#\(LIBBSD.*\)-lbsd#\1 ${STAGING_LIBDIR}/libbsd.a ${STAGING_LIBDIR}/libmd.a#g' \
+	       -e 's#\(LIBATTR.*\)-lattr#\1 ${STAGING_LIBDIR}/libattr.a#g' \
+               ${B}/lib/Makefile ${B}/src/Makefile
+}
+
 NSCDOPT = ""
 NSCDOPT:class-native = "--without-nscd"
 NSCDOPT:class-nativesdk = "--without-nscd"
@@ -73,13 +76,14 @@
 
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)}"
-PACKAGECONFIG:class-native ??= "${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)}"
+PACKAGECONFIG:class-native ??= "${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)} libbsd"
 PACKAGECONFIG:class-nativesdk = ""
 PACKAGECONFIG[pam] = "--with-libpam,--without-libpam,libpam,${PAM_PLUGINS}"
 PACKAGECONFIG[attr] = "--with-attr,--without-attr,attr"
 PACKAGECONFIG[acl] = "--with-acl,--without-acl,acl"
 PACKAGECONFIG[audit] = "--with-audit,--without-audit,audit"
 PACKAGECONFIG[selinux] = "--with-selinux,--without-selinux,libselinux libsemanage"
+PACKAGECONFIG[libbsd] = "--with-libbsd,--without-libbsd,libbsd"
 
 RDEPENDS:${PN} = "shadow-securetty \
                   base-passwd \
diff --git a/poky/meta/recipes-extended/shadow/shadow_4.13.bb b/poky/meta/recipes-extended/shadow/shadow_4.14.2.bb
similarity index 100%
rename from poky/meta/recipes-extended/shadow/shadow_4.13.bb
rename to poky/meta/recipes-extended/shadow/shadow_4.14.2.bb
diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.15p2.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.15p5.bb
similarity index 95%
rename from poky/meta/recipes-extended/sudo/sudo_1.9.15p2.bb
rename to poky/meta/recipes-extended/sudo/sudo_1.9.15p5.bb
index 431dfba..8e54201 100644
--- a/poky/meta/recipes-extended/sudo/sudo_1.9.15p2.bb
+++ b/poky/meta/recipes-extended/sudo/sudo_1.9.15p5.bb
@@ -7,7 +7,7 @@
 
 PAM_SRC_URI = "file://sudo.pam"
 
-SRC_URI[sha256sum] = "199c0cdbfa7efcfffa9c88684a8e2fb206a62b70a316507e4a91c89c873bbcc8"
+SRC_URI[sha256sum] = "558d10b9a1991fb3b9fa7fa7b07ec4405b7aefb5b3cb0b0871dbc81e3a88e558"
 
 DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
 RDEPENDS:${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}"
diff --git a/poky/meta/recipes-gnome/gtk-doc/files/0001-Don-t-use-docdir-from-environment.patch b/poky/meta/recipes-gnome/gtk-doc/files/0001-Don-t-use-docdir-from-environment.patch
new file mode 100644
index 0000000..f401248
--- /dev/null
+++ b/poky/meta/recipes-gnome/gtk-doc/files/0001-Don-t-use-docdir-from-environment.patch
@@ -0,0 +1,24 @@
+From 72dfeec0e49478b0bfb471c4155044391bad8e6c Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Fri, 8 Dec 2023 10:35:25 +0000
+Subject: [PATCH] Don't use docdir from environment
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/gtk-doc/-/merge_requests/73]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ buildsystems/autotools/gtkdocize.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/buildsystems/autotools/gtkdocize.in b/buildsystems/autotools/gtkdocize.in
+index 83127bf..76dcbfd 100755
+--- a/buildsystems/autotools/gtkdocize.in
++++ b/buildsystems/autotools/gtkdocize.in
+@@ -39,7 +39,7 @@ set - $args
+ 
+ # assume working directory if srcdir is not set
+ test "$srcdir" || srcdir=.
+-test "$docdir" || docdir="$srcdir"
++docdir="$srcdir"
+ 
+ # detect configure script
+ no_configure_found=0
diff --git a/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb b/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb
index 2e8ab1c..4fd5a6e 100644
--- a/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb
+++ b/poky/meta/recipes-gnome/gtk-doc/gtk-doc_1.33.2.bb
@@ -16,7 +16,7 @@
 # into its scripts. This means that target gtk-doc package is broken;
 # hopefully no one minds because its scripts are not used for anything during build
 # and shouldn't be used on targets.
-PACKAGECONFIG[working-scripts] = ",,libxslt-native xmlto-native python3-six python3-pygments"
+PACKAGECONFIG[working-scripts] = ",,libxslt-native docbook-xml-dtd4-native docbook-xsl-stylesheets python3-pygments"
 PACKAGECONFIG[tests] = "--enable-tests,--disable-tests,glib-2.0"
 
 CACHED_CONFIGUREVARS += "ac_cv_path_XSLTPROC=xsltproc"
@@ -26,6 +26,7 @@
            file://0001-Do-not-error-out-if-xsltproc-is-not-found.patch \
            file://conditionaltests.patch \
            file://no-clobber.patch \
+           file://0001-Don-t-use-docdir-from-environment.patch \
            "
 SRC_URI:append:class-native = " file://pkg-config-native.patch"
 
diff --git a/poky/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch b/poky/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
deleted file mode 100644
index 4252a56..0000000
--- a/poky/meta/recipes-graphics/cairo/cairo/CVE-2018-19876.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-CVE: CVE-2018-19876
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-From 90e85c2493fdfa3551f202ff10282463f1e36645 Mon Sep 17 00:00:00 2001
-From: Carlos Garcia Campos <cgarcia@igalia.com>
-Date: Mon, 19 Nov 2018 12:33:07 +0100
-Subject: [PATCH] ft: Use FT_Done_MM_Var instead of free when available in
- cairo_ft_apply_variations
-
-Fixes a crash when using freetype >= 2.9
----
- src/cairo-ft-font.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/cairo-ft-font.c b/src/cairo-ft-font.c
-index 325dd61b4..981973f78 100644
---- a/src/cairo-ft-font.c
-+++ b/src/cairo-ft-font.c
-@@ -2393,7 +2393,11 @@ skip:
- done:
-         free (coords);
-         free (current_coords);
-+#if HAVE_FT_DONE_MM_VAR
-+        FT_Done_MM_Var (face->glyph->library, ft_mm_var);
-+#else
-         free (ft_mm_var);
-+#endif
-     }
- }
- 
--- 
-2.11.0
-
diff --git a/poky/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch b/poky/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
deleted file mode 100644
index a2dba6c..0000000
--- a/poky/meta/recipes-graphics/cairo/cairo/CVE-2019-6461.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-There is an assertion in function _cairo_arc_in_direction().
-
-CVE: CVE-2019-6461
-Upstream-Status: Pending
-Signed-off-by: Ross Burton <ross.burton@intel.com>
-
-diff --git a/src/cairo-arc.c b/src/cairo-arc.c
-index 390397bae..1bde774a4 100644
---- a/src/cairo-arc.c
-+++ b/src/cairo-arc.c
-@@ -186,7 +186,8 @@ _cairo_arc_in_direction (cairo_t	  *cr,
-     if (cairo_status (cr))
-         return;
- 
--    assert (angle_max >= angle_min);
-+    if (angle_max < angle_min)
-+       return;
- 
-     if (angle_max - angle_min > 2 * M_PI * MAX_FULL_CIRCLES) {
- 	angle_max = fmod (angle_max - angle_min, 2 * M_PI);
diff --git a/poky/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch b/poky/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
deleted file mode 100644
index 7c32092..0000000
--- a/poky/meta/recipes-graphics/cairo/cairo/CVE-2019-6462.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-CVE: CVE-2019-6462
-Upstream-Status: Backport
-Signed-off-by: Quentin Schulz <quentin.schulz@theobroma-systems.com>
-
-From ab2c5ee21e5f3d3ee4b3f67cfcd5811a4f99c3a0 Mon Sep 17 00:00:00 2001
-From: Heiko Lewin <hlewin@gmx.de>
-Date: Sun, 1 Aug 2021 11:16:03 +0000
-Subject: [PATCH] _arc_max_angle_for_tolerance_normalized: fix infinite loop
-
----
- src/cairo-arc.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/src/cairo-arc.c b/src/cairo-arc.c
-index 390397bae..1c891d1a0 100644
---- a/src/cairo-arc.c
-+++ b/src/cairo-arc.c
-@@ -90,16 +90,18 @@ _arc_max_angle_for_tolerance_normalized (double tolerance)
- 	{ M_PI / 11.0,  9.81410988043554039085e-09 },
-     };
-     int table_size = ARRAY_LENGTH (table);
-+    const int max_segments = 1000; /* this value is chosen arbitrarily. this gives an error of about 1.74909e-20 */
- 
-     for (i = 0; i < table_size; i++)
- 	if (table[i].error < tolerance)
- 	    return table[i].angle;
- 
-     ++i;
-+
-     do {
- 	angle = M_PI / i++;
- 	error = _arc_error_normalized (angle);
--    } while (error > tolerance);
-+    } while (error > tolerance && i < max_segments);
- 
-     return angle;
- }
--- 
-2.38.1
-
diff --git a/poky/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch b/poky/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
deleted file mode 100644
index fb6ce5c..0000000
--- a/poky/meta/recipes-graphics/cairo/cairo/CVE-2020-35492.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-Fix stack buffer overflow.
-
-CVE: CVE-2020-35492
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-
-From 03a820b173ed1fdef6ff14b4468f5dbc02ff59be Mon Sep 17 00:00:00 2001
-From: Heiko Lewin <heiko.lewin@worldiety.de>
-Date: Tue, 15 Dec 2020 16:48:19 +0100
-Subject: [PATCH] Fix mask usage in image-compositor
-
----
- src/cairo-image-compositor.c                |   8 ++--
- test/Makefile.sources                       |   1 +
- test/bug-image-compositor.c                 |  39 ++++++++++++++++++++
- test/reference/bug-image-compositor.ref.png | Bin 0 -> 185 bytes
- 4 files changed, 44 insertions(+), 4 deletions(-)
- create mode 100644 test/bug-image-compositor.c
- create mode 100644 test/reference/bug-image-compositor.ref.png
-
-diff --git a/src/cairo-image-compositor.c b/src/cairo-image-compositor.c
-index 79ad69f68..4f8aaed99 100644
---- a/src/cairo-image-compositor.c
-+++ b/src/cairo-image-compositor.c
-@@ -2601,14 +2601,14 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
- 		    unsigned num_spans)
- {
-     cairo_image_span_renderer_t *r = abstract_renderer;
--    uint8_t *m;
-+    uint8_t *m, *base = (uint8_t*)pixman_image_get_data(r->mask);
-     int x0;
- 
-     if (num_spans == 0)
- 	return CAIRO_STATUS_SUCCESS;
- 
-     x0 = spans[0].x;
--    m = r->_buf;
-+    m = base;
-     do {
- 	int len = spans[1].x - spans[0].x;
- 	if (len >= r->u.composite.run_length && spans[0].coverage == 0xff) {
-@@ -2655,7 +2655,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
- 				      spans[0].x, y,
- 				      spans[1].x - spans[0].x, h);
- 
--	    m = r->_buf;
-+	    m = base;
- 	    x0 = spans[1].x;
- 	} else if (spans[0].coverage == 0x0) {
- 	    if (spans[0].x != x0) {
-@@ -2684,7 +2684,7 @@ _inplace_src_spans (void *abstract_renderer, int y, int h,
- #endif
- 	    }
- 
--	    m = r->_buf;
-+	    m = base;
- 	    x0 = spans[1].x;
- 	} else {
- 	    *m++ = spans[0].coverage;
--- 
diff --git a/poky/meta/recipes-graphics/cairo/cairo/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff b/poky/meta/recipes-graphics/cairo/cairo/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff
index 7aaad2e..6c761bf 100644
--- a/poky/meta/recipes-graphics/cairo/cairo/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff
+++ b/poky/meta/recipes-graphics/cairo/cairo/cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff
@@ -3,7 +3,7 @@
 https://bugs.freedesktop.org/show_bug.cgi?id=100763
 
 CVE: CVE-2017-7475
-Upstream-Status: Submitted
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/cairo/cairo/-/issues/80]
 
 Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com>
 
diff --git a/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb b/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
deleted file mode 100644
index ffb813d..0000000
--- a/poky/meta/recipes-graphics/cairo/cairo_1.16.0.bb
+++ /dev/null
@@ -1,106 +0,0 @@
-SUMMARY = "The Cairo 2D vector graphics library"
-DESCRIPTION = "Cairo is a multi-platform library providing anti-aliased \
-vector-based rendering for multiple target backends. Paths consist \
-of line segments and cubic splines and can be rendered at any width \
-with various join and cap styles. All colors may be specified with \
-optional translucence (opacity/alpha) and combined using the \
-extended Porter/Duff compositing algebra as found in the X Render \
-Extension."
-HOMEPAGE = "http://cairographics.org"
-BUGTRACKER = "http://bugs.freedesktop.org"
-SECTION = "libs"
-
-LICENSE = "(MPL-1.1 | LGPL-2.1-only) & GPL-3.0-or-later"
-LICENSE:${PN} = "MPL-1.1 | LGPL-2.1-only"
-LICENSE:${PN}-dev = "MPL-1.1 | LGPL-2.1-only"
-LICENSE:${PN}-doc = "MPL-1.1 | LGPL-2.1-only"
-LICENSE:${PN}-gobject = "MPL-1.1 | LGPL-2.1-only"
-LICENSE:${PN}-script-interpreter = "MPL-1.1 | LGPL-2.1-only"
-LICENSE:${PN}-perf-utils = "GPL-3.0-or-later"
-# Adapt the licenses for cairo-dbg and cairo-src depending on whether
-# cairo-trace is being built.
-LICENSE:${PN}-dbg = "(MPL-1.1 | LGPL-2.1-only)${@bb.utils.contains('PACKAGECONFIG', 'trace', ' & GPL-3.0-or-later', '', d)}"
-LICENSE:${PN}-src = "(MPL-1.1 | LGPL-2.1-only)${@bb.utils.contains('PACKAGECONFIG', 'trace', ' & GPL-3.0-or-later', '', d)}"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77 \
-                    ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'file://util/cairo-trace/COPYING-GPL-3;md5=d32239bcb673463ab874e80d47fae504', '', d)}"
-
-
-DEPENDS = "fontconfig glib-2.0 libpng pixman zlib"
-
-SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \
-           file://cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff \
-           file://CVE-2018-19876.patch \
-           file://CVE-2019-6461.patch \
-           file://CVE-2019-6462.patch \
-           file://CVE-2020-35492.patch \
-          "
-
-SRC_URI[md5sum] = "f19e0353828269c22bd72e271243a552"
-SRC_URI[sha256sum] = "5e7b29b3f113ef870d1e3ecf8adf21f923396401604bda16d44be45e66052331"
-
-inherit autotools pkgconfig upstream-version-is-even gtk-doc multilib_script
-
-MULTILIB_SCRIPTS = "${PN}-perf-utils:${bindir}/cairo-trace"
-
-X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
-
-PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
-                   ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)} \
-                   trace"
-PACKAGECONFIG:class-native = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
-PACKAGECONFIG:class-nativesdk = "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)}"
-
-PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
-PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
-PACKAGECONFIG[directfb] = "--enable-directfb=yes,,directfb"
-PACKAGECONFIG[valgrind] = "--enable-valgrind=yes,--disable-valgrind,valgrind"
-PACKAGECONFIG[egl] = "--enable-egl=yes,--disable-egl,virtual/egl"
-PACKAGECONFIG[glesv2] = "--enable-glesv2,--disable-glesv2,virtual/libgles2"
-PACKAGECONFIG[opengl] = "--enable-gl,--disable-gl,virtual/libgl"
-# trace is under GPLv3
-PACKAGECONFIG[trace] = "--enable-trace,--disable-trace"
-
-EXTRA_OECONF += " \
-    ${@bb.utils.contains('TARGET_FPU', 'soft', '--disable-some-floating-point', '', d)} \
-    --enable-tee \
-"
-
-# We don't depend on binutils so we need to disable this
-export ac_cv_lib_bfd_bfd_openr="no"
-# Ensure we don't depend on LZO
-export ac_cv_lib_lzo2_lzo2a_decompress="no"
-
-do_install:append () {
-	rm -rf ${D}${bindir}/cairo-sphinx
-	rm -rf ${D}${libdir}/cairo/cairo-fdr*
-	rm -rf ${D}${libdir}/cairo/cairo-sphinx*
-	rm -rf ${D}${libdir}/cairo/.debug/cairo-fdr*
-	rm -rf ${D}${libdir}/cairo/.debug/cairo-sphinx*
-	[ ! -d ${D}${bindir} ] ||
-		rmdir -p --ignore-fail-on-non-empty ${D}${bindir}
-	[ ! -d ${D}${libdir}/cairo ] ||
-		rmdir -p --ignore-fail-on-non-empty ${D}${libdir}/cairo
-}
-
-PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils"
-
-SUMMARY:cairo-gobject = "The Cairo library GObject wrapper library"
-DESCRIPTION:cairo-gobject = "A GObject wrapper library for the Cairo API."
-
-SUMMARY:cairo-script-interpreter = "The Cairo library script interpreter"
-DESCRIPTION:cairo-script-interpreter = "The Cairo script interpreter implements \
-CairoScript.  CairoScript is used by tracing utilities to enable the ability \
-to replay rendering."
-
-DESCRIPTION:cairo-perf-utils = "The Cairo library performance utilities"
-
-FILES:${PN} = "${libdir}/libcairo.so.*"
-FILES:${PN}-gobject = "${libdir}/libcairo-gobject.so.*"
-FILES:${PN}-script-interpreter = "${libdir}/libcairo-script-interpreter.so.*"
-FILES:${PN}-perf-utils = "${bindir}/cairo-trace* ${libdir}/cairo/*.la ${libdir}/cairo/libcairo-trace.so"
-
-BBCLASSEXTEND = "native nativesdk"
-
-UPSTREAM_CHECK_REGEX = "cairo-(?P<pver>\d+(\.\d+)+).tar.xz"
diff --git a/poky/meta/recipes-graphics/cairo/cairo_1.18.0.bb b/poky/meta/recipes-graphics/cairo/cairo_1.18.0.bb
new file mode 100644
index 0000000..fe72537
--- /dev/null
+++ b/poky/meta/recipes-graphics/cairo/cairo_1.18.0.bb
@@ -0,0 +1,85 @@
+SUMMARY = "The Cairo 2D vector graphics library"
+DESCRIPTION = "Cairo is a multi-platform library providing anti-aliased \
+vector-based rendering for multiple target backends. Paths consist \
+of line segments and cubic splines and can be rendered at any width \
+with various join and cap styles. All colors may be specified with \
+optional translucence (opacity/alpha) and combined using the \
+extended Porter/Duff compositing algebra as found in the X Render \
+Extension."
+HOMEPAGE = "http://cairographics.org"
+BUGTRACKER = "https://gitlab.freedesktop.org/cairo/cairo/-/issues"
+SECTION = "libs"
+
+LICENSE = "(MPL-1.1 | LGPL-2.1-only) & GPL-3.0-or-later"
+LICENSE:${PN} = "MPL-1.1 | LGPL-2.1-only"
+LICENSE:${PN}-dev = "MPL-1.1 | LGPL-2.1-only"
+LICENSE:${PN}-doc = "MPL-1.1 | LGPL-2.1-only"
+LICENSE:${PN}-gobject = "MPL-1.1 | LGPL-2.1-only"
+LICENSE:${PN}-script-interpreter = "MPL-1.1 | LGPL-2.1-only"
+LICENSE:${PN}-perf-utils = "GPL-3.0-or-later"
+# Adapt the licenses for cairo-dbg and cairo-src depending on whether
+# cairo-trace is being built.
+LICENSE:${PN}-dbg = "(MPL-1.1 | LGPL-2.1-only)${@bb.utils.contains('PACKAGECONFIG', 'trace', ' & GPL-3.0-or-later', '', d)}"
+LICENSE:${PN}-src = "(MPL-1.1 | LGPL-2.1-only)${@bb.utils.contains('PACKAGECONFIG', 'trace', ' & GPL-3.0-or-later', '', d)}"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=e73e999e0c72b5ac9012424fa157ad77 \
+                    ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'file://util/cairo-trace/COPYING-GPL-3;md5=d32239bcb673463ab874e80d47fae504', '', d)}"
+
+
+DEPENDS = "fontconfig freetype glib-2.0 libpng pixman zlib"
+
+SRC_URI = "http://cairographics.org/releases/cairo-${PV}.tar.xz \
+           file://cairo-get_bitmap_surface-bsc1036789-CVE-2017-7475.diff \
+          "
+
+SRC_URI[sha256sum] = "243a0736b978a33dee29f9cca7521733b78a65b5418206fef7bd1c3d4cf10b64"
+
+inherit meson pkgconfig upstream-version-is-even gtk-doc multilib_script
+
+# if qemu usermode isn't available, this value needs to be set statically
+# (otherwise it's determinted by running a small target executable with qemu)
+do_write_config:append:class-target() {
+    cat >${WORKDIR}/cairo.cross <<EOF
+[properties]
+ipc_rmid_deferred_release = 'true'
+EOF
+}
+EXTRA_OEMESON:append:class-target = "${@' --cross-file ${WORKDIR}/cairo.cross' if d.getVar('EXEWRAPPER_ENABLED') == 'False' else ''}"
+
+GTKDOC_MESON_OPTION = "gtk_doc"
+
+MULTILIB_SCRIPTS = "${PN}-perf-utils:${bindir}/cairo-trace"
+
+PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xlib xcb', '', d)} trace"
+PACKAGECONFIG[xlib] = "-Dxlib=enabled,-Dxlib=disabled,virtual/libx11 libxrender libxext"
+PACKAGECONFIG[xcb] = "-Dxcb=enabled,-Dxcb=disabled,libxcb"
+# cairo-trace is GPLv3 so add an option to remove it
+PACKAGECONFIG[trace] = ""
+
+do_install:append () {
+    if ! ${@bb.utils.contains('PACKAGECONFIG', 'trace', 'true', 'false', d)}; then
+        rm ${D}${bindir}/cairo-trace ${D}${libdir}/cairo/libcairo-trace.so
+        rmdir --ignore-fail-on-non-empty ${D}${bindir} ${D}${libdir}/cairo
+    fi
+}
+
+PACKAGES =+ "cairo-gobject cairo-script-interpreter cairo-perf-utils"
+
+SUMMARY:cairo-gobject = "The Cairo library GObject wrapper library"
+DESCRIPTION:cairo-gobject = "A GObject wrapper library for the Cairo API."
+
+SUMMARY:cairo-script-interpreter = "The Cairo library script interpreter"
+DESCRIPTION:cairo-script-interpreter = "The Cairo script interpreter implements \
+CairoScript.  CairoScript is used by tracing utilities to enable the ability \
+to replay rendering."
+
+DESCRIPTION:cairo-perf-utils = "The Cairo library performance utilities"
+
+FILES:${PN} = "${libdir}/libcairo.so.*"
+FILES:${PN}-gobject = "${libdir}/libcairo-gobject.so.*"
+FILES:${PN}-script-interpreter = "${libdir}/libcairo-script-interpreter.so.*"
+FILES:${PN}-perf-utils = "${bindir}/cairo-* ${libdir}/cairo/libcairo-trace.so ${libdir}/cairo/libcairo-fdr.so"
+
+BBCLASSEXTEND = "native nativesdk"
+
+UPSTREAM_CHECK_REGEX = "cairo-(?P<pver>\d+(\.\d+)+).tar.xz"
diff --git a/poky/meta/recipes-graphics/kmscube/kmscube/0001-cube-gears-Change-header-file-to-GLES3-gl3.h.patch b/poky/meta/recipes-graphics/kmscube/kmscube/0001-cube-gears-Change-header-file-to-GLES3-gl3.h.patch
new file mode 100644
index 0000000..6843a66
--- /dev/null
+++ b/poky/meta/recipes-graphics/kmscube/kmscube/0001-cube-gears-Change-header-file-to-GLES3-gl3.h.patch
@@ -0,0 +1,33 @@
+From 0651c4edc9909832ff2acbbf170268f34e36616d Mon Sep 17 00:00:00 2001
+From: Fabio Estevam <festevam@gmail.com>
+Date: Mon, 8 Jan 2024 15:00:01 -0300
+Subject: [PATCH] cube-gears: Change header file to <GLES3/gl3.h>
+
+Since commit 96d63eb59e34 ("kmscube: Add gears mode"), kmscube fails
+to build on platforms without <GL/gl.h>.
+
+Fix it by changing the header file to <GLES3/gl3.h>.
+
+Reported-by: Martin Jansa <martin.jansa@gmail.com>
+Suggested-by: Martin Jansa <martin.jansa@gmail.com>
+Signed-off-by: Fabio Estevam <festevam@gmail.com>
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/kmscube/-/merge_requests/51]
+---
+ cube-gears.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/cube-gears.c b/cube-gears.c
+index d5b7a5f9cbef..cb538ecc4aee 100644
+--- a/cube-gears.c
++++ b/cube-gears.c
+@@ -31,7 +31,7 @@
+ #include <sys/time.h>
+ #include <math.h>
+
+-#include <GL/gl.h>
++#include <GLES3/gl3.h>
+
+ #include "common.h"
+ #include "esUtil.h"
+--
+2.34.1
diff --git a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
index aab5822..505acb0 100644
--- a/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
+++ b/poky/meta/recipes-graphics/kmscube/kmscube_git.bb
@@ -11,12 +11,17 @@
 LIC_FILES_CHKSUM = "file://kmscube.c;beginline=1;endline=23;md5=8b309d4ee67b7315ff7381270dd631fb"
 
 SRCREV = "96d63eb59e34c647cda1cbb489265f8c536ae055"
-SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https"
+SRC_URI = "git://gitlab.freedesktop.org/mesa/kmscube;branch=master;protocol=https \
+           file://0001-cube-gears-Change-header-file-to-GLES3-gl3.h.patch \
+           "
 
 UPSTREAM_CHECK_COMMITS = "1"
 
 S = "${WORKDIR}/git"
 
+BASEPV = "0.0.1"
+PV = "${BASEPV}+git"
+
 inherit meson pkgconfig features_check
 
 REQUIRED_DISTRO_FEATURES = "opengl"
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch b/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
index a555c5f..fadd6ee 100644
--- a/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
+++ b/poky/meta/recipes-graphics/mesa/files/0001-meson.build-check-for-all-linux-host_os-combinations.patch
@@ -1,4 +1,4 @@
-From b251af67df5a6840d2e9cc06edae2c387f8778f1 Mon Sep 17 00:00:00 2001
+From f2fe76d506f356de055b8eca83a7c9d0744a40af Mon Sep 17 00:00:00 2001
 From: Alistair Francis <alistair@alistair23.me>
 Date: Thu, 14 Nov 2019 13:04:49 -0800
 Subject: [PATCH] meson.build: check for all linux host_os combinations
@@ -20,7 +20,7 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/meson.build b/meson.build
-index 22385d8..15f48a6 100644
+index 35cc5f1..9a49c0d 100644
 --- a/meson.build
 +++ b/meson.build
 @@ -121,7 +121,7 @@ with_any_opengl = with_opengl or with_gles1 or with_gles2
@@ -32,7 +32,7 @@
  
  gallium_drivers = get_option('gallium-drivers')
  if gallium_drivers.contains('auto')
-@@ -909,7 +909,7 @@ if cc.has_function('fmemopen')
+@@ -956,7 +956,7 @@ if cc.has_function('fmemopen')
  endif
  
  # TODO: this is very incomplete
diff --git a/poky/meta/recipes-graphics/mesa/mesa-gl_23.3.1.bb b/poky/meta/recipes-graphics/mesa/mesa-gl_23.3.2.bb
similarity index 100%
rename from poky/meta/recipes-graphics/mesa/mesa-gl_23.3.1.bb
rename to poky/meta/recipes-graphics/mesa/mesa-gl_23.3.2.bb
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index 5f5c8ce..ddbebcc 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -20,7 +20,7 @@
            file://0001-gallium-Fix-build-with-llvm-17.patch \
 "
 
-SRC_URI[sha256sum] = "6e48126d70fdb3f20ffeb246ca0c2e41ffdc835f0663a03d4526b8bf5db41de6"
+SRC_URI[sha256sum] = "3cfcb81fa16f89c56abe3855d2637d396ee4e03849b659000a6b8e5f57e69adc"
 
 UPSTREAM_CHECK_GITTAGREGEX = "mesa-(?P<pver>\d+(\.\d+)+)"
 
diff --git a/poky/meta/recipes-graphics/mesa/mesa_23.3.1.bb b/poky/meta/recipes-graphics/mesa/mesa_23.3.2.bb
similarity index 100%
rename from poky/meta/recipes-graphics/mesa/mesa_23.3.1.bb
rename to poky/meta/recipes-graphics/mesa/mesa_23.3.2.bb
diff --git a/poky/meta/recipes-kernel/kmod/kmod/gtkdocdir.patch b/poky/meta/recipes-kernel/kmod/kmod/gtkdocdir.patch
new file mode 100644
index 0000000..a34ea46
--- /dev/null
+++ b/poky/meta/recipes-kernel/kmod/kmod/gtkdocdir.patch
@@ -0,0 +1,33 @@
+From dd59095f70f774f6d1e767010e25b35ef6db4c4b Mon Sep 17 00:00:00 2001
+From: Ross Burton <ross.burton@arm.com>
+Date: Fri, 8 Dec 2023 22:35:45 +0000
+Subject: [PATCH] configure: set docdir in GTK_DOC_CHECK
+
+By passing --docdir in the GTK_DOC_CHECK arguments (to match
+autogen.sh) autoreconf will work out of the box.
+
+Without this autoreconf fails due to the documentation not being in
+./docs, the default location.
+
+Upstream-Status: Submitted [https://lore.kernel.org/linux-modules/20231208224511.1363066-1-ross.burton@arm.com/T/#u]
+Signed-off-by: Ross Burton <ross.burton@arm.com>
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index de01e08..67696c4 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -255,7 +255,7 @@ AS_IF([test "x$enable_coverage" = "xyes"], [
+ AM_CONDITIONAL([ENABLE_COVERAGE], [test "x$enable_coverage" = "xyes"])
+ 
+ m4_ifdef([GTK_DOC_CHECK], [
+-GTK_DOC_CHECK([1.14],[--flavour no-tmpl-flat])
++GTK_DOC_CHECK([1.14],[--flavour no-tmpl-flat --docdir libkmod/docs])
+ ], [
+ AM_CONDITIONAL([ENABLE_GTK_DOC], false)])
+ 
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-kernel/kmod/kmod_31.bb b/poky/meta/recipes-kernel/kmod/kmod_31.bb
index c11ce45..6ae83a7 100644
--- a/poky/meta/recipes-kernel/kmod/kmod_31.bb
+++ b/poky/meta/recipes-kernel/kmod/kmod_31.bb
@@ -21,6 +21,7 @@
            file://depmod-search.conf \
            file://avoid_parallel_tests.patch \
            file://0001-Use-portable-implementation-for-basename-API.patch \
+           file://gtkdocdir.patch \
            "
 
 S = "${WORKDIR}/git"
@@ -36,8 +37,6 @@
 PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
 PACKAGECONFIG[zstd] = "--with-zstd,--without-zstd,zstd"
 
-GTKDOC_DOCDIR = "${S}/libkmod/docs"
-
 PROVIDES += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
 RPROVIDES:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
 RCONFLICTS:${PN} += "module-init-tools-insmod-static module-init-tools-depmod module-init-tools"
diff --git a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20231030.bb b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20231030.bb
index 6667f00..b1f5247 100644
--- a/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20231030.bb
+++ b/poky/meta/recipes-kernel/linux-firmware/linux-firmware_20231030.bb
@@ -1071,6 +1071,7 @@
   ${nonarch_base_libdir}/firmware/brcm/brcmfmac4373.bin \
   ${nonarch_base_libdir}/firmware/cypress/cyfmac4373-sdio.bin \
   ${nonarch_base_libdir}/firmware/brcm/brcmfmac4373-sdio.clm_blob \
+  ${nonarch_base_libdir}/firmware/cypress/cyfmac4373-sdio.clm_blob \
 "
 
 LICENSE:${PN}-bcm-0bb4-0306 = "Firmware-cypress"
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb
similarity index 98%
rename from poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.bb
rename to poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb
index 162eb41..aa59755 100644
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.bb
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_6.1.1.bb
@@ -24,7 +24,7 @@
 
 SRC_URI = "https://www.ffmpeg.org/releases/${BP}.tar.xz"
 
-SRC_URI[sha256sum] = "488c76e57dd9b3bee901f71d5c95eaf1db4a5a31fe46a28654e837144207c270"
+SRC_URI[sha256sum] = "8684f4b00f94b85461884c3719382f1261f0d9eb3d59640a1f4ac0873616f968"
 
 # https://nvd.nist.gov/vuln/detail/CVE-2023-39018
 # https://github.com/bramp/ffmpeg-cli-wrapper/issues/291
diff --git a/poky/meta/recipes-multimedia/speex/speexdsp_1.2.1.bb b/poky/meta/recipes-multimedia/speex/speexdsp_1.2.1.bb
index 1e6d09a..435b56b 100644
--- a/poky/meta/recipes-multimedia/speex/speexdsp_1.2.1.bb
+++ b/poky/meta/recipes-multimedia/speex/speexdsp_1.2.1.bb
@@ -24,3 +24,5 @@
 RCONFLICTS:${PN}-dbg = "speex-dbg (< 1.2rc2)"
 RCONFLICTS:${PN}-dev = "speex-dev (< 1.2rc2)"
 RCONFLICTS:${PN}-staticdev = "speex-staticdev (< 1.2rc2)"
+
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-sato/sato-icon-theme/icon-naming-utils_0.8.90.bb b/poky/meta/recipes-sato/sato-icon-theme/icon-naming-utils_0.8.90.bb
index 67cbd03..5502b66 100644
--- a/poky/meta/recipes-sato/sato-icon-theme/icon-naming-utils_0.8.90.bb
+++ b/poky/meta/recipes-sato/sato-icon-theme/icon-naming-utils_0.8.90.bb
@@ -14,7 +14,7 @@
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f"
 
-SRC_URI = "http://tango.freedesktop.org/releases/icon-naming-utils-${PV}.tar.gz"
+SRC_URI = "${DEBIAN_MIRROR}/main/i/icon-naming-utils/icon-naming-utils_${PV}.orig.tar.gz"
 SRC_URI[sha256sum] = "044ab2199ed8c6a55ce36fd4fcd8b8021a5e21f5bab028c0a7cdcf52a5902e1c"
 
 inherit autotools allarch perlnative
@@ -26,4 +26,4 @@
 
 FILES:${PN} += "${datadir}/dtds"
 
-BBCLASSEXTEND = "native"
\ No newline at end of file
+BBCLASSEXTEND = "native"
diff --git a/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.3.bb b/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.4.bb
similarity index 93%
rename from poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.3.bb
rename to poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.4.bb
index 9e0ccd5..4790134 100644
--- a/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.3.bb
+++ b/poky/meta/recipes-support/libcap-ng/libcap-ng-python_0.8.4.bb
@@ -11,7 +11,7 @@
 
 S = "${WORKDIR}/libcap-ng-${PV}"
 
-EXTRA_OECONF += "--with-python --with-python3"
+EXTRA_OECONF += "--with-python3"
 
 do_install:append() {
     rm -rf ${D}${bindir}
diff --git a/poky/meta/recipes-support/libcap-ng/libcap-ng.inc b/poky/meta/recipes-support/libcap-ng/libcap-ng.inc
index 55e3287..a6b5dcf 100644
--- a/poky/meta/recipes-support/libcap-ng/libcap-ng.inc
+++ b/poky/meta/recipes-support/libcap-ng/libcap-ng.inc
@@ -9,7 +9,7 @@
 
 SRC_URI = "https://people.redhat.com/sgrubb/libcap-ng/libcap-ng-${PV}.tar.gz"
 
-SRC_URI[sha256sum] = "bed6f6848e22bb2f83b5f764b2aef0ed393054e803a8e3a8711cb2a39e6b492d"
+SRC_URI[sha256sum] = "68581d3b38e7553cb6f6ddf7813b1fc99e52856f21421f7b477ce5abd2605a8a"
 
 EXTRA_OECONF:append:class-target = " --with-capability_header=${STAGING_INCDIR}/linux/capability.h"
 EXTRA_OECONF:append:class-nativesdk = " --with-capability_header=${STAGING_INCDIR}/linux/capability.h"
diff --git a/poky/meta/recipes-support/libcap-ng/libcap-ng_0.8.3.bb b/poky/meta/recipes-support/libcap-ng/libcap-ng_0.8.4.bb
similarity index 88%
rename from poky/meta/recipes-support/libcap-ng/libcap-ng_0.8.3.bb
rename to poky/meta/recipes-support/libcap-ng/libcap-ng_0.8.4.bb
index 6e16e88..3dbe3e2 100644
--- a/poky/meta/recipes-support/libcap-ng/libcap-ng_0.8.3.bb
+++ b/poky/meta/recipes-support/libcap-ng/libcap-ng_0.8.4.bb
@@ -2,7 +2,7 @@
 
 inherit lib_package autotools
 
-EXTRA_OECONF += "--without-python --without-python3"
+EXTRA_OECONF += "--without-python3"
 
 BBCLASSEXTEND = "native nativesdk"
 
diff --git a/poky/meta/recipes-support/libpcre/libpcre2_10.42.bb b/poky/meta/recipes-support/libpcre/libpcre2_10.42.bb
index cd65493..f471b3f 100644
--- a/poky/meta/recipes-support/libpcre/libpcre2_10.42.bb
+++ b/poky/meta/recipes-support/libpcre/libpcre2_10.42.bb
@@ -13,7 +13,7 @@
 SRC_URI = "${GITHUB_BASE_URI}/download/pcre2-${PV}/pcre2-${PV}.tar.bz2"
 
 GITHUB_BASE_URI = "https://github.com/PhilipHazel/pcre2/releases"
-UPSTREAM_CHECK_REGEX = "releases/tag/pcre2-(?P<pver>.+)"
+UPSTREAM_CHECK_REGEX = "releases/tag/pcre2-(?P<pver>\d+(\.\d+)+)$"
 
 SRC_URI[sha256sum] = "8d36cd8cb6ea2a4c2bb358ff6411b0c788633a2a45dabbf1aeb4b701d1b5e840"
 
diff --git a/poky/meta/recipes-support/libusb/libusb1_1.0.26.bb b/poky/meta/recipes-support/libusb/libusb1_1.0.26.bb
index 1b93a80..2af6fcd 100644
--- a/poky/meta/recipes-support/libusb/libusb1_1.0.26.bb
+++ b/poky/meta/recipes-support/libusb/libusb1_1.0.26.bb
@@ -16,7 +16,7 @@
           "
 
 GITHUB_BASE_URI = "https://github.com/libusb/libusb/releases"
-UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)"
+UPSTREAM_CHECK_REGEX = "releases/tag/v?(?P<pver>\d+(\.\d+)+)$"
 
 SRC_URI[sha256sum] = "12ce7a61fc9854d1d2a1ffe095f7b5fac19ddba095c259e6067a46500381b5a5"
 
diff --git a/poky/meta/recipes-support/rng-tools/rng-tools_6.16.bb b/poky/meta/recipes-support/rng-tools/rng-tools_6.16.bb
index d23d6be..f0aa3ff 100644
--- a/poky/meta/recipes-support/rng-tools/rng-tools_6.16.bb
+++ b/poky/meta/recipes-support/rng-tools/rng-tools_6.16.bb
@@ -4,7 +4,7 @@
 BUGTRACKER = "https://github.com/nhorman/rng-tools/issues"
 LICENSE = "GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"
-DEPENDS = "sysfsutils openssl libcap"
+DEPENDS = "openssl libcap"
 
 SRC_URI = "git://github.com/nhorman/rng-tools.git;branch=master;protocol=https \
            file://init \
diff --git a/poky/meta/recipes-support/taglib/taglib_1.13.1.bb b/poky/meta/recipes-support/taglib/taglib_1.13.1.bb
index 3f0a759..b26563a 100644
--- a/poky/meta/recipes-support/taglib/taglib_1.13.1.bb
+++ b/poky/meta/recipes-support/taglib/taglib_1.13.1.bb
@@ -14,6 +14,7 @@
 SRC_URI[sha256sum] = "c8da2b10f1bfec2cd7dbfcd33f4a2338db0765d851a50583d410bacf055cfd0b"
 
 UPSTREAM_CHECK_URI = "https://taglib.org/"
+UPSTREAM_CHECK_REGEX = "taglib-(?P<pver>\d+(\.\d+)+)\.tar"
 
 BINCONFIG = "${bindir}/taglib-config"
 
diff --git a/poky/scripts/lib/devtool/standard.py b/poky/scripts/lib/devtool/standard.py
index 559fd45..13612d6 100644
--- a/poky/scripts/lib/devtool/standard.py
+++ b/poky/scripts/lib/devtool/standard.py
@@ -772,7 +772,7 @@
 def get_staging_kbranch(srcdir):
     staging_kbranch = ""
     if os.path.exists(srcdir) and os.listdir(srcdir):
-        (branch, _) = bb.process.run('git branch | grep \* | cut -d \' \' -f2', cwd=srcdir)
+        (branch, _) = bb.process.run('git branch | grep \\* | cut -d \' \' -f2', cwd=srcdir)
         staging_kbranch = "".join(branch.split('\n')[0])
     return staging_kbranch
 
@@ -921,7 +921,7 @@
                     if line.startswith('*'):
                         (stdout, _) = bb.process.run('git rev-parse devtool-base', cwd=srctree)
                         initial_revs["."] = stdout.rstrip()
-                if not initial_revs["."]:
+                if "." not in initial_revs:
                     # Otherwise, just grab the head revision
                     (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree)
                     initial_revs["."] = stdout.rstrip()