subtree updates

meta-arm: 1dff3300fb..0b61cc659a:
  Ross Burton (1):
        meta-arm/selftest: add test that PAC/BTI instructions are used

meta-openembedded: 991e6852a5..5ad7203f68:
  Alexander Kanavin (1):
        fio: revert "fio: upgrade 3.32 -> 2022"

  BELOUARGA Mohamed (1):
        monocypher: add crypto library recipe

  Dylan Turner (1):
        apache2: v2.4.57 to v2.4.58 to fix CVE-2023-43622

  Hongxu Jia (1):
        freeradius: make sub packages to runtime depends on freeradius

  Kai Kang (1):
        libnma: remove conflict xml file

  Khem Raj (12):
        nlohmann-json: Fix SRCREV_FORMAT and do not package git metadata into ptests
        ptest-packagelists-meta-oe.inc: Move poco to slow tests
        sdbus-c++-libsystemd: Upgrade to 254
        sdbus-c++-tools: Upgrade to 1.4.0
        gstd: Fix systemd user unit packaging
        basu: Update to latest master
        sdbus-c++: Install ptests into PTEST_PATH
        liblognorm:Add asprintf to autoconf function check macro
        gnome-console,gnome-terminal: Depend on vte from core layer
        Revert "gnome-terminal: Remove recommendation on vte-prompt"
        vte9: Drop recipe
        basu: Update the SRCREV to get lld fix

  Luca Fancellu (1):
        linuxptp: Update downstream patches

  Markus Volk (9):
        libcacard: fix version string in libcacard.pc
        cups-filters: fix Makefile race condition
        system-config-printer: Add packageconfig for polkit
        pipewire: upgrade 0.3.85 > 1.0.0
        libcacard: set meson version based on PV
        spice: Set meson version based on PV
        spice-gtk: Set meson version based on PV
        libdecor: update 0.2.0 -> 0.2.1
        xdg-desktop-portal-gnome: upgrade 45.0 -> 45.1

  Naveen Saini (2):
        tbb: upgrade 2021.9.0 -> 2021.11.0
        tbb: enable NUMA/Hybrid CPU support

  Patrick Wicki (6):
        squid: update from v5.7 to v6.5
        squid: add nm dispatcher reload hook
        squid: add auth packageconfig
        squid: move configs to sub package
        squid: add url-rewrite-helpers packageconfig
        squid: add systemd service

  Patrick Williams (1):
        glog: Disable 64bit atomics on armv{5,6}

  Peter Kjellerstedt (1):
        redis: Inherit pkgconfig

  Ross Burton (1):
        python3-validators: add new recipe

  Wang Mingyu (26):
        ctags: upgrade 6.0.20231119.0 -> 6.0.20231126.0
        dnfdragora: upgrade 2.1.4 -> 2.1.5
        gensio: upgrade 2.7.7 -> 2.8.0
        frr: upgrade 9.0.1 -> 9.1
        capnproto: upgrade 1.0.1 -> 1.0.1.1
        libbpf: upgrade 1.2.2 -> 1.3.0
        paho-mqtt-cpp: upgrade 1.2.0 -> 1.3.1
        tomoyo-tools: upgrade 2.5.0 -> 2.6.1
        python3-aiohttp: upgrade 3.9.0 -> 3.9.1
        python3-bitstring: upgrade 4.1.2 -> 4.1.3
        python3-dbus-fast: upgrade 2.14.0 -> 2.15.0
        python3-humanize: upgrade 4.8.0 -> 4.9.0
        python3-ipython: upgrade 8.17.2 -> 8.18.0
        python3-mypy: upgrade 1.7.0 -> 1.7.1
        python3-pdm: upgrade 2.10.3 -> 2.10.4
        python3-pexpect: upgrade 4.8.0 -> 4.9.0
        python3-pychromecast: upgrade 13.0.7 -> 13.0.8
        python3-pydantic: upgrade 2.5.1 -> 2.5.2
        python3-pymisp: upgrade 2.4.178 -> 2.4.179
        python3-pytest-xdist: upgrade 3.4.0 -> 3.5.0
        python3-sentry-sdk: upgrade 1.35.0 -> 1.37.1
        python3-types-setuptools: upgrade 68.2.0.1 -> 68.2.0.2
        python3-virtualenv: upgrade 20.24.6 -> 20.24.7
        redis: upgrade 7.2.2 -> 7.2.3
        ser2net: upgrade 4.5.1 -> 4.6.0
        thingsboard-gateway: upgrade 3.4.2 -> 3.4.3.1

  alperak (12):
        squashfs-tools-ng: upgrade 1.1.4 -> 1.2.0
        tmate: Fix finding msgpack 6+
        msgpack-c: upgrade 4.0.0 -> 6.0.0
        msgpack-cpp: upgrade 4.1.1 -> 6.1.0
        brotli: upgrade 1.0.9 -> 1.1.0
        icewm: upgrade 2.9.9 -> 3.4.4
        iotop: upgrade 1.21 -> 1.25
        liblognorm: upgrade 1.0.1 -> 2.0.6
        libmodbus: upgrade 3.1.7 -> 3.1.10
        libpwquality: upgrade 1.4.4 -> 1.4.5
        libspiro: upgrade 20200505 -> 20221101
        gtkwave: upgrade 3.3.111 -> 3.3.117

poky: 2696bf8cf3..028b6f6226:
  Adrian Freihofer (1):
        cmake-qemu.bbclass: support qemu for cmake

  Alassane Yattara (9):
        bitbake: toaster/tests: Update methods wait_until_~ to skip using time.sleep
        bitbake: toaster/tests: Override table edit columns TestCase from image recipe page
        bitbake: toaster/tests: Test software recipe page
        bitbake: toaster/tests: Added Machine page TestCase
        bitbake: toaster/tests: Added Layers page TestCase
        bitbake: toaster/tests: Added distro page TestCase
        bitbake: toaster/tests: Bug-fix on tests/functional/test_project_page
        bitbake: toaster/tests: Test single layer page
        bitbake: toaster/tests: Test single recipe page

  Alex Kiernan (4):
        rust: Delete python2 configparser code path
        rust: Drop TARGET_VENDOR export
        eudev: Upgrade 3.2.12 -> 3.2.14
        rust: Drop targets and hosts override magic

  Alexander Kanavin (15):
        python3-pyproject-hooks: fix upstream version check
        cmake: upgrade 3.27.5 -> 3.27.7
        desktop-file-utils: upgrade 0.26 -> 0.27
        erofs-utils: upgrade 1.6 -> 1.7.1
        webkitgtk: update 2.40.5 -> 2.42.2
        epiphany: upgrade 44.6 -> 45.1
        virglrenderer: upgrade 0.10.4 -> 1.0.0
        libxkbcommon: upgrade 1.5.0 -> 1.6.0
        mpg123: upgrade 1.31.3 -> 1.32.3
        icu: upgrade 73-2 -> 74-1
        p11-kit: upgrade 0.25.0 -> 0.25.2
        glib-2.0: install gio-querymodules into bindir as well as libexecdir for native
        meson: update 1.2.2 -> 1.3.0
        repo: update 2.37 -> 2.39
        rt-tests: update 2.5 -> 2.6

  Bruce Ashfield (1):
        lttng-modules: fix build for v6.7+

  Changhyeok Bae (1):
        iptables: upgrade 1.8.9 -> 1.8.10

  Charlie Johnston (2):
        bitbake.conf: Add gsutil as hosttool for gcp fetcher.
        bitbake: fetch2: Ensure GCP fetcher checks if file exists before download.

  Jan Vermaete (1):
        systemd: fixed typo

  Joao Marcos Costa (1):
        documentation.conf: fix do_menuconfig description

  Joshua Watt (2):
        bitbake: bitbake-hashclient: Add commands to get hashes
        bitbake: hashserv: sqlite: Ensure sync propagates to database connections

  Julien Stephan (6):
        devtool: fix update-recipe dry-run mode
        lib/oe/recipeutils.py: remove trailing white-spaces
        devtool: finish/update-recipe: restrict mode srcrev to recipes fetched from SCM
        devtool: tag all submodules
        devtool: add support for git submodules
        oeqa/selftest/devtool: add test for git submodules

  Justin Bronder (1):
        contributor-guide: add License-Update tag

  Kareem Zarka (2):
        wic: bootimg-efi: Make kernel image installation configurable
        oeqa/selftest/wic: Add tests for kernel image installation

  Khem Raj (8):
        shared-mime-info: Fix build with clang-17+
        libsoup-2.4: Fix build with clang-17 and libxml2-2.12
        busybox: Enable utmp support on musl systems
        virglrenderer: Fix build with clang
        llvm: Upgrade to 17.0.6
        rust-common.bbclass: Define rust arch for x32 platforms
        vte: Upgrade to 0.74.1
        vte: Separate out gtk4 pieces of vte into individual packages

  Lee Chee Yang (3):
        wic: add test for partition hidden attributes
        migration-guides: add release notes for 4.3.1
        openssl: upgrade to 3.2.0

  Malte Schmidt (1):
        wic: rawcopy: add support for zstd decompression

  Marco Felsch (1):
        json-c: fix icecc compilation

  Markus Volk (3):
        bluez5: fix connection for ps5/dualshock controllers
        cups: Add root,sys,wheel to system groups
        vte: upgrade 0.72.2 -> 0.74.0

  Martin Hundeb?ll (1):
        libpam: split /etc/environment into pam-plugin-env package

  Matsunaga-Shinji (1):
        cve-check: Modify judgment processing using "=" in version comparison

  Michael Opdenacker (4):
        systemd-compat-units.bb: fix postinstall script
        dev-manual: layers: update link to YP Compatible form
        contributor-guide: fix command option
        migration-guides: release 3.5 is actually 4.0

  Niko Mauno (1):
        rust-llvm: Allow overriding LLVM target archs

  Patrick Williams (1):
        shared-mime-info-native: handle old GCC for AlmaLinux8

  Peter Marko (2):
        cve-update-nvd2-native: remove unused variable CVE_SOCKET_TIMEOUT
        cve-update-nvd2-native: make number of fetch attemtps configurable

  Richard Haar (1):
        bitbake: bitbake: tests: Fix duplicate test_underscore_override test

  Richard Purdie (2):
        bitbake: ui/ncurses: Add missing function call to avoid traceback
        bitbake: cooker: Avoid eventlog variable listing lockups

  Robert Yang (2):
        gnu-config: Update to latest revision
        gettext: Upgrade 0.22 -> 0.22.3

  Ross Burton (3):
        core-image-minimal-initramfs: don't install a kernel into the initramfs
        autoconf: upgrade to 2.72d
        Revert "cve-check: Modify judgment processing using "=" in version comparison"

  Sundeep KOKKONDA (3):
        rust: Split rustdoc into a separate package
        glibc: stable 2.38 branch updates
        binutils: stable 2.41 branch updates

  Tim Orling (8):
        python3-sphinxcontrib-applehelp: 1.0.4 -> 1.0.7
        python3-sphinxcontrib-devhelp: 1.0.2 -> 1.0.5
        python3-sphinxcontrib-htmlhelp: 2.0.1 -> 2.0.4
        python3-sphinxcontrib-qthelp: 1.0.3 -> 1.0.6
        python3-sphinxcontrib-serializinghtml: 1.1.5 -> 1.1.9
        vim: upgrade 9.0.2068 -> 9.0.2130
        python3-cryptography-vectors: add RECIPE_NO_UPDATE_REASON
        python3-cryptography{-vectors}: 41.0.5 -> 41.0.7

  Trevor Gamblin (2):
        python3-ptest: skip test_storlines
        patchtest: shorten patch signed-off-by test output

  Viswanath Kraleti (1):
        systemd-boot: Fix build issues on armv7a-linux

  Wang Mingyu (27):
        bind: upgrade 9.18.19 -> 9.18.20
        diffoscope: upgrade 251 -> 252
        ell: upgrade 0.59 -> 0.60
        git: upgrade 2.42.1 -> 2.43.0
        gnutls: upgrade 3.8.1 -> 3.8.2
        libdrm: upgrade 2.4.117 -> 2.4.118
        libgcrypt: upgrade 1.10.2 -> 1.10.3
        libksba: upgrade 1.6.4 -> 1.6.5
        libxslt: upgrade 1.1.38 -> 1.1.39
        log4cplus: upgrade 2.1.0 -> 2.1.1
        python3-certifi: upgrade 2023.7.22 -> 2023.11.17
        python3-setuptools: upgrade 68.2.2 -> 69.0.2
        python3-wcwidth: upgrade 0.2.9 -> 0.2.11
        python3-hypothesis: upgrade 6.89.0 -> 6.90.0
        python3-pyasn1: upgrade 0.5.0 -> 0.5.1
        python3-scons: upgrade 4.5.2 -> 4.6.0
        python3-urllib3: upgrade 2.0.7 -> 2.1.0
        ethtool: upgrade 6.5 -> 6.6
        gi-docgen: upgrade 2023.1 -> 2023.3
        init-system-helpers: upgrade 1.65.2 -> 1.66
        libsolv: upgrade 0.7.26 -> 0.7.27
        python3-idna: upgrade 3.4 -> 3.6
        ofono: upgrade 2.1 -> 2.2
        python3-sphinx-rtd-theme: upgrade 1.3.0 -> 2.0.0
        python3-trove-classifiers: upgrade 2023.11.14 -> 2023.11.22
        python3-wheel: upgrade 0.41.3 -> 0.42.0
        resolvconf: upgrade 1.91 -> 1.92

  Xiangyu Chen (2):
        shadow: Fix for CVE-2023-4641
        bash: changes to SIGINT handler while waiting for a child

  Zahir Hussain (1):
        cmake: Unset CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES

meta-raspberrypi: 8231f97534..fde68b24f0:
  Lorenzo Arena (1):
        docs: fix syntax for overriding fs type for initramfs image
Change-Id: Idc6f6b1e913442bae03dfec9f207924c56f31056
Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
diff --git a/poky/bitbake/bin/bitbake-hashclient b/poky/bitbake/bin/bitbake-hashclient
index 3ff7b76..2cb6338 100755
--- a/poky/bitbake/bin/bitbake-hashclient
+++ b/poky/bitbake/bin/bitbake-hashclient
@@ -52,6 +52,22 @@
 
 
 def main():
+    def handle_get(args, client):
+        result = client.get_taskhash(args.method, args.taskhash, all_properties=True)
+        if not result:
+            return 0
+
+        print(json.dumps(result, sort_keys=True, indent=4))
+        return 0
+
+    def handle_get_outhash(args, client):
+        result = client.get_outhash(args.method, args.outhash, args.taskhash)
+        if not result:
+            return 0
+
+        print(json.dumps(result, sort_keys=True, indent=4))
+        return 0
+
     def handle_stats(args, client):
         if args.reset:
             s = client.reset_stats()
@@ -189,6 +205,17 @@
 
     subparsers = parser.add_subparsers()
 
+    get_parser = subparsers.add_parser('get', help="Get the unihash for a taskhash")
+    get_parser.add_argument("method", help="Method to query")
+    get_parser.add_argument("taskhash", help="Task hash to query")
+    get_parser.set_defaults(func=handle_get)
+
+    get_outhash_parser = subparsers.add_parser('get-outhash', help="Get output hash information")
+    get_outhash_parser.add_argument("method", help="Method to query")
+    get_outhash_parser.add_argument("outhash", help="Output hash to query")
+    get_outhash_parser.add_argument("taskhash", help="Task hash to query")
+    get_outhash_parser.set_defaults(func=handle_get_outhash)
+
     stats_parser = subparsers.add_parser('stats', help='Show server stats')
     stats_parser.add_argument('--reset', action='store_true',
                               help='Reset server stats')
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index d658db9..c5bfef5 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -102,12 +102,15 @@
 
 class EventWriter:
     def __init__(self, cooker, eventfile):
-        self.file_inited = None
         self.cooker = cooker
         self.eventfile = eventfile
         self.event_queue = []
 
-    def write_event(self, event):
+    def write_variables(self):
+        with open(self.eventfile, "a") as f:
+            f.write("%s\n" % json.dumps({ "allvariables" : self.cooker.getAllKeysWithFlags(["doc", "func"])}))
+
+    def send(self, event):
         with open(self.eventfile, "a") as f:
             try:
                 str_event = codecs.encode(pickle.dumps(event), 'base64').decode('utf-8')
@@ -117,28 +120,6 @@
                 import traceback
                 print(err, traceback.format_exc())
 
-    def send(self, event):
-        if self.file_inited:
-            # we have the file, just write the event
-            self.write_event(event)
-        else:
-            # init on bb.event.BuildStarted
-            name = "%s.%s" % (event.__module__, event.__class__.__name__)
-            if name in ("bb.event.BuildStarted", "bb.cooker.CookerExit"):
-                with open(self.eventfile, "w") as f:
-                    f.write("%s\n" % json.dumps({ "allvariables" : self.cooker.getAllKeysWithFlags(["doc", "func"])}))
-
-                self.file_inited = True
-
-                # write pending events
-                for evt in self.event_queue:
-                    self.write_event(evt)
-
-                # also write the current event
-                self.write_event(event)
-            else:
-                # queue all events until the file is inited
-                self.event_queue.append(event)
 
 #============================================================================#
 # BBCooker
@@ -416,6 +397,7 @@
     def setupEventLog(self, eventlog):
         if self.eventlog and self.eventlog[0] != eventlog:
             bb.event.unregister_UIHhandler(self.eventlog[1])
+            self.eventlog = None
         if not self.eventlog or self.eventlog[0] != eventlog:
             # we log all events to a file if so directed
             # register the log file writer as UI Handler
@@ -423,7 +405,7 @@
                 bb.utils.mkdirhier(os.path.dirname(eventlog))
             writer = EventWriter(self, eventlog)
             EventLogWriteHandler = namedtuple('EventLogWriteHandler', ['event'])
-            self.eventlog = (eventlog, bb.event.register_UIHhandler(EventLogWriteHandler(writer)))
+            self.eventlog = (eventlog, bb.event.register_UIHhandler(EventLogWriteHandler(writer)), writer)
 
     def updateConfigOpts(self, options, environment, cmdline):
         self.ui_cmdline = cmdline
@@ -1404,6 +1386,8 @@
         buildname = self.databuilder.mcdata[mc].getVar("BUILDNAME")
         if fireevents:
             bb.event.fire(bb.event.BuildStarted(buildname, [item]), self.databuilder.mcdata[mc])
+            if self.eventlog:
+                self.eventlog[2].write_variables()
             bb.event.enable_heartbeat()
 
         # Execute the runqueue
@@ -1547,6 +1531,8 @@
 
         for mc in self.multiconfigs:
             bb.event.fire(bb.event.BuildStarted(buildname, ntargets), self.databuilder.mcdata[mc])
+        if self.eventlog:
+            self.eventlog[2].write_variables()
         bb.event.enable_heartbeat()
 
         rq = bb.runqueue.RunQueue(self, self.data, self.recipecaches, taskdata, runlist)
diff --git a/poky/bitbake/lib/bb/fetch2/gcp.py b/poky/bitbake/lib/bb/fetch2/gcp.py
index f42c81f..f40ce2e 100644
--- a/poky/bitbake/lib/bb/fetch2/gcp.py
+++ b/poky/bitbake/lib/bb/fetch2/gcp.py
@@ -47,6 +47,7 @@
             ud.basename = os.path.basename(ud.path)
 
         ud.localfile = d.expand(urllib.parse.unquote(ud.basename))
+        ud.basecmd = "gsutil stat"
 
     def get_gcp_client(self):
         from google.cloud import storage
@@ -61,7 +62,8 @@
         if self.gcp_client is None:
             self.get_gcp_client()
 
-        bb.fetch2.check_network_access(d, "gsutil stat", ud.url)
+        bb.fetch2.check_network_access(d, ud.basecmd, f"gs://{ud.host}{ud.path}")
+        runfetchcmd("%s %s" % (ud.basecmd, f"gs://{ud.host}{ud.path}"), d)
 
         # Path sometimes has leading slash, so strip it
         path = ud.path.lstrip("/")
@@ -88,7 +90,8 @@
         if self.gcp_client is None:
             self.get_gcp_client()
 
-        bb.fetch2.check_network_access(d, "gsutil stat", ud.url)
+        bb.fetch2.check_network_access(d, ud.basecmd, f"gs://{ud.host}{ud.path}")
+        runfetchcmd("%s %s" % (ud.basecmd, f"gs://{ud.host}{ud.path}"), d)
 
         # Path sometimes has leading slash, so strip it
         path = ud.path.lstrip("/")
diff --git a/poky/bitbake/lib/bb/tests/data.py b/poky/bitbake/lib/bb/tests/data.py
index 98e430c..cbc7c1e 100644
--- a/poky/bitbake/lib/bb/tests/data.py
+++ b/poky/bitbake/lib/bb/tests/data.py
@@ -395,6 +395,16 @@
         self.d.setVar("OVERRIDES", "foo:bar:some_val")
         self.assertEqual(self.d.getVar("TEST"), "testvalue3")
 
+    # Test an override with _<numeric> in it based on a real world OE issue
+    def test_underscore_override_2(self):
+        self.d.setVar("TARGET_ARCH", "x86_64")
+        self.d.setVar("PN", "test-${TARGET_ARCH}")
+        self.d.setVar("VERSION", "1")
+        self.d.setVar("VERSION:pn-test-${TARGET_ARCH}", "2")
+        self.d.setVar("OVERRIDES", "pn-${PN}")
+        bb.data.expandKeys(self.d)
+        self.assertEqual(self.d.getVar("VERSION"), "2")
+
     def test_remove_with_override(self):
         self.d.setVar("TEST:bar", "testvalue2")
         self.d.setVar("TEST:some_val", "testvalue3 testvalue5")
@@ -416,16 +426,6 @@
         self.d.setVar("TEST:bar:append", "testvalue2")
         self.assertEqual(self.d.getVar("TEST"), "testvalue2")
 
-    # Test an override with _<numeric> in it based on a real world OE issue
-    def test_underscore_override(self):
-        self.d.setVar("TARGET_ARCH", "x86_64")
-        self.d.setVar("PN", "test-${TARGET_ARCH}")
-        self.d.setVar("VERSION", "1")
-        self.d.setVar("VERSION:pn-test-${TARGET_ARCH}", "2")
-        self.d.setVar("OVERRIDES", "pn-${PN}")
-        bb.data.expandKeys(self.d)
-        self.assertEqual(self.d.getVar("VERSION"), "2")
-
     def test_append_and_unused_override(self):
         # Had a bug where an unused override append could return "" instead of None
         self.d.setVar("BAR:append:unusedoverride", "testvalue2")
diff --git a/poky/bitbake/lib/bb/ui/ncurses.py b/poky/bitbake/lib/bb/ui/ncurses.py
index cf1c876..18a7065 100644
--- a/poky/bitbake/lib/bb/ui/ncurses.py
+++ b/poky/bitbake/lib/bb/ui/ncurses.py
@@ -227,6 +227,9 @@
         shutdown = 0
 
         try:
+            if not params.observe_only:
+                params.updateToServer(server, os.environ.copy())
+
             params.updateFromServer(server)
             cmdline = params.parseActions()
             if not cmdline:
diff --git a/poky/bitbake/lib/hashserv/sqlite.py b/poky/bitbake/lib/hashserv/sqlite.py
index f65036b..f93cb2c 100644
--- a/poky/bitbake/lib/hashserv/sqlite.py
+++ b/poky/bitbake/lib/hashserv/sqlite.py
@@ -109,11 +109,11 @@
             )
 
     def connect(self, logger):
-        return Database(logger, self.dbname)
+        return Database(logger, self.dbname, self.sync)
 
 
 class Database(object):
-    def __init__(self, logger, dbname, sync=True):
+    def __init__(self, logger, dbname, sync):
         self.dbname = dbname
         self.logger = logger
 
@@ -121,6 +121,11 @@
         self.db.row_factory = sqlite3.Row
 
         with closing(self.db.cursor()) as cursor:
+            cursor.execute("PRAGMA journal_mode = WAL")
+            cursor.execute(
+                "PRAGMA synchronous = %s" % ("NORMAL" if sync else "OFF")
+            )
+
             cursor.execute("SELECT sqlite_version()")
 
             version = []
diff --git a/poky/bitbake/lib/hashserv/tests.py b/poky/bitbake/lib/hashserv/tests.py
index a9e6fdf..869f763 100644
--- a/poky/bitbake/lib/hashserv/tests.py
+++ b/poky/bitbake/lib/hashserv/tests.py
@@ -842,6 +842,26 @@
     def get_server_addr(self, server_idx):
         return "unix://" + os.path.join(self.temp_dir.name, 'sock%d' % server_idx)
 
+    def test_get(self):
+        taskhash, outhash, unihash = self.create_test_hash(self.client)
+
+        p = self.run_hashclient(["--address", self.server_address, "get", self.METHOD, taskhash])
+        data = json.loads(p.stdout)
+        self.assertEqual(data["unihash"], unihash)
+        self.assertEqual(data["outhash"], outhash)
+        self.assertEqual(data["taskhash"], taskhash)
+        self.assertEqual(data["method"], self.METHOD)
+
+    def test_get_outhash(self):
+        taskhash, outhash, unihash = self.create_test_hash(self.client)
+
+        p = self.run_hashclient(["--address", self.server_address, "get-outhash", self.METHOD, outhash, taskhash])
+        data = json.loads(p.stdout)
+        self.assertEqual(data["unihash"], unihash)
+        self.assertEqual(data["outhash"], outhash)
+        self.assertEqual(data["taskhash"], taskhash)
+        self.assertEqual(data["method"], self.METHOD)
+
     def test_stats(self):
         p = self.run_hashclient(["--address", self.server_address, "stats"], check=True)
         json.loads(p.stdout)
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 e0ac437..d9ea7fd 100644
--- a/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py
+++ b/poky/bitbake/lib/toaster/tests/browser/selenium_helpers_base.py
@@ -71,7 +71,9 @@
     _TIMEOUT = 10
     _POLL_FREQUENCY = 0.5
 
-    def __init__(self, driver):
+    def __init__(self, driver, timeout=_TIMEOUT, poll=_POLL_FREQUENCY):
+        self._TIMEOUT = timeout
+        self._POLL_FREQUENCY = poll
         super(Wait, self).__init__(driver, self._TIMEOUT, self._POLL_FREQUENCY)
 
     def until(self, method, message=''):
@@ -175,18 +177,19 @@
         """ Return the element which currently has focus on the page """
         return self.driver.switch_to.active_element
 
-    def wait_until_present(self, selector):
+    def wait_until_present(self, selector, poll=0.5):
         """ Wait until element matching CSS selector is on the page """
         is_present = lambda driver: self.find(selector)
         msg = 'An element matching "%s" should be on the page' % selector
-        element = Wait(self.driver).until(is_present, msg)
+        element = Wait(self.driver, poll=poll).until(is_present, msg)
         return element
 
-    def wait_until_visible(self, selector):
+    def wait_until_visible(self, selector, poll=1):
         """ Wait until element matching CSS selector is visible on the page """
         is_visible = lambda driver: self.find(selector).is_displayed()
         msg = 'An element matching "%s" should be visible' % selector
-        Wait(self.driver).until(is_visible, msg)
+        Wait(self.driver, poll=poll).until(is_visible, msg)
+        time.sleep(poll)  # wait for visibility to settle
         return self.find(selector)
 
     def wait_until_focused(self, selector):
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 3edf967..03f64f8 100644
--- a/poky/bitbake/lib/toaster/tests/functional/test_project_page.py
+++ b/poky/bitbake/lib/toaster/tests/functional/test_project_page.py
@@ -6,10 +6,17 @@
 # SPDX-License-Identifier: GPL-2.0-only
 #
 
+import random
+import string
 import pytest
+from time import sleep
 from django.urls import reverse
+from django.utils import timezone
+from selenium.webdriver.common.keys import Keys
 from selenium.webdriver.support.select import Select
+from selenium.common.exceptions import NoSuchElementException, TimeoutException
 from tests.functional.functional_helpers import SeleniumFunctionalTestCase
+from orm.models import Build, Project, Target
 from selenium.webdriver.common.by import By
 
 
@@ -19,13 +26,18 @@
     def setUp(self):
         super().setUp()
         release = '3'
-        project_name = 'projectmaster'
+        project_name = 'project_' + self.generate_random_string()
         self._create_test_new_project(
             project_name,
             release,
             False,
         )
 
+    def generate_random_string(self, length=10):
+        characters = string.ascii_letters + string.digits  # alphabetic and numerical characters
+        random_string = ''.join(random.choice(characters) for _ in range(length))
+        return random_string
+
     def _create_test_new_project(
         self,
         project_name,
@@ -55,6 +67,205 @@
 
         self.driver.find_element(By.ID, "create-project-button").click()
 
+    def _get_create_builds(self, **kwargs):
+        """ Create a build and return the build object """
+        # parameters for builds to associate with the projects
+        now = timezone.now()
+        release = '3'
+        project_name = 'projectmaster'
+        self._create_test_new_project(
+            project_name+"2",
+            release,
+            False,
+        )
+
+        self.project1_build_success = {
+            'project': Project.objects.get(id=1),
+            'started_on': now,
+            'completed_on': now,
+            'outcome': Build.SUCCEEDED
+        }
+
+        self.project1_build_failure = {
+            'project': Project.objects.get(id=1),
+            'started_on': now,
+            'completed_on': now,
+            'outcome': Build.FAILED
+        }
+        build1 = Build.objects.create(**self.project1_build_success)
+        build2 = Build.objects.create(**self.project1_build_failure)
+
+        # add some targets to these builds so they have recipe links
+        # (and so we can find the row in the ToasterTable corresponding to
+        # a particular build)
+        Target.objects.create(build=build1, target='foo')
+        Target.objects.create(build=build2, target='bar')
+
+        if kwargs:
+            # Create kwargs.get('success') builds with success status with target
+            # and kwargs.get('failure') builds with failure status with target
+            for i in range(kwargs.get('success', 0)):
+                now = timezone.now()
+                self.project1_build_success['started_on'] = now
+                self.project1_build_success[
+                    'completed_on'] = now - timezone.timedelta(days=i)
+                build = Build.objects.create(**self.project1_build_success)
+                Target.objects.create(build=build,
+                                      target=f'{i}_success_recipe',
+                                      task=f'{i}_success_task')
+
+            for i in range(kwargs.get('failure', 0)):
+                now = timezone.now()
+                self.project1_build_failure['started_on'] = now
+                self.project1_build_failure[
+                    'completed_on'] = now - timezone.timedelta(days=i)
+                build = Build.objects.create(**self.project1_build_failure)
+                Target.objects.create(build=build,
+                                      target=f'{i}_fail_recipe',
+                                      task=f'{i}_fail_task')
+        return build1, build2
+
+    def _mixin_test_table_edit_column(
+            self,
+            table_id,
+            edit_btn_id,
+            list_check_box_id: list
+    ):
+        # Check edit column
+        edit_column = self.find(f'#{edit_btn_id}')
+        self.assertTrue(edit_column.is_displayed())
+        edit_column.click()
+        # Check dropdown is visible
+        self.wait_until_visible('ul.dropdown-menu.editcol')
+        for check_box_id in list_check_box_id:
+            # Check that we can hide/show table column
+            check_box = self.find(f'#{check_box_id}')
+            th_class = str(check_box_id).replace('checkbox-', '')
+            if check_box.is_selected():
+                # check if column is visible in table
+                self.assertTrue(
+                    self.find(
+                        f'#{table_id} thead th.{th_class}'
+                    ).is_displayed(),
+                    f"The {th_class} column is checked in EditColumn dropdown, but it's not visible in table"
+                )
+                check_box.click()
+                # check if column is hidden in table
+                self.assertFalse(
+                    self.find(
+                        f'#{table_id} thead th.{th_class}'
+                    ).is_displayed(),
+                    f"The {th_class} column is unchecked in EditColumn dropdown, but it's visible in table"
+                )
+            else:
+                # check if column is hidden in table
+                self.assertFalse(
+                    self.find(
+                        f'#{table_id} thead th.{th_class}'
+                    ).is_displayed(),
+                    f"The {th_class} column is unchecked in EditColumn dropdown, but it's visible in table"
+                )
+                check_box.click()
+                # check if column is visible in table
+                self.assertTrue(
+                    self.find(
+                        f'#{table_id} thead th.{th_class}'
+                    ).is_displayed(),
+                    f"The {th_class} column is checked in EditColumn dropdown, but it's not visible in table"
+                )
+
+    def _get_config_nav_item(self, index):
+        config_nav = self.find('#config-nav')
+        return config_nav.find_elements(By.TAG_NAME, 'li')[index]
+
+    def _navigate_to_config_nav(self, nav_id, nav_index):
+        # navigate to the project page
+        url = reverse("project", args=(1,))
+        self.get(url)
+        self.wait_until_visible('#config-nav')
+        # click on "Software recipe" tab
+        soft_recipe = self._get_config_nav_item(nav_index)
+        soft_recipe.click()
+        self.wait_until_visible(f'#{nav_id}')
+
+    def _mixin_test_table_show_rows(self, table_selector, **kwargs):
+        """ Test the show rows feature in the builds table on the all builds page """
+        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.assertTrue(
+                len(self.find_all(f'#{table_selector} tbody tr')) == row_to_show
+            )
+        self.wait_until_present(f'#{table_selector} tbody tr')
+        show_rows = self.driver.find_elements(
+            By.XPATH,
+            f'//select[@class="form-control pagesize-{table_selector}"]'
+        )
+        rows_to_show = [10, 25, 50, 100, 150]
+        to_skip = kwargs.get('to_skip', [])
+        # Check show rows
+        for show_row_link in show_rows:
+            show_row_link = Select(show_row_link)
+            for row_to_show in rows_to_show:
+                if row_to_show not in to_skip:
+                    test_show_rows(row_to_show, show_row_link)
+
+    def _wait_until_build(self, state):
+        timeout = 10
+        start_time = 0
+        while True:
+            if start_time > timeout:
+                raise TimeoutException(
+                    f'Build did not reach {state} state within {timeout} seconds'
+                )
+            try:
+                last_build_state = self.driver.find_element(
+                    By.XPATH,
+                    '//*[@id="latest-builds"]/div[1]//div[@class="build-state"]',
+                )
+                build_state = last_build_state.get_attribute(
+                    'data-build-state')
+                state_text = state.lower().split()
+                if any(x in str(build_state).lower() for x in state_text):
+                    break
+            except NoSuchElementException:
+                continue
+            start_time += 1
+            sleep(1) # take a breath and try again
+
+    def _mixin_test_table_search_input(self, **kwargs):
+        input_selector, input_text, searchBtn_selector, table_selector, *_ = kwargs.values()
+        # Test search input
+        self.wait_until_visible(f'#{input_selector}')
+        recipe_input = self.find(f'#{input_selector}')
+        recipe_input.send_keys(input_text)
+        self.find(f'#{searchBtn_selector}').click()
+        self.wait_until_visible(f'#{table_selector} tbody tr')
+        rows = self.find_all(f'#{table_selector} tbody tr')
+        self.assertTrue(len(rows) > 0)
+
+    def test_image_recipe_editColumn(self):
+        """ Test the edit column feature in image recipe table on project page """
+        self._get_create_builds(success=10, failure=10)
+
+        url = reverse('projectimagerecipes', args=(1,))
+        self.get(url)
+        self.wait_until_present('#imagerecipestable tbody tr')
+
+        column_list = [
+            'get_description_or_summary', 'layer_version__get_vcs_reference',
+            'layer_version__layer__name', 'license', 'recipe-file', 'section',
+            'version'
+        ]
+
+        # Check that we can hide the edit column
+        self._mixin_test_table_edit_column(
+            'imagerecipestable',
+            'edit-columns-button',
+            [f'checkbox-{column}' for column in column_list]
+        )
+
     def test_page_header_on_project_page(self):
         """ Check page header in project page:
           - AT LEFT -> Logo of Yocto project, displayed, clickable
@@ -184,11 +395,9 @@
         self.wait_until_visible('#topbar-configuration-tab')
         config_tab = self.find('#topbar-configuration-tab')
         self.assertTrue(config_tab.get_attribute('class') == 'active')
-        self.assertTrue('Configuration' in config_tab.text)
-        config_tab_link = config_tab.find_element(By.TAG_NAME, 'a')
+        self.assertTrue('Configuration' in str(config_tab.text))
         self.assertTrue(
-            f"/toastergui/project/1" in str(config_tab_link.get_attribute(
-                'href'))
+            f"/toastergui/project/1" in str(self.driver.current_url)
         )
 
         def get_tabs():
@@ -245,3 +454,337 @@
         self.assertTrue(
             'core-image-minimal' in str(last_build.text)
         )
+
+    def test_softwareRecipe_page(self):
+        """ Test software recipe page
+            - Check title "Compatible software recipes" is displayed
+            - Check search input
+            - Check "build recipe" button works
+            - Check software recipe table feature(show/hide column, pagination)
+        """
+        self._navigate_to_config_nav('softwarerecipestable', 4)
+        # check title "Compatible software recipes" is displayed
+        self.assertTrue("Compatible software recipes" in self.get_page_source())
+        # Test search input
+        self._mixin_test_table_search_input(
+            input_selector='search-input-softwarerecipestable',
+            input_text='busybox',
+            searchBtn_selector='search-submit-softwarerecipestable',
+            table_selector='softwarerecipestable'
+        )
+        # check "build recipe" button works
+        rows = self.find_all('#softwarerecipestable tbody tr')
+        image_to_build = rows[0]
+        build_btn = image_to_build.find_element(
+            By.XPATH,
+            '//td[@class="add-del-layers"]//a[1]'
+        )
+        build_btn.click()
+        self._wait_until_build('parsing starting cloning queued')
+        lastest_builds = self.driver.find_elements(
+            By.XPATH,
+            '//div[@id="latest-builds"]/div'
+        )
+        self.assertTrue(len(lastest_builds) > 0)
+
+        # check software recipe table feature(show/hide column, pagination)
+        self._navigate_to_config_nav('softwarerecipestable', 4)
+        column_list = [
+            'get_description_or_summary',
+            'layer_version__get_vcs_reference',
+            'layer_version__layer__name',
+            'license',
+            'recipe-file',
+            'section',
+            'version',
+        ]
+        self._mixin_test_table_edit_column(
+            'softwarerecipestable',
+            'edit-columns-button',
+            [f'checkbox-{column}' for column in column_list]
+        )
+        self._navigate_to_config_nav('softwarerecipestable', 4)
+        # check show rows(pagination)
+        self._mixin_test_table_show_rows(table_selector='softwarerecipestable')
+
+    def test_machines_page(self):
+        """ Test Machine page
+            - Check if title "Compatible machines" is displayed
+            - Check search input
+            - Check "Select machine" button works
+            - Check "Add layer" button works
+            - Check Machine table feature(show/hide column, pagination)
+        """
+        self._navigate_to_config_nav('machinestable', 5)
+        # check title "Compatible software recipes" is displayed
+        self.assertTrue("Compatible machines" in self.get_page_source())
+        # Test search input
+        self._mixin_test_table_search_input(
+            input_selector='search-input-machinestable',
+            input_text='qemux86-64',
+            searchBtn_selector='search-submit-machinestable',
+            table_selector='machinestable'
+        )
+        # check "Select machine" button works
+        rows = self.find_all('#machinestable tbody tr')
+        machine_to_select = rows[0]
+        select_btn = machine_to_select.find_element(
+            By.XPATH,
+            '//td[@class="add-del-layers"]//a[1]'
+        )
+        select_btn.send_keys(Keys.RETURN)
+        self.wait_until_visible('#config-nav')
+        project_machine_name = self.find('#project-machine-name')
+        self.assertTrue(
+            'qemux86-64' in project_machine_name.text
+        )
+        # check "Add layer" button works
+        self._navigate_to_config_nav('machinestable', 5)
+        # Search for a machine whit layer not in project
+        self._mixin_test_table_search_input(
+            input_selector='search-input-machinestable',
+            input_text='qemux86-64-tpm2',
+            searchBtn_selector='search-submit-machinestable',
+            table_selector='machinestable'
+        )
+        rows = self.find_all('#machinestable tbody tr')
+        machine_to_add = rows[0]
+        add_btn = machine_to_add.find_element(By.XPATH, '//td[@class="add-del-layers"]')
+        add_btn.click()
+        self.wait_until_visible('#change-notification')
+        change_notification = self.find('#change-notification')
+        self.assertTrue(
+            f'You have added 1 layer to your project' in str(change_notification.text)
+        )
+        # check Machine table feature(show/hide column, pagination)
+        self._navigate_to_config_nav('machinestable', 5)
+        column_list = [
+            'description',
+            'layer_version__get_vcs_reference',
+            'layer_version__layer__name',
+            'machinefile',
+        ]
+        self._mixin_test_table_edit_column(
+            'machinestable',
+            'edit-columns-button',
+            [f'checkbox-{column}' for column in column_list]
+        )
+        self._navigate_to_config_nav('machinestable', 5)
+        # check show rows(pagination)
+        self._mixin_test_table_show_rows(table_selector='machinestable')
+
+    def test_layers_page(self):
+        """ Test layers page
+            - Check if title "Compatible layerss" is displayed
+            - Check search input
+            - Check "Add layer" button works
+            - Check "Remove layer" button works
+            - Check layers table feature(show/hide column, pagination)
+        """
+        self._navigate_to_config_nav('layerstable', 6)
+        # check title "Compatible layers" is displayed
+        self.assertTrue("Compatible layers" in self.get_page_source())
+        # Test search input
+        input_text='meta-tanowrt'
+        self._mixin_test_table_search_input(
+            input_selector='search-input-layerstable',
+            input_text=input_text,
+            searchBtn_selector='search-submit-layerstable',
+            table_selector='layerstable'
+        )
+        # check "Add layer" button works
+        rows = self.find_all('#layerstable tbody tr')
+        layer_to_add = rows[0]
+        add_btn = layer_to_add.find_element(
+            By.XPATH,
+            '//td[@class="add-del-layers"]'
+        )
+        add_btn.click()
+        # check modal is displayed
+        self.wait_until_visible('#dependencies-modal', poll=2)
+        list_dependencies = self.find_all('#dependencies-list li')
+        # click on add-layers button
+        add_layers_btn = self.driver.find_element(
+            By.XPATH,
+            '//form[@id="dependencies-modal-form"]//button[@class="btn btn-primary"]'
+        )
+        add_layers_btn.click()
+        self.wait_until_visible('#change-notification')
+        change_notification = self.find('#change-notification')
+        self.assertTrue(
+            f'You have added {len(list_dependencies)+1} layers to your project: {input_text} and its dependencies' in str(change_notification.text)
+        )
+        # check "Remove layer" button works
+        rows = self.find_all('#layerstable tbody tr')
+        layer_to_remove = rows[0]
+        remove_btn = layer_to_remove.find_element(
+            By.XPATH,
+            '//td[@class="add-del-layers"]'
+        )
+        remove_btn.click()
+        self.wait_until_visible('#change-notification', poll=2)
+        change_notification = self.find('#change-notification')
+        self.assertTrue(
+            f'You have removed 1 layer from your project: {input_text}' in str(change_notification.text)
+        )
+        # check layers table feature(show/hide column, pagination)
+        self._navigate_to_config_nav('layerstable', 6)
+        column_list = [
+            'dependencies',
+            'revision',
+            'layer__vcs_url',
+            'git_subdir',
+            'layer__summary',
+        ]
+        self._mixin_test_table_edit_column(
+            'layerstable',
+            'edit-columns-button',
+            [f'checkbox-{column}' for column in column_list]
+        )
+        self._navigate_to_config_nav('layerstable', 6)
+        # check show rows(pagination)
+        self._mixin_test_table_show_rows(table_selector='layerstable')
+
+    def test_distro_page(self):
+        """ Test distros page
+            - Check if title "Compatible distros" is displayed
+            - Check search input
+            - Check "Add layer" button works
+            - Check distro table feature(show/hide column, pagination)
+        """
+        self._navigate_to_config_nav('distrostable', 7)
+        # check title "Compatible distros" is displayed
+        self.assertTrue("Compatible Distros" in self.get_page_source())
+        # Test search input
+        input_text='poky-altcfg'
+        self._mixin_test_table_search_input(
+            input_selector='search-input-distrostable',
+            input_text=input_text,
+            searchBtn_selector='search-submit-distrostable',
+            table_selector='distrostable'
+        )
+        # check "Add distro" button works
+        rows = self.find_all('#distrostable tbody tr')
+        distro_to_add = rows[0]
+        add_btn = distro_to_add.find_element(
+            By.XPATH,
+            '//td[@class="add-del-layers"]//a[1]'
+        )
+        add_btn.click()
+        self.wait_until_visible('#change-notification', poll=2)
+        change_notification = self.find('#change-notification')
+        self.assertTrue(
+            f'You have changed the distro to: {input_text}' in str(change_notification.text)
+        )
+        # check distro table feature(show/hide column, pagination)
+        self._navigate_to_config_nav('distrostable', 7)
+        column_list = [
+            'description',
+            'templatefile',
+            'layer_version__get_vcs_reference',
+            'layer_version__layer__name',
+        ]
+        self._mixin_test_table_edit_column(
+            'distrostable',
+            'edit-columns-button',
+            [f'checkbox-{column}' for column in column_list]
+        )
+        self._navigate_to_config_nav('distrostable', 7)
+        # check show rows(pagination)
+        self._mixin_test_table_show_rows(
+            table_selector='distrostable',
+            to_skip=[150]
+        )
+
+    def test_single_layer_page(self):
+        """ Test layer page
+            - Check if title is displayed
+            - Check add/remove layer button works
+            - Check tabs(layers, recipes, machines) are displayed
+            - Check left section is displayed
+                - Check layer name
+                - Check layer summary
+                - Check layer description
+        """
+        url = reverse("layerdetails", args=(1, 8))
+        self.get(url)
+        self.wait_until_visible('.page-header')
+        # check title is displayed
+        self.assertTrue(self.find('.page-header h1').is_displayed())
+
+        # check add layer button works
+        remove_layer_btn = self.find('#add-remove-layer-btn')
+        remove_layer_btn.click()
+        self.wait_until_visible('#change-notification', poll=2)
+        change_notification = self.find('#change-notification')
+        self.assertTrue(
+            f'You have removed 1 layer from your project' in str(change_notification.text)
+        )
+        # check add layer button works, 18 is the random layer id
+        add_layer_btn = self.find('#add-remove-layer-btn')
+        add_layer_btn.click()
+        self.wait_until_visible('#change-notification')
+        change_notification = self.find('#change-notification')
+        self.assertTrue(
+            f'You have added 1 layer to your project' in str(change_notification.text)
+        )
+        # check tabs(layers, recipes, machines) are displayed
+        tabs = self.find_all('.nav-tabs li')
+        self.assertEqual(len(tabs), 3)
+        # Check first tab
+        tabs[0].click()
+        self.assertTrue(
+            'active' in str(self.find('#information').get_attribute('class'))
+        )
+        # Check second tab
+        tabs[1].click()
+        self.assertTrue(
+            'active' in str(self.find('#recipes').get_attribute('class'))
+        )
+        # Check third tab
+        tabs[2].click()
+        self.assertTrue(
+            'active' in str(self.find('#machines').get_attribute('class'))
+        )
+        # Check left section is displayed
+        section = self.find('.well')
+        # Check layer name
+        self.assertTrue(
+            section.find_element(By.XPATH, '//h2[1]').is_displayed()
+        )
+        # Check layer summary
+        self.assertTrue("Summary" in section.text)
+        # Check layer description
+        self.assertTrue("Description" in section.text)
+
+    def test_single_recipe_page(self):
+        """ Test recipe page
+            - Check if title is displayed
+            - Check add recipe layer displayed
+            - Check left section is displayed
+                - Check recipe: name, summary, description, Version, Section,
+                License, Approx. packages included, Approx. size, Recipe file
+        """
+        url = reverse("recipedetails", args=(1, 53428))
+        self.get(url)
+        self.wait_until_visible('.page-header')
+        # check title is displayed
+        self.assertTrue(self.find('.page-header h1').is_displayed())
+        # check add recipe layer displayed
+        add_recipe_layer_btn = self.find('#add-layer-btn')
+        self.assertTrue(add_recipe_layer_btn.is_displayed())
+        # check left section is displayed
+        section = self.find('.well')
+        # Check recipe name
+        self.assertTrue(
+            section.find_element(By.XPATH, '//h2[1]').is_displayed()
+        )
+        # Check recipe sections details info are displayed
+        self.assertTrue("Summary" in section.text)
+        self.assertTrue("Description" in section.text)
+        self.assertTrue("Version" in section.text)
+        self.assertTrue("Section" in section.text)
+        self.assertTrue("License" in section.text)
+        self.assertTrue("Approx. packages included" in section.text)
+        self.assertTrue("Approx. package size" in section.text)
+        self.assertTrue("Recipe file" in section.text)
diff --git a/poky/documentation/contributor-guide/recipe-style-guide.rst b/poky/documentation/contributor-guide/recipe-style-guide.rst
index a005aa3..08d8fb4 100644
--- a/poky/documentation/contributor-guide/recipe-style-guide.rst
+++ b/poky/documentation/contributor-guide/recipe-style-guide.rst
@@ -250,6 +250,18 @@
    correct string that you can substitute into the recipe file for a
    subsequent build.
 
+License Updates
+~~~~~~~~~~~~~~~
+
+When you change the :term:`LICENSE` or :term:`LIC_FILES_CHKSUM` in the recipe
+you need to briefly explain the reason for the change via a ``License-Update:``
+tag.  Often it's quite trivial, such as::
+
+    License-Update: copyright years refreshed
+
+Less often, the actual licensing terms themselves will have changed.  If so, do
+try to link to upstream making/justifying that decision.
+
 Tips and Guidelines for Writing Recipes
 ---------------------------------------
 
diff --git a/poky/documentation/contributor-guide/submit-changes.rst b/poky/documentation/contributor-guide/submit-changes.rst
index 53daaf9..5a6136c 100644
--- a/poky/documentation/contributor-guide/submit-changes.rst
+++ b/poky/documentation/contributor-guide/submit-changes.rst
@@ -460,7 +460,7 @@
 please add the appropriate prefix so that it is clear which layer the patch is intended
 to be applied to::
 
-   git send-email --subject-prefix="meta-oe][PATCH" ...
+   git format-patch --subject-prefix="meta-oe][PATCH" ...
 
 .. note::
 
diff --git a/poky/documentation/dev-manual/layers.rst b/poky/documentation/dev-manual/layers.rst
index c65a94b..b3ccf63 100644
--- a/poky/documentation/dev-manual/layers.rst
+++ b/poky/documentation/dev-manual/layers.rst
@@ -313,7 +313,7 @@
    successful compatibility registration.
 
 #. Completion of an application acceptance form, which you can find at
-   :yocto_home:`/webform/yocto-project-compatible-registration`.
+   :yocto_home:`/compatible-registration/`.
 
 To be granted permission to use the logo, you need to satisfy the
 following:
@@ -337,7 +337,7 @@
 layer and the application that uses your layer.
 
 To access the form, use this link:
-:yocto_home:`/webform/yocto-project-compatible-registration`.
+:yocto_home:`/compatible-registration`.
 Follow the instructions on the form to complete your application.
 
 The application consists of the following sections:
diff --git a/poky/documentation/migration-guides/migration-2.2.rst b/poky/documentation/migration-guides/migration-2.2.rst
index 5435835..3932792 100644
--- a/poky/documentation/migration-guides/migration-2.2.rst
+++ b/poky/documentation/migration-guides/migration-2.2.rst
@@ -29,7 +29,7 @@
 The way directories are staged in sysroot has been simplified and
 introduces the new :term:`SYSROOT_DIRS`,
 :term:`SYSROOT_DIRS_NATIVE`, and ``SYSROOT_DIRS_BLACKLIST``
-(replaced by :term:`SYSROOT_DIRS_IGNORE` in version 3.5). See the
+(replaced by :term:`SYSROOT_DIRS_IGNORE` in version 4.0). See the
 :oe_lists:`v2 patch series on the OE-Core Mailing List
 </pipermail/openembedded-core/2016-May/121365.html>`
 for additional information.
diff --git a/poky/documentation/migration-guides/migration-3.0.rst b/poky/documentation/migration-guides/migration-3.0.rst
index 8e7a58e..67fcac4 100644
--- a/poky/documentation/migration-guides/migration-3.0.rst
+++ b/poky/documentation/migration-guides/migration-3.0.rst
@@ -150,7 +150,7 @@
 and makes other improvements.
 
 Additionally, the ``CVE_CHECK_CVE_WHITELIST`` variable has been replaced
-by ``CVE_CHECK_WHITELIST`` (replaced by :term:`CVE_CHECK_IGNORE` in version 3.5).
+by ``CVE_CHECK_WHITELIST`` (replaced by :term:`CVE_CHECK_IGNORE` in version 4.0).
 
 .. _migration-3.0-bitbake-changes:
 
diff --git a/poky/documentation/migration-guides/migration-3.4.rst b/poky/documentation/migration-guides/migration-3.4.rst
index f50fe5e..a9b1057 100644
--- a/poky/documentation/migration-guides/migration-3.4.rst
+++ b/poky/documentation/migration-guides/migration-3.4.rst
@@ -255,7 +255,7 @@
 - The previously deprecated ``COMPRESS_CMD`` and
   ``CVE_CHECK_CVE_WHITELIST`` variables have been removed. Use
   :term:`CONVERSION_CMD` and ``CVE_CHECK_WHITELIST`` (replaced by
-  :term:`CVE_CHECK_IGNORE` in version 3.5) respectively
+  :term:`CVE_CHECK_IGNORE` in version 4.0) respectively
   instead.
 
 - The obsolete ``oe_machinstall`` function previously provided in the
diff --git a/poky/documentation/migration-guides/release-4.3.rst b/poky/documentation/migration-guides/release-4.3.rst
index 92516ae..5b651a2 100644
--- a/poky/documentation/migration-guides/release-4.3.rst
+++ b/poky/documentation/migration-guides/release-4.3.rst
@@ -7,3 +7,4 @@
 
    migration-4.3
    release-notes-4.3
+   release-notes-4.3.1
diff --git a/poky/documentation/migration-guides/release-notes-4.3.1.rst b/poky/documentation/migration-guides/release-notes-4.3.1.rst
new file mode 100644
index 0000000..377cdb4
--- /dev/null
+++ b/poky/documentation/migration-guides/release-notes-4.3.1.rst
@@ -0,0 +1,237 @@
+.. SPDX-License-Identifier: CC-BY-SA-2.0-UK
+
+Release notes for Yocto-4.3.1 (Nanbield)
+----------------------------------------
+
+Security Fixes in Yocto-4.3.1
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  libsndfile1: Fix :cve:`2022-33065`
+-  libxml2: Ignore :cve:`2023-45322`
+-  linux-yocto/6.1: Ignore :cve:`2020-27418`, :cve:`2023-31085`, :cve_mitre:`2023-34324`, :cve:`2023-39189`, :cve:`2023-39192`, :cve:`2023-39193`, :cve:`2023-39194`, :cve:`2023-4244`, :cve:`2023-42754`, :cve:`2023-42756`, :cve:`2023-44466`, :cve:`2023-4563`, :cve:`2023-45862`, :cve:`2023-45863`, :cve:`2023-45871`, :cve:`2023-45898`, :cve:`2023-4732`, :cve:`2023-5158`, :cve:`2023-5197` and :cve:`2023-5345`
+-  linux-yocto/6.5: Ignore :cve:`2020-27418`, :cve:`2023-1193`, :cve:`2023-39191`, :cve:`2023-39194`, :cve:`2023-40791`, :cve:`2023-44466`, :cve:`2023-45862`, :cve:`2023-45863`, :cve:`2023-4610` and :cve:`2023-4732`
+-  openssl: Fix :cve:`2023-5363`
+-  pixman: Ignore :cve:`2023-37769`
+-  vim: Fix :cve:`2023-46246`
+-  zlib: Ignore :cve:`2023-45853`
+
+
+Fixes in Yocto-4.3.1
+~~~~~~~~~~~~~~~~~~~~
+
+-  Remove references to apm in :term:`MACHINE_FEATURES`
+-  baremetal-helloworld: Pull in fix for race condition on x86-64
+-  base: Ensure recipes using mercurial-native have certificates
+-  bb-matrix-plot.sh: Show underscores correctly in labels
+-  bin_package.bbclass: revert "Inhibit the default dependencies"
+-  bitbake: SECURITY.md: add file
+-  brief-yoctoprojectqs: use new CDN mirror for sstate
+-  bsp-guide: bsp.rst: update beaglebone example
+-  bsp-guide: bsp: skip Intel machines no longer supported in Poky
+-  build-appliance-image: Update to nanbield head revision
+-  contributor-guide: add patchtest section
+-  contributor-guide: clarify patchtest usage
+-  cve-check: don't warn if a patch is remote
+-  cve-check: slightly more verbose warning when adding the same package twice
+-  cve-check: sort the package list in the JSON report
+-  dev-manual: add security team processes
+-  dev-manual: extend the description of CVE patch preparation
+-  dev-manual: layers: Add notes about layer.conf
+-  dev-manual: new-recipe.rst: add missing parenthesis to "Patching Code" section
+-  dev-manual: start.rst: remove obsolete reference
+-  dev-manual: wic: update "wic list images" output
+-  docs: add support for nanbield (4.3) release
+-  documentation.conf: drop SERIAL_CONSOLES_CHECK
+-  ell: Upgrade to 0.59
+-  glib-2.0: Remove unnecessary assignement
+-  goarch: Move Go architecture mapping to a library
+-  kernel-arch: drop CCACHE from :term:`KERNEL_STRIP` definition
+-  kernel.bbclass: Use strip utility used for kernel build in do_package
+-  layer.conf: Switch layer to nanbield series only
+-  libsdl2: upgrade to 2.28.4
+-  linux-yocto: make sure the pahole-native available before do_kernel_configme
+-  llvm: Upgrade to 17.0.3
+-  machine: drop obsolete SERIAL_CONSOLES_CHECK
+-  manuals: correct "yocto-linux" by "linux-yocto"
+-  manuals: improve description of :term:`CVE_STATUS` and :term:`CVE_STATUS_GROUPS`
+-  manuals: update linux-yocto append examples
+-  manuals: update list of supported machines
+-  migration-4.3: additional migration items
+-  migration-4.3: adjustments to existing text
+-  migration-4.3: remove some unnecessary items
+-  migration-guides: QEMU_USE_SLIRP variable removed
+-  migration-guides: add BitBake changes
+-  migration-guides: add debian 12 to newly supported distros
+-  migration-guides: add kernel notes
+-  migration-guides: add testing notes
+-  migration-guides: add utility notes
+-  migration-guides: edgerouter machine removed
+-  migration-guides: enabling :term:`SPDX` only for Poky, not a global default
+-  migration-guides: fix empty sections
+-  migration-guides: further updates for 4.3
+-  migration-guides: further updates for release 4.3
+-  migration-guides: git recipes reword
+-  migration-guides: mention CDN
+-  migration-guides: mention LLVM 17
+-  migration-guides: mention runqemu change in serial port management
+-  migration-guides: packaging changes
+-  migration-guides: remove SERIAL_CONSOLES_CHECK
+-  migration-guides: remove non-notable change
+-  migration-guides: updates for 4.3
+-  oeqa/selftest/debuginfod: improve selftest
+-  oeqa/selftest/devtool: abort if a local workspace already exist
+-  oeqa/ssh: Handle SSHCall timeout error code
+-  openssl: Upgrade to 3.1.4
+-  overview-manual: concepts: Add Bitbake Tasks Map
+-  patchtest-send-results: add In-Reply-To
+-  patchtest-send-results: check max line length, simplify responses
+-  patchtest-send-results: fix sender parsing
+-  patchtest-send-results: improve subject line
+-  patchtest-send-results: send results to submitter
+-  patchtest/selftest: add XSKIP, update test files
+-  patchtest: disable merge test
+-  patchtest: fix lic_files_chksum test regex
+-  patchtest: make pylint tests compatible with 3.x
+-  patchtest: reduce checksum test output length
+-  patchtest: remove test for CVE tag in mbox
+-  patchtest: remove unused imports
+-  patchtest: rework license checksum tests
+-  patchtest: shorten test result outputs
+-  patchtest: simplify test directory structure
+-  patchtest: skip merge test if not targeting master
+-  patchtest: test regardless of mergeability
+-  perl: fix intermittent test failure
+-  poky.conf: bump version for 4.3.1 release
+-  profile-manual: aesthetic cleanups
+-  ref-manual: Add documentation for the unimplemented-ptest QA warning
+-  ref-manual: Fix :term:`PACKAGECONFIG` term and add an example
+-  ref-manual: Warn about :term:`COMPATIBLE_MACHINE` skipping native recipes
+-  ref-manual: add systemd-resolved to distro features
+-  ref-manual: classes: explain cml1 class name
+-  ref-manual: document :term:`KERNEL_LOCALVERSION`
+-  ref-manual: document :term:`KERNEL_STRIP`
+-  ref-manual: document :term:`MESON_TARGET`
+-  ref-manual: document cargo_c class
+-  ref-manual: remove semicolons from ``*PROCESS_COMMAND`` variables
+-  ref-manual: update :term:`SDK_NAME` variable documentation
+-  ref-manual: variables: add :term:`RECIPE_MAINTAINER`
+-  ref-manual: variables: add :term:`RECIPE_SYSROOT` and :term:`RECIPE_SYSROOT_NATIVE`
+-  ref-manual: variables: add :term:`TOOLCHAIN_OPTIONS` variable
+-  ref-manual: variables: add example for :term:`SYSROOT_DIRS` variable
+-  ref-manual: variables: document :term:`OEQA_REPRODUCIBLE_TEST_PACKAGE`
+-  ref-manual: variables: mention new CDN for :term:`SSTATE_MIRRORS`
+-  ref-manual: variables: provide no-match example for :term:`COMPATIBLE_MACHINE`
+-  ref-manual: variables: remove SERIAL_CONSOLES_CHECK
+-  release-notes-4.3: add CVEs, recipe upgrades, license changes, contributors
+-  release-notes-4.3: add Repositories / Downloads section
+-  release-notes-4.3: feature additions
+-  release-notes-4.3: fix some typos
+-  release-notes-4.3: move new classes to Rust section
+-  release-notes-4.3: remove the Distribution section
+-  release-notes-4.3: tweaks to existing text
+-  sdk-manual: appendix-obtain: improve and update descriptions
+-  test-manual: reproducible-builds: stop mentioning LTO bug
+-  vim: Improve locale handling
+-  vim: Upgrade to 9.0.2068
+-  vim: use upstream generated .po files
+
+
+Known Issues in Yocto-4.3.1
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+- N/A
+
+
+Contributors to Yocto-4.3.1
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+-  Alejandro Hernandez Samaniego
+-  Alex Stewart
+-  Archana Polampalli
+-  Arne Schwerdt
+-  BELHADJ SALEM Talel
+-  Dmitry Baryshkov
+-  Eero Aaltonen
+-  Joshua Watt
+-  Julien Stephan
+-  Jérémy Rosen
+-  Khem Raj
+-  Lee Chee Yang
+-  Marta Rybczynska
+-  Max Krummenacher
+-  Michael Halstead
+-  Michael Opdenacker
+-  Paul Eggleton
+-  Peter Kjellerstedt
+-  Peter Marko
+-  Quentin Schulz
+-  Richard Purdie
+-  Robert P. J. Day
+-  Ross Burton
+-  Rouven Czerwinski
+-  Steve Sakoman
+-  Trevor Gamblin
+-  Wang Mingyu
+-  William Lyu
+-  Xiangyu Chen
+-  luca fancellu
+
+
+Repositories / Downloads for Yocto-4.3.1
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+poky
+
+-  Repository Location: :yocto_git:`/poky`
+-  Branch: :yocto_git:`nanbield </poky/log/?h=nanbield>`
+-  Tag:  :yocto_git:`yocto-4.3.1 </poky/log/?h=yocto-4.3.1>`
+-  Git Revision: :yocto_git:`bf9f2f6f60387b3a7cd570919cef6c4570edcb82 </poky/commit/?id=bf9f2f6f60387b3a7cd570919cef6c4570edcb82>`
+-  Release Artefact: poky-bf9f2f6f60387b3a7cd570919cef6c4570edcb82
+-  sha: 9b4351159d728fec2b63a50f1ac15edc412e2d726e9180a40afc06051fadb922
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.3.1/poky-bf9f2f6f60387b3a7cd570919cef6c4570edcb82.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.3.1/poky-bf9f2f6f60387b3a7cd570919cef6c4570edcb82.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.1 </openembedded-core/log/?h=yocto-4.3.1>`
+-  Git Revision: :oe_git:`cce77e8e79c860f4ef0ac4a86b9375bf87507360 </openembedded-core/commit/?id=cce77e8e79c860f4ef0ac4a86b9375bf87507360>`
+-  Release Artefact: oecore-cce77e8e79c860f4ef0ac4a86b9375bf87507360
+-  sha: e6cde08e7c549f57a67d833a36cdb942648fba81558dc8b0e65332d2a2c023cc
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.3.1/oecore-cce77e8e79c860f4ef0ac4a86b9375bf87507360.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.3.1/oecore-cce77e8e79c860f4ef0ac4a86b9375bf87507360.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.1 </meta-mingw/log/?h=yocto-4.3.1>`
+-  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.1/meta-mingw-49617a253e09baabbf0355bc736122e9549c8ab2.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.3.1/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.1 </bitbake/log/?h=yocto-4.3.1>`
+-  Git Revision: :oe_git:`936fcec41efacc4ce988c81882a9ae6403702bea </bitbake/commit/?id=936fcec41efacc4ce988c81882a9ae6403702bea>`
+-  Release Artefact: bitbake-936fcec41efacc4ce988c81882a9ae6403702bea
+-  sha: efbdd5fe7f29227a3fd26d6a08a368bf8215083a588b4d23f3adf35044897520
+-  Download Locations:
+   http://downloads.yoctoproject.org/releases/yocto/yocto-4.3.1/bitbake-936fcec41efacc4ce988c81882a9ae6403702bea.tar.bz2
+   http://mirrors.kernel.org/yocto/yocto/yocto-4.3.1/bitbake-936fcec41efacc4ce988c81882a9ae6403702bea.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.1 </yocto-docs/log/?h=yocto-4.3.1>`
+-  Git Revision: :yocto_git:`6b98a6164263298648e89b5a5ae1260a58f1bb35 </yocto-docs/commit/?id=6b98a6164263298648e89b5a5ae1260a58f1bb35>`
+
diff --git a/poky/meta/classes-recipe/cmake-qemu.bbclass b/poky/meta/classes-recipe/cmake-qemu.bbclass
new file mode 100644
index 0000000..76b748f
--- /dev/null
+++ b/poky/meta/classes-recipe/cmake-qemu.bbclass
@@ -0,0 +1,28 @@
+#
+# Copyright OpenEmbedded Contributors
+#
+# SPDX-License-Identifier: MIT
+#
+# Not all platforms are supported by Qemu. Using qemu-user therefore
+# involves a certain risk, which is also the reason why this feature
+# is not activated by default.
+
+inherit qemu
+
+CMAKE_EXEWRAPPER_ENABLED:class-native = "False"
+CMAKE_EXEWRAPPER_ENABLED:class-nativesdk = "False"
+CMAKE_EXEWRAPPER_ENABLED ?= "${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'True', 'False', d)}"
+DEPENDS:append = "${@' qemu-native' if d.getVar('CMAKE_EXEWRAPPER_ENABLED') == 'True' else ''}"
+
+cmake_do_generate_toolchain_file:append:class-target() {
+    if [ "${CMAKE_EXEWRAPPER_ENABLED}" = "True" ]; then
+        # Write out a qemu wrapper that will be used as exe_wrapper so that camake
+        # can run target helper binaries through that. This also allows to execute ctest.
+        qemu_binary="${@qemu_wrapper_cmdline(d, '${STAGING_DIR_HOST}', ['${STAGING_DIR_HOST}/${libdir}','${STAGING_DIR_HOST}/${base_libdir}'])}"
+        echo "#!/bin/sh" > "${WORKDIR}/cmake-qemuwrapper"
+        echo "$qemu_binary \"\$@\"" >> "${WORKDIR}/cmake-qemuwrapper"
+        chmod +x "${WORKDIR}/cmake-qemuwrapper"
+        echo "set( CMAKE_CROSSCOMPILING_EMULATOR ${WORKDIR}/cmake-qemuwrapper)" \
+          >> ${WORKDIR}/toolchain.cmake
+    fi
+}
diff --git a/poky/meta/classes-recipe/rust-common.bbclass b/poky/meta/classes-recipe/rust-common.bbclass
index 3d73a37..ae96d9c 100644
--- a/poky/meta/classes-recipe/rust-common.bbclass
+++ b/poky/meta/classes-recipe/rust-common.bbclass
@@ -63,6 +63,8 @@
     # This catches ARM targets and appends the necessary hard float bits
     if os == "linux-gnueabi" or os == "linux-musleabi":
         libc = bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', 'hf', '', d)
+    elif os == "linux-gnux32" or os == "linux-muslx32":
+        libc = ""
     elif "musl" in os:
         libc = "-musl"
         os = "linux"
diff --git a/poky/meta/classes/devtool-source.bbclass b/poky/meta/classes/devtool-source.bbclass
index a02b1e9..4158c20 100644
--- a/poky/meta/classes/devtool-source.bbclass
+++ b/poky/meta/classes/devtool-source.bbclass
@@ -232,6 +232,9 @@
                 bb.process.run('git rebase devtool-no-overrides', cwd=srcsubdir)
         bb.process.run('git checkout %s' % devbranch, cwd=srcsubdir)
     bb.process.run('git tag -f devtool-patched', cwd=srcsubdir)
+    if os.path.exists(os.path.join(srcsubdir, '.gitmodules')):
+        bb.process.run('git submodule foreach --recursive  "git tag -f devtool-patched"', cwd=srcsubdir)
+
 }
 
 python devtool_post_configure() {
diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf
index 983987c..e7826e7 100644
--- a/poky/meta/conf/bitbake.conf
+++ b/poky/meta/conf/bitbake.conf
@@ -543,6 +543,9 @@
 # Used by Mercurial fetcher
 HOSTTOOLS_NONFATAL += "hg"
 
+# Used by gcp fetcher
+HOSTTOOLS_NONFATAL += "gsutil"
+
 # Link to git-lfs if present
 HOSTTOOLS_NONFATAL += "git-lfs"
 
diff --git a/poky/meta/conf/documentation.conf b/poky/meta/conf/documentation.conf
index d03c497..486c62b 100644
--- a/poky/meta/conf/documentation.conf
+++ b/poky/meta/conf/documentation.conf
@@ -28,7 +28,7 @@
 do_kernel_configme[doc] = "Assembles the kernel configuration for a linux-yocto style kernel"
 do_kernel_link_images[doc] = "Creates a symbolic link in arch/$arch/boot for vmlinux and vmlinuz kernel images"
 do_listtasks[doc] = "Lists all defined tasks for a target"
-do_menuconfig[doc] = "Runs 'make menuconfig' for the kernel"
+do_menuconfig[doc] = "Runs 'make menuconfig' in the compilation directory"
 do_package[doc] = "Analyzes the content of the holding area and splits it into subsets based on available packages and files"
 do_package_index[doc] = "Creates or updates the index in the Package Feed area"
 do_package_qa[doc] = "Runs QA checks on packaged files"
diff --git a/poky/meta/lib/oe/patch.py b/poky/meta/lib/oe/patch.py
index 9b480b2..e4bb5a7 100644
--- a/poky/meta/lib/oe/patch.py
+++ b/poky/meta/lib/oe/patch.py
@@ -461,41 +461,43 @@
         return (tmpfile, cmd)
 
     @staticmethod
-    def extractPatches(tree, startcommit, outdir, paths=None):
+    def extractPatches(tree, startcommits, outdir, paths=None):
         import tempfile
         import shutil
         tempdir = tempfile.mkdtemp(prefix='oepatch')
         try:
-            shellcmd = ["git", "format-patch", "--no-signature", "--no-numbered", startcommit, "-o", tempdir]
-            if paths:
-                shellcmd.append('--')
-                shellcmd.extend(paths)
-            out = runcmd(["sh", "-c", " ".join(shellcmd)], tree)
-            if out:
-                for srcfile in out.split():
-                    for encoding in ['utf-8', 'latin-1']:
-                        patchlines = []
-                        outfile = None
-                        try:
-                            with open(srcfile, 'r', encoding=encoding) as f:
-                                for line in f:
-                                    if line.startswith(GitApplyTree.patch_line_prefix):
-                                        outfile = line.split()[-1].strip()
-                                        continue
-                                    if line.startswith(GitApplyTree.ignore_commit_prefix):
-                                        continue
-                                    patchlines.append(line)
-                        except UnicodeDecodeError:
-                            continue
-                        break
-                    else:
-                        raise PatchError('Unable to find a character encoding to decode %s' % srcfile)
+            for name, rev in startcommits.items():
+                shellcmd = ["git", "format-patch", "--no-signature", "--no-numbered", rev, "-o", tempdir]
+                if paths:
+                    shellcmd.append('--')
+                    shellcmd.extend(paths)
+                out = runcmd(["sh", "-c", " ".join(shellcmd)], os.path.join(tree, name))
+                if out:
+                    for srcfile in out.split():
+                        for encoding in ['utf-8', 'latin-1']:
+                            patchlines = []
+                            outfile = None
+                            try:
+                                with open(srcfile, 'r', encoding=encoding) as f:
+                                    for line in f:
+                                        if line.startswith(GitApplyTree.patch_line_prefix):
+                                            outfile = line.split()[-1].strip()
+                                            continue
+                                        if line.startswith(GitApplyTree.ignore_commit_prefix):
+                                            continue
+                                        patchlines.append(line)
+                            except UnicodeDecodeError:
+                                continue
+                            break
+                        else:
+                            raise PatchError('Unable to find a character encoding to decode %s' % srcfile)
 
-                    if not outfile:
-                        outfile = os.path.basename(srcfile)
-                    with open(os.path.join(outdir, outfile), 'w') as of:
-                        for line in patchlines:
-                            of.write(line)
+                        if not outfile:
+                            outfile = os.path.basename(srcfile)
+                        bb.utils.mkdirhier(os.path.join(outdir, name))
+                        with open(os.path.join(outdir, name, outfile), 'w') as of:
+                            for line in patchlines:
+                                of.write(line)
         finally:
             shutil.rmtree(tempdir)
 
diff --git a/poky/meta/lib/oe/recipeutils.py b/poky/meta/lib/oe/recipeutils.py
index 3336db8..25b159b 100644
--- a/poky/meta/lib/oe/recipeutils.py
+++ b/poky/meta/lib/oe/recipeutils.py
@@ -672,11 +672,11 @@
         destlayerdir: base directory of the layer to place the bbappend in
             (subdirectory path from there will be determined automatically)
         srcfiles: dict of source files to add to SRC_URI, where the value
-            is the full path to the file to be added, and the value is the
-            original filename as it would appear in SRC_URI or None if it
-            isn't already present. You may pass None for this parameter if
-            you simply want to specify your own content via the extralines
-            parameter.
+            is the full path to the file to be added, and the value is a
+            dict with 'path' key containing the original filename as it
+            would appear in SRC_URI or None if it isn't already present.
+            You may pass None for this parameter if you simply want to specify
+            your own content via the extralines parameter.
         install: dict mapping entries in srcfiles to a tuple of two elements:
             install path (*without* ${D} prefix) and permission value (as a
             string, e.g. '0644').
@@ -763,10 +763,9 @@
     copyfiles = {}
     if srcfiles:
         instfunclines = []
-        for i, (newfile, origsrcfile) in enumerate(srcfiles.items()):
-            srcfile = origsrcfile
+        for i, (newfile, param) in enumerate(srcfiles.items()):
             srcurientry = None
-            if not srcfile:
+            if not 'path' in param or not param['path']:
                 srcfile = os.path.basename(newfile)
                 srcurientry = 'file://%s' % srcfile
                 if params and params[i]:
@@ -778,7 +777,10 @@
                         appendline('SRC_URI:append%s' % appendoverride, '=', ' ' + srcurientry)
                     else:
                         appendline('SRC_URI', '+=', srcurientry)
-            copyfiles[newfile] = srcfile
+                param['path'] = srcfile
+            else:
+                srcfile = param['path']
+            copyfiles[newfile] = param
             if install:
                 institem = install.pop(newfile, None)
                 if institem:
@@ -901,7 +903,12 @@
             outdir = redirect_output
         else:
             outdir = appenddir
-        for newfile, srcfile in copyfiles.items():
+        for newfile, param in copyfiles.items():
+            srcfile = param['path']
+            patchdir = param.get('patchdir', ".")
+
+            if patchdir != ".":
+                newfile = os.path.join(os.path.split(newfile)[0], patchdir, os.path.split(newfile)[1])
             filedest = os.path.join(outdir, destsubdir, os.path.basename(srcfile))
             if os.path.abspath(newfile) != os.path.abspath(filedest):
                 if newfile.startswith(tempfile.gettempdir()):
@@ -1035,7 +1042,7 @@
             revision = ud.method.latest_revision(ud, rd, 'default')
             upversion = pv
             if revision != rd.getVar("SRCREV"):
-                upversion = upversion + "-new-commits-available" 
+                upversion = upversion + "-new-commits-available"
         else:
             pupver = ud.method.latest_versionstring(ud, rd)
             (upversion, revision) = pupver
diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py
index ab58971..2a11886 100644
--- a/poky/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py
@@ -1598,6 +1598,53 @@
         # Try building
         bitbake('%s -c patch' % testrecipe)
 
+    def test_devtool_git_submodules(self):
+        # This tests if we can add a patch in a git submodule and extract it properly using devtool finish
+        # Check preconditions
+        self.assertTrue(not os.path.exists(self.workspacedir), 'This test cannot be run with a workspace directory under the build directory')
+        self.track_for_cleanup(self.workspacedir)
+        recipe = 'vulkan-samples'
+        src_uri = get_bb_var('SRC_URI', recipe)
+        self.assertIn('gitsm://', src_uri, 'This test expects the %s recipe to be a git recipe with submodules' % recipe)
+        oldrecipefile = get_bb_var('FILE', recipe)
+        recipedir = os.path.dirname(oldrecipefile)
+        result = runCmd('git status --porcelain .', cwd=recipedir)
+        if result.output.strip():
+            self.fail('Recipe directory for %s contains uncommitted changes' % recipe)
+        self.assertIn('/meta/', recipedir)
+        tempdir = tempfile.mkdtemp(prefix='devtoolqa')
+        self.track_for_cleanup(tempdir)
+        self.add_command_to_tearDown('bitbake-layers remove-layer */workspace')
+        result = runCmd('devtool modify %s %s' % (recipe, tempdir))
+        self.assertExists(os.path.join(tempdir, 'CMakeLists.txt'), 'Extracted source could not be found')
+        # Test devtool status
+        result = runCmd('devtool status')
+        self.assertIn(recipe, result.output)
+        self.assertIn(tempdir, result.output)
+        # Modify a source file in a submodule, (grab the first one)
+        result = runCmd('git submodule --quiet foreach \'echo $sm_path\'', cwd=tempdir)
+        submodule = result.output.splitlines()[0]
+        submodule_path = os.path.join(tempdir, submodule)
+        runCmd('echo "#This is a first comment" >> testfile', cwd=submodule_path)
+        result = runCmd('git status --porcelain . ', cwd=submodule_path)
+        self.assertIn("testfile", result.output)
+        runCmd('git add testfile; git commit -m "Adding a new file"', cwd=submodule_path)
+
+        # Try finish to the original layer
+        self.add_command_to_tearDown('rm -rf %s ; cd %s ; git checkout %s' % (recipedir, os.path.dirname(recipedir), recipedir))
+        runCmd('devtool finish -f %s meta' % recipe)
+        result = runCmd('devtool status')
+        self.assertNotIn(recipe, result.output, 'Recipe should have been reset by finish but wasn\'t')
+        self.assertNotExists(os.path.join(self.workspacedir, 'recipes', recipe), 'Recipe directory should not exist after finish')
+        expected_status = [(' M', '.*/%s$' % os.path.basename(oldrecipefile)),
+                           ('??', '.*/.*-Adding-a-new-file.patch$')]
+        self._check_repo_status(recipedir, expected_status)
+        # Make sure the patch is added to the recipe with the correct "patchdir" option
+        result = runCmd('git diff .', cwd=recipedir)
+        addlines = [
+           'file://0001-Adding-a-new-file.patch;patchdir=%s \\\\' % submodule
+        ]
+        self._check_diff(result.output, addlines, [])
 
 class DevtoolExtractTests(DevtoolBase):
 
diff --git a/poky/meta/lib/oeqa/selftest/cases/reproducible.py b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
index 029b6af..14ccb0b 100644
--- a/poky/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -16,7 +16,7 @@
 import datetime
 
 exclude_packages = [
-	'rust',
+	'rust-rustdoc',
 	'rust-dbg'
 	]
 
diff --git a/poky/meta/lib/oeqa/selftest/cases/wic.py b/poky/meta/lib/oeqa/selftest/cases/wic.py
index b4866bc..4ebcb76 100644
--- a/poky/meta/lib/oeqa/selftest/cases/wic.py
+++ b/poky/meta/lib/oeqa/selftest/cases/wic.py
@@ -16,6 +16,7 @@
 from glob import glob
 from shutil import rmtree, copy
 from tempfile import NamedTemporaryFile
+from tempfile import TemporaryDirectory
 
 from oeqa.selftest.case import OESelftestTestCase
 from oeqa.core.decorator import OETestTag
@@ -146,6 +147,73 @@
         self.assertEqual(1, runCmd('wic', ignore_status=True).status)
 
 class Wic(WicTestCase):
+    def test_skip_kernel_install(self):
+        """Test the functionality of not installing the kernel in the boot directory using the wic plugin"""
+        # create a temporary file for the WKS content
+        with NamedTemporaryFile("w", suffix=".wks") as wks:
+            wks.write(
+                'part --source bootimg-efi '
+                '--sourceparams="loader=grub-efi,install-kernel-into-boot-dir=false" '
+                '--label boot --active\n'
+            )
+            wks.flush()
+            # create a temporary directory to extract the disk image to
+            with TemporaryDirectory() as tmpdir:
+                img = 'core-image-minimal'
+                # build the image using the WKS file
+                cmd = "wic create %s -e %s -o %s" % (
+                    wks.name, img, self.resultdir)
+                runCmd(cmd)
+                wksname = os.path.splitext(os.path.basename(wks.name))[0]
+                out = glob(os.path.join(
+                    self.resultdir, "%s-*.direct" % wksname))
+                self.assertEqual(1, len(out))
+                sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools')
+                # extract the content of the disk image to the temporary directory
+                cmd = "wic cp %s:1 %s -n %s" % (out[0], tmpdir, sysroot)
+                runCmd(cmd)
+                # check if the kernel is installed or not
+                kimgtype = get_bb_var('KERNEL_IMAGETYPE', img)
+                for file in os.listdir(tmpdir):
+                    if file == kimgtype:
+                        raise AssertionError(
+                            "The kernel image '{}' was found in the partition".format(kimgtype)
+                        )
+
+    def test_kernel_install(self):
+        """Test the installation of the kernel to the boot directory in the wic plugin"""
+        # create a temporary file for the WKS content
+        with NamedTemporaryFile("w", suffix=".wks") as wks:
+            wks.write(
+                'part --source bootimg-efi '
+                '--sourceparams="loader=grub-efi,install-kernel-into-boot-dir=true" '
+                '--label boot --active\n'
+            )
+            wks.flush()
+            # create a temporary directory to extract the disk image to
+            with TemporaryDirectory() as tmpdir:
+                img = 'core-image-minimal'
+                # build the image using the WKS file
+                cmd = "wic create %s -e %s -o %s" % (wks.name, img, self.resultdir)
+                runCmd(cmd)
+                wksname = os.path.splitext(os.path.basename(wks.name))[0]
+                out = glob(os.path.join(self.resultdir, "%s-*.direct" % wksname))
+                self.assertEqual(1, len(out))
+                sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools')
+                # extract the content of the disk image to the temporary directory
+                cmd = "wic cp %s:1 %s -n %s" % (out[0], tmpdir, sysroot)
+                runCmd(cmd)
+                # check if the kernel is installed or not
+                kimgtype = get_bb_var('KERNEL_IMAGETYPE', img)
+                found = False
+                for file in os.listdir(tmpdir):
+                    if file == kimgtype:
+                        found = True
+                        break
+                self.assertTrue(
+                    found, "The kernel image '{}' was not found in the boot partition".format(kimgtype)
+                )
+
     def test_build_image_name(self):
         """Test wic create wictestdisk --image-name=core-image-minimal"""
         cmd = "wic create wictestdisk --image-name=core-image-minimal -o %s" % self.resultdir
@@ -748,6 +816,30 @@
 
         os.remove(wks_file)
 
+    def test_partition_hidden_attributes(self):
+        """Test --hidden wks option."""
+        wks_file = 'temp.wks'
+        sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools')
+        try:
+            with open(wks_file, 'w') as wks:
+                wks.write("""
+part / --source rootfs --fstype=ext4
+part / --source rootfs --fstype=ext4 --hidden
+bootloader --ptable gpt""")
+
+            runCmd("wic create %s -e core-image-minimal -o %s" \
+                                       % (wks_file, self.resultdir))
+            wicout = os.path.join(self.resultdir, "*.direct")
+
+            result = runCmd("%s/usr/sbin/sfdisk --part-attrs %s 1" % (sysroot, wicout))
+            self.assertEqual('', result.output)
+            result = runCmd("%s/usr/sbin/sfdisk --part-attrs %s 2" % (sysroot, wicout))
+            self.assertEqual('RequiredPartition', result.output)
+
+        finally:
+            os.remove(wks_file)
+
+
 class Wic2(WicTestCase):
 
     def test_bmap_short(self):
diff --git a/poky/meta/lib/patchtest/tests/test_patch.py b/poky/meta/lib/patchtest/tests/test_patch.py
index 65d0f93..d7187a0 100644
--- a/poky/meta/lib/patchtest/tests/test_patch.py
+++ b/poky/meta/lib/patchtest/tests/test_patch.py
@@ -6,6 +6,7 @@
 #
 
 import base
+import os
 import parse_signed_off_by
 import parse_upstream_status
 import pyparsing
@@ -87,7 +88,7 @@
                 if TestPatch.prog.search_string(payload):
                     break
             else:
-                self.fail('A patch file has been added without a Signed-off-by tag. Sign off the added patch file (%s)' % newpatch.path)
+                self.fail('A patch file has been added without a Signed-off-by tag: \'%s\'' % os.path.basename(newpatch.path))
 
     def test_cve_tag_format(self):
         for commit in TestPatch.commits:
diff --git a/poky/meta/recipes-connectivity/bind/bind_9.18.19.bb b/poky/meta/recipes-connectivity/bind/bind_9.18.20.bb
similarity index 97%
rename from poky/meta/recipes-connectivity/bind/bind_9.18.19.bb
rename to poky/meta/recipes-connectivity/bind/bind_9.18.20.bb
index 8124c5c..187685e 100644
--- a/poky/meta/recipes-connectivity/bind/bind_9.18.19.bb
+++ b/poky/meta/recipes-connectivity/bind/bind_9.18.20.bb
@@ -20,7 +20,7 @@
            file://0001-avoid-start-failure-with-bind-user.patch \
            "
 
-SRC_URI[sha256sum] = "115e09c05439bebade1d272eda08fa88eb3b60129edef690588c87a4d27612cc"
+SRC_URI[sha256sum] = "4b891ebf58d3f2a7ac3dd2682990f528a3448eaa1c992ddc5c141b8587a98ec5"
 
 UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
 # follow the ESV versions divisible by 2
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5.inc b/poky/meta/recipes-connectivity/bluez5/bluez5.inc
index e10158a..a23e4e5 100644
--- a/poky/meta/recipes-connectivity/bluez5/bluez5.inc
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5.inc
@@ -55,6 +55,7 @@
            file://0001-tests-add-a-target-for-building-tests-without-runnin.patch \
            file://0001-test-gatt-Fix-hung-issue.patch \
            file://0004-src-shared-util.c-include-linux-limits.h.patch \
+           file://0002-input-Fix-.device_probe-failing-if-SDP-record-is-not.patch \
            "
 S = "${WORKDIR}/bluez-${PV}"
 
diff --git a/poky/meta/recipes-connectivity/bluez5/bluez5/0002-input-Fix-.device_probe-failing-if-SDP-record-is-not.patch b/poky/meta/recipes-connectivity/bluez5/bluez5/0002-input-Fix-.device_probe-failing-if-SDP-record-is-not.patch
new file mode 100644
index 0000000..d088433
--- /dev/null
+++ b/poky/meta/recipes-connectivity/bluez5/bluez5/0002-input-Fix-.device_probe-failing-if-SDP-record-is-not.patch
@@ -0,0 +1,313 @@
+From 3a9c637010f8dc1ba3e8382abe01065761d4f5bb Mon Sep 17 00:00:00 2001
+From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
+Date: Tue, 10 Oct 2023 12:38:29 -0700
+Subject: [PATCH 02/40] input: Fix .device_probe failing if SDP record is not
+ found
+
+Due to changes introduced by 67a26abe53bf
+("profile: Add probe_on_discover flag") profiles may get probed when
+their profile UUID are discovered, rather than resolved, which means
+the SDP record may not be available.
+
+Fixes: https://github.com/bluez/bluez/issues/614
+
+Upstream-Status: Backport [https://github.com/bluez/bluez/commit/3a9c637010f8dc1ba3e8382abe01065761d4f5bb]
+---
+ profiles/input/device.c | 182 +++++++++++++++++++---------------------
+ 1 file changed, 84 insertions(+), 98 deletions(-)
+
+diff --git a/profiles/input/device.c b/profiles/input/device.c
+index e2ac6ea60..4a50ea992 100644
+--- a/profiles/input/device.c
++++ b/profiles/input/device.c
+@@ -60,7 +60,7 @@ struct input_device {
+ 	char			*path;
+ 	bdaddr_t		src;
+ 	bdaddr_t		dst;
+-	uint32_t		handle;
++	const sdp_record_t	*rec;
+ 	GIOChannel		*ctrl_io;
+ 	GIOChannel		*intr_io;
+ 	guint			ctrl_watch;
+@@ -754,7 +754,8 @@ static void epox_endian_quirk(unsigned char *data, int size)
+ 	}
+ }
+ 
+-static int create_hid_dev_name(sdp_record_t *rec, struct hidp_connadd_req *req)
++static int create_hid_dev_name(const sdp_record_t *rec,
++					struct hidp_connadd_req *req)
+ {
+ 	char sdesc[sizeof(req->name) / 2];
+ 
+@@ -776,7 +777,7 @@ static int create_hid_dev_name(sdp_record_t *rec, struct hidp_connadd_req *req)
+ 
+ /* See HID profile specification v1.0, "7.11.6 HIDDescriptorList" for details
+  * on the attribute format. */
+-static int extract_hid_desc_data(sdp_record_t *rec,
++static int extract_hid_desc_data(const sdp_record_t *rec,
+ 						struct hidp_connadd_req *req)
+ {
+ 	sdp_data_t *d;
+@@ -817,36 +818,40 @@ invalid_desc:
+ 	return -EINVAL;
+ }
+ 
+-static int extract_hid_record(sdp_record_t *rec, struct hidp_connadd_req *req)
++static int extract_hid_record(struct input_device *idev,
++					struct hidp_connadd_req *req)
+ {
+ 	sdp_data_t *pdlist;
+ 	uint8_t attr_val;
+ 	int err;
+ 
+-	err = create_hid_dev_name(rec, req);
++	if (!idev->rec)
++		return -ENOENT;
++
++	err = create_hid_dev_name(idev->rec, req);
+ 	if (err < 0)
+ 		DBG("No valid Service Name or Service Description found");
+ 
+-	pdlist = sdp_data_get(rec, SDP_ATTR_HID_PARSER_VERSION);
++	pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_PARSER_VERSION);
+ 	req->parser = pdlist ? pdlist->val.uint16 : 0x0100;
+ 
+-	pdlist = sdp_data_get(rec, SDP_ATTR_HID_DEVICE_SUBCLASS);
++	pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_DEVICE_SUBCLASS);
+ 	req->subclass = pdlist ? pdlist->val.uint8 : 0;
+ 
+-	pdlist = sdp_data_get(rec, SDP_ATTR_HID_COUNTRY_CODE);
++	pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_COUNTRY_CODE);
+ 	req->country = pdlist ? pdlist->val.uint8 : 0;
+ 
+-	pdlist = sdp_data_get(rec, SDP_ATTR_HID_VIRTUAL_CABLE);
++	pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_VIRTUAL_CABLE);
+ 	attr_val = pdlist ? pdlist->val.uint8 : 0;
+ 	if (attr_val)
+ 		req->flags |= (1 << HIDP_VIRTUAL_CABLE_UNPLUG);
+ 
+-	pdlist = sdp_data_get(rec, SDP_ATTR_HID_BOOT_DEVICE);
++	pdlist = sdp_data_get(idev->rec, SDP_ATTR_HID_BOOT_DEVICE);
+ 	attr_val = pdlist ? pdlist->val.uint8 : 0;
+ 	if (attr_val)
+ 		req->flags |= (1 << HIDP_BOOT_PROTOCOL_MODE);
+ 
+-	err = extract_hid_desc_data(rec, req);
++	err = extract_hid_desc_data(idev->rec, req);
+ 	if (err < 0)
+ 		return err;
+ 
+@@ -1035,11 +1040,6 @@ static gboolean encrypt_notify(GIOChannel *io, GIOCondition condition,
+ static int hidp_add_connection(struct input_device *idev)
+ {
+ 	struct hidp_connadd_req *req;
+-	sdp_record_t *rec;
+-	char src_addr[18], dst_addr[18];
+-	char filename[PATH_MAX];
+-	GKeyFile *key_file;
+-	char handle[11], *str;
+ 	GError *gerr = NULL;
+ 	int err;
+ 
+@@ -1049,33 +1049,7 @@ static int hidp_add_connection(struct input_device *idev)
+ 	req->flags     = 0;
+ 	req->idle_to   = idle_timeout;
+ 
+-	ba2str(&idev->src, src_addr);
+-	ba2str(&idev->dst, dst_addr);
+-
+-	snprintf(filename, PATH_MAX, STORAGEDIR "/%s/cache/%s", src_addr,
+-								dst_addr);
+-	sprintf(handle, "0x%8.8X", idev->handle);
+-
+-	key_file = g_key_file_new();
+-	if (!g_key_file_load_from_file(key_file, filename, 0, &gerr)) {
+-		error("Unable to load key file from %s: (%s)", filename,
+-								gerr->message);
+-		g_clear_error(&gerr);
+-	}
+-	str = g_key_file_get_string(key_file, "ServiceRecords", handle, NULL);
+-	g_key_file_free(key_file);
+-
+-	if (!str) {
+-		error("Rejected connection from unknown device %s", dst_addr);
+-		err = -EPERM;
+-		goto cleanup;
+-	}
+-
+-	rec = record_from_string(str);
+-	g_free(str);
+-
+-	err = extract_hid_record(rec, req);
+-	sdp_record_free(rec);
++	err = extract_hid_record(idev, req);
+ 	if (err < 0) {
+ 		error("Could not parse HID SDP record: %s (%d)", strerror(-err),
+ 									-err);
+@@ -1091,7 +1065,7 @@ static int hidp_add_connection(struct input_device *idev)
+ 
+ 	/* Make sure the device is bonded if required */
+ 	if (classic_bonded_only && !input_device_bonded(idev)) {
+-		error("Rejected connection from !bonded device %s", dst_addr);
++		error("Rejected connection from !bonded device %s", idev->path);
+ 		goto cleanup;
+ 	}
+ 
+@@ -1161,6 +1135,68 @@ static int connection_disconnect(struct input_device *idev, uint32_t flags)
+ 		return ioctl_disconnect(idev, flags);
+ }
+ 
++static bool is_device_sdp_disable(const sdp_record_t *rec)
++{
++	sdp_data_t *data;
++
++	data = sdp_data_get(rec, SDP_ATTR_HID_SDP_DISABLE);
++
++	return data && data->val.uint8;
++}
++
++static enum reconnect_mode_t hid_reconnection_mode(bool reconnect_initiate,
++						bool normally_connectable)
++{
++	if (!reconnect_initiate && !normally_connectable)
++		return RECONNECT_NONE;
++	else if (!reconnect_initiate && normally_connectable)
++		return RECONNECT_HOST;
++	else if (reconnect_initiate && !normally_connectable)
++		return RECONNECT_DEVICE;
++	else /* (reconnect_initiate && normally_connectable) */
++		return RECONNECT_ANY;
++}
++
++static void extract_hid_props(struct input_device *idev,
++					const sdp_record_t *rec)
++{
++	/* Extract HID connectability */
++	bool reconnect_initiate, normally_connectable;
++	sdp_data_t *pdlist;
++
++	/* HIDNormallyConnectable is optional and assumed FALSE if not
++	 * present.
++	 */
++	pdlist = sdp_data_get(rec, SDP_ATTR_HID_RECONNECT_INITIATE);
++	reconnect_initiate = pdlist ? pdlist->val.uint8 : TRUE;
++
++	pdlist = sdp_data_get(rec, SDP_ATTR_HID_NORMALLY_CONNECTABLE);
++	normally_connectable = pdlist ? pdlist->val.uint8 : FALSE;
++
++	/* Update local values */
++	idev->reconnect_mode =
++		hid_reconnection_mode(reconnect_initiate, normally_connectable);
++}
++
++static void input_device_update_rec(struct input_device *idev)
++{
++	struct btd_profile *p = btd_service_get_profile(idev->service);
++	const sdp_record_t *rec;
++
++	rec = btd_device_get_record(idev->device, p->remote_uuid);
++	if (!rec || idev->rec == rec)
++		return;
++
++	idev->rec = rec;
++	idev->disable_sdp = is_device_sdp_disable(rec);
++
++	/* Initialize device properties */
++	extract_hid_props(idev, rec);
++
++	if (idev->disable_sdp)
++		device_set_refresh_discovery(idev->device, false);
++}
++
+ static int input_device_connected(struct input_device *idev)
+ {
+ 	int err;
+@@ -1168,6 +1204,9 @@ static int input_device_connected(struct input_device *idev)
+ 	if (idev->intr_io == NULL || idev->ctrl_io == NULL)
+ 		return -ENOTCONN;
+ 
++	/* Attempt to update SDP record if it had changed */
++	input_device_update_rec(idev);
++
+ 	err = hidp_add_connection(idev);
+ 	if (err < 0)
+ 		return err;
+@@ -1411,74 +1450,21 @@ int input_device_disconnect(struct btd_service *service)
+ 	return 0;
+ }
+ 
+-static bool is_device_sdp_disable(const sdp_record_t *rec)
+-{
+-	sdp_data_t *data;
+-
+-	data = sdp_data_get(rec, SDP_ATTR_HID_SDP_DISABLE);
+-
+-	return data && data->val.uint8;
+-}
+-
+-static enum reconnect_mode_t hid_reconnection_mode(bool reconnect_initiate,
+-						bool normally_connectable)
+-{
+-	if (!reconnect_initiate && !normally_connectable)
+-		return RECONNECT_NONE;
+-	else if (!reconnect_initiate && normally_connectable)
+-		return RECONNECT_HOST;
+-	else if (reconnect_initiate && !normally_connectable)
+-		return RECONNECT_DEVICE;
+-	else /* (reconnect_initiate && normally_connectable) */
+-		return RECONNECT_ANY;
+-}
+-
+-static void extract_hid_props(struct input_device *idev,
+-					const sdp_record_t *rec)
+-{
+-	/* Extract HID connectability */
+-	bool reconnect_initiate, normally_connectable;
+-	sdp_data_t *pdlist;
+-
+-	/* HIDNormallyConnectable is optional and assumed FALSE
+-	* if not present. */
+-	pdlist = sdp_data_get(rec, SDP_ATTR_HID_RECONNECT_INITIATE);
+-	reconnect_initiate = pdlist ? pdlist->val.uint8 : TRUE;
+-
+-	pdlist = sdp_data_get(rec, SDP_ATTR_HID_NORMALLY_CONNECTABLE);
+-	normally_connectable = pdlist ? pdlist->val.uint8 : FALSE;
+-
+-	/* Update local values */
+-	idev->reconnect_mode =
+-		hid_reconnection_mode(reconnect_initiate, normally_connectable);
+-}
+-
+ static struct input_device *input_device_new(struct btd_service *service)
+ {
+ 	struct btd_device *device = btd_service_get_device(service);
+-	struct btd_profile *p = btd_service_get_profile(service);
+ 	const char *path = device_get_path(device);
+-	const sdp_record_t *rec = btd_device_get_record(device, p->remote_uuid);
+ 	struct btd_adapter *adapter = device_get_adapter(device);
+ 	struct input_device *idev;
+ 
+-	if (!rec)
+-		return NULL;
+-
+ 	idev = g_new0(struct input_device, 1);
+ 	bacpy(&idev->src, btd_adapter_get_address(adapter));
+ 	bacpy(&idev->dst, device_get_address(device));
+ 	idev->service = btd_service_ref(service);
+ 	idev->device = btd_device_ref(device);
+ 	idev->path = g_strdup(path);
+-	idev->handle = rec->handle;
+-	idev->disable_sdp = is_device_sdp_disable(rec);
+-
+-	/* Initialize device properties */
+-	extract_hid_props(idev, rec);
+ 
+-	if (idev->disable_sdp)
+-		device_set_refresh_discovery(device, false);
++	input_device_update_rec(idev);
+ 
+ 	return idev;
+ }
+-- 
+2.42.0
+
diff --git a/poky/meta/recipes-connectivity/ofono/ofono_2.1.bb b/poky/meta/recipes-connectivity/ofono/ofono_2.2.bb
similarity index 95%
rename from poky/meta/recipes-connectivity/ofono/ofono_2.1.bb
rename to poky/meta/recipes-connectivity/ofono/ofono_2.2.bb
index 0ecac9e..4e60f19 100644
--- a/poky/meta/recipes-connectivity/ofono/ofono_2.1.bb
+++ b/poky/meta/recipes-connectivity/ofono/ofono_2.2.bb
@@ -13,7 +13,7 @@
     file://0001-mbim-add-an-optional-TEMP_FAILURE_RETRY-macro-copy.patch \
     file://0002-mbim-Fix-build-with-ell-0.39-by-restoring-unlikely-m.patch \
 "
-SRC_URI[sha256sum] = "92913dcce9a15cac2174daca249457716a0ec036878d22035e83af0e19e79c52"
+SRC_URI[sha256sum] = "5e13121c0f885a81ad882db065549ea13477abbcc219f150b38a8d2ac92521de"
 
 inherit autotools pkgconfig update-rc.d systemd gobject-introspection-data
 
diff --git a/poky/meta/recipes-connectivity/openssl/openssl/0001-Link-libatomic-on-riscv32.patch b/poky/meta/recipes-connectivity/openssl/openssl/0001-Link-libatomic-on-riscv32.patch
deleted file mode 100644
index 2c54d8f..0000000
--- a/poky/meta/recipes-connectivity/openssl/openssl/0001-Link-libatomic-on-riscv32.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 73266b8573c71e6720453c4c5a9e6e8fa4daec65 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 21 Oct 2023 13:03:52 -0700
-Subject: [PATCH] Link libatomic on riscv32
-
-GCC toolchains on linux are not able to build libcrypto without linking
-to libatomic as it does not have all needed atomics implemented as
-intrinsics
-
-Fixes errors like
-
-| ld: ./libcrypto.so: undefined reference to `__atomic_is_lock_free'
-
-Upstream-Status: Submitted [https://github.com/openssl/openssl/pull/22460]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- Configurations/10-main.conf | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Configurations/10-main.conf b/Configurations/10-main.conf
-index 46094f59c2..d1a15a1152 100644
---- a/Configurations/10-main.conf
-+++ b/Configurations/10-main.conf
-@@ -816,7 +816,7 @@ my %targets = (
-     },
- 
-     "linux32-riscv32" => {
--        inherit_from     => [ "linux-generic32"],
-+        inherit_from     => [ "linux-latomic" ],
-         perlasm_scheme   => "linux32",
-         asm_arch         => 'riscv32',
-     },
--- 
-2.42.0
-
diff --git a/poky/meta/recipes-connectivity/openssl/openssl/fix_random_labels.patch b/poky/meta/recipes-connectivity/openssl/openssl/fix_random_labels.patch
deleted file mode 100644
index 78dcd81..0000000
--- a/poky/meta/recipes-connectivity/openssl/openssl/fix_random_labels.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-The perl script adds random suffixes to the local function names to ensure
-it doesn't clash with other parts of openssl. Set the random number seed
-to something predictable so the assembler files are generated consistently
-and our own reproducible builds tests pass.
-
-Upstream-Status: Pending
-Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-
-Index: openssl-3.1.0/crypto/modes/asm/aes-gcm-avx512.pl
-===================================================================
---- openssl-3.1.0.orig/crypto/modes/asm/aes-gcm-avx512.pl
-+++ openssl-3.1.0/crypto/modes/asm/aes-gcm-avx512.pl
-@@ -191,6 +191,9 @@ my $CTX_OFFSET_HTable    = (16 * 6);
- # ;;; Helper functions
- # ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
- 
-+# Ensure the local labels are reproduicble
-+srand(10000);
-+
- # ; Generates "random" local labels
- sub random_string() {
-   my @chars  = ('a' .. 'z', 'A' .. 'Z', '0' .. '9', '_');
diff --git a/poky/meta/recipes-connectivity/openssl/openssl_3.1.4.bb b/poky/meta/recipes-connectivity/openssl/openssl_3.2.0.bb
similarity index 97%
rename from poky/meta/recipes-connectivity/openssl/openssl_3.1.4.bb
rename to poky/meta/recipes-connectivity/openssl/openssl_3.2.0.bb
index c6c70a1..ab0562b 100644
--- a/poky/meta/recipes-connectivity/openssl/openssl_3.1.4.bb
+++ b/poky/meta/recipes-connectivity/openssl/openssl_3.2.0.bb
@@ -11,8 +11,6 @@
            file://run-ptest \
            file://0001-buildinfo-strip-sysroot-and-debug-prefix-map-from-co.patch \
            file://0001-Configure-do-not-tweak-mips-cflags.patch \
-           file://fix_random_labels.patch \
-           file://0001-Link-libatomic-on-riscv32.patch \
            file://0001-Added-handshake-history-reporting-when-test-fails.patch \
            "
 
@@ -20,7 +18,7 @@
            file://environment.d-openssl.sh \
            "
 
-SRC_URI[sha256sum] = "840af5366ab9b522bde525826be3ef0fb0af81c6a9ebd84caa600fea1731eee3"
+SRC_URI[sha256sum] = "14c826f07c7e433706fb5c69fa9e25dab95684844b4c962a2cf1bf183eb4690e"
 
 inherit lib_package multilib_header multilib_script ptest perlnative manpages
 MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash"
diff --git a/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.91.bb b/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.92.bb
similarity index 97%
rename from poky/meta/recipes-connectivity/resolvconf/resolvconf_1.91.bb
rename to poky/meta/recipes-connectivity/resolvconf/resolvconf_1.92.bb
index 09a0ab7..226cb7e 100644
--- a/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.91.bb
+++ b/poky/meta/recipes-connectivity/resolvconf/resolvconf_1.92.bb
@@ -15,7 +15,7 @@
            file://0001-avoid-using-m-option-for-readlink.patch \
            "
 
-SRCREV = "859209d573e7aec0e95d812c6b52444591a628d1"
+SRCREV = "86047276c80705c51859a19f0c472102e0822f34"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-core/busybox/busybox/musl.cfg b/poky/meta/recipes-core/busybox/busybox/musl.cfg
index 6fffc91..ba63def 100644
--- a/poky/meta/recipes-core/busybox/busybox/musl.cfg
+++ b/poky/meta/recipes-core/busybox/busybox/musl.cfg
@@ -7,5 +7,4 @@
 # CONFIG_FEATURE_INETD_RPC is not set
 # CONFIG_SELINUXENABLED is not set
 # CONFIG_FEATURE_MOUNT_NFS is not set
-# CONFIG_FEATURE_UTMP is not set
 
diff --git a/poky/meta/recipes-core/ell/ell_0.59.bb b/poky/meta/recipes-core/ell/ell_0.60.bb
similarity index 89%
rename from poky/meta/recipes-core/ell/ell_0.59.bb
rename to poky/meta/recipes-core/ell/ell_0.60.bb
index 0483dbe..4e414f3 100644
--- a/poky/meta/recipes-core/ell/ell_0.59.bb
+++ b/poky/meta/recipes-core/ell/ell_0.60.bb
@@ -15,7 +15,7 @@
 inherit autotools pkgconfig
 
 SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "370dc2b7c73cd57856017180a2a70a15ca1b0183bfd453b3cffe2d707c37da3d"
+SRC_URI[sha256sum] = "61cec2df694b548e51afa3e7ffd1e1ad31a9fea7bedb93a3a3cc60894390c70f"
 
 do_configure:prepend () {
     mkdir -p ${S}/build-aux
diff --git a/poky/meta/recipes-core/gettext/gettext-minimal-native_0.22.bb b/poky/meta/recipes-core/gettext/gettext-minimal-native_0.22.3.bb
similarity index 100%
rename from poky/meta/recipes-core/gettext/gettext-minimal-native_0.22.bb
rename to poky/meta/recipes-core/gettext/gettext-minimal-native_0.22.3.bb
diff --git a/poky/meta/recipes-core/gettext/gettext-sources.inc b/poky/meta/recipes-core/gettext/gettext-sources.inc
index b4fb647..31dabfc 100644
--- a/poky/meta/recipes-core/gettext/gettext-sources.inc
+++ b/poky/meta/recipes-core/gettext/gettext-sources.inc
@@ -1,4 +1,4 @@
 HOMEPAGE = "http://www.gnu.org/software/gettext/gettext.html"
 SRC_URI = "${GNU_MIRROR}/gettext/gettext-${PV}.tar.gz \
            "
-SRC_URI[sha256sum] = "49f089be11b490170bbf09ed2f51e5f5177f55be4cc66504a5861820e0fb06ab"
+SRC_URI[sha256sum] = "839a260b2314ba66274dae7d245ec19fce190a3aa67869bf31354cb558df42c7"
diff --git a/poky/meta/recipes-core/gettext/gettext_0.22.bb b/poky/meta/recipes-core/gettext/gettext_0.22.3.bb
similarity index 100%
rename from poky/meta/recipes-core/gettext/gettext_0.22.bb
rename to poky/meta/recipes-core/gettext/gettext_0.22.3.bb
diff --git a/poky/meta/recipes-core/glib-2.0/glib.inc b/poky/meta/recipes-core/glib-2.0/glib.inc
index cec06b2..fbf3a39 100644
--- a/poky/meta/recipes-core/glib-2.0/glib.inc
+++ b/poky/meta/recipes-core/glib-2.0/glib.inc
@@ -113,6 +113,11 @@
         mkdir -p ${D}${libdir}/gio/modules
 }
 
+do_install:append:class-native () {
+	# Link gio-querymodules into ${bindir} as otherwise tools like meson won't find it
+        ln -rs ${D}${libexecdir}/gio-querymodules ${D}${bindir}
+}
+
 do_install:append:class-target () {
 	# Tests are only installed on targets, not native builds.  Separating this out
 	# keeps glib-2.0-native from depending on DISTRO_FEATURES
diff --git a/poky/meta/recipes-core/glibc/glibc-version.inc b/poky/meta/recipes-core/glibc/glibc-version.inc
index 19b98bc..ccf9d50 100644
--- a/poky/meta/recipes-core/glibc/glibc-version.inc
+++ b/poky/meta/recipes-core/glibc/glibc-version.inc
@@ -1,6 +1,6 @@
 SRCBRANCH ?= "release/2.38/master"
 PV = "2.38+git"
-SRCREV_glibc ?= "750a45a783906a19591fb8ff6b7841470f1f5701"
+SRCREV_glibc ?= "1e04dcec491bd8f48b5b74ce3e8414132578a645"
 SRCREV_localedef ?= "e0eca29583b9e0f62645c4316ced93cf4e4e26e1"
 
 GLIBC_GIT_URI ?= "git://sourceware.org/git/glibc.git;protocol=https"
diff --git a/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb b/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb
index 1c08c7f..7bb0b27 100644
--- a/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb
+++ b/poky/meta/recipes-core/images/core-image-minimal-initramfs.bb
@@ -17,6 +17,9 @@
 # Do not pollute the initrd image with rootfs features
 IMAGE_FEATURES = ""
 
+# Don't allow the initramfs to contain a kernel
+PACKAGE_EXCLUDE = "kernel-image-*"
+
 export IMAGE_BASENAME = "${MLPREFIX}core-image-minimal-initramfs"
 IMAGE_NAME_SUFFIX ?= ""
 IMAGE_LINGUAS = ""
diff --git a/poky/meta/recipes-core/initscripts/init-system-helpers_1.65.2.bb b/poky/meta/recipes-core/initscripts/init-system-helpers_1.66.bb
similarity index 96%
rename from poky/meta/recipes-core/initscripts/init-system-helpers_1.65.2.bb
rename to poky/meta/recipes-core/initscripts/init-system-helpers_1.66.bb
index 1fc23ac..64e08aa 100644
--- a/poky/meta/recipes-core/initscripts/init-system-helpers_1.65.2.bb
+++ b/poky/meta/recipes-core/initscripts/init-system-helpers_1.66.bb
@@ -16,7 +16,7 @@
 LICENSE = "BSD-3-Clause & GPL-2.0-only"
 LIC_FILES_CHKSUM = "file://debian/copyright;md5=c4ec20aa158fa9de26ee1accf78dcaae"
 
-SRCREV = "2f446b69db728b2bda68270a9b81de88102e1fdd"
+SRCREV = "a5439f465dc1d1d4e12329208dc321fb806009f4"
 SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https;branch=master"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))(?!_exp)"
 
diff --git a/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb b/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
index d0321f1..9ab8dc6 100644
--- a/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
+++ b/poky/meta/recipes-core/meta/cve-update-nvd2-native.bb
@@ -26,8 +26,8 @@
 # Use a negative value to skip the update
 CVE_DB_UPDATE_INTERVAL ?= "86400"
 
-# Timeout for blocking socket operations, such as the connection attempt.
-CVE_SOCKET_TIMEOUT ?= "60"
+# Number of attmepts for each http query to nvd server before giving up
+CVE_DB_UPDATE_ATTEMPTS ?= "5"
 
 CVE_DB_TEMP_FILE ?= "${CVE_CHECK_DB_DIR}/temp_nvdcve_2.db"
 
@@ -114,7 +114,7 @@
     if os.path.exists(db_tmp_file):
         os.remove(db_tmp_file)
 
-def nvd_request_next(url, api_key, args):
+def nvd_request_next(url, attempts, api_key, args):
     """
     Request next part of the NVD dabase
     """
@@ -130,7 +130,7 @@
         request.add_header("apiKey", api_key)
     bb.note("Requesting %s" % request.full_url)
 
-    for attempt in range(5):
+    for attempt in range(attempts):
         try:
             r = urllib.request.urlopen(request)
 
@@ -186,10 +186,11 @@
         index = 0
         url = d.getVar("NVDCVE_URL")
         api_key = d.getVar("NVDCVE_API_KEY") or None
+        attempts = int(d.getVar("CVE_DB_UPDATE_ATTEMPTS"))
 
         while True:
             req_args['startIndex'] = index
-            raw_data = nvd_request_next(url, api_key, req_args)
+            raw_data = nvd_request_next(url, attempts, api_key, req_args)
             if raw_data is None:
                 # We haven't managed to download data
                 return False
diff --git a/poky/meta/recipes-core/systemd/systemd-boot_254.4.bb b/poky/meta/recipes-core/systemd/systemd-boot_254.4.bb
index 4ee25ee..2b43ccf 100644
--- a/poky/meta/recipes-core/systemd/systemd-boot_254.4.bb
+++ b/poky/meta/recipes-core/systemd/systemd-boot_254.4.bb
@@ -8,6 +8,10 @@
 inherit meson pkgconfig gettext
 inherit deploy
 
+SRC_URI += " \
+           file://0030-meson-Pass-all-static-pie-args-to-linker.patch \
+           "
+
 LDFLAGS:prepend = "${@ " ".join(d.getVar('LD').split()[1:])} "
 
 EFI_LD = "bfd"
diff --git a/poky/meta/recipes-core/systemd/systemd-compat-units.bb b/poky/meta/recipes-core/systemd/systemd-compat-units.bb
index 253bc9f..c03d97f 100644
--- a/poky/meta/recipes-core/systemd/systemd-compat-units.bb
+++ b/poky/meta/recipes-core/systemd/systemd-compat-units.bb
@@ -27,7 +27,8 @@
 
 pkg_postinst:${PN} () {
 
-	cd $D${sysconfdir}/init.d  ||  exit 0
+	test -d $D${sysconfdir}/init.d  ||  exit 0
+	cd $D${sysconfdir}/init.d
 
 	echo "Disabling the following sysv scripts: "
 
diff --git a/poky/meta/recipes-core/systemd/systemd/0030-meson-Pass-all-static-pie-args-to-linker.patch b/poky/meta/recipes-core/systemd/systemd/0030-meson-Pass-all-static-pie-args-to-linker.patch
new file mode 100644
index 0000000..8e56323
--- /dev/null
+++ b/poky/meta/recipes-core/systemd/systemd/0030-meson-Pass-all-static-pie-args-to-linker.patch
@@ -0,0 +1,35 @@
+From f85a387a67900b02c69abccb88c2ef7191c67277 Mon Sep 17 00:00:00 2001
+From: Jan Janssen <medhefgo@web.de>
+Date: Sun, 1 Oct 2023 09:55:48 +0200
+Subject: [PATCH] meson: Pass all -static-pie args to linker
+
+Fixes: #29381
+
+Upstream-Status: Backport [https://github.com/systemd/systemd/commit/cecbb162a3134b43d2ca160e13198c73ff34c3ef]
+Signed-off-by: Viswanath Kraleti <quic_vkraleti@quicinc.com>
+---
+ src/boot/efi/meson.build | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+diff --git a/src/boot/efi/meson.build b/src/boot/efi/meson.build
+index 2773eaf286..9a60a57329 100644
+--- a/src/boot/efi/meson.build
++++ b/src/boot/efi/meson.build
+@@ -161,9 +161,14 @@ efi_c_ld_args = [
+         '-Wl,--entry=efi_main',
+         '-Wl,--fatal-warnings',
+ 
+-        # These flags should be passed by -static-pie, but seem to be missing sometimes.
+-        '-Wl,--no-dynamic-linker',
+-        '-z', 'text',
++        # These flags should be passed by -static-pie, but for whatever reason the flag translation
++        # is not enabled on all architectures. Not passing `-static` would just allow the linker to
++        # use dynamic libraries, (which we can't/don't use anyway). But if `-pie` is missing and the
++        # gcc build does not default to `-pie` we get a regular (no-pie) binary that will be
++        # rightfully rejected by elf2efi. Note that meson also passes `-pie` to the linker driver,
++        # but it is overridden by our `-static-pie`. We also need to pass these directly to the
++        # linker as `-static`+`-pie` seem to get translated differently.
++        '-Wl,-static,-pie,--no-dynamic-linker,-z,text',
+ 
+         # EFI has 4KiB pages.
+         '-z', 'common-page-size=4096',
diff --git a/poky/meta/recipes-core/systemd/systemd_254.4.bb b/poky/meta/recipes-core/systemd/systemd_254.4.bb
index ecf693e..4d68a32 100644
--- a/poky/meta/recipes-core/systemd/systemd_254.4.bb
+++ b/poky/meta/recipes-core/systemd/systemd_254.4.bb
@@ -206,7 +206,7 @@
 PACKAGECONFIG[sysext] = "-Dsysext=true, -Dsysext=false"
 PACKAGECONFIG[sysusers] = "-Dsysusers=true,-Dsysusers=false"
 PACKAGECONFIG[sysvinit] = "-Dsysvinit-path=${sysconfdir}/init.d -Dsysvrcnd-path=${sysconfdir},-Dsysvinit-path= -Dsysvrcnd-path=,,systemd-compat-units update-rc.d"
-# When enabled use reproducble build timestamp if set as time epoch,
+# When enabled use reproducible build timestamp if set as time epoch,
 # or build time if not. When disabled, time epoch is unset.
 def build_epoch(d):
     epoch = d.getVar('SOURCE_DATE_EPOCH') or "-1"
diff --git a/poky/meta/recipes-core/udev/eudev/0001-Export-dummies-for.patch b/poky/meta/recipes-core/udev/eudev/0001-Export-dummies-for.patch
deleted file mode 100644
index 21fbf0f..0000000
--- a/poky/meta/recipes-core/udev/eudev/0001-Export-dummies-for.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 45634cc0f09ea354be7efce2ae3d3fa8ffc181ec Mon Sep 17 00:00:00 2001
-From: Boian Bonev <bbonev@ipacct.com>
-Date: Fri, 11 Aug 2023 23:14:02 +0000
-Subject: [PATCH] Export dummies for
-
- - udev_device_has_current_tag
- - udev_device_get_current_tags_list_entry
-
-since the current eudev device database does not support the concept of
-current tags
-
-Upstream-Status: Submitted [https://github.com/eudev-project/eudev/pull/253]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- src/libudev/libudev-device.c | 11 +++++++++++
- src/libudev/libudev.h        |  2 ++
- src/libudev/libudev.sym      |  6 ++++++
- 3 files changed, 19 insertions(+)
-
-diff --git a/src/libudev/libudev-device.c b/src/libudev/libudev-device.c
-index ac67ce8..7d7a662 100644
---- a/src/libudev/libudev-device.c
-+++ b/src/libudev/libudev-device.c
-@@ -1819,6 +1819,12 @@ _public_ struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_dev
-         return udev_list_get_entry(&udev_device->tags_list);
- }
- 
-+_public_ struct udev_list_entry *udev_device_get_current_tags_list_entry(struct udev_device *udev_device)
-+{
-+        // TODO: eudev database does not support current tags
-+        return udev_device_get_tags_list_entry(udev_device);
-+}
-+
- /**
-  * udev_device_has_tag:
-  * @udev_device: udev device
-@@ -1842,6 +1848,11 @@ _public_ int udev_device_has_tag(struct udev_device *udev_device, const char *ta
-         return false;
- }
- 
-+_public_ int udev_device_has_current_tag(struct udev_device *udev_device, const char *tag) {
-+        // TODO: eudev database does not support current tags
-+        return udev_device_has_tag(udev_device, tag);
-+}
-+
- #define ENVP_SIZE                        128
- #define MONITOR_BUF_SIZE                4096
- static int update_envp_monitor_buf(struct udev_device *udev_device)
-diff --git a/src/libudev/libudev.h b/src/libudev/libudev.h
-index 8491d2b..0202964 100644
---- a/src/libudev/libudev.h
-+++ b/src/libudev/libudev.h
-@@ -100,6 +100,7 @@ int udev_device_get_is_initialized(struct udev_device *udev_device);
- struct udev_list_entry *udev_device_get_devlinks_list_entry(struct udev_device *udev_device);
- struct udev_list_entry *udev_device_get_properties_list_entry(struct udev_device *udev_device);
- struct udev_list_entry *udev_device_get_tags_list_entry(struct udev_device *udev_device);
-+struct udev_list_entry *udev_device_get_current_tags_list_entry(struct udev_device *udev_device);
- struct udev_list_entry *udev_device_get_sysattr_list_entry(struct udev_device *udev_device);
- const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key);
- const char *udev_device_get_driver(struct udev_device *udev_device);
-@@ -110,6 +111,7 @@ unsigned long long int udev_device_get_usec_since_initialized(struct udev_device
- const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const char *sysattr);
- int udev_device_set_sysattr_value(struct udev_device *udev_device, const char *sysattr, char *value);
- int udev_device_has_tag(struct udev_device *udev_device, const char *tag);
-+int udev_device_has_current_tag(struct udev_device *udev_device, const char *tag);
- 
- /*
-  * udev_monitor
-diff --git a/src/libudev/libudev.sym b/src/libudev/libudev.sym
-index 76726fc..d56c2ae 100644
---- a/src/libudev/libudev.sym
-+++ b/src/libudev/libudev.sym
-@@ -118,3 +118,9 @@ global:
-         udev_queue_flush;
-         udev_queue_get_fd;
- } LIBUDEV_199;
-+
-+LIBUDEV_247 {
-+global:
-+        udev_device_has_current_tag;
-+        udev_device_get_current_tags_list_entry;
-+} LIBUDEV_215;
diff --git a/poky/meta/recipes-core/udev/eudev/0002-Bump-udev-version-to-251.patch b/poky/meta/recipes-core/udev/eudev/0002-Bump-udev-version-to-251.patch
deleted file mode 100644
index 520cc38..0000000
--- a/poky/meta/recipes-core/udev/eudev/0002-Bump-udev-version-to-251.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 7a66d4fe8aac8c8697c3cecb0c189e22524fbc98 Mon Sep 17 00:00:00 2001
-From: Boian Bonev <bbonev@ipacct.com>
-Date: Fri, 11 Aug 2023 22:08:27 +0000
-Subject: [PATCH] Bump udev version to 251
-
-Upstream-Status: Submitted [https://github.com/eudev-project/eudev/pull/253]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index 3e31b0e..069fdfb 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1,6 +1,6 @@
- AC_PREREQ([2.68])
- AC_INIT([eudev],[3.2.12],[https://github.com/gentoo/eudev/issues])
--AC_SUBST(UDEV_VERSION, 243)
-+AC_SUBST(UDEV_VERSION, 251)
- AC_CONFIG_SRCDIR([src/udev/udevd.c])
- 
- AC_USE_SYSTEM_EXTENSIONS
diff --git a/poky/meta/recipes-core/udev/eudev_3.2.12.bb b/poky/meta/recipes-core/udev/eudev_3.2.14.bb
similarity index 93%
rename from poky/meta/recipes-core/udev/eudev_3.2.12.bb
rename to poky/meta/recipes-core/udev/eudev_3.2.14.bb
index e19c6c0..d075869 100644
--- a/poky/meta/recipes-core/udev/eudev_3.2.12.bb
+++ b/poky/meta/recipes-core/udev/eudev_3.2.14.bb
@@ -12,11 +12,9 @@
 SRC_URI = "${GITHUB_BASE_URI}/download/v${PV}/${BP}.tar.gz \
            file://init \
            file://local.rules \
-           file://0001-Export-dummies-for.patch \
-           file://0002-Bump-udev-version-to-251.patch \
            "
 
-SRC_URI[sha256sum] = "ccdd64ec3c381d3c3ed0e99d2e70d1f62988c7763de89ca7bdffafa5eacb9ad8"
+SRC_URI[sha256sum] = "8da4319102f24abbf7fff5ce9c416af848df163b29590e666d334cc1927f006f"
 
 GITHUB_BASE_URI = "https://github.com/eudev-project/eudev/releases"
 
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0001-mention-prototypes-more-prominently-in-NEWS.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0001-mention-prototypes-more-prominently-in-NEWS.patch
deleted file mode 100644
index 3faf6f0..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0001-mention-prototypes-more-prominently-in-NEWS.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 5ffc09fca39de051537fbebd7c6c33d5255a520f Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Mon, 27 Mar 2023 18:10:36 -0700
-Subject: [PATCH 01/29] mention prototypes more prominently in NEWS
-
-* NEWS: Mention the function prototype issue early.
-(From a suggestion by Zack Weinberg.)
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- NEWS | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/NEWS b/NEWS
-index cf01ee210..d64648c6f 100644
---- a/NEWS
-+++ b/NEWS
-@@ -4,6 +4,14 @@ GNU Autoconf NEWS - User visible changes.
- 
- ** Backward incompatibilities
- 
-+*** AC_CHECK_FUNC and similar macros now use function prototypes.
-+  AC_CHECK_FUNC and and similar macros now use C declarations with
-+  function prototypes, a feature introduced in C89.  The new approach
-+  should work better with C23, which removed the non-prototyped K&R
-+  style that AC_CHECK_FUNC previously used.  However, this change
-+  means Autoconf no longer supports pre-1989 C compilers, as they do
-+  not support function prototypes.
-+
- *** Autoconf now requires perl 5.10 (2007) or later.
-   Generated 'configure' scripts continue to run without perl.
- 
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0002-build-run-make-fetch-which-updated-these.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0002-build-run-make-fetch-which-updated-these.patch
deleted file mode 100644
index 35f324c..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0002-build-run-make-fetch-which-updated-these.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From e2220ed33e69d8bc6504e3f6279894afe33a99a5 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Wed, 29 Mar 2023 12:59:09 -0700
-Subject: [PATCH 02/29] build: run "make fetch", which updated these:
-
-* build-aux/texinfo.tex: Update from texinfo.
-* lib/Autom4te/FileUtils.pm: Update from automake.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- build-aux/texinfo.tex     | 50 +++++++++++++++++++++------------------
- lib/Autom4te/FileUtils.pm |  5 +++-
- 2 files changed, 31 insertions(+), 24 deletions(-)
-
-diff --git a/build-aux/texinfo.tex b/build-aux/texinfo.tex
-index d25161109..55a002d27 100644
---- a/build-aux/texinfo.tex
-+++ b/build-aux/texinfo.tex
-@@ -3,7 +3,7 @@
- % Load plain if necessary, i.e., if running under initex.
- \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
- %
--\def\texinfoversion{2023-03-21.06}
-+\def\texinfoversion{2023-03-27.21}
- %
- % Copyright 1985, 1986, 1988, 1990-2023 Free Software Foundation, Inc.
- %
-@@ -1102,27 +1102,33 @@ where each line of input produces a line of output.}
- 
- % Output page labels information.
- % See PDF reference v.1.7 p.594, section 8.3.1.
-+% Page label ranges must be increasing.
- \ifpdf
- \def\pagelabels{%
-   \def\title{0 << /P (T-) /S /D >>}%
--  \edef\roman{\the\romancount << /S /r >>}%
--  \edef\arabic{\the\arabiccount << /S /D >>}%
-   %
--  % Page label ranges must be increasing.  Remove any duplicates.
--  % (There is a slight chance of this being wrong if e.g. there is
--  % a @contents but no @titlepage, etc.)
--  %
--  \ifnum\romancount=0 \def\roman{}\fi
--  \ifnum\arabiccount=0 \def\title{}%
--  \else
--    \ifnum\romancount=\arabiccount \def\roman{}\fi
--  \fi
--  %
--  \ifnum\romancount<\arabiccount
--    \pdfcatalog{/PageLabels << /Nums [\title \roman \arabic ] >> }\relax
-+  % support @contents at very end of document
-+  \ifnum\contentsendcount=\pagecount
-+    \ifnum\arabiccount<\romancount
-+      \pdfcatalog{/PageLabels << /Nums
-+                  [\title
-+                   \the\arabiccount << /S /D >>
-+                   \the\romancount << /S /r >>
-+                  ] >> }\relax
-+    \fi
-+  % no contents in document
-+  \else\ifnum\contentsendcount=0
-+    \pdfcatalog{/PageLabels << /Nums
-+                [\title
-+                 \the\arabiccount << /S /D >>
-+                ] >> }\relax
-   \else
--    \pdfcatalog{/PageLabels << /Nums [\title \arabic \roman ] >> }\relax
--  \fi
-+    \pdfcatalog{/PageLabels << /Nums
-+                [\title
-+                 \the\romancount << /S /r >>
-+                 \the\contentsendcount << /S /D >>
-+                ] >> }\relax
-+  \fi\fi
- }
- \else
-   \let\pagelabels\relax
-@@ -1131,6 +1137,8 @@ where each line of input produces a line of output.}
- \newcount\pagecount \pagecount=0
- \newcount\romancount \romancount=0
- \newcount\arabiccount \arabiccount=0
-+\newcount\contentsendcount \contentsendcount=0
-+
- \ifpdf
-   \let\ptxadvancepageno\advancepageno
-   \def\advancepageno{%
-@@ -6809,12 +6817,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
- % Get ready to use Arabic numerals again
- \def\contentsendroman{%
-   \lastnegativepageno = \pageno
--  \global\pageno = \savepageno
--  %
--  % If \romancount > \arabiccount, the contents are at the end of the
--  % document.  Otherwise, advance where the Arabic numerals start for
--  % the page numbers.
--  \ifnum\romancount>\arabiccount\else\global\arabiccount=\pagecount\fi
-+  \global\pageno=1
-+  \contentsendcount = \pagecount
- }
- 
- % Typeset the label for a chapter or appendix for the short contents.
-diff --git a/lib/Autom4te/FileUtils.pm b/lib/Autom4te/FileUtils.pm
-index ab58b9de4..2468fe6d8 100644
---- a/lib/Autom4te/FileUtils.pm
-+++ b/lib/Autom4te/FileUtils.pm
-@@ -39,9 +39,12 @@ use strict;
- use warnings FATAL => 'all';
- 
- use Exporter;
--use Time::HiRes qw(stat);
- use IO::File;
- 
-+# use sub-second resolution timestamps if available,
-+# carry on with one-second resolution timestamps if that is all we have
-+BEGIN { eval { require Time::HiRes; import Time::HiRes qw(stat) } }
-+
- use Autom4te::Channels;
- use Autom4te::ChannelDefs;
- 
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0003-NEWS-Tighten-up-wording.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0003-NEWS-Tighten-up-wording.patch
deleted file mode 100644
index 76c37a0..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0003-NEWS-Tighten-up-wording.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From e05aa447945c0d72ad924fd89a28830cf1a0f8d3 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Fri, 31 Mar 2023 10:37:57 -0700
-Subject: [PATCH 03/29] * NEWS: Tighten up wording.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- NEWS | 4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/NEWS b/NEWS
-index d64648c6f..884e46f45 100644
---- a/NEWS
-+++ b/NEWS
-@@ -5,9 +5,7 @@ GNU Autoconf NEWS - User visible changes.
- ** Backward incompatibilities
- 
- *** AC_CHECK_FUNC and similar macros now use function prototypes.
--  AC_CHECK_FUNC and and similar macros now use C declarations with
--  function prototypes, a feature introduced in C89.  The new approach
--  should work better with C23, which removed the non-prototyped K&R
-+  This should work better with C23, which removed the non-prototyped K&R
-   style that AC_CHECK_FUNC previously used.  However, this change
-   means Autoconf no longer supports pre-1989 C compilers, as they do
-   not support function prototypes.
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0004-Cater-to-programs-misusing-AC_EGREP_HEADER.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0004-Cater-to-programs-misusing-AC_EGREP_HEADER.patch
deleted file mode 100644
index 1b30d99..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0004-Cater-to-programs-misusing-AC_EGREP_HEADER.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 232cab527897bcdf4d55492d41af73d31905bda5 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Fri, 31 Mar 2023 10:46:20 -0700
-Subject: [PATCH 04/29] Cater to programs misusing AC_EGREP_HEADER
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Problem reported by Frederic Berat in:
-https://lists.gnu.org/archive/html/autoconf/2022-11/msg00127.html
-* lib/autoconf/programs.m4 (AC_PROG_EGREP): Also set
-EGREP_TRADITIONAL and ac_cv_path_EGREP_TRADITIONAL.
-* tests/c.at (AC_PROG_EGREP and AC_EGREP_HEADER):
-New test, taken from Frederic Berat’s email in:
-https://lists.gnu.org/r/autoconf/2023-03/msg00043.html
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/programs.m4 | 10 ++++++++++
- tests/c.at               | 24 ++++++++++++++++++++++++
- 2 files changed, 34 insertions(+)
-
-diff --git a/lib/autoconf/programs.m4 b/lib/autoconf/programs.m4
-index 1b7460c85..62ba6b8b6 100644
---- a/lib/autoconf/programs.m4
-+++ b/lib/autoconf/programs.m4
-@@ -371,6 +371,16 @@ AC_CACHE_CHECK([for egrep], ac_cv_path_EGREP,
-    fi])
-  EGREP="$ac_cv_path_EGREP"
-  AC_SUBST([EGREP])
-+ dnl
-+ dnl Also set EGREP_TRADITIONAL even though unnecessary here,
-+ dnl for wrong but too-common code with the following pattern:
-+ dnl   AC_PROG_EGREP
-+ dnl   if false; then
-+ dnl      AC_EGREP_HEADER([printf], [stdio.h], [has_printf=yes])
-+ dnl   fi
-+ dnl   AC_EGREP_HEADER([malloc], [stdlib.h], [has_malloc=yes])
-+ EGREP_TRADITIONAL=$EGREP
-+ ac_cv_path_EGREP_TRADITIONAL=$EGREP
- ])# AC_PROG_EGREP
- 
- # _AC_PROG_EGREP_TRADITIONAL
-diff --git a/tests/c.at b/tests/c.at
-index c37f43b10..fad54760f 100644
---- a/tests/c.at
-+++ b/tests/c.at
-@@ -232,6 +232,30 @@ AT_CHECK_DEFINES(
- AT_CLEANUP
- 
- 
-+## ----------------------------------- ##
-+## AC_PROG_EGREP and AC_EGREP_HEADER.  ##
-+## ----------------------------------- ##
-+
-+AT_SETUP([AC_PROG_EGREP and AC_EGREP_HEADER])
-+
-+_AT_CHECK_AC_MACRO(
-+[[AC_PROG_CPP
-+  AC_PROG_EGREP
-+
-+  # Although this code is incorrect (it should use AS_IF),
-+  # it follows a too-common real world pattern.
-+  # For now, test for it; we may remove this test later.
-+  if false; then
-+    AC_EGREP_HEADER([^], [limits.h])
-+  fi
-+
-+  AC_EGREP_HEADER([$], [limits.h], [],
-+    [AC_MSG_ERROR([[egrep-related macros do not tolerate misuse of 'if']])])
-+]])
-+
-+AT_CLEANUP
-+
-+
- ## ------------------------------------ ##
- ## AC_NO_EXECUTABLES (working linker).  ##
- ## ------------------------------------ ##
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0006-Fix-timing-bug-on-high-speed-builds.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0006-Fix-timing-bug-on-high-speed-builds.patch
deleted file mode 100644
index 53fb40b..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0006-Fix-timing-bug-on-high-speed-builds.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 713d9822bbfb2923115065efaefed34a0113f8a1 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Sat, 1 Apr 2023 16:44:03 -0700
-Subject: [PATCH 06/29] Fix timing bug on high-speed builds
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Problem reported by Bogdan via Jacob Bachmeyer in:
-https://lists.gnu.org/r/autoconf/2023-04/msg00002.html
-* bin/autom4te.in: If a file timestamp equals a dependency’s
-timestamp, consider the file to be out of date.  Although this may
-result in extra work, it fixes some rare timing bugs.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- bin/autom4te.in | 12 +++++-------
- 1 file changed, 5 insertions(+), 7 deletions(-)
-
-diff --git a/bin/autom4te.in b/bin/autom4te.in
-index 4b61f0a82..71d7e6a62 100644
---- a/bin/autom4te.in
-+++ b/bin/autom4te.in
-@@ -910,10 +910,8 @@ sub up_to_date ($)
-   return 0
-     if ! -f $tfile || ! -f $ofile;
- 
--  # The youngest of the cache files must be older than the oldest of
-+  # The younger of the cache files must be older than the oldest of
-   # the dependencies.
--  # FIXME: These timestamps have only 1-second resolution.
--  # Time::HiRes fixes this, but assumes Perl 5.8 or later.
-   my $tmtime = mtime ($tfile);
-   my $omtime = mtime ($ofile);
-   my ($file, $mtime) = ($tmtime < $omtime
-@@ -926,7 +924,7 @@ sub up_to_date ($)
-   # We depend at least upon the arguments.
-   foreach my $dep (@ARGV)
-     {
--      if ($mtime < mtime ($dep))
-+      if ($mtime <= mtime ($dep))
- 	{
- 	  verb "up_to_date ($file): outdated: $dep";
- 	  return 0;
-@@ -949,7 +947,7 @@ sub up_to_date ($)
-       # timestamp of that missing file was newer).
-       return 0
- 	if ! $dep;
--      if ($mtime < mtime ($dep))
-+      if ($mtime <= mtime ($dep))
- 	{
- 	  verb "up_to_date ($file): outdated: $dep";
- 	  return 0;
-@@ -1038,7 +1036,7 @@ $icache_file = new Autom4te::XFile $icache, O_RDWR|O_CREAT;
- $icache_file->lock (LOCK_EX)
-   if ($flock_implemented eq "yes");
- 
--# Read the cache index if available and older than autom4te itself.
-+# Read the cache index if available and younger than autom4te itself.
- # If autom4te is younger, then some structures such as C4che might
- # have changed, which would corrupt its processing.
- Autom4te::C4che->load ($icache_file)
-@@ -1105,7 +1103,7 @@ else
-     # Actual M4 expansion, if the user wants it, or if $output is old
-     # (STDOUT is pretty old).
-     handle_output ($req, $output)
--      if $force || mtime ($output) < mtime ($ocache . $req->id);
-+      if $force || mtime ($output) <= mtime ($ocache . $req->id);
-   }
- 
- # If we ran up to here, the cache is valid.
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0007-Support-underquoted-callers-better.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0007-Support-underquoted-callers-better.patch
deleted file mode 100644
index f9f9345..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0007-Support-underquoted-callers-better.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 794182506c3c5814d48b2fc4d832770f608ce0ef Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Sat, 1 Apr 2023 20:25:13 -0700
-Subject: [PATCH 07/29] Support underquoted callers better
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Problem reported bh Khem Raj for mcpp 2.7.2 (2008) in:
-https://lists.gnu.org/r/autoconf/2023-04/msg00001.html
-* lib/autoconf/programs.m4 (_AC_PATH_PROG_FLAVOR_GNU):
-Add two ‘@%:@(’s to cater to underquoted callers.
-* lib/m4sugar/m4sh.m4 (_AS_PATH_WALK): Use quadrigraph instead of
-‘#’, for underquoted callers.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/programs.m4 | 5 +++--
- lib/m4sugar/m4sh.m4      | 2 +-
- 2 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/lib/autoconf/programs.m4 b/lib/autoconf/programs.m4
-index 62ba6b8b6..d06d18c44 100644
---- a/lib/autoconf/programs.m4
-+++ b/lib/autoconf/programs.m4
-@@ -543,11 +543,12 @@ dnl   # for best performing tool in a list breaks down.
- # ----------------------------------------------------------------
- m4_define([_AC_PATH_PROG_FLAVOR_GNU],
- [# Check for GNU $1
--case `"$1" --version 2>&1` in
-+case `"$1" --version 2>&1` in @%:@(
- *GNU*)
-   $2;;
- m4_ifval([$3],
--[*)
-+[@%:@(
-+*)
-   $3;;
- ])esac
- ])# _AC_PATH_PROG_FLAVOR_GNU
-diff --git a/lib/m4sugar/m4sh.m4 b/lib/m4sugar/m4sh.m4
-index ab5ca7db7..368487fa0 100644
---- a/lib/m4sugar/m4sh.m4
-+++ b/lib/m4sugar/m4sh.m4
-@@ -1389,7 +1389,7 @@ m4_if([$1], m4_translit([[$1]], [:;]),
- for as_dir in $as_dummy])
- do
-   IFS=$as_save_IFS
--  case $as_dir in #(((
-+  case $as_dir in @%:@(((
-     '') as_dir=./ ;;
-     */) ;;
-     *) as_dir=$as_dir/ ;;
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0008-New-script-for-building-inside-Guix-containers.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0008-New-script-for-building-inside-Guix-containers.patch
deleted file mode 100644
index cec7dcd..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0008-New-script-for-building-inside-Guix-containers.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 8babe5f2ccb73cc574933743b381557a4db02424 Mon Sep 17 00:00:00 2001
-From: Zack Weinberg <zackw@panix.com>
-Date: Thu, 30 Mar 2023 10:50:36 -0400
-Subject: [PATCH 08/29] New script for building inside Guix containers.
-
-build-aux/test-build-guix, goes with the top level manifest.scm.
-See the top of the file for usage instructions.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- build-aux/test-build-guix | 30 ++++++++++++++++++++++++++++++
- 1 file changed, 30 insertions(+)
- create mode 100755 build-aux/test-build-guix
-
-diff --git a/build-aux/test-build-guix b/build-aux/test-build-guix
-new file mode 100755
-index 000000000..4470af9b7
---- /dev/null
-+++ b/build-aux/test-build-guix
-@@ -0,0 +1,30 @@
-+#! /bin/sh
-+
-+# From a pristine Git checkout, run
-+#  guix shell --container --manifest=manifest.scm -- build-aux/test-build-guix
-+# to perform a complete bootstrap and test build of Autoconf.
-+
-+set -ex
-+
-+# Guix bug? /bin/sh is usually *not* the shell specified in the manifest.
-+SHELL="$(command -v sh)"
-+export SHELL
-+if [ "$(realpath /bin/sh)" != "$(realpath "$SHELL")" ]; then
-+    (
-+        cd /bin
-+        rm sh
-+        ln -s "$SHELL" sh
-+    )
-+    exec "$SHELL" "$0" "$@"
-+fi
-+
-+./bootstrap
-+if [ -d _build ]; then
-+    rm -rf _build/*
-+else
-+    mkdir _build
-+fi
-+cd _build
-+../configure
-+make all info pdf dvi
-+make distcheck
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0009-AC_XENIX_DIR-Rewrite-using-AC_CANONICAL_HOST.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0009-AC_XENIX_DIR-Rewrite-using-AC_CANONICAL_HOST.patch
deleted file mode 100644
index c1c60dc..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0009-AC_XENIX_DIR-Rewrite-using-AC_CANONICAL_HOST.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From dcf9bb7e3b12f3bd74edff60e80b53e668159579 Mon Sep 17 00:00:00 2001
-From: Zack Weinberg <zackw@panix.com>
-Date: Sun, 2 Apr 2023 10:27:08 -0400
-Subject: [PATCH 09/29] AC_XENIX_DIR: Rewrite using AC_CANONICAL_HOST.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-AC_XENIX_DIR is an obsolete macro, defined as AC_HEADER_DIRENT plus
-code to make absolutely sure configure scripts that depended on a
-shell variable internal to the original (2.13 era) definition of
-AC_XENIX_DIR are not broken by autoupdate.  (That variable had the
-temptingly public-sounding name “XENIX.”)  This compatibility code
-uses AC_EGREP_CPP, which is itself discouraged for use in new
-configure scripts.
-
-(N.B. codesearch.debian.net does not find any uses whatsoever of
-this macro, nor any code in an .ac or .m4 file that depends on the
-XENIX variable.)
-
-Change the compatibility code to use AC_CANONICAL_HOST instead,
-and clarify which pieces of the code inserted by autoupdate are
-probably still necessary.
-
-* lib/autoconf/specific.m4 (AC_XENIX_DIR): Set XENIX variable
-  based on value of host_os. Clarify what manual cleanup is
-  recommended after autoupdate replaces this obsolete macro.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/specific.m4 | 26 +++++++++++---------------
- 1 file changed, 11 insertions(+), 15 deletions(-)
-
-diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
-index 1b3ee661b..a2dc5d488 100644
---- a/lib/autoconf/specific.m4
-+++ b/lib/autoconf/specific.m4
-@@ -754,9 +754,9 @@ dnl it should only be defined when necessary.
- ## Checks for UNIX variants.  ##
- ## -------------------------- ##
- 
--
--# These are kludges which should be replaced by a single POSIX check.
--# They aren't cached, to discourage their use.
-+# These macros are all obsolete, from the early days of Autoconf,
-+# before the invention of AC_CANONICAL_SYSTEM.  Autoupdate will
-+# replace each with inline code for a more modern feature check.
- 
- # AC_AIX
- # ------
-@@ -776,19 +776,15 @@ AU_DEFUN([AC_ISC_POSIX], [AC_SEARCH_LIBS([strerror], [cposix])])
- # AC_XENIX_DIR
- # ------------
- AU_DEFUN([AC_XENIX_DIR],
--[AC_MSG_CHECKING([for Xenix])
--AC_EGREP_CPP([yes],
--[#if defined M_XENIX && ! defined M_UNIX
--  yes
--@%:@endif],
--	     [AC_MSG_RESULT([yes]); XENIX=yes],
--	     [AC_MSG_RESULT([no]); XENIX=])
--
--AC_HEADER_DIRENT[]dnl
-+[AC_HEADER_DIRENT
-+# Autoupdate added the next two lines to ensure that your configure
-+# script's behavior did not change.  They are safe to remove unless
-+# you have code that depends on the XENIX shell variable.
-+AC_CANONICAL_HOST
-+AS_CASE([$host_os], [xenix*], [XENIX=yes], [XENIX=no])
-+# End of code added by autoupdate
- ],
--[You shouldn't need to depend upon XENIX.  Remove the
--'AC_MSG_CHECKING', 'AC_EGREP_CPP', and this warning if this part
--of the test is useless.])
-+[Check for code depending on the XENIX shell variable.])
- 
- 
- # AC_DYNIX_SEQ
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0010-AC_TYPE_UID_T-Rewrite-using-AC_CHECK_TYPE.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0010-AC_TYPE_UID_T-Rewrite-using-AC_CHECK_TYPE.patch
deleted file mode 100644
index 4932271..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0010-AC_TYPE_UID_T-Rewrite-using-AC_CHECK_TYPE.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 51d98495d1aac00970d791f064e83ca762bf81c7 Mon Sep 17 00:00:00 2001
-From: Zack Weinberg <zackw@panix.com>
-Date: Sun, 2 Apr 2023 10:43:51 -0400
-Subject: [PATCH 10/29] AC_TYPE_UID_T: Rewrite using AC_CHECK_TYPE.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-AC_TYPE_UID_T uses AC_EGREP_HEADER to search sys/types.h for
-occurrences of the string ‘uid_t’ and, if found, assumes both
-uid_t and gid_t are available.  This would be better done using
-a pair of AC_CHECK_TYPE operations.
-
-I also converted two uses of old-style AC_CHECK_TYPE, immediately
-below, to new-style.  (There are probably other old-style uses in
-this file, I only did the ones I happened to see.)
-
-* lib/autoconf/types.m4 (AC_TYPE_UID_T): Check for uid_t and gid_t,
-  separately, using AC_CHECK_TYPE, instead of grepping sys/types.h.
-  (AC_TYPE_SIZE_T, AC_TYPE_SSIZE_T): Use new-style AC_CHECK_TYPE.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/types.m4 | 30 +++++++++++++++++-------------
- 1 file changed, 17 insertions(+), 13 deletions(-)
-
-diff --git a/lib/autoconf/types.m4 b/lib/autoconf/types.m4
-index ebac0cf6d..ef2456135 100644
---- a/lib/autoconf/types.m4
-+++ b/lib/autoconf/types.m4
-@@ -589,25 +589,29 @@ AC_DEFUN([AC_TYPE_MBSTATE_T],
- 
- # AC_TYPE_UID_T
- # -------------
--# FIXME: Rewrite using AC_CHECK_TYPE.
- AN_IDENTIFIER([gid_t], [AC_TYPE_UID_T])
- AN_IDENTIFIER([uid_t], [AC_TYPE_UID_T])
- AC_DEFUN([AC_TYPE_UID_T],
--[AC_CACHE_CHECK(for uid_t in sys/types.h, ac_cv_type_uid_t,
--[AC_EGREP_HEADER(uid_t, sys/types.h,
--  ac_cv_type_uid_t=yes, ac_cv_type_uid_t=no)])
--if test $ac_cv_type_uid_t = no; then
--  AC_DEFINE(uid_t, int, [Define to 'int' if <sys/types.h> doesn't define.])
--  AC_DEFINE(gid_t, int, [Define to 'int' if <sys/types.h> doesn't define.])
--fi
--])
--
--
-+[AC_CHECK_TYPE([uid_t], [],
-+  [AC_DEFINE([uid_t], [int],
-+    [Define as 'int' if <sys/types.h> doesn't define.])])
-+AC_CHECK_TYPE([gid_t], [],
-+  [AC_DEFINE([gid_t], [int],
-+    [Define as 'int' if <sys/types.h> doesn't define.])])])
-+
-+# This should be obsoleted, size_t is in C90.
- AN_IDENTIFIER([size_t], [AC_TYPE_SIZE_T])
--AC_DEFUN([AC_TYPE_SIZE_T], [AC_CHECK_TYPE(size_t, unsigned int)])
-+AC_DEFUN([AC_TYPE_SIZE_T],
-+[AC_CHECK_TYPE([size_t], [],
-+  [AC_DEFINE([size_t], [unsigned int],
-+    [Define as 'unsigned int' if <stddef.h> doesn't define.])])])
- 
- AN_IDENTIFIER([ssize_t], [AC_TYPE_SSIZE_T])
--AC_DEFUN([AC_TYPE_SSIZE_T], [AC_CHECK_TYPE(ssize_t, int)])
-+AC_DEFUN([AC_TYPE_SSIZE_T],
-+[AC_CHECK_TYPE([ssize_t], [],
-+  [AC_DEFINE([ssize_t], [int],
-+    [Define as 'int' if <sys/types.h> doesn't define.])])])
-+
- 
- AN_IDENTIFIER([pid_t], [AC_TYPE_PID_T])
- AC_DEFUN([AC_TYPE_PID_T],
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0011-Make-AC_PROG_GCC_TRADITIONAL-a-compatibility-alias-f.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0011-Make-AC_PROG_GCC_TRADITIONAL-a-compatibility-alias-f.patch
deleted file mode 100644
index 9c1f435..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0011-Make-AC_PROG_GCC_TRADITIONAL-a-compatibility-alias-f.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-From daaca7f74f94d6a7a51d571156d5fbaba5ef9a87 Mon Sep 17 00:00:00 2001
-From: Zack Weinberg <zackw@panix.com>
-Date: Sun, 2 Apr 2023 21:03:30 -0400
-Subject: [PATCH 11/29] Make AC_PROG_GCC_TRADITIONAL a compatibility alias for
- AC_PROG_CC.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This macro is one of the last remaining internal uses of AC_EGREP_CPP.
-It has only ever done anything useful with GCC, and GCC dropped
-support for ‘traditional’ compilation in version 3.3 (released 2003)
-so I do not think it is worth trying to preserve.
-
-* lib/autoconf/c.m4 (AC_PROG_GCC_TRADITIONAL): Make into a
-  compatibility alias for AC_PROG_CC, similar to AC_PROG_CC_STDC.
-* lib/autoconf/general.m4 (AC_EGREP_CPP): Remove stale comment.
-* doc/autoconf.texi, NEWS: Document this change.
-* tests/mktests.pl: Exclude AC_PROG_GCC_TRADITIONAL from
-  autoupdate tests.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- NEWS                    |  7 +++++++
- doc/autoconf.texi       | 29 ++++++++++++++---------------
- lib/autoconf/c.m4       | 30 ++++++------------------------
- lib/autoconf/general.m4 |  2 --
- tests/mktests.pl        |  2 +-
- 5 files changed, 28 insertions(+), 42 deletions(-)
-
-diff --git a/NEWS b/NEWS
-index 6a106f155..53c57ff59 100644
---- a/NEWS
-+++ b/NEWS
-@@ -81,6 +81,13 @@ GNU Autoconf NEWS - User visible changes.
-   with plain apostrophes instead of the older GNU style `like this'
-   with grave accent and apostrophe.
- 
-+*** AC_PROG_GCC_TRADITIONAL no longer does anything.
-+
-+  This macro has had no useful effect since GCC dropped support for
-+  traditional-mode compilation in version 3.3 (released in 2003), and
-+  the systems that needed it are also long obsolete.  It is now a
-+  compatibility synonym for AC_PROG_CC.
-+
- ** Notable bug fixes
- 
- *** Autoconf caches now use finer-grained timestamps.
-diff --git a/doc/autoconf.texi b/doc/autoconf.texi
-index 8db64d8bb..037c8055f 100644
---- a/doc/autoconf.texi
-+++ b/doc/autoconf.texi
-@@ -7764,20 +7764,6 @@ This macro is obsolescent, as current C compilers support prototypes.
- New programs need not use this macro.
- @end defmac
- 
--@anchor{AC_PROG_GCC_TRADITIONAL}
--@defmac AC_PROG_GCC_TRADITIONAL
--@acindex{PROG_GCC_TRADITIONAL}
--@ovindex CC
--Add @option{-traditional} to output variable @code{CC} if using a
--GNU C compiler and @code{ioctl} does not work properly without
--@option{-traditional}.  That usually happens when the fixed header files
--have not been installed on an old system.
--
--This macro is obsolescent, since current versions of the GNU C
--compiler fix the header files automatically when installed.
--@end defmac
--
--
- @node C++ Compiler
- @subsection C++ Compiler Characteristics
- 
-@@ -23986,7 +23972,8 @@ These days portable programs should use @code{waitpid}, not
- 
- @defmac AC_GCC_TRADITIONAL
- @acindex{GCC_TRADITIONAL}
--Replaced by @code{AC_PROG_GCC_TRADITIONAL} (@pxref{AC_PROG_GCC_TRADITIONAL}).
-+Replaced by @code{AC_PROG_GCC_TRADITIONAL} (@pxref{AC_PROG_GCC_TRADITIONAL}),
-+which is itself obsolete.
- @end defmac
- 
- @defmac AC_GETGROUPS_T
-@@ -24369,6 +24356,18 @@ Now done by @code{AC_PROG_CC} (@pxref{AC_PROG_CC}).
- Now done by @code{AC_PROG_CC} (@pxref{AC_PROG_CC}).
- @end defmac
- 
-+@anchor{AC_PROG_GCC_TRADITIONAL}
-+@defmac AC_PROG_GCC_TRADITIONAL
-+@acindex{PROG_GCC_TRADITIONAL}
-+Used to put GCC into ``traditional'' (pre-ISO C) compilation mode,
-+on systems with headers that did not work correctly with a
-+standard-compliant compiler.  GCC has not supported traditional
-+compilation in many years, and all of the systems that required this are
-+long obsolete themselves.  This macro is now a compatibility synonym for
-+@code{AC_PROG_CC} (@pxref{AC_PROG_CC}).
-+
-+@end defmac
-+
- @defmac AC_PROGRAMS_CHECK
- @acindex{PROGRAMS_CHECK}
- Replaced by @code{AC_CHECK_PROGS} (@pxref{AC_CHECK_PROGS}).
-diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4
-index fef6c516d..33648b5b9 100644
---- a/lib/autoconf/c.m4
-+++ b/lib/autoconf/c.m4
-@@ -551,30 +551,6 @@ fi[]dnl
- ])# _AC_PROG_CC_G
- 
- 
--# AC_PROG_GCC_TRADITIONAL
--# -----------------------
--AC_DEFUN([AC_PROG_GCC_TRADITIONAL],
--[AC_REQUIRE([AC_PROG_CC])dnl
--if test $ac_cv_c_compiler_gnu = yes; then
--    AC_CACHE_CHECK(whether $CC needs -traditional,
--      ac_cv_prog_gcc_traditional,
--[  ac_pattern="Autoconf.*'x'"
--  AC_EGREP_CPP($ac_pattern, [#include <sgtty.h>
--Autoconf TIOCGETP],
--  ac_cv_prog_gcc_traditional=yes, ac_cv_prog_gcc_traditional=no)
--
--  if test $ac_cv_prog_gcc_traditional = no; then
--    AC_EGREP_CPP($ac_pattern, [#include <termio.h>
--Autoconf TCGETA],
--    ac_cv_prog_gcc_traditional=yes)
--  fi])
--  if test $ac_cv_prog_gcc_traditional = yes; then
--    CC="$CC -traditional"
--  fi
--fi
--])# AC_PROG_GCC_TRADITIONAL
--
--
- # AC_PROG_CC_C_O
- # --------------
- AC_DEFUN([AC_PROG_CC_C_O],
-@@ -1675,6 +1651,12 @@ AU_DEFUN([AC_PROG_CC_STDC],
-   [$0 is obsolete; use AC_PROG_CC]
- )
- 
-+# AC_PROG_GCC_TRADITIONAL
-+# -----------------------
-+AU_DEFUN([AC_PROG_GCC_TRADITIONAL],
-+  [AC_REQUIRE([AC_PROG_CC])],
-+  [$0 is obsolete; use AC_PROG_CC]
-+)
- 
- # AC_C_BACKSLASH_A
- # ----------------
-diff --git a/lib/autoconf/general.m4 b/lib/autoconf/general.m4
-index ecda0a51c..47d896d54 100644
---- a/lib/autoconf/general.m4
-+++ b/lib/autoconf/general.m4
-@@ -2766,8 +2766,6 @@ AU_DEFUN([AC_TRY_CPP],
- # AC_EGREP_CPP(PATTERN, PROGRAM,
- #              [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
- # ------------------------------------------------------
--# Because this macro is used by AC_PROG_GCC_TRADITIONAL, which must
--# come early, it is not included in AC_BEFORE checks.
- AC_DEFUN([AC_EGREP_CPP],
- [AC_LANG_PREPROC_REQUIRE()dnl
- AC_REQUIRE([_AC_PROG_EGREP_TRADITIONAL])dnl
-diff --git a/tests/mktests.pl b/tests/mktests.pl
-index effed0bca..81f63586c 100644
---- a/tests/mktests.pl
-+++ b/tests/mktests.pl
-@@ -112,7 +112,7 @@ my @ac_exclude_list = (
- # Check all AU_DEFUN'ed macros with AT_CHECK_AU_MACRO, except these.
- my @au_exclude_list = (
-   # Empty.
--  qr/^AC_(C_CROSS|PROG_CC_(C[89]9|STDC))$/,
-+  qr/^AC_(C_CROSS|PROG_(CC_(C[89]9|STDC)|GCC_TRADITIONAL))$/,
- 
-   # Use AC_REQUIRE.
-   qr/^AC_(CYGWIN|MINGW32|EMXOS2)$/,
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0012-Overhaul-AC_TYPE_GETGROUPS-and-AC_FUNC_GETGROUPS.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0012-Overhaul-AC_TYPE_GETGROUPS-and-AC_FUNC_GETGROUPS.patch
deleted file mode 100644
index 4d28101..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0012-Overhaul-AC_TYPE_GETGROUPS-and-AC_FUNC_GETGROUPS.patch
+++ /dev/null
@@ -1,328 +0,0 @@
-From b5891a57b586ef6ff78bb752d62915b78cd58d7e Mon Sep 17 00:00:00 2001
-From: Zack Weinberg <zackw@panix.com>
-Date: Sun, 2 Apr 2023 15:07:58 -0400
-Subject: [PATCH 12/29] Overhaul AC_TYPE_GETGROUPS and AC_FUNC_GETGROUPS.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-AC_TYPE_GETGROUPS is the last remaining use of AC_EGREP_HEADER in
-stock Autoconf macros.  It uses it only when cross compiling, as a
-fallback from an AC_RUN_IFELSE check, testing for a bug in system
-headers from the late 1980s or early 1990s, where gid_t *existed*
-but the second argument to getgroups needed to be an array of int,
-and this didn’t cause a compile error (i.e. the system headers
-declare getgroups with no prototype or an incorrect prototype).
-AC_FUNC_GETGROUPS also uses AC_RUN_IFELSE to test for obscure
-problems specific to long-obsolete Unixes.
-
-The downsides of AC_RUN_IFELSE and AC_EGREP_HEADER seem more severe
-than the chances of someone compiling a current-generation program,
-that uses getgroups, on an OS old enough to have one of the really
-nasty bugs.  Accordingly, this patch changes AC_FUNC_GETGROUPS to use
-a host_os-based *blacklist* both in native and cross compilation.
-This is limited to the two host_os values for which either our old
-code, or Gnulib, documented a serious bug: ultrix* and nextstep*.
-Currently it does not try to pin down the exact version ranges subject
-to the bugs — that would require research by someone with access to
-the full history of these OSes.
-
-An incorrect guess by this blacklist can be overridden by setting
-ac_cv_func_getgroups_works in config.site.  AC_TYPE_GETGROUPS, for its
-part, now does a series of regular old AC_COMPILE_IFELSE checks to
-probe the prototype of getgroups, and considers that good enough.
-
-While I was in there I noticed that AC_FUNC_GETGROUPS does not
-AC_SUBST a documented output variable, and that the name of this
-variable is misspelled in the manual.
-
-* lib/autoconf/functions.m4 (AC_FUNC_GETGROUPS): Use AC_SEARCH_LIBS
-  to probe for getgroups.  Use an AC_CANONICAL_HOST-based blacklist
-  for bug detection, not AC_RUN_IFELSE.  AC_SUBST the GETGROUPS_LIB
-  output variable.
-* lib/autoconf/types.m4 (AC_TYPE_GETGROUPS): Check only the prototype
-  of getgroups, using AC_COMPILE_IFELSE; do not use either AC_RUN_IFELSE
-  or AC_EGREP_HEADER.
-* doc/autoconf.texi: Update to match. Correct misspelling of
-  GETGROUPS_LIB.
-* tests.local.at (_AT_CHECK_ENV): Allow GETGROUPS_LIB output variable.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- NEWS                      | 11 +++++
- doc/autoconf.texi         | 25 ++++++----
- lib/autoconf/functions.m4 | 61 ++++++++++++------------
- lib/autoconf/types.m4     | 97 ++++++++++++++++++++++++---------------
- tests/local.at            |  2 +-
- 5 files changed, 120 insertions(+), 76 deletions(-)
-
-diff --git a/NEWS b/NEWS
-index 53c57ff59..8e4ecc1bf 100644
---- a/NEWS
-+++ b/NEWS
-@@ -38,6 +38,17 @@ GNU Autoconf NEWS - User visible changes.
-   This matters only for uses that, contrary to the documentation
-   and despite warnings, use m4_divert with numbered diversions.
- 
-+*** AC_FUNC_GETGROUPS and AC_TYPE_GETGROUPS no longer run test programs.
-+  These macros were testing for OS bugs that we believe are at least
-+  twenty years in the past.  Most operating systems are now trusted to
-+  provide an accurate prototype for getgroups in unistd.h, and to
-+  implement it as specified in POSIX.
-+
-+  AC_FUNC_GETGROUPS still includes a short blacklist of OSes with
-+  known, severe bugs in getgroups.  It can be overridden using
-+  config.site.  If you encounter a mistake in this blacklist
-+  please report it to bug-autoconf.
-+
- ** New features
- 
- *** New macro AC_SYS_YEAR2038.
-diff --git a/doc/autoconf.texi b/doc/autoconf.texi
-index 037c8055f..5d5f613e6 100644
---- a/doc/autoconf.texi
-+++ b/doc/autoconf.texi
-@@ -5257,17 +5257,26 @@ and also contains workarounds for other portability problems of
- @defmac AC_FUNC_GETGROUPS
- @acindex{FUNC_GETGROUPS}
- @cvindex HAVE_GETGROUPS
--@ovindex GETGROUPS_LIBS
-+@ovindex GETGROUPS_LIB
- @c @fuindex getgroups
- @prindex @code{getgroups}
- @caindex func_getgroups_works
--If the @code{getgroups} function is available and works,
--define @code{HAVE_GETGROUPS}.  Set @code{GETGROUPS_LIBS} to any libraries
--needed to get that function.  This macro runs @code{AC_TYPE_GETGROUPS}.
--
--This macro is obsolescent. New programs need not use this macro.  But
--they may want to use the Gnulib module @code{getgroups}, which provides
--workarounds to other portability problems of this function.
-+Perform all the checks performed by @code{AC_TYPE_GETGROUPS}
-+(@pxref{AC_TYPE_GETGROUPS}).
-+Then, if the @code{getgroups} function is available
-+and known to work correctly, define @code{HAVE_GETGROUPS}.
-+Set the output variable @code{GETGROUPS_LIB} to any libraries
-+needed to get that function.
-+
-+This macro relies on a list of systems with known, serious bugs in
-+@code{getgroups}.  If this list mis-identifies your system's
-+@code{getgroups} as buggy, or as not buggy, you can override it by
-+setting the cache variable @code{ac_cv_func_getgroups_works} in a
-+@file{config.site} file (@pxref{Site Defaults}).  Please also report the
-+error to @email{bug-autoconf@@gnu.org, the Autoconf Bugs mailing list}.
-+
-+The Gnulib module @code{getgroups} provides workarounds for additional,
-+less severe portability problems with this function.
- @end defmac
- 
- @anchor{AC_FUNC_GETLOADAVG}
-diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4
-index 655d6ba8f..74512e97d 100644
---- a/lib/autoconf/functions.m4
-+++ b/lib/autoconf/functions.m4
-@@ -698,47 +698,46 @@ AS_IF([test "$ac_cv_func_fseeko_ftello" = "need _LARGEFILE_SOURCE"],
- # When cross-compiling, assume getgroups is broken.
- AN_FUNCTION([getgroups], [AC_FUNC_GETGROUPS])
- AC_DEFUN([AC_FUNC_GETGROUPS],
--[AC_REQUIRE([AC_TYPE_GETGROUPS])dnl
--AC_REQUIRE([AC_TYPE_SIZE_T])dnl
--AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
--AC_CHECK_FUNC(getgroups)
-+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-+AC_REQUIRE([AC_TYPE_GETGROUPS])dnl
- 
--# If we don't yet have getgroups, see if it's in -lbsd.
-+# On older systems getgroups might be in -lbsd.
- # This is reported to be necessary on an ITOS 3000WS running SEIUX 3.1.
- ac_save_LIBS=$LIBS
--if test $ac_cv_func_getgroups = no; then
--  AC_CHECK_LIB(bsd, getgroups, [GETGROUPS_LIB=-lbsd])
--fi
--
--# Run the program to test the functionality of the system-supplied
--# getgroups function only if there is such a function.
-+LIBS=
-+GETGROUPS_LIB=
-+AC_SEARCH_LIBS([getgroups], [bsd],
-+  [test "$ac_res" = "none required" || GETGROUPS_LIB="$ac_res"
-+   ac_cv_func_getgroups=yes],
-+  [ac_cv_func_getgroups=no])
-+LIBS=$ac_save_LIBS
-+AC_SUBST([GETGROUPS_LIB])
-+
-+# Known severe bugs in getgroups on particular systems.
-+#  - On Ultrix 4.3 and NextSTEP 3.2, getgroups (0, 0) is reported to
-+#    fail, rather than returning the number of supplementary groups as
-+#    it ought to.  We do not know the exact range of releases affected
-+#    in either case.
-+# We currently reject all versions of the systems with known bugs, and
-+# no other systems.  Please send corrections to bug-autoconf@gnu.org.
- if test $ac_cv_func_getgroups = yes; then
-+  # This AC_CACHE_CHECK exists so that one may override an incorrect
-+  # guess by setting ac_cv_func_getgroups_works in a config.site file.
-   AC_CACHE_CHECK([for working getgroups], ac_cv_func_getgroups_works,
--   [AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
--      [[/* On Ultrix 4.3, getgroups (0, 0) always fails.  */
--       return getgroups (0, 0) == -1;]])],
--		  [ac_cv_func_getgroups_works=yes],
--		  [ac_cv_func_getgroups_works=no],
--		  [case "$host_os" in # ((
--			     # Guess yes on glibc systems.
--		     *-gnu*) ac_cv_func_getgroups_works="guessing yes" ;;
--			     # If we don't know, assume the worst.
--		     *)      ac_cv_func_getgroups_works="guessing no" ;;
--		   esac])
--   ])
-+   [AS_CASE([$host_os],
-+     [ultrix* | nextstep*],
-+      [ac_cv_func_getgroups_works=no # getgroups(0,0) fails
-+],
-+      [ac_cv_func_getgroups_works=yes])])
- else
-   ac_cv_func_getgroups_works=no
- fi
--case "$ac_cv_func_getgroups_works" in
--  *yes)
--    AC_DEFINE(HAVE_GETGROUPS, 1,
--	      [Define to 1 if your system has a working 'getgroups' function.])
--    ;;
--esac
--LIBS=$ac_save_LIBS
-+if test $ac_cv_func_getgroups_works = yes; then
-+  AC_DEFINE(HAVE_GETGROUPS, 1,
-+            [Define to 1 if your system has a working 'getgroups' function.])
-+fi
- ])# AC_FUNC_GETGROUPS
- 
--
- # _AC_LIBOBJ_GETLOADAVG
- # ---------------------
- # Set up the AC_LIBOBJ replacement of 'getloadavg'.
-diff --git a/lib/autoconf/types.m4 b/lib/autoconf/types.m4
-index ef2456135..af3872b2f 100644
---- a/lib/autoconf/types.m4
-+++ b/lib/autoconf/types.m4
-@@ -258,44 +258,69 @@ AN_IDENTIFIER([ptrdiff_t], [AC_CHECK_TYPES])
- # AC_TYPE_GETGROUPS
- # -----------------
- AC_DEFUN([AC_TYPE_GETGROUPS],
-+dnl We now unconditionally assume that if <unistd.h> has a prototype for
-+dnl getgroups, it is accurate; and that if <unistd.h> does _not_ declare
-+dnl getgroups with a prototype, the second argument is an array of int.
-+dnl (Older versions of Autoconf made these assumptions only when cross
-+dnl compiling.)  See AC_FUNC_GETGROUPS, over in functions.m4, for why
-+dnl this uses AC_COMPILE_IFELSE rather than AC_LINK_IFELSE.
- [AC_REQUIRE([AC_TYPE_UID_T])dnl
--AC_CACHE_CHECK(type of array argument to getgroups, ac_cv_type_getgroups,
--[AC_RUN_IFELSE([AC_LANG_SOURCE(
--[[/* Thanks to Mike Rendell for this test.  */
--]AC_INCLUDES_DEFAULT[
--#define NGID 256
--#undef MAX
--#define MAX(x, y) ((x) > (y) ? (x) : (y))
--
--int
--main (void)
--{
--  gid_t gidset[NGID];
--  int i, n;
--  union { gid_t gval; long int lval; }  val;
--
--  val.lval = -1;
--  for (i = 0; i < NGID; i++)
--    gidset[i] = val.gval;
--  n = getgroups (sizeof (gidset) / MAX (sizeof (int), sizeof (gid_t)) - 1,
--		 gidset);
--  /* Exit non-zero if getgroups seems to require an array of ints.  This
--     happens when gid_t is short int but getgroups modifies an array
--     of ints.  */
--  return n > 0 && gidset[n] != val.gval;
--}]])],
--	       [ac_cv_type_getgroups=gid_t],
--	       [ac_cv_type_getgroups=int],
--	       [ac_cv_type_getgroups=cross])
--if test $ac_cv_type_getgroups = cross; then
--  dnl When we can't run the test program (we are cross compiling), presume
--  dnl that <unistd.h> has either an accurate prototype for getgroups or none.
--  dnl Old systems without prototypes probably use int.
--  AC_EGREP_HEADER([getgroups.*int.*gid_t], unistd.h,
--		  ac_cv_type_getgroups=gid_t, ac_cv_type_getgroups=int)
--fi])
-+AC_CACHE_CHECK([type of array argument to getgroups], ac_cv_type_getgroups,
-+[# If AC_TYPE_UID_T says there isn't any gid_t typedef, then we can skip
-+# everything below.
-+AS_IF([test $ac_cv_type_gid_t = no],
-+  [ac_cv_type_getgroups=int],
-+  [# Test programs below rely on strict type checking of extern declarations:
-+  # 'extern int getgroups(int, int *); extern int getgroups(int, pid_t *);'
-+  # is valid in C89 if and only if pid_t is a typedef for int.  Unlike
-+  # anything involving either an assignment or a function call, compilers
-+  # tend to make this kind of type mismatch a hard error, not just an
-+  # "incompatible pointer types" warning.
-+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-+[AC_INCLUDES_DEFAULT
-+[extern int getgroups(int, gid_t *);]],
-+[[return !(getgroups(0, 0) >= 0);]])],
-+    [ac_getgroups_gidarray=yes],
-+    [ac_getgroups_gidarray=no])
-+  AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-+[AC_INCLUDES_DEFAULT
-+[extern int getgroups(int, int *);]],
-+[[return !(getgroups(0, 0) >= 0);]])],
-+    [ac_getgroups_intarray=yes],
-+    [ac_getgroups_intarray=no])
-+
-+  AS_CASE([int:$ac_getgroups_intarray,gid:$ac_getgroups_gidarray],
-+    [int:yes,gid:no], [ac_cv_type_getgroups=int],
-+    [int:no,gid:yes], [ac_cv_type_getgroups=gid_t],
-+    [int:yes,gid:yes], [
-+      # Both programs compiled - this means *either* that getgroups
-+      # was declared with no prototype, in which case we should use int,
-+      # or that it was declared prototyped but gid_t is a typedef for int,
-+      # in which case we should use gid_t.  Distinguish the two cases
-+      # by testing if the compiler catches a blatantly incorrect function
-+      # signature for getgroups.
-+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-+[AC_INCLUDES_DEFAULT
-+[extern int getgroups(int, float);]],
-+[[return !(getgroups(0, 0) >= 0);]])], [
-+        # Compiler did not catch incorrect argument list;
-+        # getgroups is unprototyped.
-+        ac_cv_type_getgroups=int
-+      ], [
-+        # Compiler caught incorrect argument list;
-+        # gid_t is a typedef for int.
-+        ac_cv_type_getgroups=gid_t
-+      ])
-+    ], [
-+      # Both programs failed to compile - this probably means getgroups
-+      # wasn't declared at all.  Use 'int', as this is probably a very
-+      # old system where the type _would have been_ int.
-+      ac_cv_type_getgroups=int
-+    ])
-+  ])
-+])dnl AC_CACHE_CHECK
- AC_DEFINE_UNQUOTED(GETGROUPS_T, $ac_cv_type_getgroups,
--		   [Define to the type of elements in the array set by
-+		   [Define to the type of elements in the array argument to
- 		    'getgroups'. Usually this is either 'int' or 'gid_t'.])
- ])# AC_TYPE_GETGROUPS
- 
-diff --git a/tests/local.at b/tests/local.at
-index 64a9fb264..db49f84a9 100644
---- a/tests/local.at
-+++ b/tests/local.at
-@@ -401,7 +401,7 @@ if test -f state-env.before && test -f state-env.after; then
-       [interpval|PATH_SEPARATOR],
-       [GFC|F77_DUMMY_MAIN|f77_(case|underscore)],
-       [FC(_DUMMY_MAIN|FLAGS|LIBS|FLAGS_[fF]|_MODEXT|_MODINC|_MODOUT|_DEFINE)?],
--      [ALLOCA|GETLOADAVG_LIBS|KMEM_GROUP|NEED_SETGID|POW_LIB],
-+      [ALLOCA|GETGROUPS_LIB|GETLOADAVG_LIBS|KMEM_GROUP|NEED_SETGID|POW_LIB],
-       [AWK|LEX|LEXLIB|LEX_OUTPUT_ROOT|LN_S|M4|MKDIR_P|AR|RANLIB|SET_MAKE|YACC],
-       [EGREP_TRADITIONAL],
-       [GREP|[EF]GREP|SED],
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0013-Fold-AC_C_STRINGIZE-into-AC_PROG_CC.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0013-Fold-AC_C_STRINGIZE-into-AC_PROG_CC.patch
deleted file mode 100644
index 2dadd83..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0013-Fold-AC_C_STRINGIZE-into-AC_PROG_CC.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From a7dc6d83c7d12b8409c512c3c10ad29f01e6c164 Mon Sep 17 00:00:00 2001
-From: Zack Weinberg <zackw@panix.com>
-Date: Sun, 2 Apr 2023 21:54:31 -0400
-Subject: [PATCH 13/29] Fold AC_C_STRINGIZE into AC_PROG_CC.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Another of the last few uses of AC_EGREP_CPP is to check for the ISO C
-“stringification” operator.  As this is a feature of C89, let’s fold
-the test into the extensive C89 tests we already have, and make
-AC_C_STRINGIZE just lean on AC_PROG_CC, in the same way
-AC_C_PROTOTYPES does.
-
-* lib/autoconf/c.m4 (_AC_C_C89_TEST_GLOBALS): Add test of preprocessor
-  stringification and token pasting.
-  (AC_C_STRINGIZE): Just check ac_prog_cc_stdc.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/c.m4 | 31 ++++++++++++++++++++-----------
- 1 file changed, 20 insertions(+), 11 deletions(-)
-
-diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4
-index 33648b5b9..c8c6a665c 100644
---- a/lib/autoconf/c.m4
-+++ b/lib/autoconf/c.m4
-@@ -1143,6 +1143,21 @@ static char *f (char * (*g) (char **, int), char **p, ...)
-   return s;
- }
- 
-+/* C89 style stringification. */
-+#define noexpand_stringify(a) #a
-+const char *stringified = noexpand_stringify(arbitrary+token=sequence);
-+
-+/* C89 style token pasting.  Exercises some of the corner cases that
-+   e.g. old MSVC gets wrong, but not very hard. */
-+#define noexpand_concat(a,b) a##b
-+#define expand_concat(a,b) noexpand_concat(a,b)
-+extern int vA;
-+extern int vbee;
-+#define aye A
-+#define bee B
-+int *pvA = &expand_concat(v,aye);
-+int *pvbee = &noexpand_concat(v,bee);
-+
- /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-    function prototypes and stuff, but not \xHH hex character constants.
-    These do not provoke an error unfortunately, instead are silently treated
-@@ -2112,16 +2127,10 @@ fi
- # --------------
- # Checks if '#' can be used to glue strings together at the CPP level.
- # Defines HAVE_STRINGIZE if positive.
-+# Obsolete - new code should assume C89 compliance.
- AC_DEFUN([AC_C_STRINGIZE],
--[AC_CACHE_CHECK([for preprocessor stringizing operator],
--		[ac_cv_c_stringize],
--[AC_EGREP_CPP([@%:@teststring],
--	      [@%:@define x(y) #y
--
--char *s = x(teststring);],
--	      [ac_cv_c_stringize=no],
--	      [ac_cv_c_stringize=yes])])
--if test $ac_cv_c_stringize = yes; then
-+[AC_REQUIRE([AC_PROG_CC])
-+if test "$ac_prog_cc_stdc" != no; then
-   AC_DEFINE(HAVE_STRINGIZE, 1,
- 	    [Define to 1 if cpp supports the ANSI @%:@ stringizing operator.])
- fi
-@@ -2130,8 +2139,8 @@ fi
- 
- # AC_C_PROTOTYPES
- # ---------------
--# Check if the C compiler supports prototypes, included if it needs
--# options.
-+# Check if the C compiler supports prototypes.
-+# Obsolete - new code should assume C89 compliance.
- AC_DEFUN([AC_C_PROTOTYPES],
- [AC_REQUIRE([AC_PROG_CC])dnl
- if test "$ac_prog_cc_stdc" != no; then
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0014-Remove-the-last-few-internal-uses-of-AC_EGREP_CPP.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0014-Remove-the-last-few-internal-uses-of-AC_EGREP_CPP.patch
deleted file mode 100644
index 85e9a45..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0014-Remove-the-last-few-internal-uses-of-AC_EGREP_CPP.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From e25dfa75e18295d28de67747b4ff9d65f65c4f06 Mon Sep 17 00:00:00 2001
-From: Zack Weinberg <zackw@panix.com>
-Date: Sun, 2 Apr 2023 22:17:55 -0400
-Subject: [PATCH 14/29] Remove the last few internal uses of AC_EGREP_CPP.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Most of the remaining uses were converted to AC_COMPILE_IFELSE.
-The use in AC_FUNC_LOADAVG becomes an AC_PREPROC_IFELSE because
-we can’t be sure getloadavg.c can be _compiled_ at this point in
-the build.  The use in AC_C_VARARRAYS could be either _PREPROC_ or
-_COMPILE_; we use _COMPILE_ because, _PREPROC_ is never used, then
-we don’t have to do the “checking how to run the C preprocessor” test.
-
-* lib/autoconf/c.m4 (AC_C_VARARRAYS): Use AC_COMPILE_IFELSE instead of
-  AC_EGREP_CPP.
-* lib/autoconf/headers.m4 (_AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H)
-  (_AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL_H): Likewise.
-* lib/autoconf/functions.m4 (AC_FUNC_GETLOADAVG): Use AC_PREPROC_IFELSE
-  instead of AC_EGREP_CPP.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/c.m4         |  8 ++++----
- lib/autoconf/functions.m4 | 10 +++++-----
- lib/autoconf/headers.m4   | 24 ++++++++++--------------
- 3 files changed, 19 insertions(+), 23 deletions(-)
-
-diff --git a/lib/autoconf/c.m4 b/lib/autoconf/c.m4
-index c8c6a665c..b8350c339 100644
---- a/lib/autoconf/c.m4
-+++ b/lib/autoconf/c.m4
-@@ -2197,11 +2197,11 @@ AC_DEFUN([AC_C_VARARRAYS],
- [
-   AC_CACHE_CHECK([for variable-length arrays],
-     ac_cv_c_vararrays,
--    [AC_EGREP_CPP([defined],
--       [#ifdef __STDC_NO_VLA__
--	defined
-+    [AC_COMPILE_IFELSE([AC_LANG_SOURCE(
-+[[	#ifndef __STDC_NO_VLA__
-+	#error __STDC_NO_VLA__ not defined
- 	#endif
--       ],
-+]])],
-        [ac_cv_c_vararrays='no: __STDC_NO_VLA__ is defined'],
-        [AC_COMPILE_IFELSE(
- 	  [AC_LANG_PROGRAM(
-diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4
-index 74512e97d..499e4c024 100644
---- a/lib/autoconf/functions.m4
-+++ b/lib/autoconf/functions.m4
-@@ -842,11 +842,11 @@ AC_CHECK_FUNCS(getloadavg, [],
- # Some definitions of getloadavg require that the program be installed setgid.
- AC_CACHE_CHECK(whether getloadavg requires setgid,
- 	       ac_cv_func_getloadavg_setgid,
--[AC_EGREP_CPP([Yowza Am I SETGID yet],
--[#include "$srcdir/$ac_config_libobj_dir/getloadavg.c"
--#ifdef LDAV_PRIVILEGED
--Yowza Am I SETGID yet
--@%:@endif],
-+[AC_PREPROC_IFELSE([AC_LANG_SOURCE(
-+[[#include "$srcdir/$ac_config_libobj_dir/getloadavg.c"
-+#ifndef LDAV_PRIVILEGED
-+#error setgid not needed
-+@%:@endif]])],
- 	      ac_cv_func_getloadavg_setgid=yes,
- 	      ac_cv_func_getloadavg_setgid=no)])
- if test $ac_cv_func_getloadavg_setgid = yes; then
-diff --git a/lib/autoconf/headers.m4 b/lib/autoconf/headers.m4
-index 7f70e8fd4..19c124cc3 100644
---- a/lib/autoconf/headers.m4
-+++ b/lib/autoconf/headers.m4
-@@ -721,13 +721,11 @@ you to include it and time.h simultaneously.])
- m4_define([_AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H],
- [AC_CACHE_CHECK([whether termios.h defines TIOCGWINSZ],
- 		ac_cv_sys_tiocgwinsz_in_termios_h,
--[AC_EGREP_CPP([yes],
--	      [#include <sys/types.h>
--#include <termios.h>
--#ifdef TIOCGWINSZ
--  yes
--#endif
--],
-+[AC_COMPILE_IFELSE([AC_LANG_SOURCE(
-+[AC_INCLUDES_DEFAULT
-+[#include <termios.h>
-+const int tiocgwinsz = TIOCGWINSZ;
-+]])],
- 		ac_cv_sys_tiocgwinsz_in_termios_h=yes,
- 		ac_cv_sys_tiocgwinsz_in_termios_h=no)])
- ])# _AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H
-@@ -738,13 +736,11 @@ m4_define([_AC_HEADER_TIOCGWINSZ_IN_TERMIOS_H],
- m4_define([_AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL],
- [AC_CACHE_CHECK([whether sys/ioctl.h defines TIOCGWINSZ],
- 		ac_cv_sys_tiocgwinsz_in_sys_ioctl_h,
--[AC_EGREP_CPP([yes],
--	      [#include <sys/types.h>
--#include <sys/ioctl.h>
--#ifdef TIOCGWINSZ
--  yes
--#endif
--],
-+[AC_COMPILE_IFELSE([AC_LANG_SOURCE(
-+[AC_INCLUDES_DEFAULT
-+[#include <sys/ioctl.h>
-+const int tiocgwinsz = TIOCGWINSZ;
-+]])],
- 		ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=yes,
- 		ac_cv_sys_tiocgwinsz_in_sys_ioctl_h=no)])
- ])# _AC_HEADER_TIOCGWINSZ_IN_SYS_IOCTL
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0015-Support-circa-early-2022-Gnulib.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0015-Support-circa-early-2022-Gnulib.patch
deleted file mode 100644
index 36d1a94..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0015-Support-circa-early-2022-Gnulib.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 1982523c6f052a2b361035a9d5d9737510ed0738 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Mon, 3 Apr 2023 09:12:40 -0700
-Subject: [PATCH 15/29] Support circa early 2022 Gnulib
-
-Problem reported by Frederic Berat in:
-https://lists.gnu.org/r/bug-rcs/2023-04/msg00001.html
-* lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_TEST_INCLUDES):
-Bring back for compatibility with post-2.71, pre-2.73 Gnulib.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/specific.m4 | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
-index a2dc5d488..5dc006959 100644
---- a/lib/autoconf/specific.m4
-+++ b/lib/autoconf/specific.m4
-@@ -277,6 +277,8 @@ m4_define([_AC_SYS_LARGEFILE_TEST_CODE],
- 		       && LARGE_OFF_T % 2147483647 == 1)
- 		      ? 1 : -1]];[]dnl
- ])
-+# Defined by Autoconf 2.71 and circa 2022 Gnulib unwisely depended on it.
-+m4_define([_AC_SYS_LARGEFILE_TEST_INCLUDES], [_AC_SYS_LARGEFILE_TEST_CODE])
- 
- # _AC_SYS_LARGEFILE_OPTIONS
- # -------------------------
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0016-Improve-year2038-largefile-option-processing.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0016-Improve-year2038-largefile-option-processing.patch
deleted file mode 100644
index e96faf2..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0016-Improve-year2038-largefile-option-processing.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From a1e82aff0fd842b0f09e2cd166560dfda725ba13 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Sun, 9 Apr 2023 11:41:57 -0700
-Subject: [PATCH 16/29] Improve year2038, largefile option processing
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-* lib/autoconf/specific.m4 (_AC_SYS_YEAR2038_PROBE)
-(_AC_SYS_YEAR2038_ENABLE, _AC_SYS_YEAR2038_OPT_IN)
-(AC_SYS_YEAR2038, _AC_SYS_LARGEFILE_PROBE)
-(_AC_SYS_LARGEFILE_ENABLE): Do not use enable_largefile to record
-whether largefile is required, as ‘./configure
---disable-largefile’ sets enable_largefile=no even if largefile is
-required and this disables largefile.  Instead, use a separate
-shell variable ac_largefile_required and test it as well.
-Similarly for enable_year2038.
-(_AC_SYS_LARGEFILE_ENABLE): Omit --disable-largefile help string
-if year2038 is required, since largefile is a prereq for year2038.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/specific.m4 | 35 ++++++++++++++++++++++-------------
- 1 file changed, 22 insertions(+), 13 deletions(-)
-
-diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
-index 5dc006959..1a3f4a65c 100644
---- a/lib/autoconf/specific.m4
-+++ b/lib/autoconf/specific.m4
-@@ -155,10 +155,10 @@ AS_CASE([$ac_cv_sys_year2038_opts],
-   ["none needed"], [],
-   ["support not detected"],
-     [ac_have_year2038=no
--     AS_CASE([$enable_year2038],
--      [required],
-+     AS_CASE([$ac_year2038_required,$enable_year2038],
-+      [yes,*],
-         [AC_MSG_FAILURE([support for timestamps after Jan 2038 is required])],
--      [yes],
-+      [*,yes],
-         [# If we're not cross compiling and 'touch' works with a large
-         # timestamp, then we can presume the system supports wider time_t
-         # *somehow* and we just weren't able to detect it.  One common
-@@ -209,10 +209,12 @@ AS_CASE([$ac_cv_sys_year2038_opts],
- m4_define([_AC_SYS_YEAR2038_ENABLE],
- [m4_divert_text([DEFAULTS],
-   m4_provide_if([AC_SYS_YEAR2038_REQUIRED],
--    [enable_year2038=required],
-+    [ac_year2038_required=yes],
-+    [ac_year2038_required=no]))dnl
-+m4_divert_text([DEFAULTS],
-   m4_provide_if([AC_SYS_YEAR2038],
-     [enable_year2038=yes],
--    [enable_year2038=no])))]dnl
-+    [enable_year2038=no]))]dnl
- [m4_provide_if([AC_SYS_YEAR2038_REQUIRED], [],
- [AC_ARG_ENABLE([year2038],
-   m4_provide_if([AC_SYS_YEAR2038],
-@@ -231,7 +233,8 @@ m4_define([_AC_SYS_YEAR2038_ENABLE],
- # documented macro.
- AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN],
- [m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
--  AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
-+  AS_IF([test "$ac_year2038_required,$enable_year2038" != no,no],
-+    [_AC_SYS_YEAR2038_PROBE])
-   AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
- ])])
- 
-@@ -244,7 +247,8 @@ AC_DEFUN([AC_SYS_YEAR2038],
- [m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [],
-   [AC_REQUIRE([AC_SYS_LARGEFILE])])]dnl
- [m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
--  AS_IF([test "$enable_year2038" != no], [_AC_SYS_YEAR2038_PROBE])
-+  AS_IF([test "$ac_year2038_required,$enable_year2038" != no,no],
-+    [_AC_SYS_YEAR2038_PROBE])
-   AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
- ])])
- 
-@@ -326,7 +330,7 @@ AS_CASE([$ac_cv_sys_largefile_opts],
-   ["none needed"], [],
-   ["support not detected"],
-     [ac_have_largefile=no
--     AS_IF([test $enable_largefile = required],
-+     AS_IF([test $ac_largefile_required,$ac_year2038_required != no,no],
-        [AC_MSG_FAILURE([support for large files is required])])],
- 
-   ["-D_FILE_OFFSET_BITS=64"],
-@@ -358,11 +362,15 @@ _AC_SYS_YEAR2038_OPT_IN
- m4_define([_AC_SYS_LARGEFILE_ENABLE],
- [m4_divert_text([DEFAULTS],
-   m4_provide_if([AC_SYS_LARGEFILE_REQUIRED],
--    [enable_largefile=required],
--    [enable_largefile=yes]))]dnl
-+    [ac_largefile_required=yes],
-+    [ac_largefile_required=no]))dnl
-+m4_divert_text([DEFAULTS],
-+  [enable_largefile=yes])]dnl
- [m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [],
--[AC_ARG_ENABLE([largefile],
--  [AS_HELP_STRING([--disable-largefile], [omit support for large files])])])])
-+   [m4_provide_if([AC_SYS_YEAR2038_REQUIRED], [],
-+      [AC_ARG_ENABLE([largefile],
-+         [AS_HELP_STRING([--disable-largefile],
-+	    [omit support for large files])])])])])
- 
- # AC_SYS_LARGEFILE
- # ----------------
-@@ -377,7 +385,8 @@ m4_define([_AC_SYS_LARGEFILE_ENABLE],
- # large files; see also AC_SYS_LARGEFILE_REQUIRED.
- AC_DEFUN([AC_SYS_LARGEFILE],
- [m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl
--  AS_IF([test "$enable_largefile" != no], [_AC_SYS_LARGEFILE_PROBE])
-+  AS_IF([test "$ac_largefile_required,$enable_largefile,$ac_year2038_required" != no,no,no],
-+    [_AC_SYS_LARGEFILE_PROBE])
-   AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE])
- ])])
- 
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0017-AC_SYS_YEAR2038-Fix-configure-failure-on-32-bit-ming.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0017-AC_SYS_YEAR2038-Fix-configure-failure-on-32-bit-ming.patch
deleted file mode 100644
index f62fe1c..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0017-AC_SYS_YEAR2038-Fix-configure-failure-on-32-bit-ming.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 0cc3c4ca8e6c550bf590ae45a916982b6ec50203 Mon Sep 17 00:00:00 2001
-From: Bruno Haible <bruno@clisp.org>
-Date: Fri, 14 Apr 2023 16:18:35 +0200
-Subject: [PATCH 17/29] AC_SYS_YEAR2038: Fix configure failure on 32-bit mingw.
-
-* lib/autoconf/specific.m4 (_AC_SYS_YEAR2038_PROBE): Use the same option
-spelling as in _AC_SYS_YEAR2038_OPTIONS.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/specific.m4 | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
-index 1a3f4a65c..3bf1a0ed1 100644
---- a/lib/autoconf/specific.m4
-+++ b/lib/autoconf/specific.m4
-@@ -182,7 +182,7 @@ AS_CASE([$ac_cv_sys_year2038_opts],
-     [AC_DEFINE([_TIME_BITS], [64],
-       [Number of bits in time_t, on hosts where this is settable.])],
- 
--  ["-D__MINGW_USE_VC2005_COMPAT=1"],
-+  ["-D__MINGW_USE_VC2005_COMPAT"],
-     [AC_DEFINE([__MINGW_USE_VC2005_COMPAT], [1],
-       [Define to 1 on platforms where this makes time_t a 64-bit type.])],
- 
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0018-Document-limitation-of-BusyBox-tr.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0018-Document-limitation-of-BusyBox-tr.patch
deleted file mode 100644
index 478c4e4..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0018-Document-limitation-of-BusyBox-tr.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From e704a13c9644f4f4b9a9dd4e215ee7a1707f5850 Mon Sep 17 00:00:00 2001
-From: Bruno Haible <bruno@clisp.org>
-Date: Fri, 3 Mar 2023 14:32:13 +0100
-Subject: [PATCH 18/29] Document limitation of BusyBox tr.
-
-BusyBox 1.35.0 tr, which is shipped with Alpine Linux 3.17, does not support
-the POSIX [x*n] syntax.
-
-* doc/autoconf.texi (Limitations of Usual Tools): Document limitation of 'tr'
-from BusyBox.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- doc/autoconf.texi | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/doc/autoconf.texi b/doc/autoconf.texi
-index 5d5f613e6..b3c708e87 100644
---- a/doc/autoconf.texi
-+++ b/doc/autoconf.texi
-@@ -20368,6 +20368,20 @@ $ @kbd{echo abc | coreutils/tr bc d}
- add
- @end example
- 
-+On platforms with the BusyBox tools, @command{tr} does not support the
-+@code{[@var{x}*@var{n}]} option syntax.
-+
-+@example
-+$ @kbd{echo abc | tr 'abcd' '[A*4]'}
-+[A*
-+$ @kbd{echo abc | coreutils/tr 'abcd' '[A*4]'}
-+AAA
-+$ @kbd{echo xyz | tr 'a-z' '[A*]'}
-+]]]
-+$ @kbd{echo xyz | coreutils/tr 'a-z' '[A*]'}
-+AAA
-+@end example
-+
- Posix requires @command{tr} to operate on binary files.  But at least
- Solaris @command{/usr/ucb/tr} and @command{/usr/bin/tr} silently discard
- @code{NUL} in the input prior to doing any translation.  When using
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0019-AC_SYS_YEAR2038_REQUIRED-Fix-configure-failure-with-.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0019-AC_SYS_YEAR2038_REQUIRED-Fix-configure-failure-with-.patch
deleted file mode 100644
index db9307e..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0019-AC_SYS_YEAR2038_REQUIRED-Fix-configure-failure-with-.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 2277f2c15744ad1cc5cd1ecc50a43108e50530a2 Mon Sep 17 00:00:00 2001
-From: Bruno Haible <bruno@clisp.org>
-Date: Wed, 19 Apr 2023 14:17:24 -0700
-Subject: [PATCH 19/29] AC_SYS_YEAR2038_REQUIRED: Fix configure failure with
- MSVC.
-
-* lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_PROBE): Distinguish the results
-"support not detected" and "supported through gnulib". If the result is
-"supported through gnulib", don't fail.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/specific.m4 | 13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
-index 3bf1a0ed1..f411695fe 100644
---- a/lib/autoconf/specific.m4
-+++ b/lib/autoconf/specific.m4
-@@ -323,11 +323,24 @@ AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
-     test $ac_opt_found = no || break
-   done
-   CC="$ac_save_CC"
-+  dnl Gnulib implements large file support for native Windows, based on the
-+  dnl variables WINDOWS_64_BIT_OFF_T, WINDOWS_64_BIT_ST_SIZE.
-+  m4_ifdef([gl_LARGEFILE], [
-+    AC_REQUIRE([AC_CANONICAL_HOST])
-+    if test $ac_opt_found != yes; then
-+      AS_CASE([$host_os],
-+        [mingw*],
-+          [ac_cv_sys_largefile_opts="supported through gnulib"
-+           ac_opt_found=yes]
-+      )
-+    fi
-+  ])
-   test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected"])
- 
- ac_have_largefile=yes
- AS_CASE([$ac_cv_sys_largefile_opts],
-   ["none needed"], [],
-+  ["supported through gnulib"], [],
-   ["support not detected"],
-     [ac_have_largefile=no
-      AS_IF([test $ac_largefile_required,$ac_year2038_required != no,no],
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0020-Tone-down-year-2038-changes.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0020-Tone-down-year-2038-changes.patch
deleted file mode 100644
index cbd89cc..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0020-Tone-down-year-2038-changes.patch
+++ /dev/null
@@ -1,405 +0,0 @@
-From 9c0183724614517a67d0955065171465bab7154a Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Wed, 26 Apr 2023 18:21:48 -0700
-Subject: [PATCH 20/29] Tone down year-2038 changes
-
-New macro AC_SYS_YEAR2038_RECOMMENDED replaces new macro
-AC_SYS_YEAR2038_REQUIRED, and gives the builder an out of
-specifying --disable-year2038.  Remove new macro
-AC_SYS_LARGEFILE_REQUIRED, which was added only for symmetry and
-does not seem to have a great need.
-* NEWS, doc/autoconf.texi: Document this.
-* lib/autoconf/specific.m4:
-Be more specific about mid-January 2038 than just Jan 2038.
-(_AC_SYS_YEAR2038_PROBE): Ignore IF-NOT-DETECTED arg.
-If support is not detected, merely set ac_have_year2038=no instead
-of erroring out.  All callers changed.
-(_AC_SYS_YEAR2038_OPT_IN): Remove.  All callers removed.
-(AC_SYS_YEAR2038): Simplify by requiring AC_SYS_LARGEFILE
-and then testing the result.
-(AC_SYS_YEAR2038_REQUIRED, AC_SYS_LARGEFILE_REQUIRED): Remove.
-(AC_SYS_YEAR2038_RECOMMENDED): New macro.
-(_AC_SYS_LARGEFILE_PROBE): If support is not detected, merely set
-ac_have_largefile=no instead of erroring out.  All callers changed.
-Take on the burden of invoking year2038 probe as needed.
-(AC_SYS_LARGEFILE): Simplify.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- NEWS                     |  18 ++--
- doc/autoconf.texi        |  34 +++-----
- lib/autoconf/specific.m4 | 177 +++++++++++----------------------------
- 3 files changed, 69 insertions(+), 160 deletions(-)
-
-diff --git a/NEWS b/NEWS
-index 8e4ecc1bf..a48a00858 100644
---- a/NEWS
-+++ b/NEWS
-@@ -51,7 +51,7 @@ GNU Autoconf NEWS - User visible changes.
- 
- ** New features
- 
--*** New macro AC_SYS_YEAR2038.
-+*** New macros AC_SYS_YEAR2038 and AC_SYS_YEAR2038_RECOMMENDED.
-   This causes 'configure' to widen time_t if possible on systems where
-   time_t by default cannot represent file and other timestamps after
-   January 2038.  Widening is possible only on 32-bit GNU/Linux x86 and
-@@ -67,18 +67,14 @@ GNU Autoconf NEWS - User visible changes.
-   This is similar to longstanding consistency requirements with
-   --enable-largefile and --disable-largefile.
- 
-+  AC_SYS_YEAR2038_RECOMMENDED acts like AC_SYS_YEAR2038 except that
-+  'configure' fails if the target lacks support for post-2038
-+  timestamps and --disable-year2038 is not given.
-+
- *** AC_SYS_LARGEFILE now optionally arranges to widen time_t.
-   It now acts like AC_SYS_YEAR2038, except 'configure' defaults to
--  --disable-year2038 unless AC_SYS_YEAR2038 is also present.
--  As with AC_SYS_YEAR2038, application and library builders should
--  configure consistently.
--
--*** New macros AC_SYS_LARGEFILE_REQUIRED and AC_SYS_YEAR2038_REQUIRED.
--  These act like AC_SYS_LARGEFILE and AC_SYS_YEAR2038 respectively,
--  except that 'configure' fails if the target lacks support
--  for large files and for post-2038 timestamps, respectively.
--  As with AC_SYS_YEAR2038, application and library builders should
--  configure consistently.
-+  --disable-year2038 unless either AC_SYS_YEAR2038 or
-+  AC_SYS_YEAR2038_RECOMMENDED is also present.
- 
- *** AC_USE_SYSTEM_EXTENSIONS now enables C23 Annex F extensions
-   by defining __STDC_WANT_IEC_60559_EXT__.
-diff --git a/doc/autoconf.texi b/doc/autoconf.texi
-index b3c708e87..0f3047b31 100644
---- a/doc/autoconf.texi
-+++ b/doc/autoconf.texi
-@@ -8808,18 +8808,20 @@ if possible.  These types may include @code{blkcnt_t}, @code{dev_t},
- 
- Also, arrange for a @command{configure} option @code{--enable-year2038}
- to request widening the type @code{time_t} as needed to represent file
--wand other timestamps after January 2038.  This widening is possible
-+wand other timestamps after mid-January 2038.  This widening is possible
- only on 32-bit GNU/Linux x86 and ARM systems with glibc 2.34 or later.
- If year-2038 support is requested but @command{configure} fails to find a way
- to widen @code{time_t} and inspection of the system suggests that
- this feature is available somehow, @command{configure} will error out.
- If you want the default to be @code{--enable-year2038}, you can use
--@code{AC_SYS_YEAR2038} instead of @code{AC_SYS_LARGEFILE}.
-+@code{AC_SYS_YEAR2038} or @code{AC_SYS_YEAR2038_RECOMMENDED}
-+instead of @code{AC_SYS_LARGEFILE}.
- In other words, older packages that have long used @code{AC_SYS_LARGEFILE}
- can have year-2038 support on 32-bit GNU/Linux x86 and ARM systems either by
- regenerating @file{configure} with current Autoconf and configuring with
--@option{--enable-year2038}, or by using @code{AC_SYS_YEAR2038} and
--configuring without @option{--disable-year2038}.
-+@option{--enable-year2038}, or by using @code{AC_SYS_YEAR2038} or
-+@code{AC_SYS_YEAR2038_RECOMMENDED} and configuring without
-+@option{--disable-year2038}.
- A future version of Autoconf might change the @code{AC_SYS_LARGEFILE}
- default to @code{--enable-year2038}; if and when that happens,
- @code{AC_SYS_LARGEFILE} and @code{AC_SYS_YEAR2038} will become equivalent.
-@@ -8886,19 +8888,6 @@ library, enabling or disabling the application's large-file support may
- break binary compatibility with that library.
- @end defmac
- 
--@defmac AC_SYS_LARGEFILE_REQUIRED
--@acindex{SYS_LARGEFILE_REQUIRED}
--This macro has the same effect as @code{AC_SYS_LARGEFILE},
--but also declares that the program being configured
--requires support for large files.
--If a large @code{off_t} is unavailable,
--@command{configure} will error out.
--The @option{--disable-largefile} option will not be available.
--
--Large-file and year-2038 support for applications and libraries should
--be configured compatibly.  @xref{AC_SYS_LARGEFILE}.
--@end defmac
--
- @anchor{AC_SYS_LONG_FILE_NAMES}
- @defmac AC_SYS_LONG_FILE_NAMES
- @acindex{SYS_LONG_FILE_NAMES}
-@@ -8927,14 +8916,13 @@ applications and libraries should be configured compatibly.
- @xref{AC_SYS_LARGEFILE}.
- @end defmac
- 
--@defmac AC_SYS_YEAR2038_REQUIRED
--@acindex{SYS_YEAR2038_REQUIRED}
-+@defmac AC_SYS_YEAR2038_RECOMMENDED
-+@acindex{SYS_YEAR2038_RECOMMENDED}
- This macro has the same effect as @code{AC_SYS_YEAR2038},
- but also declares that the program being configured
--requires support for timestamps after mid-January of 2038.
--If a large @code{time_t} is unavailable,
--@command{configure} will unconditionally error out.
--The @option{--disable-year2038} option will not be available.
-+should support timestamps after mid-January 2038.
-+If a large @code{time_t} is unavailable, @command{configure} will error
-+out unless the @option{--disable-year2038} option is specified.
- 
- Year-2038 support for applications and libraries should be configured
- compatibly.  @xref{AC_SYS_YEAR2038}.
-diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
-index f411695fe..88e0479e8 100644
---- a/lib/autoconf/specific.m4
-+++ b/lib/autoconf/specific.m4
-@@ -115,8 +115,8 @@ m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize(
-                                       dnl 32-bit MinGW (misconfiguration)
- ))
- 
--# _AC_SYS_YEAR2038_PROBE([IF-NOT-DETECTED])
--# -----------------------------------------
-+# _AC_SYS_YEAR2038_PROBE
-+# ----------------------
- # Subroutine of AC_SYS_YEAR2038.  Probe for time_t that can represent
- # time points more than 2**31 - 1 seconds after the epoch (dates after
- # 2038-01-18, see above) and set the cache variable ac_cv_sys_year2038_opts
-@@ -129,13 +129,10 @@ m4_define([_AC_SYS_YEAR2038_OPTIONS], m4_normalize(
- # AC_TRY_RUN.  Note also that some systems only support large time_t
- # together with large off_t.
- #
--# If support is not detected, the behavior depends on which of the
--# top-level AC_SYS_YEAR2038 macros was used (see below).
--#
- # If you change this macro you may also need to change
- # _AC_SYS_YEAR2038_OPTIONS.
- AC_DEFUN([_AC_SYS_YEAR2038_PROBE],
--[AC_CACHE_CHECK([for $CC option to enable timestamps after Jan 2038],
-+[AC_CACHE_CHECK([for $CC option for timestamps after 2038],
-   [ac_cv_sys_year2038_opts],
-   [ac_save_CPPFLAGS="$CPPFLAGS"
-   ac_opt_found=no
-@@ -154,29 +151,7 @@ ac_have_year2038=yes
- AS_CASE([$ac_cv_sys_year2038_opts],
-   ["none needed"], [],
-   ["support not detected"],
--    [ac_have_year2038=no
--     AS_CASE([$ac_year2038_required,$enable_year2038],
--      [yes,*],
--        [AC_MSG_FAILURE([support for timestamps after Jan 2038 is required])],
--      [*,yes],
--        [# If we're not cross compiling and 'touch' works with a large
--        # timestamp, then we can presume the system supports wider time_t
--        # *somehow* and we just weren't able to detect it.  One common
--        # case that we deliberately *don't* probe for is a system that
--        # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers
--        # wide time_t.  (It would be inappropriate for us to override an
--        # intentional use of -m32.)  Error out, demanding use of
--        # --disable-year2038 if this is intentional.
--        AS_IF([test $cross_compiling = no],
--          [AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null],
--            [AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`],
--              [*'Feb  7  2106'* | *'Feb  7 17:10'*],
--              [AC_MSG_FAILURE(m4_text_wrap(
--      [this system appears to support timestamps after January 2038,
--       but no mechanism for enabling wide 'time_t' was detected.
--       Did you mean to build a 64-bit binary? (e.g. 'CC="${CC} -m64"'.)
--       To proceed with 32-bit time_t, configure with '--disable-year2038'.],
--      [], [], [55]))])])])])],
-+    [ac_have_year2038=no],
- 
-   ["-D_TIME_BITS=64"],
-     [AC_DEFINE([_TIME_BITS], [64],
-@@ -189,7 +164,7 @@ AS_CASE([$ac_cv_sys_year2038_opts],
-   ["-U_USE_32_BIT_TIME_T"*],
-     [AC_MSG_FAILURE(m4_text_wrap(
-       [the 'time_t' type is currently forced to be 32-bit.
--       It will stop working after January 2038.
-+       It will stop working after mid-January 2038.
-        Remove _USE_32BIT_TIME_T from the compiler flags.],
-       [], [], [55]))],
- 
-@@ -199,44 +174,23 @@ AS_CASE([$ac_cv_sys_year2038_opts],
- 
- # _AC_SYS_YEAR2038_ENABLE
- # -----------------------
--# Subroutine of AC_SYS_YEAR2038 and _AC_SYS_YEAR2038_OPT_IN.
- # Depending on which of the YEAR2038 macros was used, add either an
--# --enable-year2038, or a --disable-year2038, or no option at all to
--# the configure script.  Note that this is expanded very late and
-+# --enable-year2038 or a --disable-year2038 to
-+# the configure script.  This is expanded very late and
- # therefore there cannot be any code in the AC_ARG_ENABLE.  The
- # default value for 'enable_year2038' is emitted unconditionally
- # because the generated code always looks at this variable.
- m4_define([_AC_SYS_YEAR2038_ENABLE],
- [m4_divert_text([DEFAULTS],
--  m4_provide_if([AC_SYS_YEAR2038_REQUIRED],
--    [ac_year2038_required=yes],
--    [ac_year2038_required=no]))dnl
--m4_divert_text([DEFAULTS],
-   m4_provide_if([AC_SYS_YEAR2038],
-     [enable_year2038=yes],
-     [enable_year2038=no]))]dnl
--[m4_provide_if([AC_SYS_YEAR2038_REQUIRED], [],
- [AC_ARG_ENABLE([year2038],
-   m4_provide_if([AC_SYS_YEAR2038],
-     [AS_HELP_STRING([--disable-year2038],
--      [omit support for dates after Jan 2038])],
-+      [don't support timestamps after 2038])],
-     [AS_HELP_STRING([--enable-year2038],
--      [include support for dates after Jan 2038])]))])])
--
--# _AC_SYS_YEAR2038_OPT_IN
--# -----------------------
--# If the --enable-year2038 option is given to configure, attempt to
--# detect and activate support for large time_t on 32-bit systems.
--# This macro is automatically invoked by AC_SYS_LARGEFILE when large
--# *file* support is detected.  It does not AC_REQUIRE AC_SYS_LARGEFILE
--# to avoid a dependency loop, and is therefore unsafe to expose as a
--# documented macro.
--AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN],
--[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
--  AS_IF([test "$ac_year2038_required,$enable_year2038" != no,no],
--    [_AC_SYS_YEAR2038_PROBE])
--  AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
--])])
-+      [support timestamps after 2038])]))])
- 
- # AC_SYS_YEAR2038
- # ---------------
-@@ -244,28 +198,39 @@ AC_DEFUN([_AC_SYS_YEAR2038_OPT_IN],
- # On systems where time_t is not always 64 bits, this probe can be
- # skipped by passing the --disable-year2038 option to configure.
- AC_DEFUN([AC_SYS_YEAR2038],
--[m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [],
--  [AC_REQUIRE([AC_SYS_LARGEFILE])])]dnl
--[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
--  AS_IF([test "$ac_year2038_required,$enable_year2038" != no,no],
--    [_AC_SYS_YEAR2038_PROBE])
--  AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
--])])
--
--# AC_SYS_YEAR2038_REQUIRED
--# ------------------------
--# Same as AC_SYS_YEAR2038, but declares that this program *requires*
--# support for large time_t.  If we cannot find any way to make time_t
--# capable of representing values larger than 2**31 - 1, configure will
--# error out.  Furthermore, no --enable-year2038 nor --disable-year2038
--# option will be available.
--AC_DEFUN([AC_SYS_YEAR2038_REQUIRED],
--[m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [],
--  [AC_REQUIRE([AC_SYS_LARGEFILE])])]dnl
--[m4_provide_if([_AC_SYS_YEAR2038_PROBE], [], [dnl
--  _AC_SYS_YEAR2038_PROBE
--  AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])
--])])
-+[AC_REQUIRE([AC_SYS_LARGEFILE])dnl
-+AS_IF([test "$enable_year2038,$ac_have_year2038,$cross_compiling" = yes,no,no],
-+ [# If we're not cross compiling and 'touch' works with a large
-+  # timestamp, then we can presume the system supports wider time_t
-+  # *somehow* and we just weren't able to detect it.  One common
-+  # case that we deliberately *don't* probe for is a system that
-+  # supports both 32- and 64-bit ABIs but only the 64-bit ABI offers
-+  # wide time_t.  (It would be inappropriate for us to override an
-+  # intentional use of -m32.)  Error out, demanding use of
-+  # --disable-year2038 if this is intentional.
-+  AS_IF([TZ=UTC0 touch -t 210602070628.15 conftest.time 2>/dev/null],
-+    [AS_CASE([`TZ=UTC0 LC_ALL=C ls -l conftest.time 2>/dev/null`],
-+       [*'Feb  7  2106'* | *'Feb  7 17:10'*],
-+       [AC_MSG_FAILURE(m4_text_wrap(
-+	  [this system appears to support timestamps after mid-January 2038,
-+	   but no mechanism for enabling wide 'time_t' was detected.
-+	   Did you mean to build a 64-bit binary? (E.g., 'CC="${CC} -m64"'.)
-+	   To proceed with 32-bit time_t, configure with '--disable-year2038'.],
-+	  [], [], [55]))])])])])
-+
-+# AC_SYS_YEAR2038_RECOMMENDED
-+# ---------------------------
-+# Same as AC_SYS_YEAR2038, but recommend support for large time_t.
-+# If we cannot find any way to make time_t capable of representing
-+# values larger than 2**31 - 1, error out unless --disable-year2038 is given.
-+AC_DEFUN([AC_SYS_YEAR2038_RECOMMENDED],
-+[AC_REQUIRE([AC_SYS_YEAR2038])dnl
-+AS_IF([test "$enable_year2038,$ac_have_year2038" = yes,no],
-+   [AC_MSG_FAILURE(m4_text_wrap(
-+      [could not enable timestamps after mid-January 2038.
-+       Did you mean to build a 64-bit binary? (E.g., 'CC="${CC} -m64"'.)
-+       To proceed with 32-bit time_t, configure with '--disable-year2038'.],
-+      [], [], [55]))])])
- 
- # _AC_SYS_LARGEFILE_TEST_CODE
- # ---------------------------
-@@ -342,9 +307,7 @@ AS_CASE([$ac_cv_sys_largefile_opts],
-   ["none needed"], [],
-   ["supported through gnulib"], [],
-   ["support not detected"],
--    [ac_have_largefile=no
--     AS_IF([test $ac_largefile_required,$ac_year2038_required != no,no],
--       [AC_MSG_FAILURE([support for large files is required])])],
-+    [ac_have_largefile=no],
- 
-   ["-D_FILE_OFFSET_BITS=64"],
-     [AC_DEFINE([_FILE_OFFSET_BITS], [64],
-@@ -360,30 +323,9 @@ AS_CASE([$ac_cv_sys_largefile_opts],
-   [AC_MSG_ERROR(
-     [internal error: bad value for \$ac_cv_sys_largefile_opts])])
- 
--_AC_SYS_YEAR2038_OPT_IN
--])
--
--# _AC_SYS_LARGEFILE_ENABLE
--# ------------------------
--# Subroutine of AC_SYS_LARGEFILE.  If AC_SYS_LARGEFILE_REQUIRED was
--# not used at any point in this configure script, add a
--# --disable-largefile option to the configure script.  Note that this
--# is expanded very late and therefore there cannot be any code in the
--# AC_ARG_ENABLE.  The default value for 'enable_largefile' is emitted
--# unconditionally because the generated shell code always looks at
--# this variable.
--m4_define([_AC_SYS_LARGEFILE_ENABLE],
--[m4_divert_text([DEFAULTS],
--  m4_provide_if([AC_SYS_LARGEFILE_REQUIRED],
--    [ac_largefile_required=yes],
--    [ac_largefile_required=no]))dnl
--m4_divert_text([DEFAULTS],
--  [enable_largefile=yes])]dnl
--[m4_provide_if([AC_SYS_LARGEFILE_REQUIRED], [],
--   [m4_provide_if([AC_SYS_YEAR2038_REQUIRED], [],
--      [AC_ARG_ENABLE([largefile],
--         [AS_HELP_STRING([--disable-largefile],
--	    [omit support for large files])])])])])
-+AS_IF([test "$enable_year2038" != no],
-+  [_AC_SYS_YEAR2038_PROBE])
-+AC_CONFIG_COMMANDS_PRE([_AC_SYS_YEAR2038_ENABLE])])
- 
- # AC_SYS_LARGEFILE
- # ----------------
-@@ -394,29 +336,12 @@ m4_divert_text([DEFAULTS],
- # Additionally, on Linux file systems with 64-bit inodes a file that happens
- # to have a 64-bit inode number cannot be accessed by 32-bit applications on
- # Linux x86/x86_64.  This can occur with file systems such as XFS and NFS.
--# This macro allows configuration to continue if the system doesn't support
--# large files; see also AC_SYS_LARGEFILE_REQUIRED.
- AC_DEFUN([AC_SYS_LARGEFILE],
--[m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl
--  AS_IF([test "$ac_largefile_required,$enable_largefile,$ac_year2038_required" != no,no,no],
--    [_AC_SYS_LARGEFILE_PROBE])
--  AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE])
--])])
--
--# AC_SYS_LARGEFILE_REQUIRED
--# -------------------------
--# Same as AC_SYS_LARGEFILE, but declares that this program *requires*
--# support for large files.  If we cannot find a combination of compiler
--# options and #defines that makes 'off_t' capable of representing 2**63 - 1,
--# 'configure' will error out.  Furthermore, 'configure' will not offer a
--# --disable-largefile command line option.
--# If both AC_SYS_LARGEFILE and AC_SYS_LARGEFILE_REQUIRED are used in the
--# same configure script -- in either order -- AC_SYS_LARGEFILE_REQUIRED wins.
--AC_DEFUN([AC_SYS_LARGEFILE_REQUIRED],
--[m4_provide_if([_AC_SYS_LARGEFILE_PROBE], [], [dnl
--  _AC_SYS_LARGEFILE_PROBE
--  AC_CONFIG_COMMANDS_PRE([_AC_SYS_LARGEFILE_ENABLE])
--])])
-+[AC_ARG_ENABLE([largefile],
-+   [AS_HELP_STRING([--disable-largefile],
-+      [omit support for large files])])dnl
-+AS_IF([test "$enable_largefile,$enable_year2038" != no,no],
-+  [_AC_SYS_LARGEFILE_PROBE])])
- 
- # AC_SYS_LONG_FILE_NAMES
- # ----------------------
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0021-Port-AC_FUNC_MMAP-to-more-modern-systems.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0021-Port-AC_FUNC_MMAP-to-more-modern-systems.patch
deleted file mode 100644
index 56bcbb6..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0021-Port-AC_FUNC_MMAP-to-more-modern-systems.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 028526149ee804617a302ccef22cc6adbda681b0 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Wed, 10 May 2023 17:20:49 -0700
-Subject: [PATCH 21/29] Port AC_FUNC_MMAP to more-modern systems
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-* lib/autoconf/functions.m4 (AC_FUNC_MMAP): Don’t call
-getpagesize, as it’s tricky to configure, modern POSIX doesn’t
-require it, and calling it without including <unistd.h> provokes a
-compile-time error on modern systems.  Instead, rework the test
-to not need getpagesize.  Add a FIXME comment for unnecessary
-tests; I don't want to remove them now as we're too close to
-a release.  Remove long-obsolete comment about GNU grep.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/functions.m4 | 44 +++++----------------------------------
- 1 file changed, 5 insertions(+), 39 deletions(-)
-
-diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4
-index 499e4c024..5a0f01856 100644
---- a/lib/autoconf/functions.m4
-+++ b/lib/autoconf/functions.m4
-@@ -1283,6 +1283,7 @@ AU_ALIAS([AM_FUNC_MKTIME], [AC_FUNC_MKTIME])
- AN_FUNCTION([mmap], [AC_FUNC_MMAP])
- AC_DEFUN([AC_FUNC_MMAP],
- [AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
-+dnl FIXME: Remove the unnecessary checks for unistd.h, sys/param.h, getpagesize.
- AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h])
- AC_CHECK_FUNCS_ONCE([getpagesize])
- AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped],
-@@ -1305,48 +1306,11 @@ AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped],
-    VM page cache was not coherent with the file system buffer cache
-    like early versions of FreeBSD and possibly contemporary NetBSD.)
-    For shared mappings, we should conversely verify that changes get
--   propagated back to all the places they're supposed to be.
--
--   Grep wants private fixed already mapped.
--   The main things grep needs to know about mmap are:
--   * does it exist and is it safe to write into the mmap'd area
--   * how to use it (BSD variants)  */
-+   propagated back to all the places they're supposed to be.  */
- 
- #include <fcntl.h>
- #include <sys/mman.h>
- 
--/* This mess was copied from the GNU getpagesize.h.  */
--#ifndef HAVE_GETPAGESIZE
--# ifdef _SC_PAGESIZE
--#  define getpagesize() sysconf(_SC_PAGESIZE)
--# else /* no _SC_PAGESIZE */
--#  ifdef HAVE_SYS_PARAM_H
--#   include <sys/param.h>
--#   ifdef EXEC_PAGESIZE
--#    define getpagesize() EXEC_PAGESIZE
--#   else /* no EXEC_PAGESIZE */
--#    ifdef NBPG
--#     define getpagesize() NBPG * CLSIZE
--#     ifndef CLSIZE
--#      define CLSIZE 1
--#     endif /* no CLSIZE */
--#    else /* no NBPG */
--#     ifdef NBPC
--#      define getpagesize() NBPC
--#     else /* no NBPC */
--#      ifdef PAGESIZE
--#       define getpagesize() PAGESIZE
--#      endif /* PAGESIZE */
--#     endif /* no NBPC */
--#    endif /* no NBPG */
--#   endif /* no EXEC_PAGESIZE */
--#  else /* no HAVE_SYS_PARAM_H */
--#   define getpagesize() 8192	/* punt totally */
--#  endif /* no HAVE_SYS_PARAM_H */
--# endif /* no _SC_PAGESIZE */
--
--#endif /* no HAVE_GETPAGESIZE */
--
- int
- main (void)
- {
-@@ -1355,7 +1319,9 @@ main (void)
-   int i, pagesize;
-   int fd, fd2;
- 
--  pagesize = getpagesize ();
-+  /* The "page size" need not equal the system page size,
-+     and need not even be a power of 2.  */
-+  pagesize = 8192;
- 
-   /* First, make a file with some known garbage in it. */
-   data = (char *) malloc (pagesize);
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0022-Fix-port-of-AC_FUNC_MMAP.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0022-Fix-port-of-AC_FUNC_MMAP.patch
deleted file mode 100644
index 1b168c7..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0022-Fix-port-of-AC_FUNC_MMAP.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 33c26d2700f927432c756ccf7a4fc89403d35b95 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Wed, 10 May 2023 22:57:27 -0700
-Subject: [PATCH 22/29] Fix port of AC_FUNC_MMAP
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Problem reported by Matt Turner in:
-https://lists.gnu.org/r/bug-autoconf/2023-05/msg00005.html
-* lib/autoconf/functions.m4 (AC_FUNC_MMAP): Go back to getting the
-page size, since the zero-fill test needs this after all.
-However, prefer sysconf (_SC_PAGESIZE) or sysconf (_SC_PAGE_SIZE)
-to getpagesize (), and use ‘long’ not ‘int’ to store the page size.
-Also, declare getpagesize if it is used as a function.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/functions.m4 | 41 ++++++++++++++++++++++++++++++++++-----
- 1 file changed, 36 insertions(+), 5 deletions(-)
-
-diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4
-index 5a0f01856..3d6e4aca8 100644
---- a/lib/autoconf/functions.m4
-+++ b/lib/autoconf/functions.m4
-@@ -1283,7 +1283,6 @@ AU_ALIAS([AM_FUNC_MKTIME], [AC_FUNC_MKTIME])
- AN_FUNCTION([mmap], [AC_FUNC_MMAP])
- AC_DEFUN([AC_FUNC_MMAP],
- [AC_REQUIRE([AC_CANONICAL_HOST])dnl for cross-compiles
--dnl FIXME: Remove the unnecessary checks for unistd.h, sys/param.h, getpagesize.
- AC_CHECK_HEADERS_ONCE([unistd.h sys/param.h])
- AC_CHECK_FUNCS_ONCE([getpagesize])
- AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped],
-@@ -1311,17 +1310,49 @@ AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped],
- #include <fcntl.h>
- #include <sys/mman.h>
- 
-+#ifndef getpagesize
-+# ifdef _SC_PAGESIZE
-+#  define getpagesize() sysconf (_SC_PAGESIZE)
-+# elif defined _SC_PAGE_SIZE
-+#  define getpagesize() sysconf (_SC_PAGE_SIZE)
-+# elif HAVE_GETPAGESIZE
-+int getpagesize ();
-+# else
-+#  ifdef HAVE_SYS_PARAM_H
-+#   include <sys/param.h>
-+#   ifdef EXEC_PAGESIZE
-+#    define getpagesize() EXEC_PAGESIZE
-+#   else /* no EXEC_PAGESIZE */
-+#    ifdef NBPG
-+#     define getpagesize() NBPG * CLSIZE
-+#     ifndef CLSIZE
-+#      define CLSIZE 1
-+#     endif /* no CLSIZE */
-+#    else /* no NBPG */
-+#     ifdef NBPC
-+#      define getpagesize() NBPC
-+#     else /* no NBPC */
-+#      ifdef PAGESIZE
-+#       define getpagesize() PAGESIZE
-+#      endif /* PAGESIZE */
-+#     endif /* no NBPC */
-+#    endif /* no NBPG */
-+#   endif /* no EXEC_PAGESIZE */
-+#  else /* no HAVE_SYS_PARAM_H */
-+#   define getpagesize() 8192	/* punt totally */
-+#  endif /* no HAVE_SYS_PARAM_H */
-+# endif
-+#endif
-+
- int
- main (void)
- {
-   char *data, *data2, *data3;
-   const char *cdata2;
--  int i, pagesize;
-+  long i, pagesize;
-   int fd, fd2;
- 
--  /* The "page size" need not equal the system page size,
--     and need not even be a power of 2.  */
--  pagesize = 8192;
-+  pagesize = getpagesize ();
- 
-   /* First, make a file with some known garbage in it. */
-   data = (char *) malloc (pagesize);
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0023-Improve-AC_SYS_YEAR2038_RECOMMENDED-diagnostic.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0023-Improve-AC_SYS_YEAR2038_RECOMMENDED-diagnostic.patch
deleted file mode 100644
index 9fb33c3..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0023-Improve-AC_SYS_YEAR2038_RECOMMENDED-diagnostic.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From ccc0d640c4d829504568330f9674408af5092ffc Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Sat, 13 May 2023 09:56:33 -0700
-Subject: [PATCH 23/29] Improve AC_SYS_YEAR2038_RECOMMENDED diagnostic
-
-* lib/autoconf/specific.m4 (AC_SYS_YEAR2038_RECOMMENDED):
-Do not recommend gcc -m64, as that likely will not work.
-Problem reported by Bruno Haible in:
-https://lists.gnu.org/r/bug-gnulib/2023-05/msg00060.html
-Instead, mention that 32-bit time_t is not recommended
-for this package, before telling the builder how
-to configure with 32-bit time_t anyway.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/specific.m4 | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
-index 88e0479e8..91f20bf0d 100644
---- a/lib/autoconf/specific.m4
-+++ b/lib/autoconf/specific.m4
-@@ -228,8 +228,9 @@ AC_DEFUN([AC_SYS_YEAR2038_RECOMMENDED],
- AS_IF([test "$enable_year2038,$ac_have_year2038" = yes,no],
-    [AC_MSG_FAILURE(m4_text_wrap(
-       [could not enable timestamps after mid-January 2038.
--       Did you mean to build a 64-bit binary? (E.g., 'CC="${CC} -m64"'.)
--       To proceed with 32-bit time_t, configure with '--disable-year2038'.],
-+       This package recommends support for these later timestamps.
-+       However, to proceed with signed 32-bit time_t even though it
-+       will fail then, configure with '--disable-year2038'.],
-       [], [], [55]))])])
- 
- # _AC_SYS_LARGEFILE_TEST_CODE
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0024-Improve-AC_FUNC_MMAP-comments.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0024-Improve-AC_FUNC_MMAP-comments.patch
deleted file mode 100644
index 2644c57..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0024-Improve-AC_FUNC_MMAP-comments.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 8e7281d7bebb5e389befe6e9a5afbb7b2ae13ae0 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Wed, 17 May 2023 11:50:27 -0700
-Subject: [PATCH 24/29] Improve AC_FUNC_MMAP comments
-
-* lib/autoconf/functions.m4 (AC_FUNC_MMAP): Add comment.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/functions.m4 | 2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/lib/autoconf/functions.m4 b/lib/autoconf/functions.m4
-index 3d6e4aca8..54d04cc38 100644
---- a/lib/autoconf/functions.m4
-+++ b/lib/autoconf/functions.m4
-@@ -1311,6 +1311,8 @@ AC_CACHE_CHECK([for working mmap], [ac_cv_func_mmap_fixed_mapped],
- #include <sys/mman.h>
- 
- #ifndef getpagesize
-+/* Prefer sysconf to the legacy getpagesize function, as getpagesize has
-+   been removed from POSIX and is limited to page sizes that fit in 'int'.  */
- # ifdef _SC_PAGESIZE
- #  define getpagesize() sysconf (_SC_PAGESIZE)
- # elif defined _SC_PAGE_SIZE
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch
deleted file mode 100644
index b7affed..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 103514e40da5f20aebf83a3446452ccebe5172bb Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Mon, 19 Jun 2023 14:04:29 -0700
-Subject: [PATCH 25/29] Fix AC_SYS_LARGEFILE on GNU/Linux alpha, s390x
-
-Problem reported by Matoro <https://bugs.gnu.org/64123>.
-* lib/autoconf/specific.m4 (_AC_SYS_LARGEFILE_TEST_CODE):
-New overridable macro FTYPE, to test types other than off_t.
-(_AC_SYS_LARGEFILE_TEST_CODE): Test ino_t for
--D_FILE_OFFSETBITS=64 too, if no flags are needed for off_t.
-Needed for GNU/Linux on alpha and s390x.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- lib/autoconf/specific.m4 | 21 +++++++++++++++------
- 1 file changed, 15 insertions(+), 6 deletions(-)
-
-diff --git a/lib/autoconf/specific.m4 b/lib/autoconf/specific.m4
-index 91f20bf0d..9d5974548 100644
---- a/lib/autoconf/specific.m4
-+++ b/lib/autoconf/specific.m4
-@@ -238,13 +238,16 @@ AS_IF([test "$enable_year2038,$ac_have_year2038" = yes,no],
- # C code used to probe for large file support.
- m4_define([_AC_SYS_LARGEFILE_TEST_CODE],
- [@%:@include <sys/types.h>
-- /* Check that off_t can represent 2**63 - 1 correctly.
--    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-+@%:@ifndef FTYPE
-+@%:@ define FTYPE off_t
-+@%:@endif
-+ /* Check that FTYPE can represent 2**63 - 1 correctly.
-+    We can't simply define LARGE_FTYPE to be 9223372036854775807,
-     since some C++ compilers masquerading as C compilers
-     incorrectly reject 9223372036854775807.  */
--@%:@define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
--  int off_t_is_large[[(LARGE_OFF_T % 2147483629 == 721
--		       && LARGE_OFF_T % 2147483647 == 1)
-+@%:@define LARGE_FTYPE (((FTYPE) 1 << 31 << 31) - 1 + ((FTYPE) 1 << 31 << 31))
-+  int FTYPE_is_large[[(LARGE_FTYPE % 2147483629 == 721
-+		       && LARGE_FTYPE % 2147483647 == 1)
- 		      ? 1 : -1]];[]dnl
- ])
- # Defined by Autoconf 2.71 and circa 2022 Gnulib unwisely depended on it.
-@@ -284,7 +287,13 @@ AC_DEFUN([_AC_SYS_LARGEFILE_PROBE],
-     AS_IF([test x"$ac_opt" != x"none needed"],
-       [CC="$ac_save_CC $ac_opt"])
-     AC_COMPILE_IFELSE([AC_LANG_PROGRAM([_AC_SYS_LARGEFILE_TEST_CODE])],
--      [ac_cv_sys_largefile_opts="$ac_opt"
-+     [AS_IF([test x"$ac_opt" = x"none needed"],
-+	[# GNU/Linux s390x and alpha need _FILE_OFFSET_BITS=64 for wide ino_t.
-+	 CC="$CC -DFTYPE=ino_t"
-+	 AC_COMPILE_IFELSE([], [],
-+	   [CC="$CC -D_FILE_OFFSET_BITS=64"
-+	    AC_COMPILE_IFELSE([], [ac_opt='-D_FILE_OFFSET_BITS=64'])])])
-+      ac_cv_sys_largefile_opts=$ac_opt
-       ac_opt_found=yes])
-     test $ac_opt_found = no || break
-   done
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0026-Modernize-INSTALL.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0026-Modernize-INSTALL.patch
deleted file mode 100644
index 8d25396..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0026-Modernize-INSTALL.patch
+++ /dev/null
@@ -1,270 +0,0 @@
-From a7421b411b4359b97528c8f4e9dd8abe82235813 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Tue, 20 Jun 2023 13:23:19 -0700
-Subject: [PATCH 26/29] Modernize INSTALL
-
-Problem reported for gettext bootstrap by Julien Palard in:
-https://savannah.gnu.org/bugs/?62196
-* doc/install.texi: Give a brief info as to how to bootstrap,
-on packages built from Git rather from a distribution tarball.
-Remove aging details about c99, macOS, X, HP-UX, OSF/1, Solaris,
-Haiku, sun4.  Improve documentation for enable/disable and
-with/without options.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- doc/install.texi | 157 +++++++++++++++++++++--------------------------
- 1 file changed, 70 insertions(+), 87 deletions(-)
-
-diff --git a/doc/install.texi b/doc/install.texi
-index e06689613..cec245fd0 100644
---- a/doc/install.texi
-+++ b/doc/install.texi
-@@ -18,9 +18,21 @@ warranty of any kind.
- @node Basic Installation
- @section Basic Installation
- 
--Briefly, the shell command
--@samp{./configure@tie{}&& make@tie{}&& make@tie{}install}
--should configure, build, and install this package.  The following
-+Briefly, the following shell commands:
-+
-+@example
-+test -f configure || ./bootstrap
-+./configure
-+make
-+make install
-+@end example
-+
-+@noindent
-+should configure, build, and install this package.
-+The @command{./bootstrap} line is intended for developers;
-+you can omit it when building from a distribution tarball.
-+
-+The following
- more-detailed instructions are generic; see the @file{README} file for
- instructions specific to this package.
- @ifclear autoconf
-@@ -32,6 +44,17 @@ More recommendations for GNU packages can be found in
- @ref{Makefile Conventions, , Makefile Conventions, standards,
- GNU Coding Standards}.
- 
-+If the @command{bootstrap} shell script exists, it attempts to build the
-+@command{configure} shell script and related files, perhaps by
-+downloading other software components from the network, and by using
-+developer tools that are less commonly installed.  Because the output of
-+@command{bootstrap} is system-independent, it is normally run by a
-+package developer so that its output can be put into the distribution
-+tarball and ordinary builders and users need not run @command{bootstrap}.
-+Some packages have commands like @command{./autopull.sh} and
-+@command {./autogen.sh} that you can run instead of @command{./bootstrap},
-+for more fine-grained control over bootstrapping.
-+
- The @command{configure} shell script attempts to guess correct values
- for various system-dependent variables used during compilation.  It uses
- those values to create a @file{Makefile} in each directory of the
-@@ -63,8 +86,15 @@ The simplest way to compile this package is:
- 
- @enumerate
- @item
--@command{cd} to the directory containing the package's source code and type
--@samp{./configure} to configure the package for your system.
-+@command{cd} to the directory containing the package's source code.
-+
-+@item
-+If this is a developer checkout and file @samp{configure} does not yet exist,
-+type @samp{./bootstrap} to create it.
-+You may need special developer tools and network access to bootstrap.
-+
-+@item
-+Type @samp{./configure} to configure the package for your system.
- 
- Running @command{configure} might take a while.  While running, it prints some
- messages telling which features it is checking for.
-@@ -124,7 +154,7 @@ parameters by setting variables in the command line or in the environment.
- Here is an example:
- 
- @example
--./configure CC=c99 CFLAGS=-g LIBS=-lposix
-+./configure CC=gcc CFLAGS=-g LIBS=-lposix
- @end example
- 
- @xref{Defining Variables}, for more details.
-@@ -148,21 +178,10 @@ architecture at a time in the source code directory.  After you have
- installed the package for one architecture, use @samp{make distclean}
- before reconfiguring for another architecture.
- 
--On MacOS X 10.5 and later systems, you can create libraries and
--executables that work on multiple system types---known as @dfn{fat} or
--@dfn{universal} binaries---by specifying multiple @option{-arch} options
--to the compiler but only a single @option{-arch} option to the
--preprocessor.  Like this:
--
--@example
--./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
--            CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
--            CPP="gcc -E" CXXCPP="g++ -E"
--@end example
--
--This is not guaranteed to produce working output in all cases, you may
--have to build one architecture at a time and combine the results
--using the @command{lipo} tool if you have problems.
-+Some platforms, notably macOS, support ``fat'' or ``universal'' binaries,
-+where a single binary can execute on different architectures.
-+On these platforms you can configure and compile just once,
-+with options specific to that platform.
- 
- @node Installation Names
- @section Installation Names
-@@ -227,20 +246,16 @@ an extra prefix or suffix on their names by giving @command{configure}
- the option @option{--program-prefix=@var{PREFIX}} or
- @option{--program-suffix=@var{SUFFIX}}.
- 
--Some packages pay attention to @option{--enable-@var{feature}} options
-+Some packages pay attention to @option{--enable-@var{feature}}
-+and @option{--disable-@var{feature}} options
- to @command{configure}, where @var{feature} indicates an optional part
- of the package.  They may also pay attention to
--@option{--with-@var{package}} options, where @var{package} is something
--like @samp{gnu-as} or @samp{x} (for the X Window System).  The
--@file{README} should mention any @option{--enable-} and @option{--with-}
-+@option{--with-@var{package}} and @option{--without-@var{package}} options,
-+where @var{package} is something like @samp{gnu-ld}.
-+@samp{./configure --help} should mention the
-+@option{--enable-...} and @option{--with-...}
- options that the package recognizes.
- 
--For packages that use the X Window System, @command{configure} can
--usually find the X include and library files automatically, but if it
--doesn't, you can use the @command{configure} options
--@option{--x-includes=@var{dir}} and @option{--x-libraries=@var{dir}} to
--specify their locations.
--
- Some packages offer the ability to configure how verbose the execution
- of @command{make} will be.  For these packages, running
- @samp{./configure --enable-silent-rules} sets the default to minimal
-@@ -248,53 +263,6 @@ output, which can be overridden with @code{make V=1}; while running
- @samp{./configure --disable-silent-rules} sets the default to verbose,
- which can be overridden with @code{make V=0}.
- 
--@node Particular Systems
--@section Particular systems
--
--On HP-UX, the default C compiler is not ANSI C compatible.  If GNU CC is
--not installed, it is recommended to use the following options in order to
--use an ANSI C compiler:
--
--@example
--./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
--@end example
--
--@noindent
--and if that doesn't work, install pre-built binaries of GCC for HP-UX.
--
--HP-UX @command{make} updates targets which have the same timestamps as
--their prerequisites, which makes it generally unusable when shipped
--generated files such as @command{configure} are involved.  Use GNU
--@command{make} instead.
--
--On OSF/1 a.k.a.@: Tru64, some versions of the default C compiler cannot
--parse its @code{<wchar.h>} header file.  The option @option{-nodtk} can be
--used as a workaround.  If GNU CC is not installed, it is therefore
--recommended to try
--
--@example
--./configure CC="cc"
--@end example
--
--@noindent
--and if that doesn't work, try
--
--@example
--./configure CC="cc -nodtk"
--@end example
--
--On Solaris, don't put @code{/usr/ucb} early in your @env{PATH}.  This
--directory contains several dysfunctional programs; working variants
--of these programs are available in @code{/usr/bin}.  So, if you need
--@code{/usr/ucb} in your @env{PATH}, put it @emph{after} @code{/usr/bin}.
--
--On Haiku, software installed for all users goes in @file{/boot/common},
--not @file{/usr/local}.  It is recommended to use the following options:
--
--@example
--./configure --prefix=/boot/common
--@end example
--
- @node System Type
- @section Specifying the System Type
- 
-@@ -304,7 +272,8 @@ will run on.  Usually, assuming the package is built to be run on the
- @emph{same} architectures, @command{configure} can figure that out, but
- if it prints a message saying it cannot guess the machine type, give it
- the @option{--build=@var{type}} option.  @var{type} can either be a
--short name for the system type, such as @samp{sun4}, or a canonical name
-+short name like @samp{mingw64} for the system type, or a canonical name
-+like @samp{x86_64-pc-linux-gnu}
- which has the form:
- 
- @example
-@@ -319,6 +288,7 @@ where @var{system} can have one of these forms:
- @var{kernel}-@var{os}
- @end example
- 
-+@noindent
- See the file @file{config.sub} for the possible values of each field.
- If @file{config.sub} isn't included in this package, then this package
- doesn't need to know the machine type.
-@@ -405,13 +375,6 @@ traditionally @file{config.cache}.  @var{file} defaults to
- @itemx -C
- Alias for @option{--cache-file=config.cache}.
- 
--@item --quiet
--@itemx --silent
--@itemx -q
--Do not print messages saying which checks are being made.  To suppress
--all normal output, redirect it to @file{/dev/null} (any error messages
--will still be shown).
--
- @item --srcdir=@var{dir}
- Look for the package's source code in directory @var{dir}.  Usually
- @command{configure} can determine that directory automatically.
-@@ -421,13 +384,33 @@ Use @var{dir} as the installation prefix.  @ref{Installation Names}
- for more details, including other options available for fine-tuning
- the installation locations.
- 
-+@item --build=@var{type}
-+Build for architecture @var{type}.  @ref{Specifying the System Type}
-+for more details, including other system type options.
-+
-+@item --enable-@var{feature}
-+@itemx --disable-@var{feature}
-+Enable or disable the optional @var{feature}.  @xref{Optional Features}.
-+
-+@item --with-@var{package}
-+@itemx --without-@var{package}
-+Use or omit @var{package} when building.  @xref{Optional Features}.
-+
-+@item --quiet
-+@itemx --silent
-+@itemx -q
-+Do not print messages saying which checks are being made.  To suppress
-+all normal output, redirect it to @file{/dev/null} (any error messages
-+will still be shown).
-+
- @item --no-create
- @itemx -n
- Run the configure checks, but stop before creating any output files.
- @end table
- 
- @noindent
--@command{configure} also accepts some other, not widely useful, options.
-+@command{configure} also recognizes several environment variables,
-+and accepts some other, less widely useful, options.
- Run @samp{configure --help} for more details.
- 
- @c Local Variables:
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0027-doc-fix-broken-cross-refs.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0027-doc-fix-broken-cross-refs.patch
deleted file mode 100644
index 7ab5074..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0027-doc-fix-broken-cross-refs.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From eaea61e4485cdecf989fa777ff4e166c945a6eea Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Tue, 20 Jun 2023 13:39:15 -0700
-Subject: [PATCH 27/29] doc: fix broken cross-refs
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- doc/autoconf.texi | 5 +----
- doc/install.texi  | 2 +-
- 2 files changed, 2 insertions(+), 5 deletions(-)
-
-diff --git a/doc/autoconf.texi b/doc/autoconf.texi
-index 0f3047b31..7817fc1b5 100644
---- a/doc/autoconf.texi
-+++ b/doc/autoconf.texi
-@@ -604,7 +604,6 @@ Running @command{configure} Scripts
- * Multiple Architectures::      Compiling for multiple architectures at once
- * Installation Names::          Installing in different directories
- * Optional Features::           Selecting optional features
--* Particular Systems::          Particular systems
- * System Type::                 Specifying the system type
- * Sharing Defaults::            Setting site-wide defaults for @command{configure}
- * Defining Variables::          Specifying the compiler etc.
-@@ -23304,7 +23303,6 @@ may use comes with Autoconf.
- * Multiple Architectures::      Compiling for multiple architectures at once
- * Installation Names::          Installing in different directories
- * Optional Features::           Selecting optional features
--* Particular Systems::          Particular systems
- * System Type::                 Specifying the system type
- * Sharing Defaults::            Setting site-wide defaults for @command{configure}
- * Defining Variables::          Specifying the compiler etc.
-@@ -26990,8 +26988,7 @@ for simple differences.
- @item
- Most tests which produce their result in a substituted variable allow to
- override the test by setting the variable on the @command{configure}
--command line (@pxref{Compilers and Options}, @pxref{Defining Variables},
--@pxref{Particular Systems}).
-+command line (@pxref{Compilers and Options}, @pxref{Defining Variables}).
- 
- @item
- Many tests store their result in a cache variable (@pxref{Caching
-diff --git a/doc/install.texi b/doc/install.texi
-index cec245fd0..6d9788fa9 100644
---- a/doc/install.texi
-+++ b/doc/install.texi
-@@ -385,7 +385,7 @@ for more details, including other options available for fine-tuning
- the installation locations.
- 
- @item --build=@var{type}
--Build for architecture @var{type}.  @ref{Specifying the System Type}
-+Build for architecture @var{type}.  @ref{System Type}.
- for more details, including other system type options.
- 
- @item --enable-@var{feature}
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0028-INSTALL-Clarify-build-host-target-and-the-system-typ.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0028-INSTALL-Clarify-build-host-target-and-the-system-typ.patch
deleted file mode 100644
index 95ad80d..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0028-INSTALL-Clarify-build-host-target-and-the-system-typ.patch
+++ /dev/null
@@ -1,224 +0,0 @@
-From 328f9b88ef896e8e31818c50d9ec2ade5c892ea4 Mon Sep 17 00:00:00 2001
-From: Bruno Haible <bruno@clisp.org>
-Date: Fri, 23 Jun 2023 17:37:35 +0200
-Subject: [PATCH 28/29] INSTALL: Clarify --build, --host, --target, and the
- system types.
-
-* doc/install.texi (Compilers and Options): Add another reference.
-(System Types): Renamed from System Type. Explain how to canonicalize
-and how to validate a system type. Don't explain --build, --host,
---target here.
-(Building for a different system type): New section.
-(Troubleshooting the Build Type): New section.
-(Configuring a Compiler): New section.
-(configure Invocation): Mention the --host option, not the --build
-option, since --build is so rarely needed.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- doc/autoconf.texi |   6 +--
- doc/install.texi  | 132 +++++++++++++++++++++++++++++++++++++---------
- 2 files changed, 111 insertions(+), 27 deletions(-)
-
-diff --git a/doc/autoconf.texi b/doc/autoconf.texi
-index 7817fc1b5..043f7fb21 100644
---- a/doc/autoconf.texi
-+++ b/doc/autoconf.texi
-@@ -604,7 +604,7 @@ Running @command{configure} Scripts
- * Multiple Architectures::      Compiling for multiple architectures at once
- * Installation Names::          Installing in different directories
- * Optional Features::           Selecting optional features
--* System Type::                 Specifying the system type
-+* System Types::                Specifying a system type
- * Sharing Defaults::            Setting site-wide defaults for @command{configure}
- * Defining Variables::          Specifying the compiler etc.
- * configure Invocation::        Changing how @command{configure} runs
-@@ -22383,7 +22383,7 @@ system it's running on.  To do so it runs a script called
- command or symbols predefined by the C preprocessor.
- 
- Alternately, the user can specify the system type with command line
--arguments to @command{configure} (@pxref{System Type}.  Doing so is
-+arguments to @command{configure} (@pxref{System Types}.  Doing so is
- necessary when
- cross-compiling.  In the most complex case of cross-compiling, three
- system types are involved.  The options to specify them are:
-@@ -23303,7 +23303,7 @@ may use comes with Autoconf.
- * Multiple Architectures::      Compiling for multiple architectures at once
- * Installation Names::          Installing in different directories
- * Optional Features::           Selecting optional features
--* System Type::                 Specifying the system type
-+* System Types::                Specifying a system type
- * Sharing Defaults::            Setting site-wide defaults for @command{configure}
- * Defining Variables::          Specifying the compiler etc.
- * configure Invocation::        Changing how @command{configure} runs
-diff --git a/doc/install.texi b/doc/install.texi
-index 6d9788fa9..a3ef17828 100644
---- a/doc/install.texi
-+++ b/doc/install.texi
-@@ -157,8 +157,16 @@ Here is an example:
- ./configure CC=gcc CFLAGS=-g LIBS=-lposix
- @end example
- 
--@xref{Defining Variables}, for more details.
--
-+See
-+@ref{Defining Variables} and
-+@ifset autoconf
-+@ref{Preset Output Variables}
-+@end ifset
-+@ifclear autoconf
-+@ref{Preset Output Variables,,, autoconf, Autoconf}
-+@c (@url{https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/html_node/Preset-Output-Variables.html})
-+@end ifclear
-+for more details.
- 
- @node Multiple Architectures
- @section Compiling For Multiple Architectures
-@@ -263,18 +271,17 @@ output, which can be overridden with @code{make V=1}; while running
- @samp{./configure --disable-silent-rules} sets the default to verbose,
- which can be overridden with @code{make V=0}.
- 
--@node System Type
--@section Specifying the System Type
-+@node System Types
-+@section Specifying a System Type
- 
--There may be some features @command{configure} cannot figure out
--automatically, but needs to determine by the type of machine the package
--will run on.  Usually, assuming the package is built to be run on the
--@emph{same} architectures, @command{configure} can figure that out, but
--if it prints a message saying it cannot guess the machine type, give it
--the @option{--build=@var{type}} option.  @var{type} can either be a
--short name like @samp{mingw64} for the system type, or a canonical name
--like @samp{x86_64-pc-linux-gnu}
--which has the form:
-+The following sections go into details regarding situations where you
-+may have to specify a system type, either through the option
-+@option{--host=@var{type}}, or through the option
-+@option{--build=@var{type}}, or -- in the case of compilers -- through
-+@option{--target=@var{type}}.
-+
-+A system type @var{type} can either be a short name like @samp{mingw64},
-+or a canonical name like @samp{x86_64-pc-linux-gnu} which has the form:
- 
- @example
- @var{cpu}-@var{company}-@var{system}
-@@ -291,16 +298,93 @@ where @var{system} can have one of these forms:
- @noindent
- See the file @file{config.sub} for the possible values of each field.
- If @file{config.sub} isn't included in this package, then this package
--doesn't need to know the machine type.
-+doesn't need to know any machine type.
-+
-+The file @file{config.sub} is a program that validates and canonicalizes
-+a system type.
-+It can do canonicalization, as in
-+
-+@example
-+$ sh config.sub x86_64-linux
-+x86_64-pc-linux-gnu
-+$ sh config.sub arm64-linux
-+aarch64-unknown-linux-gnu
-+@end example
-+
-+@noindent
-+It also validates the parts.  For example, this interaction tells you
-+that ``crusoe'' is not a valid cpu architecture name:
- 
--If you are @emph{building} compiler tools for cross-compiling, you
--should use the option @option{--target=@var{type}} to select the type of
--system they will produce code for.
-+@example
-+$ sh config.sub crusoe-linux
-+Invalid configuration `crusoe-linux': machine `crusoe-unknown' not recognized
-+@end example
-+
-+@node Building for a different system type
-+@section Creating binaries for a different system type
-+
-+When you want to create binaries that will run on a different machine
-+type than the one you are building on, you need to specify both
-+@itemize @bullet
-+@item
-+a @option{--host=@var{type}} option, specifying the machine type on
-+which the binaries shall run,
-+@item
-+compiler variables (@code{CC} for the C compiler, @code{CXX} for the C++
-+compiler, and so on), pointing to compilers that generate object code
-+for that machine type.
-+@end itemize
-+
-+For example, to create binaries intended to run on a 64-bit ARM
-+processor:
-+@example
-+./configure --host=aarch64-linux-gnu \
-+            CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
-+@end example
- 
--If you want to @emph{use} a cross compiler, that generates code for a
--platform different from the build platform, you should specify the
--@dfn{host} platform (i.e., that on which the generated programs will
--eventually be run) with @option{--host=@var{type}}.
-+If you do this on a machine that can execute such binaries (e.g.@: by
-+virtue of the @code{qemu-aarch64} program, system libraries for that
-+architecture under @code{$QEMU_LD_PREFIX}, and a Linux
-+@code{binfmt_misc} configuration), the build behaves like a native
-+build.
-+If not, the build is a cross-build, in the sense that @code{configure}
-+will make cross-compilation guesses instead of running test programs,
-+and ``make check'' will not work.
-+
-+@node Troubleshooting the Build Type
-+@section Fixing a ``cannot guess build type'' error
-+
-+In rare cases, it may happen that @code{configure} fails with the error
-+message ``cannot guess build type''.
-+This error means that the files @file{config.guess} and
-+@file{config.sub} don't recognize the type of the system on which you
-+are building.
-+In this case, first fetch the newest versions of these files, from
-+@url{https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess}
-+and
-+@url{https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub},
-+respectively, and use these as drop-in replacement for the files
-+@file{config.guess} and @file{config.sub} that were shipped with this
-+package.
-+
-+If this resolves the problem, feel free to report the solution to the
-+maintainers of this package.
-+
-+Otherwise, it means that your system is not yet supported by
-+@file{config.guess} and @file{config.sub}.
-+As a workaround, you can use a configure option
-+@option{--build=@var{type}}, where @var{type} comes closest to your
-+system type.
-+Also, you're welcome to file a report to
-+@email{config-patches@@gnu.org}.
-+
-+@node Configuring a Compiler
-+@section Configuration options specific to a compiler
-+
-+If you are building a compiler, and this compiler should generate code
-+for a system type that is different from the one on which the compiler
-+binaries shall run on, use the option @option{--target=@var{type}} to
-+select the type of system for which the compiler should produce code.
- 
- @node Sharing Defaults
- @section Sharing Defaults
-@@ -384,9 +468,9 @@ Use @var{dir} as the installation prefix.  @ref{Installation Names}
- for more details, including other options available for fine-tuning
- the installation locations.
- 
--@item --build=@var{type}
--Build for architecture @var{type}.  @ref{System Type}.
--for more details, including other system type options.
-+@item --host=@var{type}
-+Build binaries for architecture @var{type}.  @ref{System Types} and
-+@ref{Building for a different system type} for more details.
- 
- @item --enable-@var{feature}
- @itemx --disable-@var{feature}
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0029-Shorten-and-improve-INSTALL.patch b/poky/meta/recipes-devtools/autoconf/autoconf/backports/0029-Shorten-and-improve-INSTALL.patch
deleted file mode 100644
index 9129ab7..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf/backports/0029-Shorten-and-improve-INSTALL.patch
+++ /dev/null
@@ -1,366 +0,0 @@
-From d8ca8b323873e5cd9d969a062f70b31db450ba53 Mon Sep 17 00:00:00 2001
-From: Paul Eggert <eggert@cs.ucla.edu>
-Date: Sat, 24 Jun 2023 14:39:34 -0700
-Subject: [PATCH 29/29] Shorten and improve INSTALL
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Rewrite install.texi so that INSTALL is shorter and hopefully
-more useful for new installers.
-* doc/install.texi: When not building the Autoconf manual, put
-copyright notice at the end, and omit external references as they
-do not work in INSTALL.
-Avoid long URLs as they do not work well in INSTALL or
-in info files.  Be more consistent (though not entirely
-consistent) about “system” vs “architecture”.
-(System Types, Building for a different system type)
-(Troubleshooting the Build Type): Coalesce into a single section
-and rewrite for clarity and brevity.  Mention build-aux.  Do not
-mention --target here as it’s too rare to make the cut.
-
-Upstream-Status: Backport
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- doc/install.texi | 224 +++++++++++++++++------------------------------
- 1 file changed, 82 insertions(+), 142 deletions(-)
-
-diff --git a/doc/install.texi b/doc/install.texi
-index a3ef17828..6c3a9c21c 100644
---- a/doc/install.texi
-+++ b/doc/install.texi
-@@ -2,23 +2,13 @@
- @c the INSTALL file.
- 
- @ifclear autoconf
--
- @unnumbered Installation Instructions
--
--Copyright @copyright{} 1994--1996, 1999--2002, 2004--2017, 2020--2023
--Free Software Foundation, Inc.
--
--Copying and distribution of this file, with or without modification, are
--permitted in any medium without royalty provided the copyright notice
--and this notice are preserved.  This file is offered as-is, without
--warranty of any kind.
--
- @end ifclear
- 
- @node Basic Installation
- @section Basic Installation
- 
--Briefly, the following shell commands:
-+The following shell commands:
- 
- @example
- test -f configure || ./bootstrap
-@@ -41,8 +31,13 @@ of the features documented below.  The lack of an optional feature in a
- given package is not necessarily a bug.
- @end ifclear
- More recommendations for GNU packages can be found in
-+@ifset autoconf
- @ref{Makefile Conventions, , Makefile Conventions, standards,
- GNU Coding Standards}.
-+@end ifset
-+@ifclear autoconf
-+the GNU Coding Standards.
-+@end ifclear
- 
- If the @command{bootstrap} shell script exists, it attempts to build the
- @command{configure} shell script and related files, perhaps by
-@@ -61,8 +56,8 @@ those values to create a @file{Makefile} in each directory of the
- package.  It may also create one or more @file{.h} files containing
- system-dependent definitions.  Finally, it creates a shell script
- @file{config.status} that you can run in the future to recreate the
--current configuration, and a file @file{config.log} containing compiler
--output (useful mainly for debugging @command{configure}).
-+current configuration, and a file @file{config.log} containing
-+output useful for debugging @command{configure}.
- 
- It can also use an optional file (typically called @file{config.cache}
- and enabled with @option{--cache-file=config.cache} or simply
-@@ -77,10 +72,9 @@ they can be considered for the next release.  If you are using the
- cache, and at some point @file{config.cache} contains results you don't
- want to keep, you may remove or edit it.
- 
--The file @file{configure.ac} (or @file{configure.in}) is used to create
--@file{configure} by a program called @command{autoconf}.  You need
--@file{configure.ac} if you want to change it or regenerate
--@file{configure} using a newer version of @command{autoconf}.
-+The @command{autoconf} program generates @file{configure} from the file
-+@file{configure.ac}.  Normally you should edit @file{configure.ac}
-+instead of editing @file{configure} directly.
- 
- The simplest way to compile this package is:
- 
-@@ -95,8 +89,7 @@ You may need special developer tools and network access to bootstrap.
- 
- @item
- Type @samp{./configure} to configure the package for your system.
--
--Running @command{configure} might take a while.  While running, it prints some
-+This might take a while.  While running, @command{configure} prints
- messages telling which features it is checking for.
- 
- @item
-@@ -125,21 +118,11 @@ code directory by typing @samp{make clean}.  To also remove the files
- that @command{configure} created (so you can compile the package for a
- different kind of computer), type @samp{make distclean}.  There is also
- a @samp{make maintainer-clean} target, but that is intended mainly for
--the package's developers.  If you use it, you may have to get all sorts
--of other programs in order to regenerate files that came with the
--distribution.
-+the package's developers.  If you use it, you may have to bootstrap again.
- 
- @item
--Often, you can also type @samp{make uninstall} to remove the installed
--files again.  In practice, not all packages have tested that
--uninstallation works correctly, even though it is required by the
--GNU Coding Standards.
--
--@item
--Some packages, particularly those that use Automake, provide @samp{make
--distcheck}, which can by used by developers to test that all other
--targets like @samp{make install} and @samp{make uninstall} work
--correctly.  This target is generally not run by end users.
-+If the package follows the GNU Coding Standards,
-+you can type @samp{make uninstall} to remove the installed files.
- @end enumerate
- 
- @node Compilers and Options
-@@ -158,21 +141,17 @@ Here is an example:
- @end example
- 
- See
--@ref{Defining Variables} and
-+@ref{Defining Variables}
- @ifset autoconf
--@ref{Preset Output Variables}
-+and @ref{Preset Output Variables}
- @end ifset
--@ifclear autoconf
--@ref{Preset Output Variables,,, autoconf, Autoconf}
--@c (@url{https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.71/html_node/Preset-Output-Variables.html})
--@end ifclear
- for more details.
- 
- @node Multiple Architectures
- @section Compiling For Multiple Architectures
- 
- You can compile the package for more than one kind of computer at the
--same time, by placing the object files for each architecture in their
-+same time, by placing the object files for each system in their
- own directory.  To do this, you can use GNU @command{make}.
- @command{cd} to the directory where you want the object files and
- executables to go and run the @command{configure} script.
-@@ -182,9 +161,9 @@ known as a @dfn{VPATH} build.
- 
- With a non-GNU @command{make},
- it is safer to compile the package for one
--architecture at a time in the source code directory.  After you have
--installed the package for one architecture, use @samp{make distclean}
--before reconfiguring for another architecture.
-+system at a time in the source code directory.  After you have
-+installed the package for one system, use @samp{make distclean}
-+before reconfiguring for another system.
- 
- Some platforms, notably macOS, support ``fat'' or ``universal'' binaries,
- where a single binary can execute on different architectures.
-@@ -274,117 +253,65 @@ which can be overridden with @code{make V=0}.
- @node System Types
- @section Specifying a System Type
- 
--The following sections go into details regarding situations where you
--may have to specify a system type, either through the option
--@option{--host=@var{type}}, or through the option
--@option{--build=@var{type}}, or -- in the case of compilers -- through
--@option{--target=@var{type}}.
--
--A system type @var{type} can either be a short name like @samp{mingw64},
--or a canonical name like @samp{x86_64-pc-linux-gnu} which has the form:
--
--@example
--@var{cpu}-@var{company}-@var{system}
--@end example
--
--@noindent
--where @var{system} can have one of these forms:
-+By default @command{configure} builds for the current system.
-+To create binaries that can run on a different system type,
-+specify a @option{--host=@var{type}} option along with compiler
-+variables that specify how to generate object code for @var{type}.
-+For example, to create binaries intended to run on a 64-bit ARM
-+processor:
- 
- @example
--@var{os}
--@var{kernel}-@var{os}
-+./configure --host=aarch64-linux-gnu \
-+   CC=aarch64-linux-gnu-gcc \
-+   CXX=aarch64-linux-gnu-g++
- @end example
- 
- @noindent
--See the file @file{config.sub} for the possible values of each field.
--If @file{config.sub} isn't included in this package, then this package
--doesn't need to know any machine type.
--
--The file @file{config.sub} is a program that validates and canonicalizes
--a system type.
--It can do canonicalization, as in
-+If done on a machine that can execute these binaries
-+(e.g., via @command{qemu-aarch64}, @env{$QEMU_LD_PREFIX}, and Linux's
-+@code{binfmt_misc} capability), the build behaves like a native build.
-+Otherwise it is a cross-build: @code{configure}
-+will make cross-compilation guesses instead of running test programs,
-+and @code{make check} will not work.
-+
-+A system type can either be a short name like @samp{mingw64},
-+or a canonical name like @samp{x86_64-pc-linux-gnu}.
-+Canonical names have the form @var{cpu}-@var{company}-@var{system}
-+where @var{system} is either @var{os} or @var{kernel}-@var{os}.
-+To canonicalize and validate a system type,
-+you can run the command @file{config.sub},
-+which is often squirreled away in a subdirectory like @file{build-aux}.
-+For example:
- 
- @example
--$ sh config.sub x86_64-linux
--x86_64-pc-linux-gnu
--$ sh config.sub arm64-linux
-+$ build-aux/config.sub arm64-linux
- aarch64-unknown-linux-gnu
-+$ build-aux/config.sub riscv-lnx
-+Invalid configuration 'riscv-lnx': OS 'lnx' not recognized
- @end example
- 
- @noindent
--It also validates the parts.  For example, this interaction tells you
--that ``crusoe'' is not a valid cpu architecture name:
--
--@example
--$ sh config.sub crusoe-linux
--Invalid configuration `crusoe-linux': machine `crusoe-unknown' not recognized
--@end example
--
--@node Building for a different system type
--@section Creating binaries for a different system type
--
--When you want to create binaries that will run on a different machine
--type than the one you are building on, you need to specify both
--@itemize @bullet
--@item
--a @option{--host=@var{type}} option, specifying the machine type on
--which the binaries shall run,
--@item
--compiler variables (@code{CC} for the C compiler, @code{CXX} for the C++
--compiler, and so on), pointing to compilers that generate object code
--for that machine type.
--@end itemize
--
--For example, to create binaries intended to run on a 64-bit ARM
--processor:
--@example
--./configure --host=aarch64-linux-gnu \
--            CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++
--@end example
--
--If you do this on a machine that can execute such binaries (e.g.@: by
--virtue of the @code{qemu-aarch64} program, system libraries for that
--architecture under @code{$QEMU_LD_PREFIX}, and a Linux
--@code{binfmt_misc} configuration), the build behaves like a native
--build.
--If not, the build is a cross-build, in the sense that @code{configure}
--will make cross-compilation guesses instead of running test programs,
--and ``make check'' will not work.
--
--@node Troubleshooting the Build Type
--@section Fixing a ``cannot guess build type'' error
--
--In rare cases, it may happen that @code{configure} fails with the error
--message ``cannot guess build type''.
--This error means that the files @file{config.guess} and
--@file{config.sub} don't recognize the type of the system on which you
--are building.
--In this case, first fetch the newest versions of these files, from
--@url{https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess}
--and
--@url{https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub},
--respectively, and use these as drop-in replacement for the files
--@file{config.guess} and @file{config.sub} that were shipped with this
--package.
--
--If this resolves the problem, feel free to report the solution to the
--maintainers of this package.
--
--Otherwise, it means that your system is not yet supported by
--@file{config.guess} and @file{config.sub}.
--As a workaround, you can use a configure option
--@option{--build=@var{type}}, where @var{type} comes closest to your
--system type.
--Also, you're welcome to file a report to
-+You can look at the @file{config.sub} file to see which types are recognized.
-+If the file is absent, this package does not need the system type.
-+
-+If @command{configure} fails with the diagnostic ``cannot guess build type''.
-+@file{config.sub} did not recognize your system's type.
-+In this case, first fetch the newest versions of these files
-+from the @url{https://savannah.gnu.org/projects/config, GNU config package}.
-+If that fixes things, please report it to the
-+maintainers of the package containing @command{configure}.
-+Otherwise, you can try the configure option
-+@option{--build=@var{type}} where @var{type} comes close to your
-+system type; also, please report the problem to
- @email{config-patches@@gnu.org}.
- 
--@node Configuring a Compiler
--@section Configuration options specific to a compiler
--
--If you are building a compiler, and this compiler should generate code
--for a system type that is different from the one on which the compiler
--binaries shall run on, use the option @option{--target=@var{type}} to
--select the type of system for which the compiler should produce code.
-+For more details about configuring system types, see
-+@ifset autoconf
-+@ref{Manual Configuration}.
-+@end ifset
-+@ifclear autoconf
-+the Autoconf documentation.
-+@end ifclear
- 
- @node Sharing Defaults
- @section Sharing Defaults
-@@ -469,8 +396,8 @@ for more details, including other options available for fine-tuning
- the installation locations.
- 
- @item --host=@var{type}
--Build binaries for architecture @var{type}.  @ref{System Types} and
--@ref{Building for a different system type} for more details.
-+Build binaries for system @var{type}.
-+@xref{System Types}.
- 
- @item --enable-@var{feature}
- @itemx --disable-@var{feature}
-@@ -497,6 +424,19 @@ Run the configure checks, but stop before creating any output files.
- and accepts some other, less widely useful, options.
- Run @samp{configure --help} for more details.
- 
-+@ifclear autoconf
-+@node Copyright notice
-+@section Copyright notice
-+
-+Copyright @copyright{} 1994--1996, 1999--2002, 2004--2017, 2020--2023
-+Free Software Foundation, Inc.
-+
-+Copying and distribution of this file, with or without modification, are
-+permitted in any medium without royalty provided the copyright notice
-+and this notice are preserved.  This file is offered as-is, without
-+warranty of any kind.
-+@end ifclear
-+
- @c Local Variables:
- @c fill-column: 72
- @c ispell-local-dictionary: "american"
--- 
-2.41.0
-
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf_2.72c.bb b/poky/meta/recipes-devtools/autoconf/autoconf_2.72c.bb
deleted file mode 100644
index 76130d5..0000000
--- a/poky/meta/recipes-devtools/autoconf/autoconf_2.72c.bb
+++ /dev/null
@@ -1,114 +0,0 @@
-SUMMARY = "A GNU tool that produce shell scripts to automatically configure software"
-DESCRIPTION = "Autoconf is an extensible package of M4 macros that produce shell scripts to automatically \ 
-configure software source code packages. Autoconf creates a configuration script for a package from a template \
-file that lists the operating system features that the package can use, in the form of M4 macro calls."
-LICENSE = "GPL-3.0-or-later"
-HOMEPAGE = "http://www.gnu.org/software/autoconf/"
-SECTION = "devel"
-DEPENDS = "m4-native autoconf-native automake-native gnu-config-native help2man-native"
-DEPENDS:remove:class-native = "autoconf-native automake-native help2man-native"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=cc3f3a7596cb558bbd9eb7fbaa3ef16c \
-		    file://COPYINGv3;md5=1ebbd3e34237af26da5dc08a4e440464"
-
-SRC_URI = " \
-           https://alpha.gnu.org/gnu/autoconf/autoconf-2.72c.tar.gz \
-           file://program_prefix.patch \
-           file://autoreconf-exclude.patch \
-           file://remove-usr-local-lib-from-m4.patch \
-           file://preferbash.patch \
-           file://autotest-automake-result-format.patch \
-           file://man-host-perl.patch \
-	   ${BACKPORTS} \
-"
-SRC_URI:append:class-native = " file://no-man.patch"
-
-BACKPORTS = "\
-           file://backports/0001-mention-prototypes-more-prominently-in-NEWS.patch \
-           file://backports/0002-build-run-make-fetch-which-updated-these.patch \
-           file://backports/0003-NEWS-Tighten-up-wording.patch \
-           file://backports/0004-Cater-to-programs-misusing-AC_EGREP_HEADER.patch \
-           file://backports/0006-Fix-timing-bug-on-high-speed-builds.patch \
-           file://backports/0007-Support-underquoted-callers-better.patch \
-           file://backports/0008-New-script-for-building-inside-Guix-containers.patch \
-           file://backports/0009-AC_XENIX_DIR-Rewrite-using-AC_CANONICAL_HOST.patch \
-           file://backports/0010-AC_TYPE_UID_T-Rewrite-using-AC_CHECK_TYPE.patch \
-           file://backports/0011-Make-AC_PROG_GCC_TRADITIONAL-a-compatibility-alias-f.patch \
-           file://backports/0012-Overhaul-AC_TYPE_GETGROUPS-and-AC_FUNC_GETGROUPS.patch \
-           file://backports/0013-Fold-AC_C_STRINGIZE-into-AC_PROG_CC.patch \
-           file://backports/0014-Remove-the-last-few-internal-uses-of-AC_EGREP_CPP.patch \
-           file://backports/0015-Support-circa-early-2022-Gnulib.patch \
-           file://backports/0016-Improve-year2038-largefile-option-processing.patch \
-           file://backports/0017-AC_SYS_YEAR2038-Fix-configure-failure-on-32-bit-ming.patch \
-           file://backports/0018-Document-limitation-of-BusyBox-tr.patch \
-           file://backports/0019-AC_SYS_YEAR2038_REQUIRED-Fix-configure-failure-with-.patch \
-           file://backports/0020-Tone-down-year-2038-changes.patch \
-           file://backports/0021-Port-AC_FUNC_MMAP-to-more-modern-systems.patch \
-           file://backports/0022-Fix-port-of-AC_FUNC_MMAP.patch \
-           file://backports/0023-Improve-AC_SYS_YEAR2038_RECOMMENDED-diagnostic.patch \
-           file://backports/0024-Improve-AC_FUNC_MMAP-comments.patch \
-           file://backports/0025-Fix-AC_SYS_LARGEFILE-on-GNU-Linux-alpha-s390x.patch \
-           file://backports/0026-Modernize-INSTALL.patch \
-           file://backports/0027-doc-fix-broken-cross-refs.patch \
-           file://backports/0028-INSTALL-Clarify-build-host-target-and-the-system-typ.patch \
-           file://backports/0029-Shorten-and-improve-INSTALL.patch \
-"
-
-SRC_URI[sha256sum] = "21b64169c820c6cdf27fc981ca9c2fb615546e5dead92bccf8d92d0784cdd364"
-
-RDEPENDS:${PN} = "m4 gnu-config \
-		  perl \
-		  perl-module-bytes \
-		  perl-module-carp \
-		  perl-module-constant \
-		  perl-module-data-dumper \
-		  perl-module-errno \
-		  perl-module-exporter \
-		  perl-module-file-basename \
-		  perl-module-file-compare \
-		  perl-module-file-copy \
-		  perl-module-file-find \
-		  perl-module-file-glob \
-		  perl-module-file-path \
-		  perl-module-file-spec \
-		  perl-module-file-spec-unix \
-		  perl-module-file-stat \
-                  perl-module-file-temp \
-		  perl-module-getopt-long \
-		  perl-module-io-file \
-                  perl-module-list-util \
-		  perl-module-overloading \
-		  perl-module-posix \
-                  perl-module-scalar-util \
-		  perl-module-symbol \
-		  perl-module-thread-queue \
-		  perl-module-threads \
-		 "
-RDEPENDS:${PN}:class-native = "m4-native gnu-config-native hostperl-runtime-native"
-
-inherit autotools texinfo
-
-PERL = "${USRBINPATH}/perl"
-PERL:class-native = "/usr/bin/env perl"
-PERL:class-nativesdk = "/usr/bin/env perl"
-
-CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'"
-
-EXTRA_OECONF += "ac_cv_path_M4=m4 ac_cv_prog_TEST_EMACS=no"
-
-# As autoconf installs its own config.* files, ensure that they're always up to date.
-update_gnu_config() {
-	install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/build-aux
-	install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/build-aux
-}
-do_configure[prefuncs] += "update_gnu_config"
-
-do_configure:class-native() {
-	oe_runconf
-}
-
-do_install:append() {
-    rm -rf ${D}${datadir}/emacs
-}
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/autoconf/autoconf_2.72d.bb b/poky/meta/recipes-devtools/autoconf/autoconf_2.72d.bb
new file mode 100644
index 0000000..939fc3a
--- /dev/null
+++ b/poky/meta/recipes-devtools/autoconf/autoconf_2.72d.bb
@@ -0,0 +1,82 @@
+SUMMARY = "A GNU tool that produce shell scripts to automatically configure software"
+DESCRIPTION = "Autoconf is an extensible package of M4 macros that produce shell scripts to automatically \ 
+configure software source code packages. Autoconf creates a configuration script for a package from a template \
+file that lists the operating system features that the package can use, in the form of M4 macro calls."
+LICENSE = "GPL-3.0-or-later"
+HOMEPAGE = "http://www.gnu.org/software/autoconf/"
+SECTION = "devel"
+DEPENDS = "m4-native autoconf-native automake-native gnu-config-native help2man-native"
+DEPENDS:remove:class-native = "autoconf-native automake-native help2man-native"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=cc3f3a7596cb558bbd9eb7fbaa3ef16c \
+		    file://COPYINGv3;md5=1ebbd3e34237af26da5dc08a4e440464"
+
+SRC_URI = " \
+           https://alpha.gnu.org/gnu/autoconf/${BP}.tar.gz \
+           file://program_prefix.patch \
+           file://autoreconf-exclude.patch \
+           file://remove-usr-local-lib-from-m4.patch \
+           file://preferbash.patch \
+           file://autotest-automake-result-format.patch \
+           file://man-host-perl.patch \
+"
+SRC_URI:append:class-native = " file://no-man.patch"
+
+SRC_URI[sha256sum] = "c09dcba3d051507459df2fcd58d6f19e5b342568fa910e3bb3a74b4402cde3a6"
+
+RDEPENDS:${PN} = "m4 gnu-config \
+		  perl \
+		  perl-module-bytes \
+		  perl-module-carp \
+		  perl-module-constant \
+		  perl-module-data-dumper \
+		  perl-module-errno \
+		  perl-module-exporter \
+		  perl-module-file-basename \
+		  perl-module-file-compare \
+		  perl-module-file-copy \
+		  perl-module-file-find \
+		  perl-module-file-glob \
+		  perl-module-file-path \
+		  perl-module-file-spec \
+		  perl-module-file-spec-unix \
+		  perl-module-file-stat \
+                  perl-module-file-temp \
+		  perl-module-getopt-long \
+		  perl-module-io-file \
+                  perl-module-list-util \
+		  perl-module-overloading \
+		  perl-module-posix \
+                  perl-module-scalar-util \
+		  perl-module-symbol \
+		  perl-module-thread-queue \
+		  perl-module-threads \
+		 "
+RDEPENDS:${PN}:class-native = "m4-native gnu-config-native hostperl-runtime-native"
+
+inherit autotools texinfo
+
+PERL = "${USRBINPATH}/perl"
+PERL:class-native = "/usr/bin/env perl"
+PERL:class-nativesdk = "/usr/bin/env perl"
+
+CACHED_CONFIGUREVARS += "ac_cv_path_PERL='${PERL}'"
+
+EXTRA_OECONF += "ac_cv_path_M4=m4 ac_cv_prog_TEST_EMACS=no"
+
+# As autoconf installs its own config.* files, ensure that they're always up to date.
+update_gnu_config() {
+	install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.guess ${S}/build-aux
+	install -m 0755 ${STAGING_DATADIR_NATIVE}/gnu-config/config.sub ${S}/build-aux
+}
+do_configure[prefuncs] += "update_gnu_config"
+
+do_configure:class-native() {
+	oe_runconf
+}
+
+do_install:append() {
+    rm -rf ${D}${datadir}/emacs
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/binutils/binutils-2.41.inc b/poky/meta/recipes-devtools/binutils/binutils-2.41.inc
index b4934c0..804f092 100644
--- a/poky/meta/recipes-devtools/binutils/binutils-2.41.inc
+++ b/poky/meta/recipes-devtools/binutils/binutils-2.41.inc
@@ -18,7 +18,7 @@
 
 UPSTREAM_CHECK_GITTAGREGEX = "binutils-(?P<pver>\d+_(\d_?)*)"
 
-SRCREV ?= "cb4c3555ac4cf8aaf0935cb6e4b09e6882436d21"
+SRCREV ?= "c1321df4eb0a136304205085cd4913dd4eb01054"
 BINUTILS_GIT_URI ?= "git://sourceware.org/git/binutils-gdb.git;branch=${SRCBRANCH};protocol=https"
 SRC_URI = "\
      ${BINUTILS_GIT_URI} \
diff --git a/poky/meta/recipes-devtools/cmake/cmake-native_3.27.5.bb b/poky/meta/recipes-devtools/cmake/cmake-native_3.27.7.bb
similarity index 100%
rename from poky/meta/recipes-devtools/cmake/cmake-native_3.27.5.bb
rename to poky/meta/recipes-devtools/cmake/cmake-native_3.27.7.bb
diff --git a/poky/meta/recipes-devtools/cmake/cmake.inc b/poky/meta/recipes-devtools/cmake/cmake.inc
index ef4eec5..ecb0e48 100644
--- a/poky/meta/recipes-devtools/cmake/cmake.inc
+++ b/poky/meta/recipes-devtools/cmake/cmake.inc
@@ -19,7 +19,7 @@
 SRC_URI = "https://cmake.org/files/v${CMAKE_MAJOR_VERSION}/cmake-${PV}.tar.gz \
 "
 
-SRC_URI[sha256sum] = "5175e8fe1ca9b1dd09090130db7201968bcce1595971ff9e9998c2f0765004c9"
+SRC_URI[sha256sum] = "08f71a106036bf051f692760ef9558c0577c42ac39e96ba097e7662bd4158d8e"
 
 UPSTREAM_CHECK_REGEX = "cmake-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake b/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
index d6a1e04..6434b27 100644
--- a/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
+++ b/poky/meta/recipes-devtools/cmake/cmake/OEToolchainConfig.cmake
@@ -18,3 +18,6 @@
 foreach(config ${toolchain_config_files})
     include(${config})
 endforeach()
+
+unset(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES)
+unset(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES)
diff --git a/poky/meta/recipes-devtools/cmake/cmake_3.27.5.bb b/poky/meta/recipes-devtools/cmake/cmake_3.27.7.bb
similarity index 100%
rename from poky/meta/recipes-devtools/cmake/cmake_3.27.5.bb
rename to poky/meta/recipes-devtools/cmake/cmake_3.27.7.bb
diff --git a/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.26.bb b/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.27.bb
similarity index 76%
rename from poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.26.bb
rename to poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.27.bb
index f6d1146..55c88af 100644
--- a/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.26.bb
+++ b/poky/meta/recipes-devtools/desktop-file-utils/desktop-file-utils_0.27.bb
@@ -8,18 +8,14 @@
                     file://src/validator.c;beginline=4;endline=27;md5=281e1114ee6c486a1a0a4295986b9416"
 
 SRC_URI = "http://freedesktop.org/software/${BPN}/releases/${BP}.tar.xz"
-SRC_URI[md5sum] = "29739e005f5887cf41639b8450f3c23f"
-SRC_URI[sha256sum] = "b26dbde79ea72c8c84fb7f9d870ffd857381d049a86d25e0038c4cef4c747309"
+SRC_URI[sha256sum] = "a0817df39ce385b6621880407c56f1f298168c040c2032cedf88d5b76affe836"
 
 DEPENDS = "glib-2.0"
 
-inherit autotools pkgconfig
-
-EXTRA_OECONF += "ac_cv_prog_EMACS=no"
+inherit meson pkgconfig
 
 BBCLASSEXTEND = "native nativesdk"
 
 do_install:append() {
         rm -rf ${D}${datadir}/emacs
 }
-
diff --git a/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.6.bb b/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.7.1.bb
similarity index 70%
rename from poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.6.bb
rename to poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.7.1.bb
index 5a89e4b..a23cb33 100644
--- a/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.6.bb
+++ b/poky/meta/recipes-devtools/erofs-utils/erofs-utils_1.7.1.bb
@@ -5,11 +5,8 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=73001d804ea1e3d84365f652242cca20"
 HOMEPAGE = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/tree/README"
 
-SRCREV = "21710612d35cd952490959bfa6ea9fe87aaa52dd"
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git;branch=master;protocol=https \
-           file://0001-erofs-utils-fsck-don-t-allocate-read-too-large-exten.patch \
-           file://0002-erofs-utils-fsck-block-insane-long-paths-when-extrac.patch \
-"
+SRCREV = "83d94dc619075e71ca4d0f42941cfc18d269a2af"
+SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git;branch=master;protocol=https"
 
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>(\d+(\.\d+)+))"
 
@@ -19,8 +16,9 @@
 
 inherit pkgconfig autotools
 
-PACKAGECONFIG ??= "lz4"
+PACKAGECONFIG ??= "lz4 zlib"
 PACKAGECONFIG[lz4] = "--enable-lz4,--disable-lz4,lz4"
+PACKAGECONFIG[zlib] = "--with-zlib,--without-zlib,zlib"
 
 EXTRA_OECONF = "${PACKAGECONFIG_CONFARGS} --disable-fuse"
 
diff --git a/poky/meta/recipes-devtools/erofs-utils/files/0001-erofs-utils-fsck-don-t-allocate-read-too-large-exten.patch b/poky/meta/recipes-devtools/erofs-utils/files/0001-erofs-utils-fsck-don-t-allocate-read-too-large-exten.patch
deleted file mode 100644
index 52f475d..0000000
--- a/poky/meta/recipes-devtools/erofs-utils/files/0001-erofs-utils-fsck-don-t-allocate-read-too-large-exten.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From c769805c79d5acede65d96e5786aa5ebb46c01e0 Mon Sep 17 00:00:00 2001
-From: Gao Xiang <hsiangkao@linux.alibaba.com>
-Date: Fri, 2 Jun 2023 11:05:19 +0800
-Subject: [PATCH 1/2] erofs-utils: fsck: don't allocate/read too large extents
-
-Since some crafted EROFS filesystem images could have insane large
-extents, which causes unexpected bahaviors when extracting data.
-
-Fix it by extracting large extents with a buffer of a reasonable
-maximum size limit and reading multiple times instead.
-
-Note that only `--extract` option is impacted.
-
-CVE: CVE-2023-33552
-Closes: https://nvd.nist.gov/vuln/detail/CVE-2023-33552
-Reported-by: Chaoming Yang <lometsj@live.com>
-Fixes: 412c8f908132 ("erofs-utils: fsck: add --extract=X support to extract to path X")
-Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
-Link: https://lore.kernel.org/r/20230602030519.117071-1-hsiangkao@linux.alibaba.com
-
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
----
- fsck/main.c | 63 +++++++++++++++++++++++++++++++++++++++++------------
- 1 file changed, 49 insertions(+), 14 deletions(-)
-
-diff --git a/fsck/main.c b/fsck/main.c
-index 6b42252..6689ad8 100644
---- a/fsck/main.c
-+++ b/fsck/main.c
-@@ -392,6 +392,8 @@ static int erofs_verify_inode_data(struct erofs_inode *inode, int outfd)
- 	}
- 
- 	while (pos < inode->i_size) {
-+		unsigned int alloc_rawsize;
-+
- 		map.m_la = pos;
- 		if (compressed)
- 			ret = z_erofs_map_blocks_iter(inode, &map,
-@@ -420,10 +422,28 @@ static int erofs_verify_inode_data(struct erofs_inode *inode, int outfd)
- 		if (!(map.m_flags & EROFS_MAP_MAPPED) || !fsckcfg.check_decomp)
- 			continue;
- 
--		if (map.m_plen > raw_size) {
--			raw_size = map.m_plen;
--			raw = realloc(raw, raw_size);
--			BUG_ON(!raw);
-+		if (map.m_plen > Z_EROFS_PCLUSTER_MAX_SIZE) {
-+			if (compressed) {
-+				erofs_err("invalid pcluster size %" PRIu64 " @ offset %" PRIu64 " of nid %" PRIu64,
-+					  map.m_plen, map.m_la,
-+					  inode->nid | 0ULL);
-+				ret = -EFSCORRUPTED;
-+				goto out;
-+			}
-+			alloc_rawsize = Z_EROFS_PCLUSTER_MAX_SIZE;
-+		} else {
-+			alloc_rawsize = map.m_plen;
-+		}
-+
-+		if (alloc_rawsize > raw_size) {
-+			char *newraw = realloc(raw, alloc_rawsize);
-+
-+			if (!newraw) {
-+				ret = -ENOMEM;
-+				goto out;
-+			}
-+			raw = newraw;
-+			raw_size = alloc_rawsize;
- 		}
- 
- 		if (compressed) {
-@@ -434,18 +454,27 @@ static int erofs_verify_inode_data(struct erofs_inode *inode, int outfd)
- 			}
- 			ret = z_erofs_read_one_data(inode, &map, raw, buffer,
- 						    0, map.m_llen, false);
-+			if (ret)
-+				goto out;
-+
-+			if (outfd >= 0 && write(outfd, buffer, map.m_llen) < 0)
-+				goto fail_eio;
- 		} else {
--			ret = erofs_read_one_data(&map, raw, 0, map.m_plen);
--		}
--		if (ret)
--			goto out;
-+			u64 p = 0;
- 
--		if (outfd >= 0 && write(outfd, compressed ? buffer : raw,
--					map.m_llen) < 0) {
--			erofs_err("I/O error occurred when verifying data chunk @ nid %llu",
--				  inode->nid | 0ULL);
--			ret = -EIO;
--			goto out;
-+			do {
-+				u64 count = min_t(u64, alloc_rawsize,
-+						  map.m_llen);
-+
-+				ret = erofs_read_one_data(&map, raw, p, count);
-+				if (ret)
-+					goto out;
-+
-+				if (outfd >= 0 && write(outfd, raw, count) < 0)
-+					goto fail_eio;
-+				map.m_llen -= count;
-+				p += count;
-+			} while (map.m_llen);
- 		}
- 	}
- 
-@@ -460,6 +489,12 @@ out:
- 	if (buffer)
- 		free(buffer);
- 	return ret < 0 ? ret : 0;
-+
-+fail_eio:
-+	erofs_err("I/O error occurred when verifying data chunk @ nid %llu",
-+		  inode->nid | 0ULL);
-+	ret = -EIO;
-+	goto out;
- }
- 
- static inline int erofs_extract_dir(struct erofs_inode *inode)
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-devtools/erofs-utils/files/0002-erofs-utils-fsck-block-insane-long-paths-when-extrac.patch b/poky/meta/recipes-devtools/erofs-utils/files/0002-erofs-utils-fsck-block-insane-long-paths-when-extrac.patch
deleted file mode 100644
index f2f1e34..0000000
--- a/poky/meta/recipes-devtools/erofs-utils/files/0002-erofs-utils-fsck-block-insane-long-paths-when-extrac.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 6cebfbb79b1d5d8feb48801e1008eea5bfa8b599 Mon Sep 17 00:00:00 2001
-From: Gao Xiang <hsiangkao@linux.alibaba.com>
-Date: Fri, 2 Jun 2023 13:52:56 +0800
-Subject: [PATCH 2/2] erofs-utils: fsck: block insane long paths when
- extracting images
-
-Since some crafted EROFS filesystem images could have insane deep
-hierarchy (or may form directory loops) which triggers the
-PATH_MAX-sized path buffer OR stack overflow.
-
-Actually some crafted images cannot be deemed as real corrupted
-images but over-PATH_MAX paths are not something that we'd like to
-support for now.
-
-CVE: CVE-2023-33551
-Closes: https://nvd.nist.gov/vuln/detail/CVE-2023-33551
-Reported-by: Chaoming Yang <lometsj@live.com>
-Fixes: f44043561491 ("erofs-utils: introduce fsck.erofs")
-Fixes: b11f84f593f9 ("erofs-utils: fsck: convert to use erofs_iterate_dir()")
-Fixes: 412c8f908132 ("erofs-utils: fsck: add --extract=X support to extract to path X")
-Signeo-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
-Link: https://lore.kernel.org/r/20230602055256.18061-1-hsiangkao@linux.alibaba.com
-
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
----
- fsck/main.c | 23 +++++++++++++++--------
- 1 file changed, 15 insertions(+), 8 deletions(-)
-
-diff --git a/fsck/main.c b/fsck/main.c
-index 6689ad8..28d95ec 100644
---- a/fsck/main.c
-+++ b/fsck/main.c
-@@ -680,28 +680,35 @@ again:
- static int erofsfsck_dirent_iter(struct erofs_dir_context *ctx)
- {
- 	int ret;
--	size_t prev_pos = fsckcfg.extract_pos;
-+	size_t prev_pos, curr_pos;
- 
- 	if (ctx->dot_dotdot)
- 		return 0;
- 
--	if (fsckcfg.extract_path) {
--		size_t curr_pos = prev_pos;
-+	prev_pos = fsckcfg.extract_pos;
-+	curr_pos = prev_pos;
-+
-+	if (prev_pos + ctx->de_namelen >= PATH_MAX) {
-+		erofs_err("unable to fsck since the path is too long (%u)",
-+			  curr_pos + ctx->de_namelen);
-+		return -EOPNOTSUPP;
-+	}
- 
-+	if (fsckcfg.extract_path) {
- 		fsckcfg.extract_path[curr_pos++] = '/';
- 		strncpy(fsckcfg.extract_path + curr_pos, ctx->dname,
- 			ctx->de_namelen);
- 		curr_pos += ctx->de_namelen;
- 		fsckcfg.extract_path[curr_pos] = '\0';
--		fsckcfg.extract_pos = curr_pos;
-+	} else {
-+		curr_pos += ctx->de_namelen;
- 	}
--
-+	fsckcfg.extract_pos = curr_pos;
- 	ret = erofsfsck_check_inode(ctx->dir->nid, ctx->de_nid);
- 
--	if (fsckcfg.extract_path) {
-+	if (fsckcfg.extract_path)
- 		fsckcfg.extract_path[prev_pos] = '\0';
--		fsckcfg.extract_pos = prev_pos;
--	}
-+	fsckcfg.extract_pos = prev_pos;
- 	return ret;
- }
- 
--- 
-2.34.1
-
diff --git a/poky/meta/recipes-devtools/git/git_2.42.1.bb b/poky/meta/recipes-devtools/git/git_2.43.0.bb
similarity index 97%
rename from poky/meta/recipes-devtools/git/git_2.42.1.bb
rename to poky/meta/recipes-devtools/git/git_2.43.0.bb
index 33269d3..f913290 100644
--- a/poky/meta/recipes-devtools/git/git_2.42.1.bb
+++ b/poky/meta/recipes-devtools/git/git_2.43.0.bb
@@ -160,4 +160,4 @@
                  "
 EXTRA_OEMAKE += "NO_GETTEXT=1"
 
-SRC_URI[tarball.sha256sum] = "839d75c91ddfa9f7534f7b0888e462e3ad1422bb8ef12ec35f6261cea18efe33"
+SRC_URI[tarball.sha256sum] = "ed238f5c72a014f238cc49fe7df4c6883732a3881111b381c105e2c5be77302f"
diff --git a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
index 2a0e6f8..718f798 100644
--- a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
+++ b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
@@ -9,8 +9,8 @@
 
 INHIBIT_DEFAULT_DEPS = "1"
 
-SRCREV = "63acb96f92473ceb5e21d873d7c0aee266b3d6d3"
-PV = "20230216+git"
+SRCREV = "28ea239c53a2d5d8800c472bc2452eaa16e37af2"
+PV = "20231127+git"
 
 SRC_URI = "git://git.savannah.gnu.org/git/config.git;protocol=https;branch=master \
            file://gnu-configize.in"
diff --git a/poky/meta/recipes-devtools/json-c/json-c_0.17.bb b/poky/meta/recipes-devtools/json-c/json-c_0.17.bb
index f4b7a32..20bcece 100644
--- a/poky/meta/recipes-devtools/json-c/json-c_0.17.bb
+++ b/poky/meta/recipes-devtools/json-c/json-c_0.17.bb
@@ -17,6 +17,9 @@
 
 RPROVIDES:${PN} = "libjson"
 
+# Required for ICECC builds
+EXTRA_OECMAKE = "-DDISABLE_WERROR=ON"
+
 inherit cmake ptest
 
 do_install_ptest() {
diff --git a/poky/meta/recipes-devtools/llvm/llvm_git.bb b/poky/meta/recipes-devtools/llvm/llvm_git.bb
index de8d411..9a88549 100644
--- a/poky/meta/recipes-devtools/llvm/llvm_git.bb
+++ b/poky/meta/recipes-devtools/llvm/llvm_git.bb
@@ -14,14 +14,14 @@
 
 inherit cmake pkgconfig
 
-PV = "17.0.5"
+PV = "17.0.6"
 
 MAJOR_VERSION = "${@oe.utils.trim_version("${PV}", 1)}"
 
 LLVM_RELEASE = "${PV}"
 
 BRANCH = "release/${MAJOR_VERSION}.x"
-SRCREV = "98bfdac5ce82d1679f8af9a57501471812ab68d7"
+SRCREV = "6009708b4367171ccdbf4b5905cb6a803753fe18"
 SRC_URI = "git://github.com/llvm/llvm-project.git;branch=${BRANCH};protocol=https \
            file://0007-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
            file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2 \
diff --git a/poky/meta/recipes-devtools/log4cplus/log4cplus_2.1.0.bb b/poky/meta/recipes-devtools/log4cplus/log4cplus_2.1.1.bb
similarity index 90%
rename from poky/meta/recipes-devtools/log4cplus/log4cplus_2.1.0.bb
rename to poky/meta/recipes-devtools/log4cplus/log4cplus_2.1.1.bb
index e0c16d2..be3c787 100644
--- a/poky/meta/recipes-devtools/log4cplus/log4cplus_2.1.0.bb
+++ b/poky/meta/recipes-devtools/log4cplus/log4cplus_2.1.1.bb
@@ -9,7 +9,7 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}-stable/${PV}/${BP}.tar.gz \
           "
-SRC_URI[sha256sum] = "2a8eb99d71b0680c0520c7c16248cdb4195da82f396b79fea30b0d9e289c8c72"
+SRC_URI[sha256sum] = "42dc435928917fd2f847046c4a0c6086b2af23664d198c7fc1b982c0bfe600c1"
 
 UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/log4cplus/files/log4cplus-stable/"
 UPSTREAM_CHECK_REGEX = "log4cplus-stable/(?P<pver>\d+(\.\d+)+)/"
diff --git a/poky/meta/recipes-devtools/meson/meson_1.2.2.bb b/poky/meta/recipes-devtools/meson/meson_1.3.0.bb
similarity index 98%
rename from poky/meta/recipes-devtools/meson/meson_1.2.2.bb
rename to poky/meta/recipes-devtools/meson/meson_1.3.0.bb
index c38d88f..e794bb2 100644
--- a/poky/meta/recipes-devtools/meson/meson_1.2.2.bb
+++ b/poky/meta/recipes-devtools/meson/meson_1.3.0.bb
@@ -15,7 +15,7 @@
            file://0001-Make-CPU-family-warnings-fatal.patch \
            file://0002-Support-building-allarch-recipes-again.patch \
            "
-SRC_URI[sha256sum] = "4a0f04de331fbc7af3b802a844fc8838f4ccd1ded1e792ba4f8f2faf8c5fe4d6"
+SRC_URI[sha256sum] = "4ba253ef60e454e23234696119cbafa082a0aead0bd3bbf6991295054795f5dc"
 
 inherit python_setuptools_build_meta github-releases
 
diff --git a/poky/meta/recipes-devtools/python/python-pyasn1.inc b/poky/meta/recipes-devtools/python/python-pyasn1.inc
index 9eb8735..52fd985 100644
--- a/poky/meta/recipes-devtools/python/python-pyasn1.inc
+++ b/poky/meta/recipes-devtools/python/python-pyasn1.inc
@@ -3,7 +3,7 @@
 LICENSE = "BSD-2-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE.rst;md5=190f79253908c986e6cacf380c3a5f6d"
 
-SRC_URI[sha256sum] = "97b7290ca68e62a832558ec3976f15cbf911bf5d7c7039d8b861c2a0ece69fde"
+SRC_URI[sha256sum] = "6d391a96e59b23130a5cfa74d6fd7f388dbbe26cc8f1edf39fdddf08d9d6676c"
 
 RDEPENDS:${PN}:class-target += " \
     ${PYTHON_PN}-codecs \
diff --git a/poky/meta/recipes-devtools/python/python3-certifi_2023.7.22.bb b/poky/meta/recipes-devtools/python/python3-certifi_2023.11.17.bb
similarity index 75%
rename from poky/meta/recipes-devtools/python/python3-certifi_2023.7.22.bb
rename to poky/meta/recipes-devtools/python/python3-certifi_2023.11.17.bb
index c4e1e7b..daed712 100644
--- a/poky/meta/recipes-devtools/python/python3-certifi_2023.7.22.bb
+++ b/poky/meta/recipes-devtools/python/python3-certifi_2023.11.17.bb
@@ -5,9 +5,9 @@
 HOMEPAGE = " http://certifi.io/"
 
 LICENSE = "ISC"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=3c2b7404369c587c3559afb604fce2f2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=11618cb6a975948679286b1211bd573c"
 
-SRC_URI[sha256sum] = "539cc1d13202e33ca466e88b2807e29f4c13049d6d87031a3c110744495cb082"
+SRC_URI[sha256sum] = "9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"
 
 inherit pypi setuptools3
 
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc b/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc
index da0a3f2..3a5edaa 100644
--- a/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc
+++ b/poky/meta/recipes-devtools/python/python3-cryptography-crates.inc
@@ -9,6 +9,7 @@
     crate://crates.io/autocfg/1.1.0 \
     crate://crates.io/base64/0.13.1 \
     crate://crates.io/bitflags/1.3.2 \
+    crate://crates.io/bitflags/2.4.1 \
     crate://crates.io/cc/1.0.79 \
     crate://crates.io/cfg-if/1.0.0 \
     crate://crates.io/foreign-types/0.3.2 \
@@ -18,9 +19,9 @@
     crate://crates.io/lock_api/0.4.9 \
     crate://crates.io/memoffset/0.8.0 \
     crate://crates.io/once_cell/1.17.2 \
-    crate://crates.io/openssl/0.10.54 \
+    crate://crates.io/openssl/0.10.60 \
     crate://crates.io/openssl-macros/0.1.1 \
-    crate://crates.io/openssl-sys/0.9.88 \
+    crate://crates.io/openssl-sys/0.9.96 \
     crate://crates.io/ouroboros/0.15.6 \
     crate://crates.io/ouroboros_macro/0.15.6 \
     crate://crates.io/parking_lot/0.12.1 \
@@ -64,6 +65,7 @@
 SRC_URI[autocfg-1.1.0.sha256sum] = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
 SRC_URI[base64-0.13.1.sha256sum] = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
 SRC_URI[bitflags-1.3.2.sha256sum] = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+SRC_URI[bitflags-2.4.1.sha256sum] = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 SRC_URI[cc-1.0.79.sha256sum] = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
 SRC_URI[cfg-if-1.0.0.sha256sum] = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 SRC_URI[foreign-types-0.3.2.sha256sum] = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
@@ -73,9 +75,9 @@
 SRC_URI[lock_api-0.4.9.sha256sum] = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
 SRC_URI[memoffset-0.8.0.sha256sum] = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1"
 SRC_URI[once_cell-1.17.2.sha256sum] = "9670a07f94779e00908f3e686eab508878ebb390ba6e604d3a284c00e8d0487b"
-SRC_URI[openssl-0.10.54.sha256sum] = "69b3f656a17a6cbc115b5c7a40c616947d213ba182135b014d6051b73ab6f019"
+SRC_URI[openssl-0.10.60.sha256sum] = "79a4c6c3a2b158f7f8f2a2fc5a969fa3a068df6fc9dbb4a43845436e3af7c800"
 SRC_URI[openssl-macros-0.1.1.sha256sum] = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
-SRC_URI[openssl-sys-0.9.88.sha256sum] = "c2ce0f250f34a308dcfdbb351f511359857d4ed2134ba715a4eadd46e1ffd617"
+SRC_URI[openssl-sys-0.9.96.sha256sum] = "3812c071ba60da8b5677cc12bcb1d42989a65553772897a7e0355545a819838f"
 SRC_URI[ouroboros-0.15.6.sha256sum] = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db"
 SRC_URI[ouroboros_macro-0.15.6.sha256sum] = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7"
 SRC_URI[parking_lot-0.12.1.sha256sum] = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.5.bb b/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.7.bb
similarity index 83%
rename from poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.5.bb
rename to poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.7.bb
index 44c67fd..eda492d 100644
--- a/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.5.bb
+++ b/poky/meta/recipes-devtools/python/python3-cryptography-vectors_41.0.7.bb
@@ -9,7 +9,7 @@
 # NOTE: Make sure to keep this recipe at the same version as python3-cryptography
 #       Upgrade both recipes at the same time
 
-SRC_URI[sha256sum] = "75e82aea2982729312af735adb2983f347bb21fff88ad5dda3673ed70e1d1caf"
+SRC_URI[sha256sum] = "7b36f976b6e58cc1801310e1c93c584c6539d371da7f8538edd8fc463dc80d5b"
 
 PYPI_PACKAGE = "cryptography_vectors"
 
@@ -27,3 +27,5 @@
 BBCLASSEXTEND = "native nativesdk"
 
 UPSTREAM_CHECK_REGEX = ""
+
+RECIPE_NO_UPDATE_REASON = "Must be updated in sync with python3-cryptography."
diff --git a/poky/meta/recipes-devtools/python/python3-cryptography_41.0.5.bb b/poky/meta/recipes-devtools/python/python3-cryptography_41.0.7.bb
similarity index 95%
rename from poky/meta/recipes-devtools/python/python3-cryptography_41.0.5.bb
rename to poky/meta/recipes-devtools/python/python3-cryptography_41.0.7.bb
index 17b08f0..4585677 100644
--- a/poky/meta/recipes-devtools/python/python3-cryptography_41.0.5.bb
+++ b/poky/meta/recipes-devtools/python/python3-cryptography_41.0.7.bb
@@ -8,7 +8,7 @@
                    "
 LDSHARED += "-pthread"
 
-SRC_URI[sha256sum] = "392cb88b597247177172e02da6b7a63deeff1937fa6fec3bbf902ebd75d97ec7"
+SRC_URI[sha256sum] = "13f93ce9bea8016c253b34afc6bd6a75993e5c40672ed5405a9c832f0d4a00bc"
 
 SRC_URI += "file://0001-pyproject.toml-remove-benchmark-disable-option.patch \
             file://0001-Fix-include-directory-when-cross-compiling-9129.patch \
diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_6.89.0.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_6.90.0.bb
similarity index 91%
rename from poky/meta/recipes-devtools/python/python3-hypothesis_6.89.0.bb
rename to poky/meta/recipes-devtools/python/python3-hypothesis_6.90.0.bb
index 035809c..1760bb3 100644
--- a/poky/meta/recipes-devtools/python/python3-hypothesis_6.89.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-hypothesis_6.90.0.bb
@@ -13,7 +13,7 @@
     file://test_rle.py \
     "
 
-SRC_URI[sha256sum] = "9168bb12cd29001067e66b5f25f1bbdeff08b80c29c3909e19fc8205d8b9aeed"
+SRC_URI[sha256sum] = "0ab33900b9362318bd03d911a77a0dda8629c1877420074d87ae466919f6e4c0"
 
 RDEPENDS:${PN} += " \
     python3-attrs \
diff --git a/poky/meta/recipes-devtools/python/python3-idna_3.4.bb b/poky/meta/recipes-devtools/python/python3-idna_3.6.bb
similarity index 63%
rename from poky/meta/recipes-devtools/python/python3-idna_3.4.bb
rename to poky/meta/recipes-devtools/python/python3-idna_3.6.bb
index 41a666f..228dce6 100644
--- a/poky/meta/recipes-devtools/python/python3-idna_3.4.bb
+++ b/poky/meta/recipes-devtools/python/python3-idna_3.6.bb
@@ -1,9 +1,9 @@
 SUMMARY = "Internationalised Domain Names in Applications"
 HOMEPAGE = "https://github.com/kjd/idna"
 LICENSE = "BSD-3-Clause & Python-2.0 & Unicode-TOU"
-LIC_FILES_CHKSUM = "file://LICENSE.md;md5=239668a7c6066d9e0c5382e9c8c6c0e1"
+LIC_FILES_CHKSUM = "file://LICENSE.md;md5=dbec47b98e1469f6a104c82ff9698cee"
 
-SRC_URI[sha256sum] = "814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4"
+SRC_URI[sha256sum] = "9ecdbbd083b06798ae1e86adcbfe8ab1479cf864e4ee30fe4e46a003d12491ca"
 
 inherit pypi python_flit_core
 
diff --git a/poky/meta/recipes-devtools/python/python3-pyasn1_0.5.0.bb b/poky/meta/recipes-devtools/python/python3-pyasn1_0.5.1.bb
similarity index 100%
rename from poky/meta/recipes-devtools/python/python3-pyasn1_0.5.0.bb
rename to poky/meta/recipes-devtools/python/python3-pyasn1_0.5.1.bb
diff --git a/poky/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb b/poky/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb
index c3f1fb7..9d08e7a 100644
--- a/poky/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-pyproject-hooks_1.0.0.bb
@@ -22,3 +22,5 @@
 do_compile:class-native () {
     python_flit_core_do_manual_build
 }
+
+UPSTREAM_CHECK_PYPI_PACKAGE = "${PYPI_PACKAGE}"
diff --git a/poky/meta/recipes-devtools/python/python3-scons_4.5.2.bb b/poky/meta/recipes-devtools/python/python3-scons_4.6.0.bb
similarity index 90%
rename from poky/meta/recipes-devtools/python/python3-scons_4.5.2.bb
rename to poky/meta/recipes-devtools/python/python3-scons_4.6.0.bb
index e0173a3..c3cc3f0 100644
--- a/poky/meta/recipes-devtools/python/python3-scons_4.5.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-scons_4.6.0.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=d903b0b8027f461402bac9b5169b36f7"
 
 SRC_URI += " file://0001-Fix-man-page-installation.patch"
-SRC_URI[sha256sum] = "813360b2bce476bc9cc12a0f3a22d46ce520796b352557202cb07d3e402f5458"
+SRC_URI[sha256sum] = "7db28958b188b800f803c287d0680cc3ac7c422ed0b1cf9895042c52567803ec"
 
 PYPI_PACKAGE = "SCons"
 
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_68.2.2.bb b/poky/meta/recipes-devtools/python/python3-setuptools_69.0.2.bb
similarity index 94%
rename from poky/meta/recipes-devtools/python/python3-setuptools_68.2.2.bb
rename to poky/meta/recipes-devtools/python/python3-setuptools_69.0.2.bb
index 06957d7..8093ab9 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools_68.2.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools_69.0.2.bb
@@ -11,7 +11,7 @@
 SRC_URI += " \
             file://0001-_distutils-sysconfig.py-make-it-possible-to-substite.patch"
 
-SRC_URI[sha256sum] = "4ac1475276d2f1c48684874089fefcd83bd7162ddaafb81fac866ba0db282a87"
+SRC_URI[sha256sum] = "735896e78a4742605974de002ac60562d286fa8051a7e2299445e8e8fbb01aa6"
 
 DEPENDS += "${PYTHON_PN}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.3.0.bb b/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_2.0.0.bb
similarity index 88%
rename from poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.3.0.bb
rename to poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_2.0.0.bb
index 83bf705..46b46bf 100644
--- a/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_1.3.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-sphinx-rtd-theme_2.0.0.bb
@@ -13,7 +13,7 @@
 
 PYPI_PACKAGE = "sphinx_rtd_theme"
 
-SRC_URI[sha256sum] = "590b030c7abb9cf038ec053b95e5380b5c70d61591eb0b552063fbe7c41f0931"
+SRC_URI[sha256sum] = "bd5d7b80622406762073a04ef8fadc5f9151261563d47027de09910ce03afe6b"
 UPSTREAM_CHECK_REGEX ?= "/sphinx-rtd-theme/(?P<pver>(\d+[\.\-_]*)+)/"
 
 inherit setuptools3 pypi
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.4.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.4.bb
deleted file mode 100644
index e352601..0000000
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.4.bb
+++ /dev/null
@@ -1,10 +0,0 @@
-SUMMARY = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books"
-HOMEPAGE = "https://www.sphinx-doc.org"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=c7715857042d4c8c0105999ca0c072c5"
-
-SRC_URI[sha256sum] = "828f867945bbe39817c210a1abfd1bc4895c8b73fcaade56d45357a348a07d7e"
-
-inherit pypi python_setuptools_build_meta
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.7.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.7.bb
new file mode 100644
index 0000000..ec36706
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-applehelp_1.0.7.bb
@@ -0,0 +1,13 @@
+SUMMARY = "sphinxcontrib-applehelp is a sphinx extension which outputs Apple help books"
+HOMEPAGE = "https://www.sphinx-doc.org"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c7715857042d4c8c0105999ca0c072c5"
+
+SRC_URI[sha256sum] = "39fdc8d762d33b01a7d8f026a3b7d71563ea3b72787d5f00ad8465bd9d6dfbfa"
+
+inherit pypi python_flit_core
+
+PYPI_ARCHIVE_NAME = "sphinxcontrib_applehelp-${PV}.${PYPI_PACKAGE_EXT}"
+S = "${WORKDIR}/sphinxcontrib_applehelp-${PV}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.2.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.2.bb
deleted file mode 100644
index 0d03436..0000000
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.2.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document."
-HOMEPAGE = "https://www.sphinx-doc.org"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=fd30d9972a142c857a80c9f312e92b93"
-
-SRC_URI[sha256sum] = "ff7f1afa7b9642e7060379360a67e9c41e8f3121f2ce9164266f61b9f4b338e4"
-
-PYPI_PACKAGE = "sphinxcontrib-devhelp"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.5.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.5.bb
new file mode 100644
index 0000000..47934bd
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-devhelp_1.0.5.bb
@@ -0,0 +1,15 @@
+SUMMARY = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document."
+HOMEPAGE = "https://www.sphinx-doc.org"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=fd30d9972a142c857a80c9f312e92b93"
+
+SRC_URI[sha256sum] = "63b41e0d38207ca40ebbeabcf4d8e51f76c03e78cd61abe118cf4435c73d4212"
+
+PYPI_PACKAGE = "sphinxcontrib-devhelp"
+
+inherit pypi python_flit_core
+
+PYPI_ARCHIVE_NAME = "sphinxcontrib_devhelp-${PV}.${PYPI_PACKAGE_EXT}"
+S = "${WORKDIR}/sphinxcontrib_devhelp-${PV}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.1.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.1.bb
deleted file mode 100644
index bf034fb..0000000
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.1.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
-HOMEPAGE = "https://www.sphinx-doc.org"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=24dce5ef6a13563241c24bc366f48886"
-
-SRC_URI[sha256sum] = "0cbdd302815330058422b98a113195c9249825d681e18f11e8b1f78a2f11efff"
-
-PYPI_PACKAGE = "sphinxcontrib-htmlhelp"
-
-inherit pypi python_setuptools_build_meta
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.4.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.4.bb
new file mode 100644
index 0000000..a0a4b44
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-htmlhelp_2.0.4.bb
@@ -0,0 +1,15 @@
+SUMMARY = "sphinxcontrib-htmlhelp is a sphinx extension which renders HTML help files"
+HOMEPAGE = "https://www.sphinx-doc.org"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=24dce5ef6a13563241c24bc366f48886"
+
+SRC_URI[sha256sum] = "6c26a118a05b76000738429b724a0568dbde5b72391a688577da08f11891092a"
+
+PYPI_PACKAGE = "sphinxcontrib-htmlhelp"
+
+inherit pypi python_flit_core
+
+PYPI_ARCHIVE_NAME = "sphinxcontrib_htmlhelp-${PV}.${PYPI_PACKAGE_EXT}"
+S = "${WORKDIR}/sphinxcontrib_htmlhelp-${PV}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.3.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.3.bb
deleted file mode 100644
index 41d2b61..0000000
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.3.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = "Is a sphinx extension which outputs QtHelp document."
-HOMEPAGE = "http://babel.edgewall.org/"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=f7a83b72ea86d04827575ec0b63430eb"
-
-SRC_URI[sha256sum] = "4c33767ee058b70dba89a6fc5c1892c0d57a54be67ddd3e7875a18d14cba5a72"
-
-PYPI_PACKAGE = "sphinxcontrib-qthelp"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.6.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.6.bb
new file mode 100644
index 0000000..3538b06
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-qthelp_1.0.6.bb
@@ -0,0 +1,15 @@
+SUMMARY = "Is a sphinx extension which outputs QtHelp document."
+HOMEPAGE = "http://babel.edgewall.org/"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=f7a83b72ea86d04827575ec0b63430eb"
+
+SRC_URI[sha256sum] = "62b9d1a186ab7f5ee3356d906f648cacb7a6bdb94d201ee7adf26db55092982d"
+
+PYPI_PACKAGE = "sphinxcontrib-qthelp"
+
+inherit pypi python_flit_core
+
+PYPI_ARCHIVE_NAME = "sphinxcontrib_qthelp-${PV}.${PYPI_PACKAGE_EXT}"
+S = "${WORKDIR}/sphinxcontrib_qthelp-${PV}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.5.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.5.bb
deleted file mode 100644
index 7fa6d8a..0000000
--- a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.5.bb
+++ /dev/null
@@ -1,12 +0,0 @@
-SUMMARY = 'sphinxcontrib-serializinghtml is a sphinx extension which outputs "serialized" HTML files (json and pickle).'
-HOMEPAGE = "https://www.sphinx-doc.org"
-LICENSE = "BSD-2-Clause"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=32a84ac5cd3bbd10c4d479233ad588b6"
-
-SRC_URI[sha256sum] = "aa5f6de5dfdf809ef505c4895e51ef5c9eac17d0f287933eb49ec495280b6952"
-
-PYPI_PACKAGE = "sphinxcontrib-serializinghtml"
-
-inherit pypi setuptools3
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.9.bb b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.9.bb
new file mode 100644
index 0000000..fbf0c3c
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3-sphinxcontrib-serializinghtml_1.1.9.bb
@@ -0,0 +1,15 @@
+SUMMARY = 'sphinxcontrib-serializinghtml is a sphinx extension which outputs "serialized" HTML files (json and pickle).'
+HOMEPAGE = "https://www.sphinx-doc.org"
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=32a84ac5cd3bbd10c4d479233ad588b6"
+
+SRC_URI[sha256sum] = "0c64ff898339e1fac29abd2bf5f11078f3ec413cfe9c046d3120d7ca65530b54"
+
+PYPI_PACKAGE = "sphinxcontrib-serializinghtml"
+
+inherit pypi python_flit_core
+
+PYPI_ARCHIVE_NAME = "sphinxcontrib_serializinghtml-${PV}.${PYPI_PACKAGE_EXT}"
+S = "${WORKDIR}/sphinxcontrib_serializinghtml-${PV}"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.11.14.bb b/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.11.22.bb
similarity index 86%
rename from poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.11.14.bb
rename to poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.11.22.bb
index a6c7e95..44a6f5d 100644
--- a/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.11.14.bb
+++ b/poky/meta/recipes-devtools/python/python3-trove-classifiers_2023.11.22.bb
@@ -3,7 +3,7 @@
 LICENSE = "Apache-2.0"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=86d3f3a95c324c9479bd8986968f4327"
 
-SRC_URI[sha256sum] = "64b5e78305a5de347f2cd7ec8c12d704a3ef0cb85cc10c0ca5f73488d1c201f8"
+SRC_URI[sha256sum] = "c31a7e92f965f060a244b57d8ed5ee6f53fcb413ee17ce790e00577cb369ad99"
 
 inherit pypi python_setuptools_build_meta ptest
 
diff --git a/poky/meta/recipes-devtools/python/python3-urllib3_2.0.7.bb b/poky/meta/recipes-devtools/python/python3-urllib3_2.1.0.bb
similarity index 87%
rename from poky/meta/recipes-devtools/python/python3-urllib3_2.0.7.bb
rename to poky/meta/recipes-devtools/python/python3-urllib3_2.1.0.bb
index c286838..b5b37e2 100644
--- a/poky/meta/recipes-devtools/python/python3-urllib3_2.0.7.bb
+++ b/poky/meta/recipes-devtools/python/python3-urllib3_2.1.0.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=52d273a3054ced561275d4d15260ecda"
 
-SRC_URI[sha256sum] = "c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"
+SRC_URI[sha256sum] = "df7aa8afb0148fa78488e7899b2c59b5f4ffcfa82e6c54ccb9dd37c1d7b52d54"
 
 inherit pypi python_hatchling
 
diff --git a/poky/meta/recipes-devtools/python/python3-wcwidth_0.2.9.bb b/poky/meta/recipes-devtools/python/python3-wcwidth_0.2.11.bb
similarity index 87%
rename from poky/meta/recipes-devtools/python/python3-wcwidth_0.2.9.bb
rename to poky/meta/recipes-devtools/python/python3-wcwidth_0.2.11.bb
index 983852d..c4db61e 100644
--- a/poky/meta/recipes-devtools/python/python3-wcwidth_0.2.9.bb
+++ b/poky/meta/recipes-devtools/python/python3-wcwidth_0.2.11.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b15979c39a2543892fca8cd86b4b52cb"
 
-SRC_URI[sha256sum] = "a675d1a4a2d24ef67096a04b85b02deeecd8e226f57b5e3a72dbb9ed99d27da8"
+SRC_URI[sha256sum] = "25eb3ecbec328cdb945f56f2a7cfe784bdf7a73a8197398c7a7c65e7fe93e9ae"
 
 inherit pypi setuptools3 ptest
 
diff --git a/poky/meta/recipes-devtools/python/python3-wheel_0.41.3.bb b/poky/meta/recipes-devtools/python/python3-wheel_0.42.0.bb
similarity index 85%
rename from poky/meta/recipes-devtools/python/python3-wheel_0.41.3.bb
rename to poky/meta/recipes-devtools/python/python3-wheel_0.42.0.bb
index bdba98b..807888e 100644
--- a/poky/meta/recipes-devtools/python/python3-wheel_0.41.3.bb
+++ b/poky/meta/recipes-devtools/python/python3-wheel_0.42.0.bb
@@ -4,7 +4,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=7ffb0db04527cfe380e4f2726bd05ebf"
 
-SRC_URI[sha256sum] = "4d4987ce51a49370ea65c0bfd2234e8ce80a12780820d9dc462597a6e60d0841"
+SRC_URI[sha256sum] = "c45be39f7882c9d34243236f2d63cbd58039e360f85d0913425fbd7ceea617a8"
 
 inherit python_flit_core pypi
 
diff --git a/poky/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch b/poky/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch
new file mode 100644
index 0000000..199031d
--- /dev/null
+++ b/poky/meta/recipes-devtools/python/python3/0001-test_storlines-skip-due-to-load-variability.patch
@@ -0,0 +1,32 @@
+From 013ff01fdf2aa6ca69a7c80a2a2996630877e4ea Mon Sep 17 00:00:00 2001
+From: Trevor Gamblin <tgamblin@baylibre.com>
+Date: Fri, 6 Oct 2023 10:59:44 -0400
+Subject: [PATCH] test_storlines: skip due to load variability
+
+This is yet another test that intermittently fails on the Yocto AB when
+a worker is under heavy load, so skip it during testing.
+
+Upstream-Status: Inappropriate [OE-Specific]
+
+[YOCTO #14933]
+
+Signed-off-by: Trevor Gamblin <tgamblin@baylibre.com>
+---
+ Lib/test/test_ftplib.py | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/Lib/test/test_ftplib.py b/Lib/test/test_ftplib.py
+index 082a90d46b..508814d56a 100644
+--- a/Lib/test/test_ftplib.py
++++ b/Lib/test/test_ftplib.py
+@@ -629,6 +629,7 @@ def test_storbinary_rest(self):
+             self.client.storbinary('stor', f, rest=r)
+             self.assertEqual(self.server.handler_instance.rest, str(r))
+ 
++    @unittest.skip('timing related test, dependent on load')
+     def test_storlines(self):
+         data = RETR_DATA.replace('\r\n', '\n').encode(self.client.encoding)
+         f = io.BytesIO(data)
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-devtools/python/python3_3.11.5.bb b/poky/meta/recipes-devtools/python/python3_3.11.5.bb
index 8e023c7..d375de4 100644
--- a/poky/meta/recipes-devtools/python/python3_3.11.5.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.11.5.bb
@@ -33,6 +33,7 @@
            file://0001-Avoid-shebang-overflow-on-python-config.py.patch \
            file://0001-Update-test_sysconfig-for-posix_user-purelib.patch \
            file://0001-skip-no_stdout_fileno-test-due-to-load-variability.patch \
+           file://0001-test_storlines-skip-due-to-load-variability.patch \
            "
 
 SRC_URI:append:class-native = " \
diff --git a/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch b/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch
index d3888c8..fba89a3 100644
--- a/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch
+++ b/poky/meta/recipes-devtools/repo/repo/0001-python3-shebang.patch
@@ -19,8 +19,8 @@
 @@ -1,4 +1,4 @@
 -#!/usr/bin/env python
 +#!/usr/bin/env python3
- # -*- coding:utf-8 -*-
  #
  # Copyright (C) 2008 The Android Open Source Project
+ #
 --
 2.33.0
diff --git a/poky/meta/recipes-devtools/repo/repo_2.37.bb b/poky/meta/recipes-devtools/repo/repo_2.39.bb
similarity index 94%
rename from poky/meta/recipes-devtools/repo/repo_2.37.bb
rename to poky/meta/recipes-devtools/repo/repo_2.39.bb
index d6d3d03..a0633a5 100644
--- a/poky/meta/recipes-devtools/repo/repo_2.37.bb
+++ b/poky/meta/recipes-devtools/repo/repo_2.39.bb
@@ -12,7 +12,7 @@
 SRC_URI = "git://gerrit.googlesource.com/git-repo.git;protocol=https;branch=main \
            file://0001-python3-shebang.patch \
            "
-SRCREV = "83c66ec661e39e47795086a5d26d0f3782ac1d49"
+SRCREV = "b99272c601bc5f466c3cfc782bb852c2c967ad27"
 
 MIRRORS += "git://gerrit.googlesource.com/git-repo.git git://github.com/GerritCodeReview/git-repo.git"
 
diff --git a/poky/meta/recipes-devtools/rust/rust-llvm_1.70.0.bb b/poky/meta/recipes-devtools/rust/rust-llvm_1.70.0.bb
index 57bbe79..5bfc1fa 100644
--- a/poky/meta/recipes-devtools/rust/rust-llvm_1.70.0.bb
+++ b/poky/meta/recipes-devtools/rust/rust-llvm_1.70.0.bb
@@ -30,9 +30,11 @@
 
 LLVM_DIR = "llvm${LLVM_RELEASE}"
 
+RUST_LLVM_TARGETS ?= "ARM;AArch64;Mips;PowerPC;RISCV;X86"
+
 EXTRA_OECMAKE = " \
     -DCMAKE_BUILD_TYPE=Release \
-    -DLLVM_TARGETS_TO_BUILD='ARM;AArch64;Mips;PowerPC;RISCV;X86' \
+    -DLLVM_TARGETS_TO_BUILD='${RUST_LLVM_TARGETS}' \
     -DLLVM_BUILD_DOCS=OFF \
     -DLLVM_ENABLE_TERMINFO=OFF \
     -DLLVM_ENABLE_ZLIB=OFF \
diff --git a/poky/meta/recipes-devtools/rust/rust-source.inc b/poky/meta/recipes-devtools/rust/rust-source.inc
index 4a720e6..7a0790f 100644
--- a/poky/meta/recipes-devtools/rust/rust-source.inc
+++ b/poky/meta/recipes-devtools/rust/rust-source.inc
@@ -12,8 +12,5 @@
 
 RUSTSRC = "${WORKDIR}/rustc-${RUST_VERSION}-src"
 
-# Used by crossbeam_atomic.patch
-export TARGET_VENDOR
-
 UPSTREAM_CHECK_URI = "https://forge.rust-lang.org/infra/other-installation-methods.html"
 UPSTREAM_CHECK_REGEX = "rustc-(?P<pver>\d+(\.\d+)+)-src"
diff --git a/poky/meta/recipes-devtools/rust/rust_1.70.0.bb b/poky/meta/recipes-devtools/rust/rust_1.70.0.bb
index 16d4339..3d176e5 100644
--- a/poky/meta/recipes-devtools/rust/rust_1.70.0.bb
+++ b/poky/meta/recipes-devtools/rust/rust_1.70.0.bb
@@ -72,10 +72,7 @@
 
 python do_configure() {
     import json
-    try:
-        import configparser
-    except ImportError:
-        import ConfigParser as configparser
+    import configparser
 
     # toml is rather similar to standard ini like format except it likes values
     # that look more JSON like. So for our purposes simply escaping all values
@@ -157,13 +154,9 @@
 
     config.set("build", "vendor", e(True))
 
-    if not "targets" in locals():
-        targets = [d.getVar("RUST_TARGET_SYS")]
-    config.set("build", "target", e(targets))
+    config.set("build", "target", e([d.getVar("RUST_TARGET_SYS")]))
 
-    if not "hosts" in locals():
-        hosts = [d.getVar("RUST_HOST_SYS")]
-    config.set("build", "host", e(hosts))
+    config.set("build", "host", e([d.getVar("RUST_HOST_SYS")]))
 
     # We can't use BUILD_SYS since that is something the rust snapshot knows
     # nothing about when trying to build some stage0 tools (like fabricate)
@@ -232,9 +225,11 @@
 
 ALLOW_EMPTY:${PN} = "1"
 
-PACKAGES =+ "${PN}-tools-clippy ${PN}-tools-rustfmt"
+PACKAGES =+ "${PN}-rustdoc ${PN}-tools-clippy ${PN}-tools-rustfmt"
+FILES:${PN}-rustdoc = "${bindir}/rustdoc"
 FILES:${PN}-tools-clippy = "${bindir}/cargo-clippy ${bindir}/clippy-driver"
 FILES:${PN}-tools-rustfmt = "${bindir}/rustfmt"
+RDEPENDS:${PN}-rustdoc = "${PN}"
 RDEPENDS:${PN}-tools-clippy = "${PN}"
 RDEPENDS:${PN}-tools-rustfmt = "${PN}"
 
diff --git a/poky/meta/recipes-extended/bash/bash/0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch b/poky/meta/recipes-extended/bash/bash/0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch
new file mode 100644
index 0000000..df92c24
--- /dev/null
+++ b/poky/meta/recipes-extended/bash/bash/0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch
@@ -0,0 +1,226 @@
+From 721d5be99eb37d31e48bd66d61808a66a4c5ab84 Mon Sep 17 00:00:00 2001
+From: Chet Ramey <chet.ramey@case.edu>
+Date: Mon, 30 Oct 2023 12:16:07 -0400
+Subject: [PATCH] changes to SIGINT handler while waiting for a child; skip
+ vertical whitespace after translating an integer
+
+Upstream-Status: Backport from
+[https://git.savannah.gnu.org/cgit/bash.git/commit/?h=devel&id=fe24a6a55e8850298b496c5b9d82f1866eba190e]
+
+[Adjust and drop some codes to be applicable the tree]
+
+Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
+---
+ general.c         |  5 +++--
+ jobs.c            | 24 ++++++++++++++++--------
+ tests/redir.right |  4 ++--
+ tests/redir11.sub |  2 ++
+ tests/type.right  | 16 ++++++++--------
+ tests/type.tests  | 24 ++++++++++++------------
+ 6 files changed, 43 insertions(+), 32 deletions(-)
+
+diff --git a/general.c b/general.c
+index 85c5a8b6..65e2ee06 100644
+--- a/general.c
++++ b/general.c
+@@ -262,8 +262,9 @@ legal_number (string, result)
+   if (errno || ep == string)
+     return 0;	/* errno is set on overflow or underflow */
+ 
+-  /* Skip any trailing whitespace, since strtoimax does not. */
+-  while (whitespace (*ep))
++  /* Skip any trailing whitespace, since strtoimax does not, using the same
++     test that strtoimax uses for leading whitespace. */
++  while (isspace ((unsigned char) *ep))
+     ep++;
+ 
+   /* If *string is not '\0' but *ep is '\0' on return, the entire string
+diff --git a/jobs.c b/jobs.c
+index 6b986ed7..262d78de 100644
+--- a/jobs.c
++++ b/jobs.c
+@@ -2718,6 +2718,10 @@ wait_for_background_pids (ps)
+ #define INVALID_SIGNAL_HANDLER (SigHandler *)wait_for_background_pids
+ static SigHandler *old_sigint_handler = INVALID_SIGNAL_HANDLER;
+ 
++/* The current SIGINT handler as set by restore_sigint_handler. Only valid
++   immediately after restore_sigint_handler, used for continuations. */
++static SigHandler *cur_sigint_handler = INVALID_SIGNAL_HANDLER;   
++
+ static int wait_sigint_received;
+ static int child_caught_sigint;
+ 
+@@ -2735,6 +2739,7 @@ wait_sigint_cleanup ()
+ static void
+ restore_sigint_handler ()
+ {
++  cur_sigint_handler = old_sigint_handler;
+   if (old_sigint_handler != INVALID_SIGNAL_HANDLER)
+     {
+       set_signal_handler (SIGINT, old_sigint_handler);
+@@ -2758,8 +2763,7 @@ wait_sigint_handler (sig)
+       restore_sigint_handler ();
+       /* If we got a SIGINT while in `wait', and SIGINT is trapped, do
+ 	 what POSIX.2 says (see builtins/wait.def for more info). */
+-      if (this_shell_builtin && this_shell_builtin == wait_builtin &&
+-	  signal_is_trapped (SIGINT) &&
++      if (signal_is_trapped (SIGINT) &&
+ 	  ((sigint_handler = trap_to_sighandler (SIGINT)) == trap_handler))
+ 	{
+ 	  trap_handler (SIGINT);	/* set pending_traps[SIGINT] */
+@@ -2782,6 +2786,8 @@ wait_sigint_handler (sig)
+     {
+       set_exit_status (128+SIGINT);
+       restore_sigint_handler ();
++      if (cur_sigint_handler == INVALID_SIGNAL_HANDLER)
++	set_sigint_handler ();		/* XXX - only do this in one place */
+       kill (getpid (), SIGINT);
+     }
+ 
+@@ -2926,11 +2932,13 @@ wait_for (pid, flags)
+     {
+       SigHandler *temp_sigint_handler;
+ 
+-      temp_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
+-      if (temp_sigint_handler == wait_sigint_handler)
+-	internal_debug ("wait_for: recursively setting old_sigint_handler to wait_sigint_handler: running_trap = %d", running_trap);
+-      else
+-	old_sigint_handler = temp_sigint_handler;
++      temp_sigint_handler = old_sigint_handler;
++      old_sigint_handler = set_signal_handler (SIGINT, wait_sigint_handler);
++      if (old_sigint_handler == wait_sigint_handler)
++	{
++	  internal_debug ("wait_for: recursively setting old_sigint_handler to wait_sigint_handler: running_trap = %d", running_trap);
++	  old_sigint_handler = temp_sigint_handler;
++	}
+       waiting_for_child = 0;
+       if (old_sigint_handler == SIG_IGN)
+ 	set_signal_handler (SIGINT, old_sigint_handler);
+@@ -4136,7 +4144,7 @@ set_job_status_and_cleanup (job)
+ 		 SIGINT (if we reset the sighandler to the default).
+ 		 In this case, we have to fix things up.  What a crock. */
+ 	      if (temp_handler == trap_handler && signal_is_trapped (SIGINT) == 0)
+-		  temp_handler = trap_to_sighandler (SIGINT);
++		temp_handler = trap_to_sighandler (SIGINT);
+ 	      restore_sigint_handler ();
+ 	      if (temp_handler == SIG_DFL)
+ 		termsig_handler (SIGINT);	/* XXX */
+diff --git a/tests/redir.right b/tests/redir.right
+index 8db10414..9e1403c8 100644
+--- a/tests/redir.right
++++ b/tests/redir.right
+@@ -154,10 +154,10 @@ foo
+ 1
+ 7
+ after: 42
+-./redir11.sub: line 53: $(ss= declare -i ss): ambiguous redirect
++./redir11.sub: line 55: $(ss= declare -i ss): ambiguous redirect
+ after: 42
+ a+=3
+ foo
+ foo
+-./redir11.sub: line 75: 42: No such file or directory
++./redir11.sub: line 77: 42: No such file or directory
+ 42
+diff --git a/tests/redir11.sub b/tests/redir11.sub
+index d417cdb6..ca9854cd 100644
+--- a/tests/redir11.sub
++++ b/tests/redir11.sub
+@@ -34,6 +34,8 @@ a=4 b=7 ss=4 declare -i ss
+ a=4 b=7 foo
+ echo after: $a
+ 
++exec 7>&- 4>&-
++
+ unset a
+ a=4 echo foo 2>&1 >&$(foo) | { grep -q 'Bad file' || echo 'redir11 bad 3'; }
+ a=1 echo foo 2>&1 >&$(foo) | { grep -q 'Bad file' || echo 'redir11 bad 4'; }
+diff --git a/tests/type.right b/tests/type.right
+index bbc228e8..e0a66745 100644
+--- a/tests/type.right
++++ b/tests/type.right
+@@ -24,15 +24,15 @@ func ()
+ }
+ while
+ while is a shell keyword
+-./type.tests: line 56: type: m: not found
+-alias m='more'
+-alias m='more'
+-m is aliased to `more'
++./type.tests: line 59: type: morealias: not found
++alias morealias='more'
++alias morealias='more'
++morealias is aliased to `more'
+ alias
+-alias m='more'
+-alias m='more'
+-alias m='more'
+-m is aliased to `more'
++alias morealias='more'
++alias morealias='more'
++alias morealias='more'
++morealias is aliased to `more'
+ builtin
+ builtin is a shell builtin
+ /bin/sh
+diff --git a/tests/type.tests b/tests/type.tests
+index fd39c18a..ddc15407 100644
+--- a/tests/type.tests
++++ b/tests/type.tests
+@@ -25,8 +25,6 @@ type -r ${THIS_SH}
+ type notthere
+ command -v notthere
+ 
+-alias m=more
+-
+ unset -f func 2>/dev/null
+ func() { echo this is func; }
+ 
+@@ -49,24 +47,26 @@ command -V func
+ command -v while
+ command -V while
+ 
++alias morealias=more
++
+ # the following two lines should produce the same output
+ # post-3.0 patch makes command -v silent, as posix specifies
+ # first test with alias expansion off (should all fail or produce no output)
+-type -t m
+-type m
+-command -v m
++type -t morealias
++type morealias
++command -v morealias
+ alias -p
+-alias m
++alias morealias
+ 
+ # then test with alias expansion on 
+ shopt -s expand_aliases
+-type m
+-type -t m
+-command -v m
++type morealias
++type -t morealias
++command -v morealias
+ alias -p
+-alias m
++alias morealias
+ 
+-command -V m
++command -V morealias
+ shopt -u expand_aliases
+ 
+ command -v builtin
+@@ -76,7 +76,7 @@ command -V /bin/sh
+ 
+ unset -f func
+ type func
+-unalias m
++unalias morealias
+ type m
+ 
+ hash -r
+-- 
+2.35.5
+
diff --git a/poky/meta/recipes-extended/bash/bash_5.2.21.bb b/poky/meta/recipes-extended/bash/bash_5.2.21.bb
index 6df73b6..46d921b 100644
--- a/poky/meta/recipes-extended/bash/bash_5.2.21.bb
+++ b/poky/meta/recipes-extended/bash/bash_5.2.21.bb
@@ -12,6 +12,7 @@
            file://run-bash-ptests \
            file://fix-run-builtins.patch \
            file://use_aclocal.patch \
+           file://0001-changes-to-SIGINT-handler-while-waiting-for-a-child-.patch \
            "
 
 SRC_URI[tarball.sha256sum] = "c8e31bdc59b69aaffc5b36509905ba3e5cbb12747091d27b4b977f078560d5b8"
diff --git a/poky/meta/recipes-extended/cups/cups.inc b/poky/meta/recipes-extended/cups/cups.inc
index ff5f55e..31f686c 100644
--- a/poky/meta/recipes-extended/cups/cups.inc
+++ b/poky/meta/recipes-extended/cups/cups.inc
@@ -57,7 +57,7 @@
                --enable-debug \
                --disable-relro \
                --enable-libusb \
-               --with-system-groups=lpadmin \
+               --with-system-groups=lpadmin,root,sys,wheel \
                --with-cups-group=lp \
                --with-domainsocket=/run/cups/cups.sock \
                --with-pkgconfpath=${libdir}/pkgconfig \
diff --git a/poky/meta/recipes-extended/ethtool/ethtool_6.5.bb b/poky/meta/recipes-extended/ethtool/ethtool_6.6.bb
similarity index 93%
rename from poky/meta/recipes-extended/ethtool/ethtool_6.5.bb
rename to poky/meta/recipes-extended/ethtool/ethtool_6.6.bb
index ef925e1..ab82435 100644
--- a/poky/meta/recipes-extended/ethtool/ethtool_6.5.bb
+++ b/poky/meta/recipes-extended/ethtool/ethtool_6.6.bb
@@ -11,7 +11,7 @@
            file://avoid_parallel_tests.patch \
            "
 
-SRC_URI[sha256sum] = "aed41ca58b3129126f18429172064d214191d7e7ef52c6e3f6b2ff7503706c03"
+SRC_URI[sha256sum] = "d4cdb4f7498781fb516e2b3d0eadab28691da3fd3e3445954e82d745de95fb96"
 
 UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/"
 
diff --git a/poky/meta/recipes-extended/iptables/iptables/0001-configure-Add-option-to-enable-disable-libnfnetlink.patch b/poky/meta/recipes-extended/iptables/iptables/0001-configure-Add-option-to-enable-disable-libnfnetlink.patch
index 0c2c97c..8824bf2 100644
--- a/poky/meta/recipes-extended/iptables/iptables/0001-configure-Add-option-to-enable-disable-libnfnetlink.patch
+++ b/poky/meta/recipes-extended/iptables/iptables/0001-configure-Add-option-to-enable-disable-libnfnetlink.patch
@@ -1,7 +1,7 @@
-From 698ed332e2c592235d2b737c545ac25ad0970e15 Mon Sep 17 00:00:00 2001
+From 0096c854d5015918ed154dccb3ad472fd06c1010 Mon Sep 17 00:00:00 2001
 From: "Maxin B. John" <maxin.john@intel.com>
 Date: Tue, 21 Feb 2017 11:16:31 +0200
-Subject: [PATCH 1/4] configure: Add option to enable/disable libnfnetlink
+Subject: [PATCH] configure: Add option to enable/disable libnfnetlink
 
 This changes the configure behaviour from autodetecting
 for libnfnetlink to having an option to disable it explicitly
@@ -10,12 +10,13 @@
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Signed-off-by: Maxin B. John <maxin.john@intel.com>
+
 ---
  configure.ac | 10 +++++++---
  1 file changed, 7 insertions(+), 3 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index bc2ed47b..e27745e5 100644
+index d99fa3b..d607772 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -63,6 +63,9 @@ AC_ARG_WITH([pkgconfigdir], AS_HELP_STRING([--with-pkgconfigdir=PATH],
@@ -28,9 +29,9 @@
  AC_ARG_ENABLE([connlabel],
  	AS_HELP_STRING([--disable-connlabel],
  	[Do not build libnetfilter_conntrack]),
-@@ -117,9 +120,10 @@ if test "x$enable_bpfc" = "xyes" || test "x$enable_nfsynproxy" = "xyes"; then
- 	AC_CHECK_LIB(pcap, pcap_compile,, AC_MSG_ERROR(missing libpcap library required by bpf compiler or nfsynproxy tool))
- fi
+@@ -113,9 +116,10 @@ AM_CONDITIONAL([ENABLE_SYNCONF], [test "$enable_nfsynproxy" = "yes"])
+ AM_CONDITIONAL([ENABLE_NFTABLES], [test "$enable_nftables" = "yes"])
+ AM_CONDITIONAL([ENABLE_CONNLABEL], [test "$enable_connlabel" = "yes"])
  
 -PKG_CHECK_MODULES([libnfnetlink], [libnfnetlink >= 1.0],
 -	[nfnetlink=1], [nfnetlink=0])
@@ -40,8 +41,5 @@
 +    ])
 +AM_CONDITIONAL([HAVE_LIBNFNETLINK], [test "x$enable_libnfnetlink" = "xyes"])
  
- if test "x$enable_nftables" = "xyes"; then
- 	PKG_CHECK_MODULES([libmnl], [libmnl >= 1.0], [mnl=1], [mnl=0])
--- 
-2.30.2
-
+ if test "x$enable_bpfc" = "xyes" || test "x$enable_nfsynproxy" = "xyes"; then
+ 	PKG_CHECK_MODULES([libpcap], [libpcap], [], [
diff --git a/poky/meta/recipes-extended/iptables/iptables/0002-iptables-xshared.h-add-missing-sys.types.h-include.patch b/poky/meta/recipes-extended/iptables/iptables/0002-iptables-xshared.h-add-missing-sys.types.h-include.patch
index 9621d46..a190c7e 100644
--- a/poky/meta/recipes-extended/iptables/iptables/0002-iptables-xshared.h-add-missing-sys.types.h-include.patch
+++ b/poky/meta/recipes-extended/iptables/iptables/0002-iptables-xshared.h-add-missing-sys.types.h-include.patch
@@ -1,7 +1,7 @@
-From d4699d2169fe2d91d0f1f4369d40d2e5f42b8877 Mon Sep 17 00:00:00 2001
+From 465e3ef77f1763d225adc76220e43ee9bd73b178 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex@linutronix.de>
 Date: Tue, 17 May 2022 10:56:59 +0200
-Subject: [PATCH 2/4] iptables/xshared.h: add missing sys.types.h include
+Subject: [PATCH] iptables/xshared.h: add missing sys.types.h include
 
 This resolves the build error under musl:
 
@@ -12,12 +12,13 @@
 
 Upstream-Status: Submitted [via email to phil@nwl.cc]
 Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+
 ---
  iptables/xshared.h | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/iptables/xshared.h b/iptables/xshared.h
-index 0ed9f3c2..b1413834 100644
+index a200e0d..f543dbf 100644
 --- a/iptables/xshared.h
 +++ b/iptables/xshared.h
 @@ -6,6 +6,7 @@
@@ -28,6 +29,3 @@
  #include <linux/netfilter_arp/arp_tables.h>
  #include <linux/netfilter_ipv4/ip_tables.h>
  #include <linux/netfilter_ipv6/ip6_tables.h>
--- 
-2.30.2
-
diff --git a/poky/meta/recipes-extended/iptables/iptables/0003-Makefile.am-do-not-install-etc-ethertypes.patch b/poky/meta/recipes-extended/iptables/iptables/0003-Makefile.am-do-not-install-etc-ethertypes.patch
deleted file mode 100644
index cbc9757..0000000
--- a/poky/meta/recipes-extended/iptables/iptables/0003-Makefile.am-do-not-install-etc-ethertypes.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 28291b41bc3717f51e8d9d465f0100f1ca99dc26 Mon Sep 17 00:00:00 2001
-From: Trevor Gamblin <trevor.gamblin@windriver.com>
-Date: Wed, 9 Mar 2022 12:50:39 -0500
-Subject: [PATCH 3/4] Makefile.am: do not install /etc/ethertypes
-
-The /etc/ethertypes is provided by netbase since 6.0[1].
-Do not instal the file in ebtables, otherwise there would be a conflict:
-Error: Transaction test error:
-  file /etc/ethertypes conflicts between attempted installs of
-netbase-1:6.2-r0.corei7_64 and iptables-1.8.7-r0.corei7_64
-
-[1]
-https://salsa.debian.org/md/netbase/-/commit/316680c6a2c3641b6abc76b3eebf88781f609d35)
-
-This patch is based off of the same change made for the ebtables recipe:
-
-http://cgit.openembedded.org/meta-openembedded/tree/meta-networking/recipes-filter/ebtables/ebtables-2.0.11/0001-Makefile.am-do-not-install-etc-ethertypes.patch?h=master
-
-Upstream-Status: Inappropriate [embedded specific]
-
-Signed-off-by: Trevor Gamblin <trevor.gamblin@windriver.com>
----
- Makefile.am | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.am b/Makefile.am
-index 451c3cb2..5125238c 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -20,7 +20,7 @@ EXTRA_DIST	= autogen.sh iptables-test.py xlate-test.py
- 
- if ENABLE_NFTABLES
- confdir		= $(sysconfdir)
--dist_conf_DATA	= etc/ethertypes etc/xtables.conf
-+dist_conf_DATA	= etc/xtables.conf
- endif
- 
- .PHONY: tarball
--- 
-2.30.2
-
diff --git a/poky/meta/recipes-extended/iptables/iptables/0004-configure.ac-only-check-conntrack-when-libnfnetlink-.patch b/poky/meta/recipes-extended/iptables/iptables/0004-configure.ac-only-check-conntrack-when-libnfnetlink-.patch
index 20c40c4..5a022eb 100644
--- a/poky/meta/recipes-extended/iptables/iptables/0004-configure.ac-only-check-conntrack-when-libnfnetlink-.patch
+++ b/poky/meta/recipes-extended/iptables/iptables/0004-configure.ac-only-check-conntrack-when-libnfnetlink-.patch
@@ -1,7 +1,7 @@
-From e7aa1dd2831f9bb5d0603c5e5027387ad7721b00 Mon Sep 17 00:00:00 2001
+From 6832501bbb90a3dab977a4625d0391804c0e795c Mon Sep 17 00:00:00 2001
 From: "Maxin B. John" <maxin.john@intel.com>
 Date: Tue, 21 Feb 2017 11:49:07 +0200
-Subject: [PATCH 4/4] configure.ac:
+Subject: [PATCH] configure.ac:
  only-check-conntrack-when-libnfnetlink-enabled.patch
 
 Package libnetfilter-conntrack depends on package libnfnetlink. iptables
@@ -23,15 +23,16 @@
 
 Signed-off-by: Kai Kang <kai.kang@windriver.com>
 Signed-off-by: Maxin B. John <maxin.john@intel.com>
+
 ---
  configure.ac | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index e27745e5..528f1bb5 100644
+index d607772..25a8e75 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -158,10 +158,12 @@ if test "$nftables" != 1; then
+@@ -159,10 +159,12 @@ if test "$nftables" != 1; then
  fi
  
  if test "x$enable_connlabel" = "xyes"; then
@@ -46,6 +47,3 @@
  	if test "$nfconntrack" -ne 1; then
  		blacklist_modules="$blacklist_modules connlabel";
  		echo "WARNING: libnetfilter_conntrack not found, connlabel match will not be built";
--- 
-2.30.2
-
diff --git a/poky/meta/recipes-extended/iptables/iptables/format-security.patch b/poky/meta/recipes-extended/iptables/iptables/format-security.patch
deleted file mode 100644
index fae920f..0000000
--- a/poky/meta/recipes-extended/iptables/iptables/format-security.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From ed4082a7405a5838c205a34c1559e289949200cc Mon Sep 17 00:00:00 2001
-From: Phil Sutter <phil@nwl.cc>
-Date: Thu, 12 Jan 2023 14:38:44 +0100
-Subject: extensions: NAT: Fix for -Werror=format-security
-
-Have to pass either a string literal or format string to xt_xlate_add().
-
-Fixes: f30c5edce0413 ("extensions: Merge SNAT, DNAT, REDIRECT and MASQUERADE")
-Signed-off-by: Phil Sutter <phil@nwl.cc>
-Upstream-Status: Backport [https://git.netfilter.org/iptables/commit/?id=ed4082a7405a5838c205a34c1559e289949200cc]
-Signed-off-by: Alexander Kanavin <alex@linutronix.de>
----
- extensions/libxt_NAT.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/extensions/libxt_NAT.c b/extensions/libxt_NAT.c
-index da9f2201..2a634398 100644
---- a/extensions/libxt_NAT.c
-+++ b/extensions/libxt_NAT.c
-@@ -424,7 +424,7 @@ __NAT_xlate(struct xt_xlate *xl, const struct nf_nat_range2 *r,
- 	if (r->flags & NF_NAT_RANGE_PROTO_OFFSET)
- 		return 0;
- 
--	xt_xlate_add(xl, tgt);
-+	xt_xlate_add(xl, "%s", tgt);
- 	if (strlen(range_str))
- 		xt_xlate_add(xl, " to %s", range_str);
- 	if (r->flags & NF_NAT_RANGE_PROTO_RANDOM) {
--- 
-cgit v1.2.3
-
diff --git a/poky/meta/recipes-extended/iptables/iptables_1.8.9.bb b/poky/meta/recipes-extended/iptables/iptables_1.8.10.bb
similarity index 95%
rename from poky/meta/recipes-extended/iptables/iptables_1.8.9.bb
rename to poky/meta/recipes-extended/iptables/iptables_1.8.10.bb
index dc91973..cd2f3bc 100644
--- a/poky/meta/recipes-extended/iptables/iptables_1.8.9.bb
+++ b/poky/meta/recipes-extended/iptables/iptables_1.8.10.bb
@@ -15,11 +15,9 @@
            file://ip6tables.rules \
            file://0001-configure-Add-option-to-enable-disable-libnfnetlink.patch \
            file://0002-iptables-xshared.h-add-missing-sys.types.h-include.patch \
-           file://0003-Makefile.am-do-not-install-etc-ethertypes.patch \
            file://0004-configure.ac-only-check-conntrack-when-libnfnetlink-.patch \
-           file://format-security.patch \
            "
-SRC_URI[sha256sum] = "ef6639a43be8325a4f8ea68123ffac236cb696e8c78501b64e8106afb008c87f"
+SRC_URI[sha256sum] = "5cc255c189356e317d070755ce9371eb63a1b783c34498fb8c30264f3cc59c9c"
 
 SYSTEMD_SERVICE:${PN} = "\
     iptables.service \
diff --git a/poky/meta/recipes-extended/libsolv/libsolv_0.7.26.bb b/poky/meta/recipes-extended/libsolv/libsolv_0.7.27.bb
similarity index 95%
rename from poky/meta/recipes-extended/libsolv/libsolv_0.7.26.bb
rename to poky/meta/recipes-extended/libsolv/libsolv_0.7.27.bb
index bae7960..2ea80c6 100644
--- a/poky/meta/recipes-extended/libsolv/libsolv_0.7.26.bb
+++ b/poky/meta/recipes-extended/libsolv/libsolv_0.7.27.bb
@@ -12,7 +12,7 @@
            file://0001-utils-Conside-musl-when-wrapping-qsort_r.patch \
 "
 
-SRCREV = "48c985375134d2443eee551613161cadc278af2f"
+SRCREV = "0caa2edb94ba228003bf18960e4574256e92f8fb"
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
 
diff --git a/poky/meta/recipes-extended/pam/libpam_1.5.3.bb b/poky/meta/recipes-extended/pam/libpam_1.5.3.bb
index 7af3ea9..809d927 100644
--- a/poky/meta/recipes-extended/pam/libpam_1.5.3.bb
+++ b/poky/meta/recipes-extended/pam/libpam_1.5.3.bb
@@ -57,6 +57,11 @@
 FILES:${PN}-runtime = "${sysconfdir} ${sbindir} ${systemd_system_unitdir}"
 FILES:${PN}-xtests = "${datadir}/Linux-PAM/xtests"
 
+# libpam installs /etc/environment for use with the pam_env plugin. Make sure it is
+# packaged with the pam-plugin-env package to avoid breaking installations which
+# install that file via other packages
+FILES:pam-plugin-env = "${sysconfdir}/environment"
+
 PACKAGES_DYNAMIC += "^${MLPREFIX}pam-plugin-.*"
 
 def get_multilib_bit(d):
@@ -113,7 +118,7 @@
     pam_pkgname = mlprefix + 'pam-plugin%s'
 
     do_split_packages(d, pam_libdir, r'^pam(.*)\.so$', pam_pkgname,
-                      'PAM plugin for %s', hook=pam_plugin_hook, extra_depends='')
+                      'PAM plugin for %s', hook=pam_plugin_hook, extra_depends='', prepend=True)
     do_split_packages(d, pam_filterdir, r'^(.*)$', 'pam-filter-%s', 'PAM filter for %s', extra_depends='')
 }
 
diff --git a/poky/meta/recipes-extended/shadow/files/CVE-2023-4641.patch b/poky/meta/recipes-extended/shadow/files/CVE-2023-4641.patch
new file mode 100644
index 0000000..1fabfe9
--- /dev/null
+++ b/poky/meta/recipes-extended/shadow/files/CVE-2023-4641.patch
@@ -0,0 +1,147 @@
+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/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc
index 83e1a84..ce3ce62 100644
--- a/poky/meta/recipes-extended/shadow/shadow.inc
+++ b/poky/meta/recipes-extended/shadow/shadow.inc
@@ -17,6 +17,7 @@
 	   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 = " \
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_44.6.bb b/poky/meta/recipes-gnome/epiphany/epiphany_45.1.bb
similarity index 94%
rename from poky/meta/recipes-gnome/epiphany/epiphany_44.6.bb
rename to poky/meta/recipes-gnome/epiphany/epiphany_45.1.bb
index 577eb43..c8631e0 100644
--- a/poky/meta/recipes-gnome/epiphany/epiphany_44.6.bb
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_45.1.bb
@@ -31,7 +31,7 @@
            file://migrator.patch \
            file://distributor.patch \
            "
-SRC_URI[archive.sha256sum] = "5335dd573581db61e126d854dc16ae519657a5b8790789a47d25e43e17cd3a43"
+SRC_URI[archive.sha256sum] = "7c994ef34ecd60e915de331ee123c08938f9623cefada6d50b99e3c9c5ad8135"
 
 # Developer mode enables debugging
 PACKAGECONFIG[developer-mode] = "-Ddeveloper_mode=true,-Ddeveloper_mode=false"
diff --git a/poky/meta/recipes-gnome/gi-docgen/gi-docgen_2023.1.bb b/poky/meta/recipes-gnome/gi-docgen/gi-docgen_2023.3.bb
similarity index 94%
rename from poky/meta/recipes-gnome/gi-docgen/gi-docgen_2023.1.bb
rename to poky/meta/recipes-gnome/gi-docgen/gi-docgen_2023.3.bb
index 7722ebd..54d7ef7 100644
--- a/poky/meta/recipes-gnome/gi-docgen/gi-docgen_2023.1.bb
+++ b/poky/meta/recipes-gnome/gi-docgen/gi-docgen_2023.3.bb
@@ -10,7 +10,7 @@
 
 SRC_URI = "git://gitlab.gnome.org/GNOME/gi-docgen.git;protocol=https;branch=main"
 
-SRCREV = "63b4fad4181e793f34b7777a89e5cb58fe8ac7e6"
+SRCREV = "96f2e9b93e1d8a5338eb05b87fd879856ab7b3cc"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-graphics/drm/libdrm_2.4.117.bb b/poky/meta/recipes-graphics/drm/libdrm_2.4.118.bb
similarity index 96%
rename from poky/meta/recipes-graphics/drm/libdrm_2.4.117.bb
rename to poky/meta/recipes-graphics/drm/libdrm_2.4.118.bb
index 3e6fb16..7e0b23e 100644
--- a/poky/meta/recipes-graphics/drm/libdrm_2.4.117.bb
+++ b/poky/meta/recipes-graphics/drm/libdrm_2.4.118.bb
@@ -13,7 +13,7 @@
 SRC_URI = "http://dri.freedesktop.org/libdrm/${BP}.tar.xz \
           "
 
-SRC_URI[sha256sum] = "a2888d69e3eb1c8a77adc08a75a60fbae01f0d208d26f034d1a12e362361242b"
+SRC_URI[sha256sum] = "a777bd85f2b5fc9c57f886c82058300578317cafdbc77d0a769d7e9a9567ab88"
 
 inherit meson pkgconfig manpages
 
diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch b/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch
index 8230ba5..06379ee 100644
--- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch
+++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-meson.build-use-python3-directly-for-python.patch
@@ -1,4 +1,4 @@
-From c853c9e5c44f1b23a15a7ba629ee02f7d8ec23a0 Mon Sep 17 00:00:00 2001
+From 2afe24fc95dbb89e99df29ccbe73afa835f58202 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 6 Jan 2020 12:44:42 +0100
 Subject: [PATCH] meson.build: use 'python3' directly for python
@@ -14,15 +14,15 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/meson.build b/meson.build
-index 13d95bb..b241eb2 100644
+index de6d16b5..79cedbf6 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -64,7 +64,7 @@ flags = [
+@@ -68,7 +68,7 @@ flags = [
  
  add_project_arguments(cc.get_supported_arguments(flags), language : 'c')
  
 -prog_python = import('python').find_installation('python3')
 +prog_python = 'python3'
  
- libdrm_dep = dependency('libdrm', version : '>=2.4.50')
- thread_dep = dependency('threads')
+ not_found = dependency('', required: false)
+ libdrm_dep = dependency('libdrm', version : '>=2.4.50', required: get_option('drm').enabled() or get_option('venus'))
diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-Fix-undefined-behavior-with-clang.patch b/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-Fix-undefined-behavior-with-clang.patch
new file mode 100644
index 0000000..48488d7
--- /dev/null
+++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer/0001-vtest-Fix-undefined-behavior-with-clang.patch
@@ -0,0 +1,56 @@
+From ea328b246d093477cf26a68b42e975aaaef6abad Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 28 Nov 2023 21:55:36 -0800
+Subject: [PATCH] vtest: Fix undefined behavior with clang
+
+This is seen when compiling with CC="clang -D_FORTIFY_SOURCE=2"
+Move #ifdef outside of printf() call.
+
+Fixes
+
+| ../git/vtest/vtest_server.c:244:2: error: embedding a directive within macro arguments has undefined behavior [-Werror,-Wembedded-directive]
+|   244 | #ifdef ENABLE_VENUS
+|       |  ^
+| ../git/vtest/vtest_server.c:246:2: error: embedding a directive within macro arguments has undefined behavior [-Werror,-Wembedded-directive]
+|   246 | #endif
+|       |  ^
+
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/virgl/virglrenderer/-/merge_requests/1309]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ vtest/vtest_server.c | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/vtest/vtest_server.c b/vtest/vtest_server.c
+index 1ca7f74f..93d949d7 100644
+--- a/vtest/vtest_server.c
++++ b/vtest/vtest_server.c
+@@ -197,6 +197,12 @@ static void vtest_server_parse_args(int argc, char **argv)
+    /* getopt_long stores the option index here. */
+    int option_index = 0;
+ 
++#ifdef ENABLE_VENUS
++   char* ven = " [--venus]";
++#else
++   char* ven = "";
++#endif
++
+    do {
+       ret = getopt_long(argc, argv, "", long_options, &option_index);
+ 
+@@ -244,10 +250,8 @@ static void vtest_server_parse_args(int argc, char **argv)
+          printf("Usage: %s [--no-fork] [--no-loop-or-fork] [--multi-clients] "
+                 "[--use-glx] [--use-egl-surfaceless] [--use-gles] [--no-virgl]"
+                 "[--rendernode <dev>] [--socket-path <path>] "
+-#ifdef ENABLE_VENUS
+-                " [--venus]"
+-#endif
+-                " [file]\n", argv[0]);
++                "%s"
++                " [file]\n", argv[0], ven);
+          exit(EXIT_FAILURE);
+          break;
+       }
+-- 
+2.43.0
+
diff --git a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.10.4.bb b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_1.0.0.bb
similarity index 83%
rename from poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.10.4.bb
rename to poky/meta/recipes-graphics/virglrenderer/virglrenderer_1.0.0.bb
index f76e7cb..eb7ba10 100644
--- a/poky/meta/recipes-graphics/virglrenderer/virglrenderer_0.10.4.bb
+++ b/poky/meta/recipes-graphics/virglrenderer/virglrenderer_1.0.0.bb
@@ -9,18 +9,19 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=c81c08eeefd9418fca8f88309a76db10"
 
 DEPENDS = "libdrm libepoxy virtual/egl virtual/libgbm"
-SRCREV = "88b9fe3bfc64b23a701e4875006dbc0e769f14f6"
-SRC_URI = "git://gitlab.freedesktop.org/virgl/virglrenderer.git;branch=master;protocol=https \
+SRCREV = "9c9d55ecbe502e0d71ee99529709efcca69aac42"
+SRC_URI = "git://gitlab.freedesktop.org/virgl/virglrenderer.git;branch=main;protocol=https \
            file://0001-meson.build-use-python3-directly-for-python.patch \
+           file://0001-vtest-Fix-undefined-behavior-with-clang.patch \
            "
 
 S = "${WORKDIR}/git"
 
 inherit meson pkgconfig features_check
 
-PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'venus-experimental', '', d)}"
+PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'vulkan', 'venus', '', d)}"
 
-PACKAGECONFIG[venus-experimental] = "-Dvenus-experimental=true,-Dvenus-experimental=false,vulkan-loader vulkan-headers"
+PACKAGECONFIG[venus] = "-Dvenus=true,-Dvenus=false,vulkan-loader vulkan-headers"
 PACKAGECONFIG[va] = "-Dvideo=true,-Dvideo=false,libva"
 PACKAGECONFIG[render-server] = "-Drender-server=true,-Drender-server=false"
 PACKAGECONFIG[drm-msm-experimental] = "-Ddrm-msm-experimental=true,-Ddrm-msm-experimental=false"
diff --git a/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.5.0.bb b/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.6.0.bb
similarity index 92%
rename from poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.5.0.bb
rename to poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.6.0.bb
index 62e9b15..02045cc 100644
--- a/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.5.0.bb
+++ b/poky/meta/recipes-graphics/xorg-lib/libxkbcommon_1.6.0.bb
@@ -9,11 +9,11 @@
 
 SRC_URI = "http://xkbcommon.org/download/${BPN}-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "560f11c4bbbca10f495f3ef7d3a6aa4ca62b4f8fb0b52e7d459d18a26e46e017"
+SRC_URI[sha256sum] = "0edc14eccdd391514458bc5f5a4b99863ed2d651e4dd761a90abf4f46ef99c2b"
 
 UPSTREAM_CHECK_URI = "http://xkbcommon.org/"
 
-inherit meson pkgconfig
+inherit meson pkgconfig bash-completion
 
 PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'x11 wayland', d)} xkbregistry"
 
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-phys_proc_id-and-cpu_core_id-moved-in-linux-6.7..patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-phys_proc_id-and-cpu_core_id-moved-in-linux-6.7..patch
new file mode 100644
index 0000000..598f5a7
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-phys_proc_id-and-cpu_core_id-moved-in-linux-6.7..patch
@@ -0,0 +1,79 @@
+From 4f32efe70b618c4721bf197692fc9d709d352528 Mon Sep 17 00:00:00 2001
+From: Kienan Stewart <kstewart@efficios.com>
+Date: Mon, 20 Nov 2023 11:27:12 -0500
+Subject: [PATCH 1/2] fix: phys_proc_id and cpu_core_id moved in linux
+ 6.7.0-rc1
+
+See upstream commit:
+
+    commit 02fb601d27a7abf60d52b21bdf5b100a8d63da3f
+    Author: Thomas Gleixner <tglx@linutronix.de>
+    Date:   Mon Aug 14 10:18:30 2023 +0200
+
+        x86/cpu: Move phys_proc_id into topology info
+
+        Rename it to pkg_id which is the terminology used in the kernel.
+
+        No functional change.
+
+See upstream commit:
+
+    commit e95256335d45cc965cd12c423535002974313340
+    Author: Thomas Gleixner <tglx@linutronix.de>
+    Date:   Mon Aug 14 10:18:34 2023 +0200
+
+        x86/cpu: Move cpu_core_id into topology info
+
+        Rename it to core_id and stick it to the other ID fields.
+
+        No functional change.
+
+Upstream-Status: Backport [commit 4f32efe7]
+
+Signed-off-by: Kienan Stewart <kstewart@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: I574b02430210d5bb72c4b9db901d0e3a6dc7bea0
+---
+ .../instrumentation/events/lttng-statedump.h  | 19 +++++++++++++++++++
+ 1 file changed, 19 insertions(+)
+
+diff --git a/include/instrumentation/events/lttng-statedump.h b/include/instrumentation/events/lttng-statedump.h
+index 642aa356..4831a941 100644
+--- a/include/instrumentation/events/lttng-statedump.h
++++ b/include/instrumentation/events/lttng-statedump.h
+@@ -253,6 +253,23 @@ LTTNG_TRACEPOINT_EVENT(lttng_statedump_interrupt,
+ 
+ #define LTTNG_HAVE_STATEDUMP_CPU_TOPOLOGY
+ 
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,7,0))
++LTTNG_TRACEPOINT_EVENT(lttng_statedump_cpu_topology,
++	TP_PROTO(struct lttng_kernel_session *session, struct cpuinfo_x86 *c),
++	TP_ARGS(session, c),
++	TP_FIELDS(
++		ctf_string(architecture, "x86")
++		ctf_integer(uint16_t, cpu_id, c->cpu_index)
++		ctf_string(vendor, c->x86_vendor_id[0] ? c->x86_vendor_id : "unknown")
++		ctf_integer(uint8_t, family, c->x86)
++		ctf_integer(uint8_t, model, c->x86_model)
++		ctf_string(model_name, c->x86_model_id[0] ? c->x86_model_id : "unknown")
++		ctf_integer(uint16_t, physical_id, c->topo.pkg_id)
++		ctf_integer(uint16_t, core_id, c->topo.core_id)
++		ctf_integer(uint16_t, cores, c->booted_cores)
++	)
++)
++#else
+ LTTNG_TRACEPOINT_EVENT(lttng_statedump_cpu_topology,
+ 	TP_PROTO(struct lttng_kernel_session *session, struct cpuinfo_x86 *c),
+ 	TP_ARGS(session, c),
+@@ -268,6 +285,8 @@ LTTNG_TRACEPOINT_EVENT(lttng_statedump_cpu_topology,
+ 		ctf_integer(uint16_t, cores, c->booted_cores)
+ 	)
+ )
++#endif /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,7,0) */
++
+ #endif /* CONFIG_X86_32 || CONFIG_X86_64 */
+ 
+ #endif /*  LTTNG_TRACE_LTTNG_STATEDUMP_H */
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch
index 76a5787..120528b 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch
@@ -19,10 +19,10 @@
  src/Kbuild | 7 ++++++-
  1 file changed, 6 insertions(+), 1 deletion(-)
 
-diff --git a/src/Kbuild b/src/Kbuild
-index 7137874..04eb5c9 100644
---- a/src/Kbuild
-+++ b/src/Kbuild
+Index: lttng-modules-2.13.10/src/Kbuild
+===================================================================
+--- lttng-modules-2.13.10.orig/src/Kbuild
++++ lttng-modules-2.13.10/src/Kbuild
 @@ -2,10 +2,13 @@
  
  ifdef CONFIG_LOCALVERSION	# Check if dot-config is included.
@@ -38,7 +38,7 @@
  TOP_LTTNG_MODULES_DIR := $(shell dirname $(lastword $(MAKEFILE_LIST)))/..
  
  lttng_check_linux_version = $(shell pwd)/include/linux/version.h
-@@ -150,3 +153,5 @@ lttng-statedump-objs := lttng-statedump-impl.o
+@@ -150,3 +153,5 @@ lttng-statedump-objs := lttng-statedump-
  obj-$(CONFIG_LTTNG) += probes/
  obj-$(CONFIG_LTTNG) += lib/
  obj-$(CONFIG_LTTNG) += tests/
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-wrapper-fdtable-adjust-fd-lookup-to-v6.7.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-wrapper-fdtable-adjust-fd-lookup-to-v6.7.patch
new file mode 100644
index 0000000..b374483
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-wrapper-fdtable-adjust-fd-lookup-to-v6.7.patch
@@ -0,0 +1,35 @@
+From 76e4ea0c33a8c7726c0df28083d5c8bc1c1335e8 Mon Sep 17 00:00:00 2001
+From: Bruce Ashfield <bruce.ashfield@gmail.com>
+Date: Thu, 23 Nov 2023 13:49:51 -0500
+Subject: [PATCH] wrapper/fdtable: adjust fd lookup to v6.7+
+
+commit 0ede61d8589cc2d93 [file: convert to SLAB_TYPESAFE_BY_RCU]
+renames lookup_fd_rcu to lookup_fdget_rcu, so we need to
+version adjust the fdtable wrapper accordingly.
+
+Upstream-Status: Submitted [https://lists.lttng.org/pipermail/lttng-dev/2023-November/030667.html]
+
+Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
+---
+ include/wrapper/fdtable.h | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/include/wrapper/fdtable.h b/include/wrapper/fdtable.h
+index fa5f7207..aaf2b9e7 100644
+--- a/include/wrapper/fdtable.h
++++ b/include/wrapper/fdtable.h
+@@ -16,7 +16,11 @@
+ static inline
+ struct file *lttng_lookup_fd_rcu(unsigned int fd)
+ {
++#if (LTTNG_LINUX_VERSION_CODE < LTTNG_KERNEL_VERSION(6,7,0))
+ 	return lookup_fd_rcu(fd);
++#else
++	return lookup_fdget_rcu(fd);
++#endif
+ }
+ #else
+ static inline
+-- 
+2.34.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-mm-vmscan-signatures-changed-in-linux-6.7.0-rc1.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-mm-vmscan-signatures-changed-in-linux-6.7.0-rc1.patch
new file mode 100644
index 0000000..a1b979c
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-mm-vmscan-signatures-changed-in-linux-6.7.0-rc1.patch
@@ -0,0 +1,71 @@
+From aee34d916bdae79abcf103ef098cbb2e0c20bf83 Mon Sep 17 00:00:00 2001
+From: Kienan Stewart <kstewart@efficios.com>
+Date: Mon, 20 Nov 2023 11:33:14 -0500
+Subject: [PATCH 2/2] fix: mm, vmscan signatures changed in linux 6.7.0-rc1
+
+See upstream commit:
+
+    commit 3dfbb555c98ac55b9d911f9af0e35014b445fb41
+    Author: Vlastimil Babka <vbabka@suse.cz>
+    Date:   Thu Sep 14 15:16:39 2023 +0200
+
+        mm, vmscan: remove ISOLATE_UNMAPPED
+
+        This isolate_mode_t flag is effectively unused since 89f6c88a6ab4 ("mm:
+        __isolate_lru_page_prepare() in isolate_migratepages_block()") as
+        sc->may_unmap is now checked directly (and only node_reclaim has a mode
+        that sets it to 0).  The last remaining place is mm_vmscan_lru_isolate
+        tracepoint for the isolate_mode parameter.  That one was mainly used to
+        indicate the active/inactive mode, which the trace-vmscan-postprocess.pl
+        script consumed, but that got silently broken.  After fixing the script by
+        the previous patch, it does not need the isolate_mode anymore.  So just
+        remove the parameter and with that the whole ISOLATE_UNMAPPED flag.
+
+Upstream-Status: Backport [commit aee34d91]
+
+Signed-off-by: Kienan Stewart <kstewart@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+Change-Id: Ie7346886d926a1a9d20bcb1570c587c5e943a1c3
+---
+ include/instrumentation/events/mm_vmscan.h | 28 +++++++++++++++++++++-
+ 1 file changed, 27 insertions(+), 1 deletion(-)
+
+Index: lttng-modules-2.13.10/include/instrumentation/events/mm_vmscan.h
+===================================================================
+--- lttng-modules-2.13.10.orig/include/instrumentation/events/mm_vmscan.h
++++ lttng-modules-2.13.10/include/instrumentation/events/mm_vmscan.h
+@@ -369,7 +369,33 @@ LTTNG_TRACEPOINT_EVENT_MAP(mm_shrink_sla
+ )
+ #endif
+ 
+-#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(6,7,0))
++LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_isolate,
++
++	TP_PROTO(int classzone_idx,
++		int order,
++		unsigned long nr_requested,
++		unsigned long nr_scanned,
++		unsigned long nr_skipped,
++		unsigned long nr_taken,
++		int lru
++	),
++
++	TP_ARGS(classzone_idx, order, nr_requested, nr_scanned, nr_skipped,
++		nr_taken, lru
++	),
++
++	TP_FIELDS(
++		ctf_integer(int, classzone_idx, classzone_idx)
++		ctf_integer(int, order, order)
++		ctf_integer(unsigned long, nr_requested, nr_requested)
++		ctf_integer(unsigned long, nr_scanned, nr_scanned)
++		ctf_integer(unsigned long, nr_skipped, nr_skipped)
++		ctf_integer(unsigned long, nr_taken, nr_taken)
++		ctf_integer(int, lru, lru)
++	)
++)
++#elif (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,11,0))
+ LTTNG_TRACEPOINT_EVENT(mm_vmscan_lru_isolate,
+ 
+ 	TP_PROTO(int classzone_idx,
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.10.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.10.bb
index 4c0e37e..a7e3096 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.10.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.10.bb
@@ -10,6 +10,9 @@
 include lttng-platforms.inc
 
 SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
+           file://0001-fix-phys_proc_id-and-cpu_core_id-moved-in-linux-6.7..patch \
+           file://0002-fix-mm-vmscan-signatures-changed-in-linux-6.7.0-rc1.patch \
+           file://0001-wrapper-fdtable-adjust-fd-lookup-to-v6.7.patch \
            "
 
 # Use :append here so that the patch is applied also when using devupstream
diff --git a/poky/meta/recipes-multimedia/mpg123/mpg123_1.31.3.bb b/poky/meta/recipes-multimedia/mpg123/mpg123_1.32.3.bb
similarity index 95%
rename from poky/meta/recipes-multimedia/mpg123/mpg123_1.31.3.bb
rename to poky/meta/recipes-multimedia/mpg123/mpg123_1.32.3.bb
index b03ee9f..3ea68b1 100644
--- a/poky/meta/recipes-multimedia/mpg123/mpg123_1.31.3.bb
+++ b/poky/meta/recipes-multimedia/mpg123/mpg123_1.32.3.bb
@@ -10,7 +10,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=e7b9c15fcfb986abb4cc5e8400a24169"
 
 SRC_URI = "https://www.mpg123.de/download/${BP}.tar.bz2"
-SRC_URI[sha256sum] = "1ca77d3a69a5ff845b7a0536f783fee554e1041139a6b978f6afe14f5814ad1a"
+SRC_URI[sha256sum] = "2d9913a57d4ee8f497a182c6e82582602409782a4fb481e989feebf4435867b4"
 
 UPSTREAM_CHECK_REGEX = "mpg123-(?P<pver>\d+(\.\d+)+)\.tar"
 
@@ -40,7 +40,6 @@
 EXTRA_OECONF = " \
     --enable-shared \
     --enable-largefile \
-    --disable-lfs-alias \
     --with-audio='${AUDIOMODS}' \
     ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-cpu=neon', '', d)} \
     ${@bb.utils.contains('TUNE_FEATURES', 'altivec', '--with-cpu=altivec', '', d)} \
diff --git a/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch b/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch
index e996776..a1fc9e2 100644
--- a/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch
+++ b/poky/meta/recipes-rt/rt-tests/files/0001-Makefile-Allow-for-CC-and-AR-to-be-overridden.patch
@@ -1,4 +1,4 @@
-From 174fd202f2c85e43261139d71ad18908cc29b586 Mon Sep 17 00:00:00 2001
+From 7cf4cf097895bd4c3f3d3a6f783c766b3173cf1a Mon Sep 17 00:00:00 2001
 From: Randy Witt <randy.e.witt@intel.com>
 Date: Fri, 16 Oct 2020 16:54:30 -0700
 Subject: [PATCH] Makefile: Allow for CC and AR to be overridden
@@ -15,11 +15,11 @@
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/Makefile b/Makefile
-index 4df61ec..a229986 100644
+index 223a839..a735584 100644
 --- a/Makefile
 +++ b/Makefile
 @@ -1,6 +1,6 @@
- VERSION = 2.5
+ VERSION = 2.6
 -CC = $(CROSS_COMPILE)gcc
 -AR = $(CROSS_COMPILE)ar
 +CC ?= $(CROSS_COMPILE)gcc
diff --git a/poky/meta/recipes-rt/rt-tests/rt-tests.inc b/poky/meta/recipes-rt/rt-tests/rt-tests.inc
index 527e14a..70315c4 100644
--- a/poky/meta/recipes-rt/rt-tests/rt-tests.inc
+++ b/poky/meta/recipes-rt/rt-tests/rt-tests.inc
@@ -1,5 +1,5 @@
-SRCREV = "4579b9a6d85ae528f76e92421eb5e7b33cd26b17"
-PV = "2.5"
+SRCREV = "217cd8518c5f7777d490892aa9c765a6b2782cb5"
+PV = "2.6"
 PE = "1"
 
 SRC_URI = "git://git.kernel.org/pub/scm/utils/rt-tests/rt-tests.git;branch=main;protocol=https"
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch b/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch
index 34e0ff9..e5ece82 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch
+++ b/poky/meta/recipes-sato/webkit/webkitgtk/0d3344e17d258106617b0e6d783d073b188a2548.patch
@@ -1,4 +1,4 @@
-From 647c93de99a0f71f478d76a4cc7714eba7ba1447 Mon Sep 17 00:00:00 2001
+From 95398982f4a120147a98a27e176facf6d95b2bf7 Mon Sep 17 00:00:00 2001
 From: Adrian Perez de Castro <aperez@igalia.com>
 Date: Thu, 2 Jun 2022 11:19:06 +0300
 Subject: [PATCH] FELightningNEON.cpp fails to build, NEON fast path seems
@@ -33,6 +33,7 @@
 
 Upstream-Status: Submitted [https://github.com/WebKit/WebKit/pull/1233]
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
+
 ---
  .../cpu/arm/filters/FELightingNEON.cpp        |  4 +-
  .../graphics/cpu/arm/filters/FELightingNEON.h | 52 +++++++++----------
@@ -203,7 +204,7 @@
 -
 -#endif // FELightingNEON_h
 diff --git a/Source/WebCore/platform/graphics/filters/DistantLightSource.h b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
-index 70c6512f..b032c82e 100644
+index 70f583b3..7d5d27e5 100644
 --- a/Source/WebCore/platform/graphics/filters/DistantLightSource.h
 +++ b/Source/WebCore/platform/graphics/filters/DistantLightSource.h
 @@ -26,6 +26,10 @@
@@ -218,7 +219,7 @@
  
  class DistantLightSource : public LightSource {
 diff --git a/Source/WebCore/platform/graphics/filters/FELighting.h b/Source/WebCore/platform/graphics/filters/FELighting.h
-index 53beb596..e78a9354 100644
+index 179edf6d..694d712d 100644
 --- a/Source/WebCore/platform/graphics/filters/FELighting.h
 +++ b/Source/WebCore/platform/graphics/filters/FELighting.h
 @@ -35,8 +35,6 @@
@@ -229,8 +230,8 @@
 -
  class FELighting : public FilterEffect {
  public:
-     const Color& lightingColor() const { return m_lightingColor; }
-@@ -64,11 +62,6 @@ protected:
+     bool operator==(const FELighting&) const;
+@@ -68,11 +66,6 @@ protected:
  
      std::unique_ptr<FilterEffectApplier> createSoftwareApplier() const override;
  
@@ -243,7 +244,7 @@
      float m_surfaceScale;
      float m_diffuseConstant;
 diff --git a/Source/WebCore/platform/graphics/filters/PointLightSource.h b/Source/WebCore/platform/graphics/filters/PointLightSource.h
-index 3a5723f0..675d63f5 100644
+index a8cfdab8..34f867bb 100644
 --- a/Source/WebCore/platform/graphics/filters/PointLightSource.h
 +++ b/Source/WebCore/platform/graphics/filters/PointLightSource.h
 @@ -26,6 +26,10 @@
@@ -258,7 +259,7 @@
  
  class PointLightSource : public LightSource {
 diff --git a/Source/WebCore/platform/graphics/filters/SpotLightSource.h b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
-index 684626f7..dea58389 100644
+index 6404467a..5cac38f2 100644
 --- a/Source/WebCore/platform/graphics/filters/SpotLightSource.h
 +++ b/Source/WebCore/platform/graphics/filters/SpotLightSource.h
 @@ -26,6 +26,10 @@
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk/check-GST_GL_HAVE_PLATFORM_GLX.patch b/poky/meta/recipes-sato/webkit/webkitgtk/check-GST_GL_HAVE_PLATFORM_GLX.patch
deleted file mode 100644
index ae99810..0000000
--- a/poky/meta/recipes-sato/webkit/webkitgtk/check-GST_GL_HAVE_PLATFORM_GLX.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Add additional check on GST_GL_HAVE_PLATFORM_GLX before using gst_gl_display_x11_new_with_display
-
-This ensures that there is a compile time check for glx support in gstreamer as
-runtime check is not enough because gst_gl_display_x11_new_with_display() API comes from
-gst/gl/x11/gstgldisplay_x11.h which is only included when GST_GL_HAVE_PLATFORM_GLX is defined
-therefore make this check consistent to fix build with some platforms which use pvr gl drivers
-where this problem appear at compile time.
-
-
-/mnt/b/yoe/master/build/tmp/work/riscv64-yoe-linux/webkitgtk/2.40.2-r0/webkitgtk-2.40.2/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp:68:31: error: use of undeclared identifier 'gst_gl_display_x11_new_with_display'; did you mean 'gst_gl_display_egl_new_with_egl_display'?
-   68 |         return GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native()));
-      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-      |                               gst_gl_display_egl_new_with_egl_display
-
-This issue is 2.40 specific since GLX support is removed [1] from trunk upstream, therefore
-this patch wont be needed when upgrading to 2.42+
-
-[1] https://github.com/WebKit/WebKit/commit/320560f9e53ddcd53954059bd005e0c75eb91abf
-
-Upstream-Status: Inappropriate [GLX support is gone in 2.41+]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
---- a/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp	2023-02-20 01:22:18.917743700 -0800
-+++ b/Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp	2023-07-08 08:45:09.739177065 -0700
-@@ -63,7 +63,7 @@
-     if (glPlatform == GST_GL_PLATFORM_EGL)
-         return GST_GL_DISPLAY(gst_gl_display_egl_new_with_egl_display(sharedDisplay.eglDisplay()));
- #endif
--#if USE(GLX)
-+#if USE(GLX) && GST_GL_HAVE_PLATFORM_GLX
-     if (is<PlatformDisplayX11>(sharedDisplay) && glPlatform == GST_GL_PLATFORM_GLX)
-         return GST_GL_DISPLAY(gst_gl_display_x11_new_with_display(downcast<PlatformDisplayX11>(sharedDisplay).native()));
- #endif
diff --git a/poky/meta/recipes-sato/webkit/webkitgtk_2.40.5.bb b/poky/meta/recipes-sato/webkit/webkitgtk_2.42.2.bb
similarity index 97%
rename from poky/meta/recipes-sato/webkit/webkitgtk_2.40.5.bb
rename to poky/meta/recipes-sato/webkit/webkitgtk_2.42.2.bb
index 0c54f20..2ba60eb 100644
--- a/poky/meta/recipes-sato/webkit/webkitgtk_2.40.5.bb
+++ b/poky/meta/recipes-sato/webkit/webkitgtk_2.42.2.bb
@@ -13,10 +13,9 @@
            file://0001-FindGObjectIntrospection.cmake-prefix-variables-obta.patch \
            file://reproducibility.patch \
            file://0d3344e17d258106617b0e6d783d073b188a2548.patch \
-           file://check-GST_GL_HAVE_PLATFORM_GLX.patch \
            file://0001-CMake-Add-a-variable-to-control-macro-__PAS_ALWAYS_I.patch \
            "
-SRC_URI[sha256sum] = "7de051a263668621d91a61a5eb1c3771d1a7cec900043d4afef06c326c16037f"
+SRC_URI[sha256sum] = "5720aa3e8627f1b9f63252187d4df0f8233ae71d697b1796ebfbe5ca750bd118"
 
 inherit cmake pkgconfig gobject-introspection perlnative features_check upstream-version-is-even gi-docgen
 
@@ -75,6 +74,7 @@
 PACKAGECONFIG[journald] = "-DENABLE_JOURNALD_LOG=ON,-DENABLE_JOURNALD_LOG=OFF,systemd"
 PACKAGECONFIG[avif] = "-DUSE_AVIF_LOG=ON,-DUSE_AVIF=OFF,libavif"
 PACKAGECONFIG[media-recorder] = "-DENABLE_MEDIA_RECORDER=ON,-DENABLE_MEDIA_RECORDER=OFF,gstreamer1.0-plugins-bad"
+PACKAGECONFIG[jpegxl] = "-DUSE_JPEGXL=ON,-DUSE_JPEGXL=OFF,libjxl"
 
 EXTRA_OECMAKE = " \
                  -DPORT=GTK \
diff --git a/poky/meta/recipes-support/diffoscope/diffoscope_251.bb b/poky/meta/recipes-support/diffoscope/diffoscope_252.bb
similarity index 93%
rename from poky/meta/recipes-support/diffoscope/diffoscope_251.bb
rename to poky/meta/recipes-support/diffoscope/diffoscope_252.bb
index 8862509..86dc85d 100644
--- a/poky/meta/recipes-support/diffoscope/diffoscope_251.bb
+++ b/poky/meta/recipes-support/diffoscope/diffoscope_252.bb
@@ -12,7 +12,7 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "c9ba2fc24379b2ba4457dc7be6970884cc2ee94c20d44f3889c2a4741e6178d3"
+SRC_URI[sha256sum] = "e268384fa484f3dd8a936da626e6ef1b231dcb286d09a360f37548637f8dd46d"
 
 RDEPENDS:${PN} += "\
         binutils \
diff --git a/poky/meta/recipes-support/gnutls/gnutls_3.8.1.bb b/poky/meta/recipes-support/gnutls/gnutls_3.8.2.bb
similarity index 97%
rename from poky/meta/recipes-support/gnutls/gnutls_3.8.1.bb
rename to poky/meta/recipes-support/gnutls/gnutls_3.8.2.bb
index 455031d..43fb5c4 100644
--- a/poky/meta/recipes-support/gnutls/gnutls_3.8.1.bb
+++ b/poky/meta/recipes-support/gnutls/gnutls_3.8.2.bb
@@ -25,7 +25,7 @@
            file://Add-ptest-support.patch \
            "
 
-SRC_URI[sha256sum] = "ba8b9e15ae20aba88f44661978f5b5863494316fe7e722ede9d069fe6294829c"
+SRC_URI[sha256sum] = "e765e5016ffa9b9dd243e363a0460d577074444ee2491267db2e96c9c2adef77"
 
 inherit autotools texinfo pkgconfig gettext lib_package gtk-doc ptest
 
diff --git a/poky/meta/recipes-support/icu/icu_73-2.bb b/poky/meta/recipes-support/icu/icu_74-1.bb
similarity index 95%
rename from poky/meta/recipes-support/icu/icu_73-2.bb
rename to poky/meta/recipes-support/icu/icu_74-1.bb
index 7c59f8b..88ded16 100644
--- a/poky/meta/recipes-support/icu/icu_73-2.bb
+++ b/poky/meta/recipes-support/icu/icu_74-1.bb
@@ -78,7 +78,7 @@
 
 BBCLASSEXTEND = "native nativesdk"
 
-LIC_FILES_CHKSUM = "file://../LICENSE;md5=80c2cf39ad8ae12b9b9482a1737c6650"
+LIC_FILES_CHKSUM = "file://../LICENSE;md5=08dc3852df8fffa807301902ad899ff8"
 
 def icu_download_version(d):
     pvsplit = d.getVar('PV').split('-')
@@ -111,8 +111,8 @@
 SRC_URI:append:class-target = "\
            file://0001-Disable-LDFLAGSICUDT-for-Linux.patch \
           "
-SRC_URI[code.sha256sum] = "818a80712ed3caacd9b652305e01afc7fa167e6f2e94996da44b90c2ab604ce1"
-SRC_URI[data.sha256sum] = "ca1ee076163b438461e484421a7679fc33a64cd0a54f9d4b401893fa1eb42701"
+SRC_URI[code.sha256sum] = "86ce8e60681972e60e4dcb2490c697463fcec60dd400a5f9bffba26d0b52b8d0"
+SRC_URI[data.sha256sum] = "67d5ab39c5187e1dd0fed60a3fe52794dce9784b4c045cb85e19f5d317fd783f"
 
 UPSTREAM_CHECK_REGEX = "releases/tag/release-(?P<pver>(?!.+rc).+)"
 GITHUB_BASE_URI = "https://github.com/unicode-org/icu/releases"
diff --git a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.2.bb b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.3.bb
similarity index 95%
rename from poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.2.bb
rename to poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.3.bb
index 524b06c..1c4f4d6 100644
--- a/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.2.bb
+++ b/poky/meta/recipes-support/libgcrypt/libgcrypt_1.10.3.bb
@@ -27,7 +27,7 @@
            file://no-bench-slope.patch \
            file://run-ptest \
            "
-SRC_URI[sha256sum] = "3b9c02a004b68c256add99701de00b383accccf37177e0d6c58289664cce0c03"
+SRC_URI[sha256sum] = "8b0870897ac5ac67ded568dcfadf45969cfa8a6beb0fd60af2a9eadc2a3272aa"
 
 CVE_STATUS[CVE-2018-12433] = "disputed: CVE is disputed and not affecting crypto libraries for any distro."
 CVE_STATUS[CVE-2018-12438] = "disputed: CVE is disputed and not affecting crypto libraries for any distro."
diff --git a/poky/meta/recipes-support/libksba/libksba_1.6.4.bb b/poky/meta/recipes-support/libksba/libksba_1.6.5.bb
similarity index 93%
rename from poky/meta/recipes-support/libksba/libksba_1.6.4.bb
rename to poky/meta/recipes-support/libksba/libksba_1.6.5.bb
index f9636f9..62ba73d 100644
--- a/poky/meta/recipes-support/libksba/libksba_1.6.4.bb
+++ b/poky/meta/recipes-support/libksba/libksba_1.6.5.bb
@@ -24,7 +24,7 @@
 SRC_URI = "${GNUPG_MIRROR}/${BPN}/${BPN}-${PV}.tar.bz2 \
            file://ksba-add-pkgconfig-support.patch"
 
-SRC_URI[sha256sum] = "bbb43f032b9164d86c781ffe42213a83bf4f2fee91455edfa4654521b8b03b6b"
+SRC_URI[sha256sum] = "a564628c574c99287998753f98d750babd91a4e9db451f46ad140466ef2a6d16"
 
 do_configure:prepend () {
 	# Else these could be used in preference to those in aclocal-copy
diff --git a/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch b/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch
new file mode 100644
index 0000000..d867e5b
--- /dev/null
+++ b/poky/meta/recipes-support/libsoup/libsoup-2.4/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch
@@ -0,0 +1,44 @@
+From ced3c5d8cad0177b297666343f1561799dfefb0d Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 22 Nov 2023 18:49:10 -0800
+Subject: [PATCH] Fix build with libxml2-2.12.0 and clang-17
+
+Fixes build errors about missing function prototypes with clang-17
+
+Fixes
+| ../libsoup-2.74.3/libsoup/soup-xmlrpc-old.c:512:8: error: call to undeclared function 'xmlParseMemory'; ISO C99 and later do not support implicit function declarations
+
+Upstream-Status: Submitted [https://gitlab.gnome.org/GNOME/libsoup/-/merge_requests/385]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ libsoup/soup-xmlrpc-old.c | 1 +
+ libsoup/soup-xmlrpc.c     | 1 +
+ 2 files changed, 2 insertions(+)
+
+diff --git a/libsoup/soup-xmlrpc-old.c b/libsoup/soup-xmlrpc-old.c
+index c57086b6..527e3b23 100644
+--- a/libsoup/soup-xmlrpc-old.c
++++ b/libsoup/soup-xmlrpc-old.c
+@@ -11,6 +11,7 @@
+ 
+ #include <string.h>
+ 
++#include <libxml/parser.h>
+ #include <libxml/tree.h>
+ 
+ #include "soup-xmlrpc-old.h"
+diff --git a/libsoup/soup-xmlrpc.c b/libsoup/soup-xmlrpc.c
+index 42dcda9c..e991cbf0 100644
+--- a/libsoup/soup-xmlrpc.c
++++ b/libsoup/soup-xmlrpc.c
+@@ -17,6 +17,7 @@
+ 
+ #include <string.h>
+ #include <errno.h>
++#include <libxml/parser.h>
+ #include <libxml/tree.h>
+ #include "soup-xmlrpc.h"
+ #include "soup.h"
+-- 
+2.43.0
+
diff --git a/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb b/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
index a605857..ee20530 100644
--- a/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
+++ b/poky/meta/recipes-support/libsoup/libsoup-2.4_2.74.3.bb
@@ -11,7 +11,8 @@
 
 SHRT_VER = "${@d.getVar('PV').split('.')[0]}.${@d.getVar('PV').split('.')[1]}"
 
-SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz"
+SRC_URI = "${GNOME_MIRROR}/libsoup/${SHRT_VER}/libsoup-${PV}.tar.xz \
+           file://0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch"
 SRC_URI[sha256sum] = "e4b77c41cfc4c8c5a035fcdc320c7bc6cfb75ef7c5a034153df1413fa1d92f13"
 
 CVE_PRODUCT = "libsoup"
diff --git a/poky/meta/recipes-support/libxslt/libxslt_1.1.38.bb b/poky/meta/recipes-support/libxslt/libxslt_1.1.39.bb
similarity index 95%
rename from poky/meta/recipes-support/libxslt/libxslt_1.1.38.bb
rename to poky/meta/recipes-support/libxslt/libxslt_1.1.39.bb
index ed5b15b..2cc0c84 100644
--- a/poky/meta/recipes-support/libxslt/libxslt_1.1.38.bb
+++ b/poky/meta/recipes-support/libxslt/libxslt_1.1.39.bb
@@ -15,7 +15,7 @@
 
 SRC_URI = "https://download.gnome.org/sources/libxslt/1.1/libxslt-${PV}.tar.xz"
 
-SRC_URI[sha256sum] = "1f32450425819a09acaff2ab7a5a7f8a2ec7956e505d7beeb45e843d0e1ecab1"
+SRC_URI[sha256sum] = "2a20ad621148339b0759c4d4e96719362dee64c9a096dbba625ba053846349f0"
 
 UPSTREAM_CHECK_REGEX = "libxslt-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-support/p11-kit/files/strerror-1.patch b/poky/meta/recipes-support/p11-kit/files/strerror-1.patch
deleted file mode 100644
index 6af4fee..0000000
--- a/poky/meta/recipes-support/p11-kit/files/strerror-1.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 3ba2c55dfdc8ff20de369f07f6c57d08718d3add Mon Sep 17 00:00:00 2001
-From: Adam Sampson <ats@offog.org>
-Date: Sun, 2 Jul 2023 15:22:49 +0100
-Subject: [PATCH] Check for GNU strerror_r using the compiler only
-
-The new test that was added to distinguish GNU/XSI strerror_r ran a
-compiled program, which doesn't work when cross-compiling. The only
-difference at compile time is that the GNU version returns char * and
-the XSI version returns int, so detect it by compiling a program that
-dereferences the return value.
-
-Signed-off-by: Adam Sampson <ats@offog.org>
-
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
----
- configure.ac | 19 +++++++------------
- meson.build  | 10 +++++-----
- 2 files changed, 12 insertions(+), 17 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 40f5a583..29890622 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -146,19 +146,14 @@ if test "$os_unix" = "yes"; then
- 
- 	AC_CHECK_FUNC(
- 		[strerror_r],
--		[AC_RUN_IFELSE(
--			[AC_LANG_SOURCE([[
--				#include <errno.h>
--				#include <string.h>
--
--				int main (void)
--				{
--					char buf[32];
--					return strerror_r (EINVAL, buf, 32);
--				}
--			]])],
--                        [AC_DEFINE([HAVE_XSI_STRERROR_R], 1, [Whether XSI-compliant strerror_r() is available])],
-+		[AC_COMPILE_IFELSE(
-+			[AC_LANG_PROGRAM([[#include <errno.h>
-+					   #include <string.h>]],
-+					 [[/* GNU strerror_r returns char *, XSI returns int */
-+					    char buf[32];
-+					    return *strerror_r (EINVAL, buf, 32);]])],
- 			[AC_DEFINE([HAVE_GNU_STRERROR_R], 1, [Whether GNU-specific strerror_r() is available])],
-+                        [AC_DEFINE([HAVE_XSI_STRERROR_R], 1, [Whether XSI-compliant strerror_r() is available])],
- 			[])],
- 		[])
- 
-diff --git a/meson.build b/meson.build
-index 0f8c8da0..4cc3f89a 100644
---- a/meson.build
-+++ b/meson.build
-@@ -306,15 +306,15 @@ if cc.has_function('strerror_r', prefix: '#include <string.h>')
- 
- int main (void)
- {
-+    /* GNU strerror_r returns char *, XSI returns int */
-     char buf[32];
--    return strerror_r (EINVAL, buf, 32);
-+    return *strerror_r (EINVAL, buf, 32);
- }
- '''
--  strerror_r_check = cc.run(strerror_r_code, name : 'strerror_r check')
--  if strerror_r_check.returncode() == 0
--    conf.set('HAVE_XSI_STRERROR_R', 1)
--  else
-+  if cc.compiles(strerror_r_code, name : 'GNU strerror_r check')
-     conf.set('HAVE_GNU_STRERROR_R', 1)
-+  else
-+    conf.set('HAVE_XSI_STRERROR_R', 1)
-   endif
- endif
- 
diff --git a/poky/meta/recipes-support/p11-kit/files/strerror-2.patch b/poky/meta/recipes-support/p11-kit/files/strerror-2.patch
deleted file mode 100644
index 1a9180b..0000000
--- a/poky/meta/recipes-support/p11-kit/files/strerror-2.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 7aa6251bf4ce36d027d53c9c96bb05f90ef7eb5b Mon Sep 17 00:00:00 2001
-From: Adam Sampson <ats@offog.org>
-Date: Sun, 2 Jul 2023 15:44:06 +0100
-Subject: [PATCH] Define _GNU_SOURCE when testing for strerror_r
-
-The Meson check for GNU/XSI strerror_r didn't inherit the project
-options that include _GNU_SOURCE (unlike the autoconf version), so the
-result didn't match how the code that uses it will be compiled. Add
-_GNU_SOURCE explicitly as with the following checks.
-
-Signed-off-by: Adam Sampson <ats@offog.org>
-
-Upstream-Status: Backport
-Signed-off-by: Ross Burton <ross.burton@arm.com>
----
- meson.build | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/meson.build b/meson.build
-index 4cc3f89a..9a72e148 100644
---- a/meson.build
-+++ b/meson.build
-@@ -301,6 +301,7 @@ endforeach
- 
- if cc.has_function('strerror_r', prefix: '#include <string.h>')
-   strerror_r_code = '''
-+#define _GNU_SOURCE
- #include <errno.h>
- #include <string.h>
- 
diff --git a/poky/meta/recipes-support/p11-kit/p11-kit_0.25.0.bb b/poky/meta/recipes-support/p11-kit/p11-kit_0.25.2.bb
similarity index 85%
rename from poky/meta/recipes-support/p11-kit/p11-kit_0.25.0.bb
rename to poky/meta/recipes-support/p11-kit/p11-kit_0.25.2.bb
index ad1fda3..d00ef2d 100644
--- a/poky/meta/recipes-support/p11-kit/p11-kit_0.25.0.bb
+++ b/poky/meta/recipes-support/p11-kit/p11-kit_0.25.2.bb
@@ -10,10 +10,8 @@
 
 DEPENDS:append = "${@' glib-2.0' if d.getVar('GTKDOC_ENABLED') == 'True' else ''}"
 
-SRC_URI = "git://github.com/p11-glue/p11-kit;branch=master;protocol=https \
-           file://strerror-1.patch \
-           file://strerror-2.patch"
-SRCREV = "a8cce8bd8065bbf80bd47219f85f0cd9cf27dd0c"
+SRC_URI = "gitsm://github.com/p11-glue/p11-kit;branch=master;protocol=https"
+SRCREV = "66d6b42ef8dd84fcd8e199ac9f23f822f1a058c9"
 S = "${WORKDIR}/git"
 
 PACKAGECONFIG ??= ""
diff --git a/poky/meta/recipes-support/shared-mime-info/shared-mime-info/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch b/poky/meta/recipes-support/shared-mime-info/shared-mime-info/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch
new file mode 100644
index 0000000..936f72c
--- /dev/null
+++ b/poky/meta/recipes-support/shared-mime-info/shared-mime-info/0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch
@@ -0,0 +1,26 @@
+From 665383306c725f299a1b373f947cda01949d49e4 Mon Sep 17 00:00:00 2001
+From: David Faure <faure@kde.org>
+Date: Sun, 19 Nov 2023 11:18:11 +0100
+Subject: [PATCH] Fix build with libxml2-2.12.0 and clang-17
+
+Fixes #219
+
+Upstream-Status: Backport [https://gitlab.freedesktop.org/xdg/shared-mime-info/-/commit/c918fe77e255150938e83a6aec259f153d303573]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/test-subclassing.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/test-subclassing.c b/src/test-subclassing.c
+index dd099e4..0758164 100644
+--- a/src/test-subclassing.c
++++ b/src/test-subclassing.c
+@@ -1,4 +1,5 @@
+ #include <libxml/tree.h>
++#include <libxml/parser.h>
+ #include <stdio.h>
+ #include <string.h>
+ 
+-- 
+2.43.0
+
diff --git a/poky/meta/recipes-support/shared-mime-info/shared-mime-info/0002-Handle-build-with-older-versions-of-GCC.patch b/poky/meta/recipes-support/shared-mime-info/shared-mime-info/0002-Handle-build-with-older-versions-of-GCC.patch
new file mode 100644
index 0000000..2af6b46
--- /dev/null
+++ b/poky/meta/recipes-support/shared-mime-info/shared-mime-info/0002-Handle-build-with-older-versions-of-GCC.patch
@@ -0,0 +1,54 @@
+From 461d00fcd5c5842b9a56f7462d55d46bf21163cc Mon Sep 17 00:00:00 2001
+From: Patrick Williams <patrick@stwcx.xyz>
+Date: Fri, 1 Dec 2023 11:19:02 -0600
+Subject: [PATCH] Handle build with older versions of GCC
+
+Older versions of GCC (prior to 9.1) did not put the `std::filesystem`
+support directly into libstdcpp, but in a separate `libstdc++fs`.  Add
+meson logic to detect if an extra linker flag is necessary.
+
+Fixes #223.
+
+Tested on AlmaLinux 8 which uses GCC-8.
+
+Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
+Upstream-Status: Submitted [https://gitlab.freedesktop.org/xdg/shared-mime-info/-/merge_requests/278]
+---
+ meson.build | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/meson.build b/meson.build
+index ecc012f..93acd40 100644
+--- a/meson.build
++++ b/meson.build
+@@ -11,6 +11,7 @@ config = configuration_data()
+ i18n = import('i18n')
+ 
+ cc = meson.get_compiler('c')
++cxx = meson.get_compiler('cpp')
+ 
+ ###############################################################################
+ # Project configuration
+@@ -46,6 +47,19 @@ if not xdgmime_found
+     ''')
+ endif
+ 
++###############################################################################
++# Check if GCC needs -lstdc++fs (before 9.1)
++
++if not cxx.links('''
++        #include <filesystem>
++        int main() {
++            return std::filesystem::is_directory(
++                std::filesystem::status("/tmp")) ? 0 : 1;
++        }
++        ''', name: 'std++fs-check')
++    add_project_link_arguments('-lstdc++fs', language : 'cpp')
++endif
++
+ ###############################################################################
+ # Dependencies
+ 
+-- 
+2.41.0
+
diff --git a/poky/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb b/poky/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb
index 5ba4023..ef5df44 100644
--- a/poky/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb
+++ b/poky/meta/recipes-support/shared-mime-info/shared-mime-info_2.4.bb
@@ -8,7 +8,9 @@
 
 DEPENDS = "libxml2 itstool-native glib-2.0 shared-mime-info-native xmlto-native"
 
-SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https;branch=master"
+SRC_URI = "git://gitlab.freedesktop.org/xdg/shared-mime-info.git;protocol=https;branch=master \
+           file://0001-Fix-build-with-libxml2-2.12.0-and-clang-17.patch \
+           file://0002-Handle-build-with-older-versions-of-GCC.patch"
 SRCREV = "9a6d6b8e963935f145f3a1ef446552de6996dada"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-support/vim/vim.inc b/poky/meta/recipes-support/vim/vim.inc
index a37310a..6b440d8 100644
--- a/poky/meta/recipes-support/vim/vim.inc
+++ b/poky/meta/recipes-support/vim/vim.inc
@@ -19,8 +19,8 @@
            file://no-path-adjust.patch \
            "
 
-PV .= ".2068"
-SRCREV = "9198c1f2b1ddecde22af918541e0de2a32f0f45a"
+PV .= ".2130"
+SRCREV = "075ad7047457debfeef13442c01e74088b461092"
 
 # Do not consider .z in x.y.z, as that is updated with every commit
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+\.\d+)\.0"
diff --git a/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch b/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
index b4100fc..8934d5f 100644
--- a/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
+++ b/poky/meta/recipes-support/vte/vte/0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch
@@ -11,32 +11,25 @@
 Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
 
 [1] https://gitlab.gnome.org/GNOME/vte/issues/72
-
 ---
- src/missing.hh | 4 ++++
- src/widget.cc  | 1 +
- 2 files changed, 5 insertions(+)
+ src/widget.cc  | 4 +++
+ 1 files changed, 4 insertions(+)
 
---- a/src/missing.hh
-+++ b/src/missing.hh
-@@ -24,6 +24,10 @@
- #define NSIG (8 * sizeof(sigset_t))
- #endif
+diff --git a/src/widget.cc b/src/widget.cc
+index 07f7cabf..31a77f68 100644
+--- a/src/widget.cc
++++ b/src/widget.cc
+@@ -16,6 +16,10 @@
+  * along with this library.  If not, see <https://www.gnu.org/licenses/>.
+  */
  
 +#ifndef W_EXITCODE
 +#define W_EXITCODE(ret, sig) ((ret) << 8 | (sig))
 +#endif
 +
- #ifndef HAVE_FDWALK
- int fdwalk(int (*cb)(void* data, int fd),
-            void* data);
---- a/src/widget.cc
-+++ b/src/widget.cc
-@@ -21,6 +21,7 @@
+ #include "config.h"
+ 
  #include "widget.hh"
- 
- #include <sys/wait.h> // for W_EXITCODE
-+#include "missing.hh" // for W_EXITCODE on non-glibc systems
- 
- #include <exception>
- #include <new>
+-- 
+2.42.0
+
diff --git a/poky/meta/recipes-support/vte/vte_0.72.2.bb b/poky/meta/recipes-support/vte/vte_0.72.2.bb
deleted file mode 100644
index 44e7149..0000000
--- a/poky/meta/recipes-support/vte/vte_0.72.2.bb
+++ /dev/null
@@ -1,53 +0,0 @@
-SUMMARY = "Virtual terminal emulator GTK+ widget library"
-DESCRIPTION = "VTE provides a virtual terminal widget for GTK applications."
-HOMEPAGE = "https://wiki.gnome.org/Apps/Terminal/VTE"
-BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte"
-LICENSE = "GPL-3.0-only & LGPL-3.0-or-later & MIT"
-LICENSE:libvte = "LGPL-3.0-or-later"
-
-LIC_FILES_CHKSUM = " \
-    file://COPYING.GPL3;md5=cc702cf3444d1f19680c794cc61948f9 \
-    file://COPYING.LGPL3;md5=b52f2d57d10c4f7ee67a7eb9615d5d24 \
-    file://COPYING.XTERM;md5=d7fc3a23c16c039afafe2e042030f057 \
-"
-
-DEPENDS = "glib-2.0 glib-2.0-native gtk+3 libpcre2 libxml2-native gperf-native icu"
-
-GIR_MESON_OPTION = 'gir'
-GIDOCGEN_MESON_OPTION = "docs"
-
-inherit gnomebase gi-docgen features_check upstream-version-is-even gobject-introspection
-
-# vapigen.m4 is required when vala is not present (but the one from vala should be used normally)
-SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch"
-SRC_URI[archive.sha256sum] = "f7966fd185a6981f53964162b71cfef7e606495155d6f5827b72aa0dd6741c9e"
-
-ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
-
-# Help g-ir-scanner find the .so for linking
-do_compile:prepend() {
-    export GIR_EXTRA_LIBS_PATH="${B}/src/.libs"
-}
-
-# Package additional files
-FILES:${PN}-dev += "${datadir}/vala/vapi/*"
-
-PACKAGECONFIG ??= "gnutls"
-PACKAGECONFIG[vala] = "-Dvapi=true,-Dvapi=false,vala-native vala"
-PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls"
-PACKAGECONFIG[systemd] = "-D_systemd=true,-D_systemd=false,systemd"
-# vala requires gir
-PACKAGECONFIG:remove:class-native = "vala"
-
-CFLAGS += "-D_GNU_SOURCE"
-
-PACKAGES =+ "libvte ${PN}-prompt"
-FILES:libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*"
-FILES:${PN}-prompt = " \
-    ${sysconfdir}/profile.d \
-    ${libexecdir}/vte-urlencode-cwd \
-"
-
-FILES:${PN}-dev += "${datadir}/glade/"
-
-BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-support/vte/vte_0.74.1.bb b/poky/meta/recipes-support/vte/vte_0.74.1.bb
new file mode 100644
index 0000000..071f668
--- /dev/null
+++ b/poky/meta/recipes-support/vte/vte_0.74.1.bb
@@ -0,0 +1,56 @@
+SUMMARY = "Virtual terminal emulator GTK+ widget library"
+DESCRIPTION = "VTE provides a virtual terminal widget for GTK applications."
+HOMEPAGE = "https://wiki.gnome.org/Apps/Terminal/VTE"
+BUGTRACKER = "https://bugzilla.gnome.org/buglist.cgi?product=vte"
+LICENSE = "GPL-3.0-only & LGPL-3.0-or-later & MIT"
+LICENSE:libvte = "LGPL-3.0-or-later"
+
+LIC_FILES_CHKSUM = " \
+    file://COPYING.GPL3;md5=cc702cf3444d1f19680c794cc61948f9 \
+    file://COPYING.LGPL3;md5=b52f2d57d10c4f7ee67a7eb9615d5d24 \
+    file://COPYING.XTERM;md5=d7fc3a23c16c039afafe2e042030f057 \
+"
+
+DEPENDS = "glib-2.0 glib-2.0-native gtk+3 libpcre2 libxml2-native gperf-native icu"
+
+GIR_MESON_OPTION = 'gir'
+GIDOCGEN_MESON_OPTION = "docs"
+
+inherit gnomebase gi-docgen features_check upstream-version-is-even gobject-introspection systemd vala
+
+SRC_URI += "file://0001-Add-W_EXITCODE-macro-for-non-glibc-systems.patch"
+SRC_URI[archive.sha256sum] = "2328c3f1c998350a18e0e513348e9fc581d57ea4e7b89aedf11e0e3c65042b4f"
+
+ANY_OF_DISTRO_FEATURES = "${GTK3DISTROFEATURES}"
+
+EXTRA_OEMESON += "${@bb.utils.contains('GI_DATA_ENABLED', 'True', '-Dvapi=true', '-Dvapi=false', d)}"
+EXTRA_OEMESON:append = " ${@bb.utils.contains('GI_DATA_ENABLED', 'False', '-Ddocs=false', '', d)}"
+
+PACKAGECONFIG ??= " \
+	gnutls \
+	${@bb.utils.filter('DISTRO_FEATURES', 'systemd', d)} \
+	${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gtk4', '', d)} \
+"
+PACKAGECONFIG[fribidi] = "-Dfribidi=true,-Dfribidi=false,fribidi"
+PACKAGECONFIG[gtk4] = "-Dgtk4=true,-Dgtk4=false,gtk4"
+PACKAGECONFIG[gnutls] = "-Dgnutls=true,-Dgnutls=false,gnutls"
+PACKAGECONFIG[systemd] = "-D_systemd=true,-D_systemd=false,systemd"
+
+PACKAGES =+ "libvte-gtk4 ${PN}-gtk4 ${PN}-gtk4-dev libvte ${PN}-prompt"
+FILES:libvte-gtk4 = "${libdir}/lib*gtk4.so.* ${libdir}/girepository-1.0/Vte-3.91.typelib"
+FILES:${PN}-gtk4 ="${bindir}/vte-2.91-gtk4"
+FILES:${PN}-gtk4-dev = "${libdir}/lib*gtk4.so \
+                        ${libdir}/pkgconfig/vte-2.91-gtk4.pc \
+                        ${datadir}/gir-1.0/Vte-3.91.gir \
+                        ${datadir}/vala/vapi/vte-2.91-gtk4.deps \
+                        ${datadir}/vala/vapi/vte-2.91-gtk4.vapi \
+                        ${includedir}/vte-2.91-gtk4 \
+                        "
+FILES:${PN} +="${systemd_user_unitdir}"
+FILES:libvte = "${libdir}/*.so.* ${libdir}/girepository-1.0/*"
+FILES:${PN}-prompt = " \
+    ${sysconfdir}/profile.d \
+    ${libexecdir}/vte-urlencode-cwd \
+"
+
+FILES:${PN}-dev += "${datadir}/glade/"
diff --git a/poky/scripts/lib/devtool/__init__.py b/poky/scripts/lib/devtool/__init__.py
index 702db66..b4f998a 100644
--- a/poky/scripts/lib/devtool/__init__.py
+++ b/poky/scripts/lib/devtool/__init__.py
@@ -233,6 +233,30 @@
     bb.process.run('git checkout -b %s' % devbranch, cwd=repodir)
     bb.process.run('git tag -f %s' % basetag, cwd=repodir)
 
+    # if recipe unpacks another git repo inside S, we need to declare it as a regular git submodule now,
+    # so we will be able to tag branches on it and extract patches when doing finish/update on the recipe
+    stdout, _ = bb.process.run("git status --porcelain", cwd=repodir)
+    found = False
+    for line in stdout.splitlines():
+        if line.endswith("/"):
+            new_dir = line.split()[1]
+            for root, dirs, files in os.walk(os.path.join(repodir, new_dir)):
+                if ".git" in dirs + files:
+                    (stdout, _) = bb.process.run('git remote', cwd=root)
+                    remote = stdout.splitlines()[0]
+                    (stdout, _) = bb.process.run('git remote get-url %s' % remote, cwd=root)
+                    remote_url = stdout.splitlines()[0]
+                    logger.error(os.path.relpath(os.path.join(root, ".."), root))
+                    bb.process.run('git submodule add %s %s' % (remote_url, os.path.relpath(root, os.path.join(root, ".."))), cwd=os.path.join(root, ".."))
+                    found = True
+                if found:
+                    useroptions = []
+                    oe.patch.GitApplyTree.gitCommandUserOptions(useroptions, d=d)
+                    bb.process.run('git %s commit -m "Adding additionnal submodule from SRC_URI\n\n%s"' % (' '.join(useroptions), oe.patch.GitApplyTree.ignore_commit_prefix), cwd=os.path.join(root, ".."))
+                    found = False
+    if os.path.exists(os.path.join(repodir, '.gitmodules')):
+        bb.process.run('git submodule foreach --recursive  "git tag -f %s"' % basetag, cwd=repodir)
+
 def recipe_to_append(recipefile, config, wildcard=False):
     """
     Convert a recipe file to a bbappend file path within the workspace.
diff --git a/poky/scripts/lib/devtool/standard.py b/poky/scripts/lib/devtool/standard.py
index d53fb81..ad6e346 100644
--- a/poky/scripts/lib/devtool/standard.py
+++ b/poky/scripts/lib/devtool/standard.py
@@ -234,10 +234,14 @@
         if args.fetchuri and not args.no_git:
             setup_git_repo(srctree, args.version, 'devtool', d=tinfoil.config_data)
 
-        initial_rev = None
+        initial_rev = {}
         if os.path.exists(os.path.join(srctree, '.git')):
             (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree)
-            initial_rev = stdout.rstrip()
+            initial_rev["."] = stdout.rstrip()
+            (stdout, _) = bb.process.run('git submodule --quiet foreach --recursive  \'echo `git rev-parse HEAD` $PWD\'', cwd=srctree)
+            for line in stdout.splitlines():
+                (rev, submodule) = line.split()
+                initial_rev[os.path.relpath(submodule, srctree)] = rev
 
         if args.src_subdir:
             srctree = os.path.join(srctree, args.src_subdir)
@@ -251,7 +255,8 @@
             if b_is_s:
                 f.write('EXTERNALSRC_BUILD = "%s"\n' % srctree)
             if initial_rev:
-                f.write('\n# initial_rev: %s\n' % initial_rev)
+                for key, value in initial_rev.items():
+                    f.write('\n# initial_rev %s: %s\n' % (key, value))
 
             if args.binary:
                 f.write('do_install:append() {\n')
@@ -823,8 +828,8 @@
 
         _check_compatible_recipe(pn, rd)
 
-        initial_rev = None
-        commits = []
+        initial_revs = {}
+        commits = {}
         check_commits = False
 
         if bb.data.inherits_class('kernel-yocto', rd):
@@ -880,15 +885,23 @@
                 args.no_extract = True
 
         if not args.no_extract:
-            initial_rev, _ = _extract_source(srctree, args.keep_temp, args.branch, False, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides)
-            if not initial_rev:
+            initial_revs["."], _ = _extract_source(srctree, args.keep_temp, args.branch, False, config, basepath, workspace, args.fixed_setup, rd, tinfoil, no_overrides=args.no_overrides)
+            if not initial_revs["."]:
                 return 1
             logger.info('Source tree extracted to %s' % srctree)
+
             if os.path.exists(os.path.join(srctree, '.git')):
                 # Get list of commits since this revision
-                (stdout, _) = bb.process.run('git rev-list --reverse %s..HEAD' % initial_rev, cwd=srctree)
-                commits = stdout.split()
+                (stdout, _) = bb.process.run('git rev-list --reverse %s..HEAD' % initial_revs["."], cwd=srctree)
+                commits["."] = stdout.split()
                 check_commits = True
+                (stdout, _) = bb.process.run('git submodule --quiet foreach --recursive  \'echo `git rev-parse devtool-base` $PWD\'', cwd=srctree)
+                for line in stdout.splitlines():
+                    (rev, submodule_path) = line.split()
+                    submodule = os.path.relpath(submodule_path, srctree)
+                    initial_revs[submodule] = rev
+                    (stdout, _) = bb.process.run('git rev-list --reverse devtool-base..HEAD', cwd=submodule_path)
+                    commits[submodule] = stdout.split()
         else:
             if os.path.exists(os.path.join(srctree, '.git')):
                 # Check if it's a tree previously extracted by us. This is done
@@ -905,11 +918,11 @@
                 for line in stdout.splitlines():
                     if line.startswith('*'):
                         (stdout, _) = bb.process.run('git rev-parse devtool-base', cwd=srctree)
-                        initial_rev = stdout.rstrip()
-                if not initial_rev:
+                        initial_revs["."] = stdout.rstrip()
+                if not initial_revs["."]:
                     # Otherwise, just grab the head revision
                     (stdout, _) = bb.process.run('git rev-parse HEAD', cwd=srctree)
-                    initial_rev = stdout.rstrip()
+                    initial_revs["."] = stdout.rstrip()
 
         branch_patches = {}
         if check_commits:
@@ -976,10 +989,11 @@
                 '        ln -sfT ${KCONFIG_CONFIG_ROOTDIR}/.config ${S}/.config.new\n'
                 '    fi\n'
                 '}\n')
-            if initial_rev:
-                f.write('\n# initial_rev: %s\n' % initial_rev)
-                for commit in commits:
-                    f.write('# commit: %s\n' % commit)
+            if initial_revs:
+                for name, rev in initial_revs.items():
+                        f.write('\n# initial_rev %s: %s\n' % (name, rev))
+                        for commit in commits[name]:
+                            f.write('# commit %s: %s\n' % (name, commit))
             if branch_patches:
                 for branch in branch_patches:
                     if branch == args.branch:
@@ -1202,44 +1216,56 @@
     branchname = stdout.rstrip()
 
     # Parse initial rev from recipe if not specified
-    commits = []
+    commits = {}
     patches = []
+    initial_revs = {}
     with open(recipe_path, 'r') as f:
         for line in f:
-            if line.startswith('# initial_rev:'):
-                if not initial_rev:
-                    initial_rev = line.split(':')[-1].strip()
-            elif line.startswith('# commit:') and not force_patch_refresh:
-                commits.append(line.split(':')[-1].strip())
-            elif line.startswith('# patches_%s:' % branchname):
-                patches = line.split(':')[-1].strip().split(',')
+            pattern = r'^#\s.*\s(.*):\s([0-9a-fA-F]+)$'
+            match = re.search(pattern, line)
+            if match:
+                name = match.group(1)
+                rev = match.group(2)
+                if line.startswith('# initial_rev'):
+                    if not (name == "." and initial_rev):
+                        initial_revs[name] = rev
+                elif line.startswith('# commit') and not force_patch_refresh:
+                    if name not in commits:
+                        commits[name] = [rev]
+                    else:
+                        commits[name].append(rev)
+                elif line.startswith('# patches_%s:' % branchname):
+                    patches = line.split(':')[-1].strip().split(',')
 
-    update_rev = initial_rev
-    changed_revs = None
-    if initial_rev:
+    update_revs = dict(initial_revs)
+    changed_revs = {}
+    for name, rev in initial_revs.items():
         # Find first actually changed revision
         stdout, _ = bb.process.run('git rev-list --reverse %s..HEAD' %
-                                   initial_rev, cwd=srctree)
+                                   rev, cwd=os.path.join(srctree, name))
         newcommits = stdout.split()
-        for i in range(min(len(commits), len(newcommits))):
-            if newcommits[i] == commits[i]:
-                update_rev = commits[i]
+        if name in commits:
+            for i in range(min(len(commits[name]), len(newcommits))):
+                if newcommits[i] == commits[name][i]:
+                    update_revs[name] = commits[name][i]
 
         try:
             stdout, _ = bb.process.run('git cherry devtool-patched',
-                                        cwd=srctree)
+                                        cwd=os.path.join(srctree, name))
         except bb.process.ExecutionError as err:
             stdout = None
 
         if stdout is not None and not force_patch_refresh:
-            changed_revs = []
             for line in stdout.splitlines():
                 if line.startswith('+ '):
                     rev = line.split()[1]
                     if rev in newcommits:
-                        changed_revs.append(rev)
+                        if name not in changed_revs:
+                            changed_revs[name] = [rev]
+                        else:
+                            changed_revs[name].append(rev)
 
-    return initial_rev, update_rev, changed_revs, patches
+    return initial_revs, update_revs, changed_revs, patches
 
 def _remove_file_entries(srcuri, filelist):
     """Remove file:// entries from SRC_URI"""
@@ -1294,14 +1320,17 @@
                         raise
 
 
-def _export_patches(srctree, rd, start_rev, destdir, changed_revs=None):
+def _export_patches(srctree, rd, start_revs, destdir, changed_revs=None):
     """Export patches from srctree to given location.
        Returns three-tuple of dicts:
          1. updated - patches that already exist in SRCURI
          2. added - new patches that don't exist in SRCURI
          3  removed - patches that exist in SRCURI but not in exported patches
-      In each dict the key is the 'basepath' of the URI and value is the
-      absolute path to the existing file in recipe space (if any).
+       In each dict the key is the 'basepath' of the URI and value is:
+         - for updated and added dicts, a dict with 2 optionnal keys:
+            - 'path': the absolute path to the existing file in recipe space (if any)
+            - 'patchdir': the directory in wich the patch should be applied (if any)
+         - for removed dict, the absolute path to the existing file in recipe space
     """
     import oe.recipeutils
     from oe.patch import GitApplyTree
@@ -1315,54 +1344,60 @@
 
     # Generate patches from Git, exclude local files directory
     patch_pathspec = _git_exclude_path(srctree, 'oe-local-files')
-    GitApplyTree.extractPatches(srctree, start_rev, destdir, patch_pathspec)
+    GitApplyTree.extractPatches(srctree, start_revs, destdir, patch_pathspec)
+    for dirpath, dirnames, filenames in os.walk(destdir):
+        new_patches = filenames
+        reldirpath = os.path.relpath(dirpath, destdir)
+        for new_patch in new_patches:
+            # Strip numbering from patch names. If it's a git sequence named patch,
+            # the numbers might not match up since we are starting from a different
+            # revision This does assume that people are using unique shortlog
+            # values, but they ought to be anyway...
+            new_basename = seqpatch_re.match(new_patch).group(2)
+            match_name = None
+            for old_patch in existing_patches:
+                old_basename = seqpatch_re.match(old_patch).group(2)
+                old_basename_splitext = os.path.splitext(old_basename)
+                if old_basename.endswith(('.gz', '.bz2', '.Z')) and old_basename_splitext[0] == new_basename:
+                    old_patch_noext = os.path.splitext(old_patch)[0]
+                    match_name = old_patch_noext
+                    break
+                elif new_basename == old_basename:
+                    match_name = old_patch
+                    break
+            if match_name:
+                # Rename patch files
+                if new_patch != match_name:
+                    bb.utils.rename(os.path.join(destdir, new_patch),
+                              os.path.join(destdir, match_name))
+                # Need to pop it off the list now before checking changed_revs
+                oldpath = existing_patches.pop(old_patch)
+                if changed_revs is not None and dirpath in changed_revs:
+                    # Avoid updating patches that have not actually changed
+                    with open(os.path.join(dirpath, match_name), 'r') as f:
+                        firstlineitems = f.readline().split()
+                        # Looking for "From <hash>" line
+                        if len(firstlineitems) > 1 and len(firstlineitems[1]) == 40:
+                            if not firstlineitems[1] in changed_revs[dirpath]:
+                                continue
+                # Recompress if necessary
+                if oldpath.endswith(('.gz', '.Z')):
+                    bb.process.run(['gzip', match_name], cwd=destdir)
+                    if oldpath.endswith('.gz'):
+                        match_name += '.gz'
+                    else:
+                        match_name += '.Z'
+                elif oldpath.endswith('.bz2'):
+                    bb.process.run(['bzip2', match_name], cwd=destdir)
+                    match_name += '.bz2'
+                updated[match_name] = {'path' : oldpath}
+                if reldirpath != ".":
+                    updated[match_name]['patchdir'] = reldirpath
+            else:
+                added[new_patch] = {}
+                if reldirpath != ".":
+                    added[new_patch]['patchdir'] = reldirpath
 
-    new_patches = sorted(os.listdir(destdir))
-    for new_patch in new_patches:
-        # Strip numbering from patch names. If it's a git sequence named patch,
-        # the numbers might not match up since we are starting from a different
-        # revision This does assume that people are using unique shortlog
-        # values, but they ought to be anyway...
-        new_basename = seqpatch_re.match(new_patch).group(2)
-        match_name = None
-        for old_patch in existing_patches:
-            old_basename = seqpatch_re.match(old_patch).group(2)
-            old_basename_splitext = os.path.splitext(old_basename)
-            if old_basename.endswith(('.gz', '.bz2', '.Z')) and old_basename_splitext[0] == new_basename:
-                old_patch_noext = os.path.splitext(old_patch)[0]
-                match_name = old_patch_noext
-                break
-            elif new_basename == old_basename:
-                match_name = old_patch
-                break
-        if match_name:
-            # Rename patch files
-            if new_patch != match_name:
-                bb.utils.rename(os.path.join(destdir, new_patch),
-                          os.path.join(destdir, match_name))
-            # Need to pop it off the list now before checking changed_revs
-            oldpath = existing_patches.pop(old_patch)
-            if changed_revs is not None:
-                # Avoid updating patches that have not actually changed
-                with open(os.path.join(destdir, match_name), 'r') as f:
-                    firstlineitems = f.readline().split()
-                    # Looking for "From <hash>" line
-                    if len(firstlineitems) > 1 and len(firstlineitems[1]) == 40:
-                        if not firstlineitems[1] in changed_revs:
-                            continue
-            # Recompress if necessary
-            if oldpath.endswith(('.gz', '.Z')):
-                bb.process.run(['gzip', match_name], cwd=destdir)
-                if oldpath.endswith('.gz'):
-                    match_name += '.gz'
-                else:
-                    match_name += '.Z'
-            elif oldpath.endswith('.bz2'):
-                bb.process.run(['bzip2', match_name], cwd=destdir)
-                match_name += '.bz2'
-            updated[match_name] = oldpath
-        else:
-            added[new_patch] = None
     return (updated, added, existing_patches)
 
 
@@ -1530,6 +1565,12 @@
     recipedir = os.path.basename(recipefile)
     logger.info('Updating SRCREV in recipe %s%s' % (recipedir, dry_run_suffix))
 
+    # Get original SRCREV
+    old_srcrev = rd.getVar('SRCREV') or ''
+    if old_srcrev == "INVALID":
+            raise DevtoolError('Update mode srcrev is only valid for recipe fetched from an SCM repository')
+    old_srcrev = {'.': old_srcrev}
+
     # Get HEAD revision
     try:
         stdout, _ = bb.process.run('git rev-parse HEAD', cwd=srctree)
@@ -1556,13 +1597,12 @@
         if not no_remove:
             # Find list of existing patches in recipe file
             patches_dir = tempfile.mkdtemp(dir=tempdir)
-            old_srcrev = rd.getVar('SRCREV') or ''
             upd_p, new_p, del_p = _export_patches(srctree, rd, old_srcrev,
                                                   patches_dir)
             logger.debug('Patches: update %s, new %s, delete %s' % (dict(upd_p), dict(new_p), dict(del_p)))
 
             # Remove deleted local files and "overlapping" patches
-            remove_files = list(del_f.values()) + list(upd_p.values()) + list(del_p.values())
+            remove_files = list(del_f.values()) + [value["path"] for value in upd_p.values() if "path" in value] + [value["path"] for value in del_p.values() if "path" in value]
             if remove_files:
                 removedentries = _remove_file_entries(srcuri, remove_files)[0]
                 update_srcuri = True
@@ -1576,11 +1616,10 @@
                 patchfields['SRC_URI'] = '\\\n    '.join(srcuri)
             if dry_run_outdir:
                 logger.info('Creating bbappend (dry-run)')
-            else:
-                appendfile, destpath = oe.recipeutils.bbappend_recipe(
-                        rd, appendlayerdir, files, wildcardver=wildcard_version,
-                        extralines=patchfields, removevalues=removevalues,
-                        redirect_output=dry_run_outdir)
+            appendfile, destpath = oe.recipeutils.bbappend_recipe(
+                    rd, appendlayerdir, files, wildcardver=wildcard_version,
+                    extralines=patchfields, removevalues=removevalues,
+                    redirect_output=dry_run_outdir)
         else:
             files_dir = _determine_files_dir(rd)
             for basepath, path in upd_f.items():
@@ -1632,15 +1671,15 @@
     else:
         patchdir_params = {'patchdir': relpatchdir}
 
-    def srcuri_entry(basepath):
+    def srcuri_entry(basepath, patchdir_params):
         if patchdir_params:
             paramstr = ';' + ';'.join('%s=%s' % (k,v) for k,v in patchdir_params.items())
         else:
             paramstr = ''
         return 'file://%s%s' % (basepath, paramstr)
 
-    initial_rev, update_rev, changed_revs, filter_patches = _get_patchset_revs(srctree, append, initial_rev, force_patch_refresh)
-    if not initial_rev:
+    initial_revs, update_revs, changed_revs, filter_patches = _get_patchset_revs(srctree, append, initial_rev, force_patch_refresh)
+    if not initial_revs:
         raise DevtoolError('Unable to find initial revision - please specify '
                            'it with --initial-rev')
 
@@ -1658,11 +1697,11 @@
 
         # Get updated patches from source tree
         patches_dir = tempfile.mkdtemp(dir=tempdir)
-        upd_p, new_p, _ = _export_patches(srctree, rd, update_rev,
+        upd_p, new_p, _ = _export_patches(srctree, rd, update_revs,
                                           patches_dir, changed_revs)
         # Get all patches from source tree and check if any should be removed
         all_patches_dir = tempfile.mkdtemp(dir=tempdir)
-        _, _, del_p = _export_patches(srctree, rd, initial_rev,
+        _, _, del_p = _export_patches(srctree, rd, initial_revs,
                                       all_patches_dir)
         logger.debug('Pre-filtering: update: %s, new: %s' % (dict(upd_p), dict(new_p)))
         if filter_patches:
@@ -1677,18 +1716,31 @@
         updaterecipe = False
         destpath = None
         srcuri = (rd.getVar('SRC_URI', False) or '').split()
+
         if appendlayerdir:
             files = OrderedDict((os.path.join(local_files_dir, key), val) for
                          key, val in list(upd_f.items()) + list(new_f.items()))
             files.update(OrderedDict((os.path.join(patches_dir, key), val) for
                               key, val in list(upd_p.items()) + list(new_p.items())))
+
+            params = []
+            for file, param in files.items():
+                patchdir_param = dict(patchdir_params)
+                patchdir = param.get('patchdir', ".")
+                if patchdir != "." :
+                    if patchdir_param:
+                       patchdir_param['patchdir'] += patchdir
+                    else:
+                        patchdir_param['patchdir'] = patchdir
+                params.append(patchdir_param)
+
             if files or remove_files:
                 removevalues = None
                 if remove_files:
                     removedentries, remaining = _remove_file_entries(
                                                     srcuri, remove_files)
                     if removedentries or remaining:
-                        remaining = [srcuri_entry(os.path.basename(item)) for
+                        remaining = [srcuri_entry(os.path.basename(item), patchdir_params) for
                                      item in remaining]
                         removevalues = {'SRC_URI': removedentries + remaining}
                 appendfile, destpath = oe.recipeutils.bbappend_recipe(
@@ -1696,7 +1748,7 @@
                                 wildcardver=wildcard_version,
                                 removevalues=removevalues,
                                 redirect_output=dry_run_outdir,
-                                params=[patchdir_params] * len(files))
+                                params=params)
             else:
                 logger.info('No patches or local source files needed updating')
         else:
@@ -1713,14 +1765,22 @@
                     _move_file(os.path.join(local_files_dir, basepath), path,
                                dry_run_outdir=dry_run_outdir, base_outdir=recipedir)
                 updatefiles = True
-            for basepath, path in upd_p.items():
-                patchfn = os.path.join(patches_dir, basepath)
+            for basepath, param in upd_p.items():
+                path = param['path']
+                patchdir = param.get('patchdir', ".")
+                if patchdir != "." :
+                    patchdir_param = dict(patchdir_params)
+                    if patchdir_param:
+                       patchdir_param['patchdir'] += patchdir
+                    else:
+                        patchdir_param['patchdir'] = patchdir
+                patchfn = os.path.join(patches_dir, patchdir, basepath)
                 if os.path.dirname(path) + '/' == dl_dir:
                     # This is a a downloaded patch file - we now need to
                     # replace the entry in SRC_URI with our local version
                     logger.info('Replacing remote patch %s with updated local version' % basepath)
                     path = os.path.join(files_dir, basepath)
-                    _replace_srcuri_entry(srcuri, basepath, srcuri_entry(basepath))
+                    _replace_srcuri_entry(srcuri, basepath, srcuri_entry(basepath, patchdir_param))
                     updaterecipe = True
                 else:
                     logger.info('Updating patch %s%s' % (basepath, dry_run_suffix))
@@ -1734,15 +1794,23 @@
                            os.path.join(files_dir, basepath),
                            dry_run_outdir=dry_run_outdir,
                            base_outdir=recipedir)
-                srcuri.append(srcuri_entry(basepath))
+                srcuri.append(srcuri_entry(basepath, patchdir_params))
                 updaterecipe = True
-            for basepath, path in new_p.items():
+            for basepath, param in new_p.items():
+                patchdir = param.get('patchdir', ".")
                 logger.info('Adding new patch %s%s' % (basepath, dry_run_suffix))
-                _move_file(os.path.join(patches_dir, basepath),
+                _move_file(os.path.join(patches_dir, patchdir, basepath),
                            os.path.join(files_dir, basepath),
                            dry_run_outdir=dry_run_outdir,
                            base_outdir=recipedir)
-                srcuri.append(srcuri_entry(basepath))
+                params = dict(patchdir_params)
+                if patchdir != "." :
+                    if params:
+                       params['patchdir'] += patchdir
+                    else:
+                        params['patchdir'] = patchdir
+
+                srcuri.append(srcuri_entry(basepath, params))
                 updaterecipe = True
             # Update recipe, if needed
             if _remove_file_entries(srcuri, remove_files)[0]:
diff --git a/poky/scripts/lib/devtool/upgrade.py b/poky/scripts/lib/devtool/upgrade.py
index 9cd50be..10827a7 100644
--- a/poky/scripts/lib/devtool/upgrade.py
+++ b/poky/scripts/lib/devtool/upgrade.py
@@ -90,7 +90,7 @@
     _rename_recipe_dirs(oldpv, newpv, path)
     return _rename_recipe_file(oldrecipe, bpn, oldpv, newpv, path)
 
-def _write_append(rc, srctreebase, srctree, same_dir, no_same_dir, rev, copied, workspace, d):
+def _write_append(rc, srctreebase, srctree, same_dir, no_same_dir, revs, copied, workspace, d):
     """Writes an append file"""
     if not os.path.exists(rc):
         raise DevtoolError("bbappend not created because %s does not exist" % rc)
@@ -119,8 +119,9 @@
         if b_is_s:
             f.write('EXTERNALSRC_BUILD:pn-%s = "%s"\n' % (pn, srctree))
         f.write('\n')
-        if rev:
-            f.write('# initial_rev: %s\n' % rev)
+        if revs:
+            for name, rev in revs.items():
+                f.write('# initial_rev %s: %s\n' % (name, rev))
         if copied:
             f.write('# original_path: %s\n' % os.path.dirname(d.getVar('FILE')))
             f.write('# original_files: %s\n' % ' '.join(copied))
@@ -182,10 +183,15 @@
     uri, rev = _get_uri(crd)
     if srcrev:
         rev = srcrev
+    paths = [srctree]
     if uri.startswith('git://') or uri.startswith('gitsm://'):
         __run('git fetch')
         __run('git checkout %s' % rev)
         __run('git tag -f devtool-base-new')
+        __run('git submodule update --recursive')
+        __run('git submodule foreach \'git tag -f devtool-base-new\'')
+        (stdout, _) = __run('git submodule --quiet foreach \'echo $sm_path\'')
+        paths += [os.path.join(srctree, p) for p in stdout.splitlines()]
         md5 = None
         sha256 = None
         _, _, _, _, _, params = bb.fetch2.decodeurl(uri)
@@ -256,29 +262,32 @@
         __run('git %s commit -q -m "Commit of upstream changes at version %s" --allow-empty' % (' '.join(useroptions), newpv))
         __run('git tag -f devtool-base-%s' % newpv)
 
-    (stdout, _) = __run('git rev-parse HEAD')
-    rev = stdout.rstrip()
+    revs = {}
+    for path in paths:
+        (stdout, _) = _run('git rev-parse HEAD', cwd=path)
+        revs[os.path.relpath(path,srctree)] = stdout.rstrip()
 
     if no_patch:
         patches = oe.recipeutils.get_recipe_patches(crd)
         if patches:
             logger.warning('By user choice, the following patches will NOT be applied to the new source tree:\n  %s' % '\n  '.join([os.path.basename(patch) for patch in patches]))
     else:
-        __run('git checkout devtool-patched -b %s' % branch)
-        (stdout, _) = __run('git branch --list devtool-override-*')
-        branches_to_rebase = [branch] + stdout.split()
-        for b in branches_to_rebase:
-            logger.info("Rebasing {} onto {}".format(b, rev))
-            __run('git checkout %s' % b)
-            try:
-                __run('git rebase %s' % rev)
-            except bb.process.ExecutionError as e:
-                if 'conflict' in e.stdout:
-                    logger.warning('Command \'%s\' failed:\n%s\n\nYou will need to resolve conflicts in order to complete the upgrade.' % (e.command, e.stdout.rstrip()))
-                    __run('git rebase --abort')
-                else:
-                    logger.warning('Command \'%s\' failed:\n%s' % (e.command, e.stdout))
-        __run('git checkout %s' % branch)
+        for path in paths:
+            _run('git checkout devtool-patched -b %s' % branch, cwd=path)
+            (stdout, _) = _run('git branch --list devtool-override-*', cwd=path)
+            branches_to_rebase = [branch] + stdout.split()
+            for b in branches_to_rebase:
+                logger.info("Rebasing {} onto {}".format(b, revs[os.path.relpath(path,srctree)]))
+                _run('git checkout %s' % b, cwd=path)
+                try:
+                    _run('git rebase %s' % revs[os.path.relpath(path, srctree)], cwd=path)
+                except bb.process.ExecutionError as e:
+                    if 'conflict' in e.stdout:
+                        logger.warning('Command \'%s\' failed:\n%s\n\nYou will need to resolve conflicts in order to complete the upgrade.' % (e.command, e.stdout.rstrip()))
+                        _run('git rebase --abort', cwd=path)
+                    else:
+                        logger.warning('Command \'%s\' failed:\n%s' % (e.command, e.stdout))
+            _run('git checkout %s' % branch, cwd=path)
 
     if tmpsrctree:
         if keep_temp:
@@ -288,7 +297,7 @@
             if tmpdir != tmpsrctree:
                 shutil.rmtree(tmpdir)
 
-    return (rev, md5, sha256, srcbranch, srcsubdir_rel)
+    return (revs, md5, sha256, srcbranch, srcsubdir_rel)
 
 def _add_license_diff_to_recipe(path, diff):
     notice_text = """# FIXME: the LIC_FILES_CHKSUM values have been updated by 'devtool upgrade'.
diff --git a/poky/scripts/lib/recipetool/append.py b/poky/scripts/lib/recipetool/append.py
index 9dbb1cc..4b6a711 100644
--- a/poky/scripts/lib/recipetool/append.py
+++ b/poky/scripts/lib/recipetool/append.py
@@ -299,7 +299,7 @@
                 if st.st_mode & stat.S_IXUSR:
                     perms = '0755'
             install = {args.newfile: (args.targetpath, perms)}
-        oe.recipeutils.bbappend_recipe(rd, args.destlayer, {args.newfile: sourcepath}, install, wildcardver=args.wildcard_version, machine=args.machine)
+        oe.recipeutils.bbappend_recipe(rd, args.destlayer, {args.newfile: {'path' : sourcepath}}, install, wildcardver=args.wildcard_version, machine=args.machine)
         tinfoil.modified_files()
         return 0
     else:
@@ -353,7 +353,7 @@
                 logger.warning('{0!r} is already in SRC_URI, not adding'.format(source_uri))
         else:
             extralines.append('SRC_URI += {0}'.format(source_uri))
-        copyfiles[newfile] = srcfile
+        copyfiles[newfile] = {'path' : srcfile}
 
     oe.recipeutils.bbappend_recipe(rd, args.destlayer, copyfiles, None, wildcardver=args.wildcard_version, machine=args.machine, extralines=extralines)
     tinfoil.modified_files()
diff --git a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
index 4f30926..13a9cdd 100644
--- a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
+++ b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
@@ -400,9 +400,10 @@
 
                 exec_native_cmd(objcopy_cmd, native_sysroot)
         else:
-            install_cmd = "install -m 0644 %s/%s %s/%s" % \
-                (staging_kernel_dir, kernel, hdddir, kernel)
-            exec_cmd(install_cmd)
+            if source_params.get('install-kernel-into-boot-dir') != 'false':
+                install_cmd = "install -m 0644 %s/%s %s/%s" % \
+                    (staging_kernel_dir, kernel, hdddir, kernel)
+                exec_cmd(install_cmd)
 
         if get_bitbake_var("IMAGE_EFI_BOOT_FILES"):
             for src_path, dst_path in cls.install_task:
diff --git a/poky/scripts/lib/wic/plugins/source/rawcopy.py b/poky/scripts/lib/wic/plugins/source/rawcopy.py
index ccf3325..21903c2 100644
--- a/poky/scripts/lib/wic/plugins/source/rawcopy.py
+++ b/poky/scripts/lib/wic/plugins/source/rawcopy.py
@@ -58,7 +58,8 @@
         decompressor = {
             ".bz2": "bzip2",
             ".gz": "gzip",
-            ".xz": "xz"
+            ".xz": "xz",
+            ".zst": "zstd -f",
         }.get(extension)
         if not decompressor:
             raise WicError("Not supported compressor filename extension: %s" % extension)