poky: subtree update:796be0593a..10c69538c0

Alan Perry (1):
      binutils: add libopcodes package for perf

Alex Stewart (1):
      opkg: upgrade to version 0.4.4

Alexander Kanavin (73):
      selftest/reproducible: enable world reproducibility test
      selftest/reproducible: add an exclusion list for items that are not yet reproducible
      kea: upgrade 1.7.10 -> 1.8.1
      valgrind: exclude bar_bad/bar_bad_xml from ptests
      bzip2: run ptests without valgrind
      lttng-tools: disable more failing ptests
      glib-2.0: add a patch to increase a test timeout
      acpica: upgrade 20201113 -> 20201217
      bind: upgrade 9.16.9 -> 9.16.10
      diffoscope: upgrade 161 -> 163
      dnf: upgrade 4.4.0 -> 4.5.2
      enchant2: upgrade 2.2.13 -> 2.2.14
      epiphany: upgrade 3.38.1 -> 3.38.2
      ethtool: upgrade 5.9 -> 5.10
      gtk+3: upgrade 3.24.23 -> 3.24.24
      init-system-helpers: upgrade 1.58 -> 1.60
      kbd: upgrade 2.3.0 -> 2.4.0
      kea: upgrade 1.8.1 -> 1.8.2
      libmodulemd: upgrade 2.9.4 -> 2.11.1
      libpcre2: upgrade 10.35 -> 10.36
      libtirpc: upgrade 1.2.6 -> 1.3.1
      libusb1: upgrade 1.0.23 -> 1.0.24
      libva: upgrade 2.9.0 -> 2.10.0
      libx11: upgrade 1.6.12 -> 1.7.0
      lighttpd: upgrade 1.4.56 -> 1.4.57
      ninja: upgrade 1.10.1 -> 1.10.2
      puzzles: upgrade to latest revision
      python3-hypothesis: upgrade 5.41.5 -> 5.43.3
      python3-py: upgrade 1.9.0 -> 1.10.0
      python3-setuptools-scm: upgrade 4.1.2 -> 5.0.1
      sqlite3: upgrade 3.33.0 -> 3.34.0
      stress-ng: upgrade 0.11.24 -> 0.12.00
      sudo: upgrade 1.9.3p1 -> 1.9.4p1
      sysvinit: upgrade 2.97 -> 2.98
      vala: upgrade 0.50.1 -> 0.50.2
      vulkan-headers: upgrade 1.2.154.0 -> 1.2.162.0
      webkitgtk: upgrade 2.30.2 -> 2.30.4
      xprop: upgrade 1.2.4 -> 1.2.5
      xserver-xorg: upgrade 1.20.9 -> 1.20.10
      glib-2.0: update 2.66.2 -> 2.66.4
      rpm: update 4.16.0 -> 4.16.1.2
      piglit: update to latest revision
      sbc: update 1.4 -> 1.5
      libdnf: update 0.55.0 -> 0.55.2
      libva-utils: update 2.9.1 -> 2.10.0
      python3-importlib-metadata: update 3.1.1 -> 3.3.0
      python3: update 3.9.0 -> 3.9.1
      vulkan-loader: upgrade 1.2.154.1 -> 1.2.162.0
      vulkan-tools: upgrade 1.2.154.0 -> 1.2.162.0
      systemd-bootchart: update 233 -> 234
      zstd: add recipe from meta-oe
      zstd: update 1.4.5 -> 1.4.8
      devtool: gitsm:// should be handled same as git:// in upgrades
      ovmf: upgrade 202008 -> 202011
      libksba: update 1.4.0 -> 1.5.0
      libjitterentropy: update 2.2.0 -> 3.0.0
      icu: update 68.1 -> 68.2
      gnutls: update 3.6.15 -> 3.7.0
      gnupg: update 2.2.23 -> 2.2.26
      boost: update 1.74.0 -> 1.75.0
      kexec-tools: update 2.0.20 -> 2.0.21
      vulkan-samples: update to latest revision
      libpam: update 1.3.1 -> 1.5.1
      strace: update 5.9 -> 5.10
      python3-pytest: update 6.1.2 -> 6.2.1
      mtools: update 4.0.25 -> 4.0.26
      gnu-config: update to latest revision
      cmake: update 3.18.4 -> 3.19.2
      ccache: upgrade 3.7.11 -> 4.1
      ccache.bbclass: use ccache from host distribution
      gawk: add missing ptest dependency
      util-linux: upgrade 2.36 -> 2.36.1
      ell: upgrade 0.33 -> 0.35

Anatol Belski (1):
      iproute2: Make it easier to manipulate SUBDIRS list from bbappend

Anuj Mittal (2):
      mesa: add more details to elf-tls patch
      mesa: remove patch disabling asm

Bruce Ashfield (23):
      linux-yocto-rt/5.4: update to -rt44
      linux-yocto/5.4: update to v5.4.80
      lttng-modules: fix build against v5.10+
      kern-tools: non-gcc config support and option re-classification
      linux-yocto/cfg: qemuppc: set CONFIG_SCSI to '=y'
      linux-yocto/5.4: update to v5.4.82
      linux-yocto/cfg: qemuarm64-gfx.cfg: add CONFIG_INPUT_UINPUT
      linux-yocto/5.4: update to v5.4.83
      linux-yocto/5.8/cfg: fix -tiny warnings
      linux-yocto/5.4/cfg: fix -tiny warnings
      systemtap: fix on target build for 4.4 and 5.10+
      linux-yocto/5.4/cfg: fix FIRMWARE_LOADER warnings
      kernel-devsrc: fix 32bit ARM devsrc builds
      linux-yocto/5.4: update to v5.4.85
      linux-yocto-dev: bump to v5.11-rc
      libc-headers: update to v5.10
      machine/qemuarm*: add vmalloc kernel parameter
      linux-yocto: introduce v5.10 reference kernel recipes
      linux-yocto/5.10: update to v5.10.2
      conf/machine: bump qemu preferred versions to 5.10
      poky/poky-tiny: set preferred kernel to 5.10
      yocto-bsp: explicitly set preferred version for reference boards
      poky-alt: don't use conditional assignment for preferred kernel version

Changqing Li (2):
      libexif: fix CVE-2020-0198; CVE-2020-0452
      libpam: support usrmerge

Chris Laplante (1):
      contrib/git-hooks: add a sendemail-validate example hook that adds FROM: lines to outgoing patch emails

Christopher Larson (2):
      grub-efi-cfg: exclude OVERRIDES from build_efi_cfg vardeps
      uboot-extlinux-config: exclude OVERRIDES from do_create_extlinux_config vardeps

Deepak Rawat (1):
      openssl: add support for mingw64 as target

Diego Sueiro (2):
      wic: Introduce empty plugin to create unformatted empty partitions
      modutils-initscripts: Use depmod -a when modules.dep is empty

Dmitry Baryshkov (3):
      perl: fix installation failure because of shell issue
      linux-firmware: upgrade 20201118 -> 20201218
      linux-firmware: package firmware for Lontium lt9611uxc bridge

Easwar Hariharan (1):
      classes/kernel-fitimage: make fitimage_emit_section_config more readable

Elvis Stansvik (1):
      ref-manual: terms: Fix poky tarball root folder

Jack Mitchell (1):
      distutils3: allow setup.py to be run from a different directory to ${S}

Joey Degges (4):
      bitbake: tests/fetch: Organize usehead tests by net requirements
      bitbake: tests/fetch: Document behavior of test_gitfetch_usehead
      bitbake: tests/fetch: Test usehead with a non-default name
      bitbake: fetch/git: Fix usehead for non-default names

Jose Quaresma (11):
      gstreamer1.0: upgrade 1.18.1 -> 1.18.2
      gstreamer1.0-plugins-bad: v4l2codecs fix typo
      gstreamer1.0-plugins-bad: add support for aom plugin
      gstreamer1.0-plugins-bad: add support for x265 plugin
      gstreamer1.0-plugins-bad: sctp plugin uses the internal usrsctp static lib
      gstreamer1.0-plugins-bad: remove unsupported plugins comment
      gstreamer1.0-plugins-bad: netsim plugin don't have external deps
      gstreamer1.0-plugins-bad: transcode plugin external deps is always present
      gstreamer1.0: use the correct meson option for the capabilities
      shaderc: upgrade 2020.3 -> 2020.4
      spirv-tools: upgrade 2020.5 -> 2020.6

Khairul Rohaizzat Jamaluddin (3):
      openssl: Update 1.1.1h -> 1.1.1i
      go: Update 1.15.5 -> 1.15.6
      curl: Update 7.73.0 -> 7.74.0

Khem Raj (21):
      musl: Update to latest master
      systemd: Fix reallocarray check
      go.bbclass: Use external linker for native packages
      qemuriscv: check serial consoles w.r.t. /proc/consoles
      busybox-inittab: Implement SYSVINIT_ENABLED_GETTYS and USE_VT
      initscripts: use quotes for shell variable comparision
      busybox: Install /etc/default/rcS when used as init system
      busybox: Run mdev as daemon
      rcS: Define identifier for init system used
      initscripts: Use initctl on sysvinit only
      busybox: Sync rcS.default with sysvinit
      ltp: Fix ltp-pan crash on 32bit arches using 64bit time_t
      pulseaudio: Fix build with clang for non-x86 target
      util-linux: Build fixes for 32bit arches with 64bit time_t
      libpam: Drop musl patches
      ccache: Build fixes for clang and riscv32
      shadow: Remove lastlog pam plugin on musl system
      rxvt-unicode: Disable lastlog on musl systems
      openssh: Disable lastlog on musl
      dropbear: Disable lastlog and wtmp on musl
      ccache: Fix build on aarch64/clang

Lee Chee Yang (2):
      gdk-pixbuf: fix CVE-2020-29385
      wic/direct/kparser: ensure fsuuid for vfat and msdos align with format

Li Wang (2):
      qemu: CVE-2020-25723
      qemu: CVE-2020-28916

Luca Boccassi (6):
      classes/kernel-fitimage: add ability to sign individual images
      systemd: update 246 -> 247
      systemd: add package config for systemd-oomd
      systemd: ship new systemd-dissect in -extra-utils
      systemd: set -Dmode=release as recommended by NEWS
      systemd: add RRECOMMENDS for weak dependencies, if enabled

Mark Jonas (1):
      parted: Make readline dependency optional

Martin Jansa (2):
      license.bbclass: Add COMMON_LICENSE_DIR and LICENSE_PATH dirs to PSEUDO_IGNORE_PATHS
      busybox.inc: install rcS, rcK and rcS.default only with busybox in VIRTUAL-RUNTIME_init_manager

Maxime Roussin-BĂ©langer (1):
      meta: add missing descriptions in some support recipes

Michael Halstead (1):
      releases: conf: add link to 3.2.1, update to include 3.2.1

Milan Shah (2):
      oe-pkgdata-util: Added a test to verify oe-pkgdata-util without parameters
      bitbake: utils: add docstrings to functions

Mingli Yu (1):
      kbd: fix transaction conflict

Nathan Rossi (7):
      gcc: Add patch to resolve i*86 tune configuration overrides
      qemu.inc: Add seccomp PACKAGECONFIG option
      ncurses: Prevent LDFLAGS being emitted in .pc files
      which: add nativesdk to BBCLASSEXTEND
      sed: add nativesdk to BBCLASSEXTEND
      grep: add nativesdk to BBCLASSEXTEND
      coreutils: enable xattrs by default for nativesdk

Ovidiu Panait (3):
      timezone: upgrade to 2020e
      timezone: upgrade to 2020f
      variables: Add documentation for KERNEL_DTC_FLAGS

Paul Barker (8):
      bitbake.conf: Prevent pyc file generation in pseudo context
      documentation: Simplify oe_wiki and oe_home links
      documentation: Simplify layerindex and layer links
      documentation: Simplify remaining yocto_home links
      profile-manual: Simplify yocto_bugs link
      ref-manual: Simplify oe_lists link
      documentation: Use https links where possible
      selftest: Add argument to keep build dir

Paul Eggleton (11):
      classes/kernel-fitimage: add variable for description
      classes/kernel-fitimage: allow substituting mkimage command
      classes/kernel-fitimage: add ability to add additional signing options
      oe-selftest: move FIT image tests to their own module
      oe-selftest: fitimage: Test for FIT_DESC
      oe-selftest: fitimage: add test for signing FIT images
      classes: minor corrections to kernel-fitimage section
      variables: clarify KERNEL_ALT_IMAGETYPE reference
      variables: explicitly state that UBOOT_MKIMAGE_DTCOPTS is optional
      variables: Add documentation for new kernel-fitimage vars
      ref-manual: use consistent capitalisation of U-Boot

Peter Kjellerstedt (7):
      lib/oe/path: Add canonicalize()
      bitbake.conf: Canonicalize paths in PSEUDO_IGNORE_PATHS
      wic: Pass canonicalized paths in PSEUDO_IGNORE_PATHS
      glibc: Make adjtime() for 32 bit support being called with delta == NULL
      bitbake: cache: Make CoreRecipeInfo include rprovides_pkg for skipped recipes
      bitbake: cooker: Include all packages a recipe provides in SkippedPackage.rprovides
      apr-util: Only specify --with-dbm=gdbm if gdbm support is enabled

Richard Purdie (22):
      pseudo: Drop patches merged into upstream branch
      bitbake: data_smart: Ensure hash reflects vardepvalue flags correctly
      linuxloader: Avoid confusing string concat errors
      systemd: Ensure uid/gid ranges are set deterministically
      grub: Fix build reproducibility issue
      u-boot-tools: Fix reproducibility issue
      grub: Add second fix for determinism issue
      oeqa/commands: Ensure sync can be found regardless of PATH
      cups: Mark CVE-2009-0032 as a non-issue
      cups: Mark CVE-2008-1033 as a non-issue
      groff: Fix reproducibility issue
      man-db: Avoid reproducibility failures after fixing groff-native
      meta-selftest/staticids: Add ids for other recipes
      selftest/reproducible: Add useradd-staticids to reproducible builds tests
      grub: Further reproducibility fix
      man-db: Fix reproducibility issue
      bitbake.conf: Add mkfifo to HOSTTOOLS
      bitbake.conf: Add /run/ to PSEUDO_IGNORE_PATHS
      ppp: Update 2.4.8 -> 2.4.9
      ppp: Fix reproducibility issue
      sanity: Bump min python version to 3.6
      pseudo: Add lchmod wrapper

Robert Yang (6):
      buildtools-tarball.bb: Fix PATH for environment setup script
      ncurses: Make ncurses-tools depend on ncurses-terminfo-base
      minicom: RDEPENDS on ncurses-terminfo-base
      archiver.bbclass: Fix --runall=deploy_archives for images
      ccache: Extend to nativesdk
      ccache.bbclass: Set CCACHE_TEMPDIR

Ross Burton (13):
      wic-image-minimal: only depend on syslinux on x86 targets
      syslinux: rewrite recipe so only target code is x86-specific
      wic-tools: don't build syslinux-native for targets without syslinux
      image-uefi.conf: add EFI arch variable
      systemd-boot: build the EFI stub
      systemd-boot: allow building for Arm targets
      wic-tools: add grub-efi and systemd-boot on arm64
      lib/oe/qa: handle the 'no specific instruction set' ELF e_machine value
      local.conf: add aarch64 to the SDKMACHINE example values
      kernel: set COMPATIBLE_HOST to *-linux
      bitbake.conf: default SDKMACHINE to the build host architecture
      diffstat: point the license checksum at the license
      ruby: remove tcl DEPENDS

Scott Murray (2):
      grub: fix "CVE:" line in one of the patches
      patch: fix CVE-2019-20633

Sinan Kaya (1):
      gcsections: add more suppressions for SDK builds

Steve Sakoman (1):
      oeqa/selftest/cases/devtool.py: fix typo in ignore_patterns call

Tanu Kaskinen (6):
      maintainers.inc: remove myself from maintainers
      pulseaudio: Remove OE_LT_RPATH_ALLOW
      pulseaudio: disable EsounD support
      pulseaudio: disable GConf support
      pulseaudio: switch build system from Autotools to Meson
      pulseaudio: fix client.conf location

Teoh Jay Shen (2):
      oeqa/terminal : improve the test case
      oeqa/suspend : add test for suspend state

Tim Orling (6):
      python3-hypothesis: upgrade 5.41.4 -> 5.41.5
      python3-importlib-metadata: upgrade 3.1.0 -> 3.1.1
      python3-pygments: upgrade v2.7.2 -> v2.7.3
      python3-setuptools: upgrade 50.3.2 -> 51.0.0
      python3-setuptools-scm: add python3-toml dep
      python3-packaging: upgrade 20.4 -> 20.8

Tomasz Dziendzielski (1):
      populate_sdk_base: Fix condition syntax if SDK_RELOCATE_AFTER_INSTALL is disabled

Trevor Woerner (7):
      mesa.inc: switch true/enabled false/disabled
      mesa: update 20.2.4 -> 20.3.1
      insane.bbclass: allow fifos
      selftest-chown: add test for fifos
      PSPLASH_FIFO_DIR: refactor
      psplash: fix working on first boot (sysvinit)
      psplash (sysvinit): add textual updates

Vivien Didelot (4):
      README.hardware: prettify headline
      README.hardware: fix the dd command
      meta-yocto-bsp: use provided variables
      meta-yocto-bsp: use mmcblk0 for root partition

Wang Mingyu (4):
      libaio: upgrade 0.3.111 -> 0.3.112
      readline: upgrade 8.0 -> 8.1
      man-pages: upgrade 5.09 ->5.10
      mobile-broadband-provider-info: upgrade 20190618 ->20201225

Yi Zhao (6):
      dhcpcd: upgrade 9.3.2 -> 9.3.4
      dhcpcd: fix SECCOMP for i386
      inetutils: add dnsdomainname to ALTERNATIVE
      libcap: update 2.45 -> 2.46
      libcap-ng: upgrade 0.8.1 -> 0.8.2
      dhcpcd: upgrade 9.3.4 -> 9.4.0

Zhixiong Chi (1):
      glibc: CVE-2020-29562 and CVE-2020-29573

zangrc (3):
      bash: Rename patch name
      systemtap: upgrade 4.3 -> 4.4
      msmtp: upgrade 1.8.13 -> 1.8.14

zhengruoqin (2):
      cantarell-fonts: upgrade 0.201 -> 0.301
      gdbm: upgrade 1.18.1 -> 1.19

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
Change-Id: I9000a711651a4e884e8bfccc438c95fce184b35e
diff --git a/poky/bitbake/lib/bb/cache.py b/poky/bitbake/lib/bb/cache.py
index b8054e0..36270d0 100644
--- a/poky/bitbake/lib/bb/cache.py
+++ b/poky/bitbake/lib/bb/cache.py
@@ -26,7 +26,7 @@
 
 logger = logging.getLogger("BitBake.Cache")
 
-__cache_version__ = "153"
+__cache_version__ = "154"
 
 def getCacheFile(path, filename, mc, data_hash):
     mcspec = ''
@@ -94,6 +94,7 @@
         if not self.packages:
             self.packages.append(self.pn)
         self.packages_dynamic = self.listvar('PACKAGES_DYNAMIC', metadata)
+        self.rprovides_pkg = self.pkgvar('RPROVIDES', self.packages, metadata)
 
         self.skipreason = self.getvar('__SKIPPED', metadata)
         if self.skipreason:
@@ -120,7 +121,6 @@
         self.depends          = self.depvar('DEPENDS', metadata)
         self.rdepends         = self.depvar('RDEPENDS', metadata)
         self.rrecommends      = self.depvar('RRECOMMENDS', metadata)
-        self.rprovides_pkg    = self.pkgvar('RPROVIDES', self.packages, metadata)
         self.rdepends_pkg     = self.pkgvar('RDEPENDS', self.packages, metadata)
         self.rrecommends_pkg  = self.pkgvar('RRECOMMENDS', self.packages, metadata)
         self.inherits         = self.getvar('__inherit_cache', metadata, expand=False)
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index 1f4cc1e..83cfee7 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -73,7 +73,9 @@
             self.pn = info.pn
             self.skipreason = info.skipreason
             self.provides = info.provides
-            self.rprovides = info.rprovides
+            self.rprovides = info.packages + info.rprovides
+            for package in info.packages:
+                self.rprovides += info.rprovides_pkg[package]
         elif reason:
             self.skipreason = reason
 
diff --git a/poky/bitbake/lib/bb/data_smart.py b/poky/bitbake/lib/bb/data_smart.py
index c559102..2328c33 100644
--- a/poky/bitbake/lib/bb/data_smart.py
+++ b/poky/bitbake/lib/bb/data_smart.py
@@ -1005,7 +1005,7 @@
             else:
                 data.update({key:value})
 
-            varflags = d.getVarFlags(key, internalflags = True)
+            varflags = d.getVarFlags(key, internalflags = True, expand=["vardepvalue"])
             if not varflags:
                 continue
             for f in varflags:
diff --git a/poky/bitbake/lib/bb/fetch2/git.py b/poky/bitbake/lib/bb/fetch2/git.py
index 490d57f..df9538a 100644
--- a/poky/bitbake/lib/bb/fetch2/git.py
+++ b/poky/bitbake/lib/bb/fetch2/git.py
@@ -220,7 +220,12 @@
             ud.shallow = False
 
         if ud.usehead:
-            ud.unresolvedrev['default'] = 'HEAD'
+            # When usehead is set let's associate 'HEAD' with the unresolved
+            # rev of this repository. This will get resolved into a revision
+            # later. If an actual revision happens to have also been provided
+            # then this setting will be overridden.
+            for name in ud.names:
+                ud.unresolvedrev[name] = 'HEAD'
 
         ud.basecmd = d.getVar("FETCHCMD_git") or "git -c core.fsyncobjectfiles=0"
 
diff --git a/poky/bitbake/lib/bb/tests/fetch.py b/poky/bitbake/lib/bb/tests/fetch.py
index da17d7f..1452d76 100644
--- a/poky/bitbake/lib/bb/tests/fetch.py
+++ b/poky/bitbake/lib/bb/tests/fetch.py
@@ -654,6 +654,58 @@
         with self.assertRaises(bb.fetch2.UnpackError):
             self.fetchUnpack(['file://a;subdir=/bin/sh'])
 
+    def test_local_gitfetch_usehead(self):
+        # Create dummy local Git repo
+        src_dir = tempfile.mkdtemp(dir=self.tempdir,
+                                   prefix='gitfetch_localusehead_')
+        src_dir = os.path.abspath(src_dir)
+        bb.process.run("git init", cwd=src_dir)
+        bb.process.run("git commit --allow-empty -m'Dummy commit'",
+                       cwd=src_dir)
+        # Use other branch than master
+        bb.process.run("git checkout -b my-devel", cwd=src_dir)
+        bb.process.run("git commit --allow-empty -m'Dummy commit 2'",
+                       cwd=src_dir)
+        stdout = bb.process.run("git rev-parse HEAD", cwd=src_dir)
+        orig_rev = stdout[0].strip()
+
+        # Fetch and check revision
+        self.d.setVar("SRCREV", "AUTOINC")
+        url = "git://" + src_dir + ";protocol=file;usehead=1"
+        fetcher = bb.fetch.Fetch([url], self.d)
+        fetcher.download()
+        fetcher.unpack(self.unpackdir)
+        stdout = bb.process.run("git rev-parse HEAD",
+                                cwd=os.path.join(self.unpackdir, 'git'))
+        unpack_rev = stdout[0].strip()
+        self.assertEqual(orig_rev, unpack_rev)
+
+    def test_local_gitfetch_usehead_withname(self):
+        # Create dummy local Git repo
+        src_dir = tempfile.mkdtemp(dir=self.tempdir,
+                                   prefix='gitfetch_localusehead_')
+        src_dir = os.path.abspath(src_dir)
+        bb.process.run("git init", cwd=src_dir)
+        bb.process.run("git commit --allow-empty -m'Dummy commit'",
+                       cwd=src_dir)
+        # Use other branch than master
+        bb.process.run("git checkout -b my-devel", cwd=src_dir)
+        bb.process.run("git commit --allow-empty -m'Dummy commit 2'",
+                       cwd=src_dir)
+        stdout = bb.process.run("git rev-parse HEAD", cwd=src_dir)
+        orig_rev = stdout[0].strip()
+
+        # Fetch and check revision
+        self.d.setVar("SRCREV", "AUTOINC")
+        url = "git://" + src_dir + ";protocol=file;usehead=1;name=newName"
+        fetcher = bb.fetch.Fetch([url], self.d)
+        fetcher.download()
+        fetcher.unpack(self.unpackdir)
+        stdout = bb.process.run("git rev-parse HEAD",
+                                cwd=os.path.join(self.unpackdir, 'git'))
+        unpack_rev = stdout[0].strip()
+        self.assertEqual(orig_rev, unpack_rev)
+
 class FetcherNoNetworkTest(FetcherTest):
     def setUp(self):
         super().setUp()
@@ -844,35 +896,21 @@
         self.assertRaises(bb.fetch.FetchError, self.gitfetcher, url1, url2)
 
     @skipIfNoNetwork()
-    def test_gitfetch_localusehead(self):
-        # Create dummy local Git repo
-        src_dir = tempfile.mkdtemp(dir=self.tempdir,
-                                   prefix='gitfetch_localusehead_')
-        src_dir = os.path.abspath(src_dir)
-        bb.process.run("git init", cwd=src_dir)
-        bb.process.run("git commit --allow-empty -m'Dummy commit'",
-                       cwd=src_dir)
-        # Use other branch than master
-        bb.process.run("git checkout -b my-devel", cwd=src_dir)
-        bb.process.run("git commit --allow-empty -m'Dummy commit 2'",
-                       cwd=src_dir)
-        stdout = bb.process.run("git rev-parse HEAD", cwd=src_dir)
-        orig_rev = stdout[0].strip()
-
-        # Fetch and check revision
-        self.d.setVar("SRCREV", "AUTOINC")
-        url = "git://" + src_dir + ";protocol=file;usehead=1"
-        fetcher = bb.fetch.Fetch([url], self.d)
-        fetcher.download()
-        fetcher.unpack(self.unpackdir)
-        stdout = bb.process.run("git rev-parse HEAD",
-                                cwd=os.path.join(self.unpackdir, 'git'))
-        unpack_rev = stdout[0].strip()
-        self.assertEqual(orig_rev, unpack_rev)
+    def test_gitfetch_usehead(self):
+        # Since self.gitfetcher() sets SRCREV we expect this to override
+        # `usehead=1' and instead fetch the specified SRCREV. See
+        # test_local_gitfetch_usehead() for a positive use of the usehead
+        # feature.
+        url = "git://git.openembedded.org/bitbake;usehead=1"
+        self.assertRaises(bb.fetch.ParameterError, self.gitfetcher, url, url)
 
     @skipIfNoNetwork()
-    def test_gitfetch_remoteusehead(self):
-        url = "git://git.openembedded.org/bitbake;usehead=1"
+    def test_gitfetch_usehead_withname(self):
+        # Since self.gitfetcher() sets SRCREV we expect this to override
+        # `usehead=1' and instead fetch the specified SRCREV. See
+        # test_local_gitfetch_usehead() for a positive use of the usehead
+        # feature.
+        url = "git://git.openembedded.org/bitbake;usehead=1;name=newName"
         self.assertRaises(bb.fetch.ParameterError, self.gitfetcher, url, url)
 
     @skipIfNoNetwork()
diff --git a/poky/bitbake/lib/bb/utils.py b/poky/bitbake/lib/bb/utils.py
index f73d31f..5c775bd 100644
--- a/poky/bitbake/lib/bb/utils.py
+++ b/poky/bitbake/lib/bb/utils.py
@@ -129,6 +129,7 @@
     return r
 
 def vercmp_string(a, b):
+    """ Split version strings and compare them """
     ta = split_version(a)
     tb = split_version(b)
     return vercmp(ta, tb)
@@ -247,6 +248,12 @@
     return r
 
 def explode_dep_versions(s):
+    """
+    Take an RDEPENDS style string of format:
+    "DEPEND1 (optional version) DEPEND2 (optional version) ..."
+    skip null value and items appeared in dependancy string multiple times
+    and return a dictionary of dependencies and versions.
+    """
     r = explode_dep_versions2(s)
     for d in r:
         if not r[d]:
@@ -692,7 +699,7 @@
                 raise
 
 def prunedir(topdir, ionice=False):
-    # Delete everything reachable from the directory named in 'topdir'.
+    """ Delete everything reachable from the directory named in 'topdir'. """
     # CAUTION:  This is dangerous!
     if _check_unsafe_delete_path(topdir):
         raise Exception('bb.utils.prunedir: called with dangerous path "%s", refusing to delete!' % topdir)
@@ -703,8 +710,10 @@
 # but thats possibly insane and suffixes is probably going to be small
 #
 def prune_suffix(var, suffixes, d):
-    # See if var ends with any of the suffixes listed and
-    # remove it if found
+    """ 
+    See if var ends with any of the suffixes listed and
+    remove it if found 
+    """
     for suffix in suffixes:
         if suffix and var.endswith(suffix):
             return var[:-len(suffix)]
@@ -956,6 +965,10 @@
         os.umask(current_mask)
 
 def to_boolean(string, default=None):
+    """ 
+    Check input string and return boolean value True/False/None
+    depending upon the checks 
+    """
     if not string:
         return default
 
@@ -999,6 +1012,23 @@
     return falsevalue
 
 def contains_any(variable, checkvalues, truevalue, falsevalue, d):
+    """Check if a variable contains any values specified.
+
+    Arguments:
+
+    variable -- the variable name. This will be fetched and expanded (using
+    d.getVar(variable)) and then split into a set().
+
+    checkvalues -- if this is a string it is split on whitespace into a set(),
+    otherwise coerced directly into a set().
+
+    truevalue -- the value to return if checkvalues is a subset of variable.
+
+    falsevalue -- the value to return if variable is empty or if checkvalues is
+    not a subset of variable.
+
+    d -- the data store.
+    """
     val = d.getVar(variable)
     if not val:
         return falsevalue
@@ -1560,8 +1590,8 @@
     except:
         pass
 
-# export common proxies variables from datastore to environment
 def export_proxies(d):
+    """ export common proxies variables from datastore to environment """
     import os
 
     variables = ['http_proxy', 'HTTP_PROXY', 'https_proxy', 'HTTPS_PROXY',
diff --git a/poky/contrib/git-hooks/sendemail-validate.sample b/poky/contrib/git-hooks/sendemail-validate.sample
new file mode 100755
index 0000000..af5d55c
--- /dev/null
+++ b/poky/contrib/git-hooks/sendemail-validate.sample
@@ -0,0 +1,78 @@
+#!/usr/bin/env python3
+
+# Copyright (C) 2020  Agilent Technologies, Inc.
+# Author: Chris Laplante <chris.laplante@agilent.com>
+
+# This sendemail-validate hook injects 'From: ' header lines into outgoing
+# emails sent via 'git send-email', to ensure that accurate commit authorship
+# information is present. It was created because some email servers
+# (notably Microsoft Exchange / Office 360) seem to butcher outgoing patches,
+# resulting in incorrect authorship.
+
+# Current limitations:
+#   1. Assumes one per patch per email
+#   2. Minimal error checking
+#
+# Installation:
+#   1. Copy to .git/hooks/sendemail-validate
+#   2. chmod +x .git/hooks/sendemail-validate
+
+
+import enum
+import re
+import subprocess
+import sys
+
+
+class Subject(enum.IntEnum):
+    NOT_SEEN = 0
+    CONSUMING = 1
+    SEEN = 2
+
+
+def make_from_line():
+    cmd = ["git", "var", "GIT_COMMITTER_IDENT"]
+    proc = subprocess.run(cmd, check=True, stdout=subprocess.PIPE, universal_newlines=True)
+    regex = re.compile(r"^(.*>).*$")
+    match = regex.match(proc.stdout)
+    assert match is not None
+    return "From: {0}".format(match.group(1))
+
+
+def main():
+    email = sys.argv[1]
+
+    with open(email, "r") as f:
+        email_lines = f.read().split("\n")
+
+    subject_seen = Subject.NOT_SEEN
+    first_body_line = None
+    for i, line in enumerate(email_lines):
+        if (subject_seen == Subject.NOT_SEEN) and line.startswith("Subject: "):
+            subject_seen = Subject.CONSUMING
+            continue
+        if subject_seen == Subject.CONSUMING:
+            if not line.strip():
+                subject_seen = Subject.SEEN
+                continue
+        if subject_seen == Subject.SEEN:
+            first_body_line = i
+            break
+
+    assert subject_seen == Subject.SEEN
+    assert first_body_line is not None
+
+    from_line = make_from_line()
+    # Only add FROM line if it is not already there
+    if email_lines[first_body_line] != from_line:
+        email_lines.insert(first_body_line, from_line)
+        email_lines.insert(first_body_line + 1, "")
+        with open(email, "w") as f:
+            f.write("\n".join(email_lines))
+
+    return 0
+
+
+if __name__ == "__main__":
+    sys.exit(main())
+
diff --git a/poky/documentation/README b/poky/documentation/README
index b0a3cb1..be03bb1 100644
--- a/poky/documentation/README
+++ b/poky/documentation/README
@@ -2,7 +2,7 @@
 =============
 
 This is the directory that contains the Yocto Project documentation.  The Yocto
-Project source repositories at http://git.yoctoproject.org/cgit.cgi have two
+Project source repositories at https://git.yoctoproject.org/cgit.cgi have two
 instances of the "documentation" directory.  You should understand each of
 these instances.
 
@@ -47,12 +47,12 @@
 Each folder is self-contained regarding content and figures.
 
 If you want to find HTML versions of the Yocto Project manuals on the web,
-go to http://www.yoctoproject.org and click on the "Documentation" tab.  From
+go to https://www.yoctoproject.org and click on the "Documentation" tab.  From
 there you have access to archived documentation from previous releases, current
 documentation for the latest release, and "Docs in Progress" for the release
 currently being developed.
 
-In general, the Yocto Project site (http://www.yoctoproject.org) is a great
+In general, the Yocto Project site (https://www.yoctoproject.org) is a great
 reference for both information and downloads.
 
 poky.yaml
@@ -228,7 +228,7 @@
 
 Variables can be nested, like it was the case for DocBook:
 
-  YOCTO_HOME_URL : "http://www.yoctoproject.org"
+  YOCTO_HOME_URL : "https://www.yoctoproject.org"
   YOCTO_DOCS_URL : "&YOCTO_HOME_URL;/docs"
 
 Note directive
diff --git a/poky/documentation/boilerplate.rst b/poky/documentation/boilerplate.rst
index ddffdac..2ad60eb 100644
--- a/poky/documentation/boilerplate.rst
+++ b/poky/documentation/boilerplate.rst
@@ -8,7 +8,7 @@
 
 Permission is granted to copy, distribute and/or modify this document under the
 terms of the `Creative Commons Attribution-Share Alike 2.0 UK: England & Wales
-<http://creativecommons.org/licenses/by-sa/2.0/uk/>`_ as published by Creative
+<https://creativecommons.org/licenses/by-sa/2.0/uk/>`_ as published by Creative
 Commons.
 
 To report any inaccuracies or problems with this (or any other Yocto Project)
diff --git a/poky/documentation/brief-yoctoprojectqs/index.rst b/poky/documentation/brief-yoctoprojectqs/index.rst
index f077ee8..63083cb 100644
--- a/poky/documentation/brief-yoctoprojectqs/index.rst
+++ b/poky/documentation/brief-yoctoprojectqs/index.rst
@@ -397,7 +397,7 @@
    Development Community into which you can tap.
 
 -  **Developer Screencast:** The `Getting Started with the Yocto Project -
-   New Developer Screencast Tutorial <http://vimeo.com/36450321>`__
+   New Developer Screencast Tutorial <https://vimeo.com/36450321>`__
    provides a 30-minute video created for users unfamiliar with the
    Yocto Project but familiar with Linux build hosts. While this
    screencast is somewhat dated, the introductory and fundamental
diff --git a/poky/documentation/bsp-guide/bsp.rst b/poky/documentation/bsp-guide/bsp.rst
index 068ab6c..93e9182 100644
--- a/poky/documentation/bsp-guide/bsp.rst
+++ b/poky/documentation/bsp-guide/bsp.rst
@@ -894,8 +894,8 @@
    ``recipes-*`` subdirectories specific to the recipe's function, or
    within a subdirectory containing a set of closely-related recipes.
    The recipes themselves should follow the general guidelines for
-   recipes used in the Yocto Project found in the "`OpenEmbedded Style
-   Guide <http://openembedded.org/wiki/Styleguide>`__".
+   recipes used in the Yocto Project found in the ":oe_wiki:`OpenEmbedded
+   Style Guide </Styleguide>`".
 
 -  *License File:* You must include a license file in the
    ``meta-bsp_root_name`` directory. This license covers the BSP
diff --git a/poky/documentation/conf.py b/poky/documentation/conf.py
index a626b1f..407ea32 100644
--- a/poky/documentation/conf.py
+++ b/poky/documentation/conf.py
@@ -68,7 +68,7 @@
 
 # external links and substitutions
 extlinks = {
-    'yocto_home': ('https://yoctoproject.org%s', None),
+    'yocto_home': ('https://www.yoctoproject.org%s', None),
     'yocto_wiki': ('https://wiki.yoctoproject.org/wiki%s', None),
     'yocto_dl': ('https://downloads.yoctoproject.org%s', None),
     'yocto_lists': ('https://lists.yoctoproject.org%s', None),
@@ -79,6 +79,9 @@
     'oe_home': ('https://www.openembedded.org%s', None),
     'oe_lists': ('https://lists.openembedded.org%s', None),
     'oe_git': ('https://git.openembedded.org%s', None),
+    'oe_wiki': ('https://www.openembedded.org/wiki%s', None),
+    'oe_layerindex': ('https://layers.openembedded.org%s', None),
+    'oe_layer': ('https://layers.openembedded.org/layerindex/branch/master/layer%s', None),
 }
 
 # Intersphinx config to use cross reference with Bitbake user manual
diff --git a/poky/documentation/dev-manual/common-tasks.rst b/poky/documentation/dev-manual/common-tasks.rst
index ada3bac..e1dee8e 100644
--- a/poky/documentation/dev-manual/common-tasks.rst
+++ b/poky/documentation/dev-manual/common-tasks.rst
@@ -38,9 +38,8 @@
 
 1. *Check Existing Layers:* Before creating a new layer, you should be
    sure someone has not already created a layer containing the Metadata
-   you need. You can see the `OpenEmbedded Metadata
-   Index <https://layers.openembedded.org/layerindex/layers/>`__ for a
-   list of layers from the OpenEmbedded community that can be used in
+   you need. You can see the :oe_layerindex:`OpenEmbedded Metadata Index <>`
+   for a list of layers from the OpenEmbedded community that can be used in
    the Yocto Project. You could find a layer that is identical or close
    to what you need.
 
@@ -322,7 +321,7 @@
    successful compatibility registration.
 
 2. Completion of an application acceptance form, which you can find at
-   https://www.yoctoproject.org/webform/yocto-project-compatible-registration.
+   :yocto_home:`/webform/yocto-project-compatible-registration`.
 
 To be granted permission to use the logo, you need to satisfy the
 following:
@@ -346,7 +345,7 @@
 layer and the application that uses your layer.
 
 To access the form, use this link:
-https://www.yoctoproject.org/webform/yocto-project-compatible-registration.
+:yocto_home:`/webform/yocto-project-compatible-registration`.
 Follow the instructions on the form to complete your application.
 
 The application consists of the following sections:
@@ -1194,8 +1193,8 @@
 whether someone else has already written one that meets (or comes close
 to meeting) your needs. The Yocto Project and OpenEmbedded communities
 maintain many recipes that might be candidates for what you are doing.
-You can find a good central index of these recipes in the `OpenEmbedded
-Layer Index <https://layers.openembedded.org>`__.
+You can find a good central index of these recipes in the
+:oe_layerindex:`OpenEmbedded Layer Index <>`.
 
 Working from an existing recipe or a skeleton recipe is the best way to
 get started. Here are some points on both methods:
@@ -2540,7 +2539,7 @@
 ---------------------------------
 
 When writing recipes, it is good to conform to existing style
-guidelines. The :oe_home:`OpenEmbedded Styleguide </wiki/Styleguide>` wiki page
+guidelines. The :oe_wiki:`OpenEmbedded Styleguide </Styleguide>` wiki page
 provides rough guidelines for preferred recipe style.
 
 It is common for existing recipes to deviate a bit from this style.
@@ -6044,7 +6043,7 @@
    Botnet
 
 -  *"*\ `Security Issues for Embedded
-   Devices <http://elinux.org/images/6/6f/Security-issues.pdf>`__\ *"*
+   Devices <https://elinux.org/images/6/6f/Security-issues.pdf>`__\ *"*
    by Jake Edge
 
 When securing your image is of concern, there are steps, tools, and
diff --git a/poky/documentation/kernel-dev/intro.rst b/poky/documentation/kernel-dev/intro.rst
index c95d2f7..f6c9b97 100644
--- a/poky/documentation/kernel-dev/intro.rst
+++ b/poky/documentation/kernel-dev/intro.rst
@@ -72,8 +72,7 @@
 
 The remainder of this manual provides instructions for completing
 specific Linux kernel development tasks. These instructions assume you
-are comfortable working with
-`BitBake <https://openembedded.org/wiki/Bitbake>`__ recipes and basic
+are comfortable working with :oe_wiki:`BitBake </Bitbake>` recipes and basic
 open-source development tools. Understanding these concepts will
 facilitate the process of working with the kernel recipes. If you find
 you need some additional background, please be sure to review and
diff --git a/poky/documentation/overview-manual/concepts.rst b/poky/documentation/overview-manual/concepts.rst
index 8fbbabb..257de44 100644
--- a/poky/documentation/overview-manual/concepts.rst
+++ b/poky/documentation/overview-manual/concepts.rst
@@ -141,12 +141,10 @@
 using a different layer where that metadata might be common across
 several pieces of hardware.
 
-Many layers exist that work in the Yocto Project development
-environment. The `Yocto Project Curated Layer
-Index <https://www.yoctoproject.org/software-overview/layers/>`__
-and `OpenEmbedded Layer
-Index <http://layers.openembedded.org/layerindex/branch/master/layers/>`__
-both contain layers from which you can use or leverage.
+Many layers exist that work in the Yocto Project development environment. The
+:yocto_home:`Yocto Project Curated Layer Index </software-overview/layers/>`
+and :oe_layerindex:`OpenEmbedded Layer Index <>` both contain layers from
+which you can use or leverage.
 
 By convention, layers in the Yocto Project follow a specific form.
 Conforming to a known structure allows BitBake to make assumptions
@@ -380,13 +378,11 @@
 
 -  *Metadata (.bb + Patches):* Software layers containing
    user-supplied recipe files, patches, and append files. A good example
-   of a software layer might be the
-   `meta-qt5 layer <https://github.com/meta-qt5/meta-qt5>`__ from
-   the `OpenEmbedded Layer
-   Index <http://layers.openembedded.org/layerindex/branch/master/layers/>`__.
-   This layer is for version 5.0 of the popular
-   `Qt <https://wiki.qt.io/About_Qt>`__ cross-platform application
-   development framework for desktop, embedded and mobile.
+   of a software layer might be the :oe_layer:`meta-qt5 layer </meta-qt5>`
+   from the :oe_layerindex:`OpenEmbedded Layer Index <>`. This layer is for
+   version 5.0 of the popular `Qt <https://wiki.qt.io/About_Qt>`__
+   cross-platform application development framework for desktop, embedded and
+   mobile.
 
 -  *Machine BSP Configuration:* Board Support Package (BSP) layers (i.e.
    "BSP Layer" in the following figure) providing machine-specific
@@ -2096,10 +2092,8 @@
 the BitBake keyword/variable flag that requests a fake root environment
 for a task.
 
-In the :term:`OpenEmbedded Build System`,
-the program that
-implements fakeroot is known as
-`Pseudo <https://www.yoctoproject.org/software-item/pseudo/>`__. Pseudo
+In the :term:`OpenEmbedded Build System`, the program that implements
+fakeroot is known as :yocto_home:`Pseudo </software-item/pseudo/>`. Pseudo
 overrides system calls by using the environment variable ``LD_PRELOAD``,
 which results in the illusion of running as root. To keep track of
 "fake" file ownership and permissions resulting from operations that
diff --git a/poky/documentation/overview-manual/development-environment.rst b/poky/documentation/overview-manual/development-environment.rst
index 9a2997d..011a479 100644
--- a/poky/documentation/overview-manual/development-environment.rst
+++ b/poky/documentation/overview-manual/development-environment.rst
@@ -40,7 +40,7 @@
 Microsoft Corporation.
 
 Wikipedia has a good historical description of the Open Source
-Philosophy `here <http://en.wikipedia.org/wiki/Open_source>`__. You can
+Philosophy `here <https://en.wikipedia.org/wiki/Open_source>`__. You can
 also find helpful information on how to participate in the Linux
 Community
 `here <https://www.kernel.org/doc/html/latest/process/index.html>`__.
@@ -291,7 +291,7 @@
 practices or methods that help development run smoothly. The following
 list describes some of these practices. For more information about Git
 workflows, see the workflow topics in the `Git Community
-Book <http://book.git-scm.com>`__.
+Book <https://book.git-scm.com>`__.
 
 -  *Make Small Changes:* It is best to keep the changes you commit small
    as compared to bundling many disparate changes into a single commit.
@@ -368,12 +368,12 @@
 .. note::
 
    -  For more information on Git, see
-      http://git-scm.com/documentation.
+      https://git-scm.com/documentation.
 
    -  If you need to download Git, it is recommended that you add Git to
       your system through your distribution's "software store" (e.g. for
       Ubuntu, use the Ubuntu Software feature). For the Git download
-      page, see http://git-scm.com/download.
+      page, see https://git-scm.com/download.
 
    -  For information beyond the introductory nature in this section,
       see the ":ref:`dev-manual/start:locating yocto project source files`"
@@ -507,7 +507,7 @@
 you understand the basic philosophy behind Git. You do not have to be an
 expert in Git to be functional. A good place to look for instruction on
 a minimal set of Git commands is
-`here <http://git-scm.com/documentation>`__.
+`here <https://git-scm.com/documentation>`__.
 
 The following list of Git commands briefly describes some basic Git
 operations as a way to get started. As with any set of commands, this
@@ -614,10 +614,10 @@
 this history, you can find basic information here:
 
 -  `Open source license
-   history <http://en.wikipedia.org/wiki/Open-source_license>`__
+   history <https://en.wikipedia.org/wiki/Open-source_license>`__
 
 -  `Free software license
-   history <http://en.wikipedia.org/wiki/Free_software_license>`__
+   history <https://en.wikipedia.org/wiki/Free_software_license>`__
 
 In general, the Yocto Project is broadly licensed under the
 Massachusetts Institute of Technology (MIT) License. MIT licensing
@@ -626,9 +626,9 @@
 the GNU General Public License (GPL). Patches to the Yocto Project
 follow the upstream licensing scheme. You can find information on the
 MIT license
-`here <http://www.opensource.org/licenses/mit-license.php>`__. You can
+`here <https://www.opensource.org/licenses/mit-license.php>`__. You can
 find information on the GNU GPL
-`here <http://www.opensource.org/licenses/LGPL-3.0>`__.
+`here <https://www.opensource.org/licenses/LGPL-3.0>`__.
 
 When you build an image using the Yocto Project, the build process uses
 a known list of licenses to ensure compliance. You can find this list in
@@ -646,11 +646,11 @@
 
 The base list of licenses used by the build process is a combination of
 the Software Package Data Exchange (SPDX) list and the Open Source
-Initiative (OSI) projects. `SPDX Group <http://spdx.org>`__ is a working
+Initiative (OSI) projects. `SPDX Group <https://spdx.org>`__ is a working
 group of the Linux Foundation that maintains a specification for a
 standard format for communicating the components, licenses, and
 copyrights associated with a software package.
-`OSI <http://opensource.org>`__ is a corporation dedicated to the Open
+`OSI <https://opensource.org>`__ is a corporation dedicated to the Open
 Source Definition and the effort for reviewing and approving licenses
 that conform to the Open Source Definition (OSD).
 
diff --git a/poky/documentation/overview-manual/yp-intro.rst b/poky/documentation/overview-manual/yp-intro.rst
index 66a88c9..0ec7e2b 100644
--- a/poky/documentation/overview-manual/yp-intro.rst
+++ b/poky/documentation/overview-manual/yp-intro.rst
@@ -221,8 +221,7 @@
 
    -  Familiarize yourself with the `Yocto Project curated layer
       index <https://www.yoctoproject.org/software-overview/layers/>`__
-      or the `OpenEmbedded layer
-      index <http://layers.openembedded.org/layerindex/branch/master/layers/>`__.
+      or the :oe_layerindex:`OpenEmbedded layer index <>`.
       The latter contains more layers but they are less universally
       validated.
 
@@ -364,13 +363,12 @@
    versions available for Yocto Project. The main purpose of the system
    is to help you manage the recipes you maintain and to offer a dynamic
    overview of the project. The Recipe Reporting System is built on top
-   of the `OpenEmbedded Layer
-   Index <http://layers.openembedded.org/layerindex/layers/>`__, which
+   of the :oe_layerindex:`OpenEmbedded Layer Index <>`, which
    is a website that indexes OpenEmbedded-Core layers.
 
 -  *Patchwork:* `Patchwork <http://jk.ozlabs.org/projects/patchwork/>`__
    is a fork of a project originally started by
-   `OzLabs <http://ozlabs.org/>`__. The project is a web-based tracking
+   `OzLabs <https://ozlabs.org/>`__. The project is a web-based tracking
    system designed to streamline the process of bringing contributions
    into a project. The Yocto Project uses Patchwork as an organizational
    tool to handle patches, which number in the thousands for every
@@ -402,7 +400,7 @@
 
    Historically, cross-prelink is a variant of prelink, which was
    conceived by `Jakub
-   Jelínek <http://people.redhat.com/jakub/prelink.pdf>`__ a number of
+   Jelínek <https://people.redhat.com/jakub/prelink.pdf>`__ a number of
    years ago. Both prelink and cross-prelink are maintained in the same
    repository albeit on separate branches. By providing an emulated
    runtime dynamic linker (i.e. ``glibc``-derived ``ld.so`` emulation),
@@ -531,8 +529,7 @@
    Debian Package (dpkg) in operation.
 
    Opkg is intended for use on embedded Linux devices and is used in
-   this capacity in the
-   `OpenEmbedded <http://www.openembedded.org/wiki/Main_Page>`__ and
+   this capacity in the :oe_home:`OpenEmbedded <>` and
    `OpenWrt <https://openwrt.org/>`__ projects, as well as the Yocto
    Project.
 
diff --git a/poky/documentation/profile-manual/usage.rst b/poky/documentation/profile-manual/usage.rst
index 418f4e9..b401cf9 100644
--- a/poky/documentation/profile-manual/usage.rst
+++ b/poky/documentation/profile-manual/usage.rst
@@ -39,7 +39,7 @@
 The coverage below details some of the most common ways you'll likely
 want to apply the tool; full documentation can be found either within
 the tool itself or in the man pages at
-`perf(1) <http://linux.die.net/man/1/perf>`__.
+`perf(1) <https://linux.die.net/man/1/perf>`__.
 
 Perf Setup
 ----------
@@ -860,7 +860,7 @@
 be derived from it.
 
 Documentation on using the `'perf script' python
-binding <http://linux.die.net/man/1/perf-script-python>`__.
+binding <https://linux.die.net/man/1/perf-script-python>`__.
 
 System-Wide Tracing and Profiling
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -1136,32 +1136,31 @@
 Online versions of the man pages for the commands discussed in this
 section can be found here:
 
--  The `'perf stat' manpage <http://linux.die.net/man/1/perf-stat>`__.
+-  The `'perf stat' manpage <https://linux.die.net/man/1/perf-stat>`__.
 
 -  The `'perf record'
-   manpage <http://linux.die.net/man/1/perf-record>`__.
+   manpage <https://linux.die.net/man/1/perf-record>`__.
 
 -  The `'perf report'
-   manpage <http://linux.die.net/man/1/perf-report>`__.
+   manpage <https://linux.die.net/man/1/perf-report>`__.
 
--  The `'perf probe' manpage <http://linux.die.net/man/1/perf-probe>`__.
+-  The `'perf probe' manpage <https://linux.die.net/man/1/perf-probe>`__.
 
 -  The `'perf script'
-   manpage <http://linux.die.net/man/1/perf-script>`__.
+   manpage <https://linux.die.net/man/1/perf-script>`__.
 
 -  Documentation on using the `'perf script' python
-   binding <http://linux.die.net/man/1/perf-script-python>`__.
+   binding <https://linux.die.net/man/1/perf-script-python>`__.
 
--  The top-level `perf(1) manpage <http://linux.die.net/man/1/perf>`__.
+-  The top-level `perf(1) manpage <https://linux.die.net/man/1/perf>`__.
 
 Normally, you should be able to invoke the man pages via perf itself
 e.g. 'perf help' or 'perf help record'.
 
 However, by default Yocto doesn't install man pages, but perf invokes
 the man pages for most help functionality. This is a bug and is being
-addressed by a Yocto bug: `Bug 3388 - perf: enable man pages for basic
-'help'
-functionality <https://bugzilla.yoctoproject.org/show_bug.cgi?id=3388>`__.
+addressed by a Yocto bug: :yocto_bugs:`Bug 3388 - perf: enable man pages for
+basic 'help' functionality </show_bug.cgi?id=3388>`.
 
 The man pages in text form, along with some other files, such as a set
 of examples, can be found in the 'perf' directory of the kernel tree: ::
@@ -1719,7 +1718,7 @@
 
 The tool is pretty self-explanatory, but for more detailed information
 on navigating through the data, see the `kernelshark
-website <http://rostedt.homelinux.com/kernelshark/>`__.
+website <https://rostedt.homelinux.com/kernelshark/>`__.
 
 ftrace Documentation
 --------------------
@@ -1737,19 +1736,19 @@
 There is a nice series of articles on using ftrace and trace-cmd at LWN:
 
 -  `Debugging the kernel using Ftrace - part
-   1 <http://lwn.net/Articles/365835/>`__
+   1 <https://lwn.net/Articles/365835/>`__
 
 -  `Debugging the kernel using Ftrace - part
-   2 <http://lwn.net/Articles/366796/>`__
+   2 <https://lwn.net/Articles/366796/>`__
 
 -  `Secrets of the Ftrace function
-   tracer <http://lwn.net/Articles/370423/>`__
+   tracer <https://lwn.net/Articles/370423/>`__
 
 -  `trace-cmd: A front-end for
    Ftrace <https://lwn.net/Articles/410200/>`__
 
 There's more detailed documentation kernelshark usage here:
-`KernelShark <http://rostedt.homelinux.com/kernelshark/>`__
+`KernelShark <https://rostedt.homelinux.com/kernelshark/>`__
 
 An amusing yet useful README (a tracing mini-HOWTO) can be found in
 ``/sys/kernel/debug/tracing/README``.
@@ -1764,7 +1763,7 @@
 invoked under.
 
 For example, this probe from the `SystemTap
-tutorial <http://sourceware.org/systemtap/tutorial/>`__ simply prints a
+tutorial <https://sourceware.org/systemtap/tutorial/>`__ simply prints a
 line every time any process on the system open()s a file. For each line,
 it prints the executable name of the program that opened the file, along
 with its PID, and the name of the file it opened (or tried to open),
@@ -1937,11 +1936,11 @@
 -----------------------
 
 The SystemTap language reference can be found here: `SystemTap Language
-Reference <http://sourceware.org/systemtap/langref/>`__
+Reference <https://sourceware.org/systemtap/langref/>`__
 
 Links to other SystemTap documents, tutorials, and examples can be found
 here: `SystemTap documentation
-page <http://sourceware.org/systemtap/documentation.html>`__
+page <https://sourceware.org/systemtap/documentation.html>`__
 
 Sysprof
 =======
@@ -2215,7 +2214,7 @@
 efficient software tracing.
 
 For information on LTTng in general, visit the `LTTng
-Project <http://lttng.org/lttng2.0>`__ site. You can find a "Getting
+Project <https://lttng.org/lttng2.0>`__ site. You can find a "Getting
 Started" link on this site that takes you to an LTTng Quick Start.
 
 blktrace
@@ -2366,7 +2365,7 @@
 The report shows each event that was
 found in the blktrace data, along with a summary of the overall block
 I/O traffic during the run. You can look at the
-`blkparse <http://linux.die.net/man/1/blkparse>`__ manpage to learn the
+`blkparse <https://linux.die.net/man/1/blkparse>`__ manpage to learn the
 meaning of each field displayed in the trace listing.
 
 Live Mode
@@ -2565,11 +2564,11 @@
 Online versions of the man pages for the commands discussed in this
 section can be found here:
 
--  http://linux.die.net/man/8/blktrace
+-  https://linux.die.net/man/8/blktrace
 
--  http://linux.die.net/man/1/blkparse
+-  https://linux.die.net/man/1/blkparse
 
--  http://linux.die.net/man/8/btrace
+-  https://linux.die.net/man/8/btrace
 
 The above manpages, along with manpages for the other blktrace utilities
 (btt, blkiomon, etc) can be found in the /doc directory of the blktrace
diff --git a/poky/documentation/ref-manual/classes.rst b/poky/documentation/ref-manual/classes.rst
index 5a30ce3..a152dca 100644
--- a/poky/documentation/ref-manual/classes.rst
+++ b/poky/documentation/ref-manual/classes.rst
@@ -278,7 +278,7 @@
 This class is used to give a minor performance boost during the build.
 However, using the class can lead to unexpected side-effects. Thus, it
 is recommended that you do not use this class. See
-http://ccache.samba.org/ for information on the C/C++ Compiler
+https://ccache.samba.org/ for information on the C/C++ Compiler
 Cache.
 
 .. _ref-classes-chrpath:
@@ -1374,36 +1374,36 @@
 ``kernel-fitimage.bbclass``
 ===========================
 
-The ``kernel-fitimage`` class provides support to pack a kernel Image,
+The ``kernel-fitimage`` class provides support to pack a kernel image,
 device trees and a RAM disk into a single FIT image. In theory, a FIT
-image can support any number of kernels, RAM disks and device-trees.
+image can support any number of kernels, RAM disks and device trees.
 However, ``kernel-fitimage`` currently only supports
 limited usescases: just one kernel image, an optional RAM disk, and
-any number of device tree.
+any number of device trees.
 
 To create a FIT image, it is required that :term:`KERNEL_CLASSES`
-is set to "kernel-fitimage" and :term:`KERNEL_IMAGETYPE`
+is set to include "kernel-fitimage" and :term:`KERNEL_IMAGETYPE`
 is set to "fitImage".
 
-The options for the device tree compiler passed to mkimage -D feature
+The options for the device tree compiler passed to ``mkimage -D``
 when creating the FIT image are specified using the
 :term:`UBOOT_MKIMAGE_DTCOPTS` variable.
 
 Only a single kernel can be added to the FIT image created by
 ``kernel-fitimage`` and the kernel image in FIT is mandatory. The
-address where the kernel image is to be loaded by U-boot is
+address where the kernel image is to be loaded by U-Boot is
 specified by :term:`UBOOT_LOADADDRESS` and the entrypoint by
 :term:`UBOOT_ENTRYPOINT`.
 
 Multiple device trees can be added to the FIT image created by
 ``kernel-fitimage`` and the device tree is optional.
-The address where the device tree is to be loaded by U-boot is
+The address where the device tree is to be loaded by U-Boot is
 specified by :term:`UBOOT_DTBO_LOADADDRESS` for device tree overlays
 and by :term:`UBOOT_DTB_LOADADDRESS` for device tree binaries.
 
 Only a single RAM disk can be added to the FIT image created by
 ``kernel-fitimage`` and the RAM disk in FIT is optional.
-The address where the RAM disk image is to be loaded by U-boot
+The address where the RAM disk image is to be loaded by U-Boot
 is specified by :term:`UBOOT_RD_LOADADDRESS` and the entrypoint by
 :term:`UBOOT_RD_ENTRYPOINT`. The ramdisk is added to FIT image when
 :term:`INITRAMFS_IMAGE` is specified.
@@ -2581,7 +2581,7 @@
 :term:`SYSTEMD_BOOT_TIMEOUT` variables.
 
 You can also see the `Systemd-boot
-documentation <http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__
+documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__
 for more information.
 
 .. _ref-classes-terminal:
diff --git a/poky/documentation/ref-manual/faq.rst b/poky/documentation/ref-manual/faq.rst
index f67c538..34b26ee 100644
--- a/poky/documentation/ref-manual/faq.rst
+++ b/poky/documentation/ref-manual/faq.rst
@@ -55,9 +55,9 @@
 **Q:** Are there any products built using the OpenEmbedded build system?
 
 **A:** The software running on the `Vernier
-LabQuest <http://vernier.com/labquest/>`__ is built using the
+LabQuest <https://vernier.com/labquest/>`__ is built using the
 OpenEmbedded build system. See the `Vernier
-LabQuest <http://www.vernier.com/products/interfaces/labq/>`__ website
+LabQuest <https://www.vernier.com/products/interfaces/labq/>`__ website
 for more information. There are a number of pre-production devices using
 the OpenEmbedded build system and the Yocto Project team announces them
 as soon as they are released.
@@ -273,7 +273,7 @@
 particular, "external-\*" refers to external toolchains. One example is
 the Sourcery G++ Toolchain. The support for this toolchain resides in
 the separate ``meta-sourcery`` layer at
-http://github.com/MentorEmbedded/meta-sourcery/.
+https://github.com/MentorEmbedded/meta-sourcery/.
 
 In addition to the toolchain configuration, you also need a
 corresponding toolchain recipe file. This recipe file needs to package
diff --git a/poky/documentation/ref-manual/images.rst b/poky/documentation/ref-manual/images.rst
index 5e9374e..cf5cc11 100644
--- a/poky/documentation/ref-manual/images.rst
+++ b/poky/documentation/ref-manual/images.rst
@@ -37,9 +37,9 @@
    all the pieces required to run builds using the build system as well
    as the build system itself. You can boot and run the image using
    either the `VMware
-   Player <http://www.vmware.com/products/player/overview.html>`__ or
+   Player <https://www.vmware.com/products/player/overview.html>`__ or
    `VMware
-   Workstation <http://www.vmware.com/products/workstation/overview.html>`__.
+   Workstation <https://www.vmware.com/products/workstation/overview.html>`__.
    For more information on this image, see the :yocto_home:`Build
    Appliance </software-item/build-appliance>` page
    on the Yocto Project website.
diff --git a/poky/documentation/ref-manual/kickstart.rst b/poky/documentation/ref-manual/kickstart.rst
index bb9c046..472820f 100644
--- a/poky/documentation/ref-manual/kickstart.rst
+++ b/poky/documentation/ref-manual/kickstart.rst
@@ -24,7 +24,7 @@
 Kickstart commands are based on the Fedora kickstart versions but with
 modifications to reflect Wic capabilities. You can see the original
 documentation for those commands at the following link:
-http://pykickstart.readthedocs.io/en/latest/kickstart-docs.html
+https://pykickstart.readthedocs.io/en/latest/kickstart-docs.html
 
 Command: part or partition
 ==========================
@@ -164,7 +164,7 @@
 -  ``--part-type``: This option is a Wic-specific option that
    specifies the partition type globally unique identifier (GUID) for
    GPT partitions. You can find the list of partition type GUIDs at
-   http://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs.
+   https://en.wikipedia.org/wiki/GUID_Partition_Table#Partition_type_GUIDs.
 
 -  ``--use-uuid``: This option is a Wic-specific option that causes
    Wic to generate a random GUID for the partition. The generated
diff --git a/poky/documentation/ref-manual/migration-1.7.rst b/poky/documentation/ref-manual/migration-1.7.rst
index 19275b3..54544e4 100644
--- a/poky/documentation/ref-manual/migration-1.7.rst
+++ b/poky/documentation/ref-manual/migration-1.7.rst
@@ -190,7 +190,7 @@
 
 The following recipes have been removed:
 
--  ``x-load``: This recipe has been superseded by U-boot SPL for all
+-  ``x-load``: This recipe has been superseded by U-Boot SPL for all
    Cortex-based TI SoCs. For legacy boards, the ``meta-ti`` layer, which
    contains a maintained recipe, should be used instead.
 
diff --git a/poky/documentation/ref-manual/migration-2.1.rst b/poky/documentation/ref-manual/migration-2.1.rst
index e8b3ada..861d048 100644
--- a/poky/documentation/ref-manual/migration-2.1.rst
+++ b/poky/documentation/ref-manual/migration-2.1.rst
@@ -89,7 +89,7 @@
 having ``libexecdir`` change between recipes makes it very difficult for
 different recipes to invoke binaries that have been installed into
 ``libexecdir``. The Filesystem Hierarchy Standard (i.e.
-http://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html) now
+https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html) now
 recognizes the use of ``${prefix}/libexec/``, giving distributions the
 choice between ``${prefix}/lib`` or ``${prefix}/libexec`` without
 breaking FHS.
diff --git a/poky/documentation/ref-manual/migration-2.2.rst b/poky/documentation/ref-manual/migration-2.2.rst
index ac247dc..5c6fecf 100644
--- a/poky/documentation/ref-manual/migration-2.2.rst
+++ b/poky/documentation/ref-manual/migration-2.2.rst
@@ -28,8 +28,8 @@
 introduces the new :term:`SYSROOT_DIRS`,
 :term:`SYSROOT_DIRS_NATIVE`, and
 :term:`SYSROOT_DIRS_BLACKLIST`. See the
-`v2 patch series on the OE-Core Mailing
-List <http://lists.openembedded.org/pipermail/openembedded-core/2016-May/121365.html>`__
+:oe_lists:`v2 patch series on the OE-Core Mailing List
+</pipermail/openembedded-core/2016-May/121365.html>`
 for additional information.
 
 .. _migration-2.2-removal-of-old-images-from-tmp-deploy-now-enabled:
diff --git a/poky/documentation/ref-manual/migration-2.3.rst b/poky/documentation/ref-manual/migration-2.3.rst
index 3e97581..04b11da 100644
--- a/poky/documentation/ref-manual/migration-2.3.rst
+++ b/poky/documentation/ref-manual/migration-2.3.rst
@@ -238,7 +238,7 @@
 .. note::
 
    You can ``find meta-gplv2`` layer in the OpenEmbedded layer index at
-   https://layers.openembedded.org/layerindex/branch/master/layer/meta-gplv2/.
+   :oe_layer:`/meta-gplv2`.
 
 These relocated GPLv2 recipes do not receive the same level of
 maintenance as other core recipes. The recipes do not get security fixes
@@ -274,7 +274,7 @@
    fixed.
 
    For more information, see the `DNF
-   Documentation <http://dnf.readthedocs.io/en/latest/>`__.
+   Documentation <https://dnf.readthedocs.io/en/latest/>`__.
 
 -  Rpm 5.x is replaced with Rpm 4.x. This is done for two major reasons:
 
diff --git a/poky/documentation/ref-manual/migration-2.7.rst b/poky/documentation/ref-manual/migration-2.7.rst
index 7e628fc..5af5947 100644
--- a/poky/documentation/ref-manual/migration-2.7.rst
+++ b/poky/documentation/ref-manual/migration-2.7.rst
@@ -159,7 +159,7 @@
    from the top-level ``scripts`` directory.
 
 -  Perl now builds for the target using
-   `perl-cross <http://arsv.github.io/perl-cross/>`_ for better
+   `perl-cross <https://arsv.github.io/perl-cross/>`_ for better
    maintainability and improved build performance. This change should
    not present any problems unless you have heavily customized your Perl
    recipe.
diff --git a/poky/documentation/ref-manual/qa-checks.rst b/poky/documentation/ref-manual/qa-checks.rst
index 54977dc..6cb767d 100644
--- a/poky/documentation/ref-manual/qa-checks.rst
+++ b/poky/documentation/ref-manual/qa-checks.rst
@@ -227,7 +227,7 @@
       CFLAGS_append = " -fPIC "
 
    For more information on text relocations at runtime, see
-   http://www.akkadia.org/drepper/textrelocs.html.
+   https://www.akkadia.org/drepper/textrelocs.html.
 
     
 .. _qa-check-ldflags:
diff --git a/poky/documentation/ref-manual/resources.rst b/poky/documentation/ref-manual/resources.rst
index 77c3678..7554164 100644
--- a/poky/documentation/ref-manual/resources.rst
+++ b/poky/documentation/ref-manual/resources.rst
@@ -52,7 +52,7 @@
 
 -  The Yocto Project :yocto_wiki:`Bugzilla wiki page </Bugzilla_Configuration_and_Bug_Tracking>`
 
-For information on Bugzilla in general, see http://www.bugzilla.org/about/.
+For information on Bugzilla in general, see https://www.bugzilla.org/about/.
 
 .. _resources-mailinglist:
 
@@ -118,8 +118,7 @@
    distribution from which the Yocto Project derives its build system
    (Poky) and to which it contributes.
 
--  :oe_home:`BitBake </wiki/BitBake>`\ *:* The tool
-   used to process metadata.
+-  :oe_wiki:`BitBake </BitBake>`\ *:* The tool used to process metadata.
 
 -  :doc:`BitBake User Manual <bitbake:index>`\ *:* A comprehensive
    guide to the BitBake tool. If you want information on BitBake, see
@@ -194,5 +193,5 @@
    available for Yocto Project and Poky discussions: ``#yocto`` and
    ``#poky``, respectively.
 
--  `Quick EMUlator (QEMU) <http://wiki.qemu.org/Index.html>`__\ *:* An
+-  `Quick EMUlator (QEMU) <https://wiki.qemu.org/Index.html>`__\ *:* An
    open-source machine emulator and virtualizer.
diff --git a/poky/documentation/ref-manual/terms.rst b/poky/documentation/ref-manual/terms.rst
index c07dd4b..9669620 100644
--- a/poky/documentation/ref-manual/terms.rst
+++ b/poky/documentation/ref-manual/terms.rst
@@ -349,7 +349,8 @@
      Source Directory is derived from the Yocto Project release tarball.
      For example, downloading and unpacking
      :yocto_dl:`/releases/yocto/&DISTRO_REL_TAG;/&YOCTO_POKY;.tar.bz2`
-     results in a Source Directory whose root folder is named ``poky``.
+     results in a Source Directory whose root folder is named
+     ``&YOCTO_POKY;``.
 
      It is important to understand the differences between the Source
      Directory created by unpacking a released tarball as compared to
diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst
index 8c6cc46..4ce2648 100644
--- a/poky/documentation/ref-manual/variables.rst
+++ b/poky/documentation/ref-manual/variables.rst
@@ -2538,6 +2538,13 @@
       For guidance on how to create your own file permissions settings
       table file, examine the existing ``fs-perms.txt``.
 
+   :term:`FIT_DESC`
+      Specifies the description string encoded into a fitImage. The default
+      value is set by the :ref:`kernel-fitimage <ref-classes-kernel-fitimage>`
+      class as follows::
+
+         FIT_DESC ?= "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}"
+
    :term:`FIT_GENERATE_KEYS`
       Decides whether to generate the keys for signing fitImage if they
       don't already exist. The keys are created in ``UBOOT_SIGN_KEYDIR``.
@@ -2568,6 +2575,13 @@
       Size of private key in number of bits used in fitImage. The default
       value is "2048".
 
+   :term:`FIT_SIGN_INDIVIDUAL`
+      If set to "1", then the :ref:`kernel-fitimage <ref-classes-kernel-fitimage>`
+      class will sign the kernel, dtb and ramdisk images individually in addition
+      to signing the fitImage itself. This could be useful if you are
+      intending to verify signatures in another context than booting via
+      U-Boot.
+
    :term:`FONT_EXTRA_RDEPENDS`
       When inheriting the :ref:`fontcache <ref-classes-fontcache>` class,
       this variable specifies the runtime dependencies for font packages.
@@ -2648,7 +2662,7 @@
          GROUPADD_PARAM_${PN} = "-r netdev"
 
       For information on the standard Linux shell command
-      ``groupadd``, see http://linux.die.net/man/8/groupadd.
+      ``groupadd``, see https://linux.die.net/man/8/groupadd.
 
    :term:`GROUPMEMS_PARAM`
       When inheriting the :ref:`useradd <ref-classes-useradd>` class,
@@ -2657,7 +2671,7 @@
       of a group when the package is installed.
 
       For information on the standard Linux shell command ``groupmems``,
-      see http://linux.die.net/man/8/groupmems.
+      see https://linux.die.net/man/8/groupmems.
 
    :term:`GRUB_GFXSERIAL`
       Configures the GNU GRand Unified Bootloader (GRUB) to have graphics
@@ -3870,6 +3884,15 @@
 
          KERNEL_ARTIFACT_NAME ?= "${PKGE}-${PKGV}-${PKGR}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
 
+   :term:`KERNEL_DTC_FLAGS`
+      Specifies the ``dtc`` flags that are passed to the Linux kernel build
+      system when generating the device trees (via ``DTC_FLAGS`` environment
+      variable).
+
+      In order to use this variable, the
+      :ref:`kernel-devicetree <ref-classes-kernel-devicetree>` class must
+      be inherited.
+
    :term:`KERNEL_EXTRA_ARGS`
       Specifies additional ``make`` command-line arguments the OpenEmbedded
       build system passes on when compiling the kernel.
@@ -3983,8 +4006,9 @@
       when building the kernel and is passed to ``make`` as the target to
       build.
 
-      If you want to build an alternate kernel image type, use the
-      :term:`KERNEL_ALT_IMAGETYPE` variable.
+      If you want to build an alternate kernel image type in addition to that
+      specified by ``KERNEL_IMAGETYPE``, use the :term:`KERNEL_ALT_IMAGETYPE`
+      variable.
 
    :term:`KERNEL_MODULE_AUTOLOAD`
       Lists kernel modules that need to be auto-loaded during boot.
@@ -4679,7 +4703,7 @@
       See the :term:`KERNEL_MODULE_AUTOLOAD` variable for more information.
 
    module_conf
-      Specifies `modprobe.d <http://linux.die.net/man/5/modprobe.d>`_
+      Specifies `modprobe.d <https://linux.die.net/man/5/modprobe.d>`_
       syntax lines for inclusion in the ``/etc/modprobe.d/modname.conf``
       file.
 
@@ -7604,7 +7628,7 @@
          SYSTEMD_BOOT_CFG ?= "${:term:`S`}/loader.conf"
 
       For information on Systemd-boot, see the `Systemd-boot
-      documentation <http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
+      documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
 
    :term:`SYSTEMD_BOOT_ENTRIES`
       When :term:`EFI_PROVIDER` is set to
@@ -7618,7 +7642,7 @@
           SYSTEMD_BOOT_ENTRIES ?= ""
 
       For information on Systemd-boot, see the `Systemd-boot
-      documentation <http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
+      documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
 
    :term:`SYSTEMD_BOOT_TIMEOUT`
       When :term:`EFI_PROVIDER` is set to
@@ -7631,7 +7655,7 @@
          SYSTEMD_BOOT_TIMEOUT ?= "10"
 
       For information on Systemd-boot, see the `Systemd-boot
-      documentation <http://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
+      documentation <https://www.freedesktop.org/wiki/Software/systemd/systemd-boot/>`__.
 
    :term:`SYSTEMD_PACKAGES`
       When inheriting the :ref:`systemd <ref-classes-systemd>` class,
@@ -7662,7 +7686,7 @@
       When using
       :ref:`SysVinit <dev-manual/common-tasks:enabling system services>`,
       specifies a space-separated list of the virtual terminals that should
-      run a `getty <http://en.wikipedia.org/wiki/Getty_%28Unix%29>`__
+      run a `getty <https://en.wikipedia.org/wiki/Getty_%28Unix%29>`__
       (allowing login), assuming :term:`USE_VT` is not set to
       "0".
 
@@ -7886,7 +7910,7 @@
       toolchain. One example is the Sourcery G++ Toolchain. The support for
       this toolchain resides in the separate Mentor Graphics
       ``meta-sourcery`` layer at
-      http://github.com/MentorEmbedded/meta-sourcery/.
+      https://github.com/MentorEmbedded/meta-sourcery/.
 
       The layer's ``README`` file contains information on how to use the
       Sourcery G++ Toolchain as an external toolchain. In summary, you must
@@ -8389,21 +8413,21 @@
       In this example, "sd" is selected as the configuration of the possible four for the
       ``UBOOT_MACHINE``. The "sd" configuration defines
       "mx6qsabreauto_config" as the value for ``UBOOT_MACHINE``, while the
-      "sdcard" specifies the ``IMAGE_FSTYPES`` to use for the U-boot image.
+      "sdcard" specifies the ``IMAGE_FSTYPES`` to use for the U-Boot image.
 
       For more information on how the ``UBOOT_CONFIG`` is handled, see the
       :ref:`uboot-config <ref-classes-uboot-config>`
       class.
 
    :term:`UBOOT_DTB_LOADADDRESS`
-      Specifies the load address for the dtb image used by U-boot. During FIT
+      Specifies the load address for the dtb image used by U-Boot. During FIT
       image creation, the ``UBOOT_DTB_LOADADDRESS`` variable is used in
       :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to specify
       the load address to be used in
       creating the dtb sections of Image Tree Source for the FIT image.
 
    :term:`UBOOT_DTBO_LOADADDRESS`
-      Specifies the load address for the dtbo image used by U-boot.  During FIT
+      Specifies the load address for the dtbo image used by U-Boot.  During FIT
       image creation, the ``UBOOT_DTBO_LOADADDRESS`` variable is used in
       :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to specify the load address to be used in
       creating the dtbo sections of Image Tree Source for the FIT image.
@@ -8440,9 +8464,29 @@
       Specifies the target called in the ``Makefile``. The default target
       is "all".
 
+   :term:`UBOOT_MKIMAGE`
+      Specifies the name of the mkimage command as used by the
+      :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to assemble
+      the FIT image. This can be used to substitute an alternative command, wrapper
+      script or function if desired. The default is "uboot-mkimage".
+
    :term:`UBOOT_MKIMAGE_DTCOPTS`
       Options for the device tree compiler passed to mkimage '-D'
       feature while creating FIT image in :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class.
+      If ``UBOOT_MKIMAGE_DTCOPTS`` is not set then kernel-fitimage will not
+      pass the ``-D`` option to mkimage.
+
+   :term:`UBOOT_MKIMAGE_SIGN`
+      Specifies the name of the mkimage command as used by the
+      :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to sign
+      the FIT image after it has been assembled (if enabled). This can be used
+      to substitute an alternative command, wrapper script or function if
+      desired. The default is "${:term:`UBOOT_MKIMAGE`}".
+
+   :term:`UBOOT_MKIMAGE_SIGN_ARGS`
+      Optionally specifies additional arguments for the
+      :ref:`kernel-fitimage <ref-classes-kernel-fitimage>` class to pass to the
+      mkimage command when signing the FIT image.
 
    :term:`UBOOT_RD_ENTRYPOINT`
       Specifies the entrypoint for the RAM disk image.
@@ -8468,7 +8512,7 @@
       certificate used for signing FIT image.
 
    :term:`UBOOT_SIGN_KEYNAME`
-      The name of keys used for signing U-boot FIT image stored in
+      The name of keys used for signing U-Boot FIT image stored in
       :term:`UBOOT_SIGN_KEYDIR` directory. For e.g. dev.key key and dev.crt
       certificate stored in :term:`UBOOT_SIGN_KEYDIR` directory will have
       :term:`UBOOT_SIGN_KEYNAME` set to "dev".
@@ -8562,7 +8606,7 @@
       When using
       :ref:`SysVinit <dev-manual/common-tasks:enabling system services>`,
       determines whether or not to run a
-      `getty <http://en.wikipedia.org/wiki/Getty_%28Unix%29>`__ on any
+      `getty <https://en.wikipedia.org/wiki/Getty_%28Unix%29>`__ on any
       virtual terminals in order to enable logging in through those
       terminals.
 
@@ -8673,7 +8717,7 @@
 
       For information on the
       standard Linux shell command ``useradd``, see
-      http://linux.die.net/man/8/useradd.
+      https://linux.die.net/man/8/useradd.
 
    :term:`USERADD_UID_TABLES`
       Specifies a password file to use for obtaining static user
diff --git a/poky/documentation/releases.rst b/poky/documentation/releases.rst
index 2546300..b409072 100644
--- a/poky/documentation/releases.rst
+++ b/poky/documentation/releases.rst
@@ -9,6 +9,7 @@
 *******************************
 
 - :yocto_docs:`3.2 Documentation </3.2>`
+- :yocto_docs:`3.2.1 Documentation </3.2.1>`
 
 ****************************
 3.1 'dunfell' Release Series
diff --git a/poky/documentation/sdk-manual/intro.rst b/poky/documentation/sdk-manual/intro.rst
index 66b12cd..e4b9b05 100644
--- a/poky/documentation/sdk-manual/intro.rst
+++ b/poky/documentation/sdk-manual/intro.rst
@@ -210,7 +210,7 @@
 3. *Develop and Test your Application:* At this point, you have the
    tools to develop your application. If you need to separately install
    and use the QEMU emulator, you can go to `QEMU Home
-   Page <http://wiki.qemu.org/Main_Page>`__ to download and learn about
+   Page <https://wiki.qemu.org/Main_Page>`__ to download and learn about
    the emulator. See the ":doc:`/dev-manual/qemu`" chapter in the
    Yocto Project Development Tasks Manual for information on using QEMU
    within the Yocto Project.
diff --git a/poky/documentation/sphinx-static/switchers.js b/poky/documentation/sphinx-static/switchers.js
index fc901d3..754de2e 100644
--- a/poky/documentation/sphinx-static/switchers.js
+++ b/poky/documentation/sphinx-static/switchers.js
@@ -3,7 +3,7 @@
 
   var all_versions = {
     'dev': 'dev (3.3)',
-    '3.2': '3.2',
+    '3.2.1': '3.2.1',
     '3.1.4': '3.1.4',
     '3.0.4': '3.0.4',
     '2.7.4': '2.7.4',
diff --git a/poky/documentation/toaster-manual/intro.rst b/poky/documentation/toaster-manual/intro.rst
index c78b3f5..57e5b2b 100644
--- a/poky/documentation/toaster-manual/intro.rst
+++ b/poky/documentation/toaster-manual/intro.rst
@@ -27,7 +27,7 @@
    -  Browse layers listed in the various
       :ref:`layer sources <toaster-manual/reference:layer source>`
       that are available in your project (e.g. the OpenEmbedded Layer Index at
-      http://layers.openembedded.org/layerindex/).
+      :oe_layerindex:`/`).
 
    -  Browse images, recipes, and machines provided by those layers.
 
diff --git a/poky/documentation/toaster-manual/reference.rst b/poky/documentation/toaster-manual/reference.rst
index dfe5188..d2ab14c 100644
--- a/poky/documentation/toaster-manual/reference.rst
+++ b/poky/documentation/toaster-manual/reference.rst
@@ -24,12 +24,12 @@
 A layer index is a web application that contains information about a set
 of custom layers. A good example of an existing layer index is the
 OpenEmbedded Layer Index. A public instance of this layer index exists
-at http://layers.openembedded.org. You can find the code for this
+at :oe_layerindex:`/`. You can find the code for this
 layer index's web application at :yocto_git:`/layerindex-web/`.
 
 When you tie a layer source into Toaster, it can query the layer source
 through a
-`REST <http://en.wikipedia.org/wiki/Representational_state_transfer>`__
+`REST <https://en.wikipedia.org/wiki/Representational_state_transfer>`__
 API, store the information about the layers in the Toaster database, and
 then show the information to users. Users are then able to view that
 information and build layers from Toaster itself without worrying about
@@ -81,7 +81,7 @@
 index.
 
 In the previous section, the code for the OpenEmbedded Metadata Index
-(i.e. http://layers.openembedded.org) was referenced. You can use
+(i.e. :oe_layerindex:`/`) was referenced. You can use
 this code, which is at :yocto_git:`/layerindex-web/`, as a base to create
 your own layer index.
 
@@ -370,7 +370,7 @@
 Toaster has an API that allows remote management applications to
 directly query the state of the Toaster server and its builds in a
 machine-to-machine manner. This API uses the
-`REST <http://en.wikipedia.org/wiki/Representational_state_transfer>`__
+`REST <https://en.wikipedia.org/wiki/Representational_state_transfer>`__
 interface and the transfer of JSON files. For example, you might monitor
 a build inside a container through well supported known HTTP ports in
 order to easily access a Toaster server inside the container. In this
diff --git a/poky/documentation/toaster-manual/setup-and-use.rst b/poky/documentation/toaster-manual/setup-and-use.rst
index 2cb7884..ded771e 100644
--- a/poky/documentation/toaster-manual/setup-and-use.rst
+++ b/poky/documentation/toaster-manual/setup-and-use.rst
@@ -462,9 +462,8 @@
 
 The Toaster web interface allows you to do the following:
 
--  Browse published layers in the `OpenEmbedded Layer
-   Index <http://layers.openembedded.org>`__ that are available for your
-   selected version of the build system.
+-  Browse published layers in the :oe_layerindex:`OpenEmbedded Layer Index <>`
+   that are available for your selected version of the build system.
 
 -  Import your own layers for building.
 
@@ -573,11 +572,11 @@
 compatible layers, other than the three core layers that come with the
 Yocto Project:
 
--  `openembedded-core <http://layers.openembedded.org/layerindex/branch/master/layer/openembedded-core/>`__
+-  :oe_layer:`openembedded-core </openembedded-core>`
 
--  `meta-poky <http://layers.openembedded.org/layerindex/branch/master/layer/meta-poky/>`__
+-  :oe_layer:`meta-poky </meta-poky>`
 
--  `meta-yocto-bsp <http://layers.openembedded.org/layerindex/branch/master/layer/meta-yocto-bsp/>`__
+-  :oe_layer:`meta-yocto-bsp </meta-yocto-bsp>`
 
 .. image:: figures/compatible-layers.png
    :align: center
diff --git a/poky/documentation/transitioning-to-a-custom-environment.rst b/poky/documentation/transitioning-to-a-custom-environment.rst
index 415f295..abbd74c 100644
--- a/poky/documentation/transitioning-to-a-custom-environment.rst
+++ b/poky/documentation/transitioning-to-a-custom-environment.rst
@@ -29,8 +29,8 @@
 
 #. **Find and acquire the best BSP for your target**.
    Use the :yocto_home:`Yocto Project curated layer index
-   </software-overview/layers/>` or even the `OpenEmbedded layer index
-   <https://layers.openembedded.org>`_ to find and acquire the best BSP for your
+   </software-overview/layers/>` or even the :oe_layerindex:`OpenEmbedded
+   layer index <>` to find and acquire the best BSP for your
    target board. The Yocto Project layer index BSPs are regularly validated. The
    best place to get your first BSP is from your silicon manufacturer or board
    vendor – they can point you to their most qualified efforts. In general, for
diff --git a/poky/documentation/what-i-wish-id-known.rst b/poky/documentation/what-i-wish-id-known.rst
index a051036..143f9fb 100644
--- a/poky/documentation/what-i-wish-id-known.rst
+++ b/poky/documentation/what-i-wish-id-known.rst
@@ -27,11 +27,10 @@
    to be responsible for your own updates.
 
 #. **Get to know the layer index:**
-   All layers can be found in the `layer index
-   <https://layers.openembedded.org/>`_. Layers which have applied for Yocto
-   Project Compatible status (structure continuity assurance and testing) can be
-   found in the :yocto_home:`Yocto Project Compatible index
-   </software-over/layer/>`.  Generally check the Compatible layer index first,
+   All layers can be found in the :oe_layerindex:`layer index <>`. Layers which
+   have applied for Yocto Project Compatible status (structure continuity
+   assurance and testing) can be found in the :yocto_home:`Yocto Project Compatible index
+   </software-over/layer/>`. Generally check the Compatible layer index first,
    and if you don't find the necessary layer check the general layer index. The
    layer index is an original artifact from the Open Embedded Project. As such,
    that index doesn't have the curating and testing that the Yocto Project
@@ -172,7 +171,7 @@
    * add an ssh server to an image (enable transferring of files to target)
    * know the anatomy of a recipe
    * know how to create and use layers
-   * find recipes (with the `OpenEmbedded Layer index <https://layers.openembedded.org>`_)
+   * find recipes (with the :oe_layerindex:`OpenEmbedded Layer index <>`)
    * understand difference between machine and distro settings
    * find and use the right BSP (machine) for your hardware
    * find examples of distro features and know where to set them
diff --git a/poky/meta-poky/conf/distro/include/gcsections.inc b/poky/meta-poky/conf/distro/include/gcsections.inc
index dd98943..7157373 100644
--- a/poky/meta-poky/conf/distro/include/gcsections.inc
+++ b/poky/meta-poky/conf/distro/include/gcsections.inc
@@ -13,6 +13,16 @@
 CFLAGS_SECTION_REMOVAL_pn-grub = ""
 LDFLAGS_SECTION_REMOVAL_pn-grub = ""
 
+# SDK packages with build problems using sections
+CFLAGS_SECTION_REMOVAL_pn-nativesdk-glibc = ""
+LDFLAGS_SECTION_REMOVAL_pn-nativesdk-glibc = ""
+CFLAGS_SECTION_REMOVAL_pn-nativesdk-mingw-w64-runtime = ""
+LDFLAGS_SECTION_REMOVAL_pn-nativesdk-mingw-w64-runtime = ""
+CFLAGS_SECTION_REMOVAL_pn-nativesdk-perl = ""
+LDFLAGS_SECTION_REMOVAL_pn-nativesdk-perl = ""
+CFLAGS_SECTION_REMOVAL_pn-nativesdk-mingw-w64-winpthreads = ""
+LDFLAGS_SECTION_REMOVAL_pn-nativesdk-mingw-w64-winpthreads = ""
+
 # set default for target
 CFLAGS_append_class-target = " ${CFLAGS_SECTION_REMOVAL}"
 LDFLAGS_append_class-target = " ${LDFLAGS_SECTION_REMOVAL}"
diff --git a/poky/meta-poky/conf/distro/include/poky-distro-alt-test-config.inc b/poky/meta-poky/conf/distro/include/poky-distro-alt-test-config.inc
index 0b0412e..273ebfd 100644
--- a/poky/meta-poky/conf/distro/include/poky-distro-alt-test-config.inc
+++ b/poky/meta-poky/conf/distro/include/poky-distro-alt-test-config.inc
@@ -2,7 +2,7 @@
 DISTRO_FEATURES_append = " pam"
 
 # Use the LTSI Kernel
-PREFERRED_VERSION_linux-yocto ?= "5.4%"
+PREFERRED_VERSION_linux-yocto = "5.4%"
 
 # Ensure the kernel nfs server is enabled
 KERNEL_FEATURES_append_pn-linux-yocto = " features/nfsd/nfsd-enable.scc"
diff --git a/poky/meta-poky/conf/distro/poky-tiny.conf b/poky/meta-poky/conf/distro/poky-tiny.conf
index e125b23..5a867b1 100644
--- a/poky/meta-poky/conf/distro/poky-tiny.conf
+++ b/poky/meta-poky/conf/distro/poky-tiny.conf
@@ -43,7 +43,7 @@
 # Distro config is evaluated after the machine config, so we have to explicitly
 # set the kernel provider to override a machine config.
 PREFERRED_PROVIDER_virtual/kernel = "linux-yocto-tiny"
-PREFERRED_VERSION_linux-yocto-tiny ?= "5.8%"
+PREFERRED_VERSION_linux-yocto-tiny ?= "5.10%"
 
 # We can use packagegroup-core-boot, but in the future we may need a new packagegroup-core-tiny
 #POKY_DEFAULT_EXTRA_RDEPENDS += "packagegroup-core-boot"
diff --git a/poky/meta-poky/conf/distro/poky.conf b/poky/meta-poky/conf/distro/poky.conf
index b33df3c..623f39d 100644
--- a/poky/meta-poky/conf/distro/poky.conf
+++ b/poky/meta-poky/conf/distro/poky.conf
@@ -19,8 +19,8 @@
 
 DISTRO_FEATURES ?= "${DISTRO_FEATURES_DEFAULT} ${POKY_DEFAULT_DISTRO_FEATURES}"
 
-PREFERRED_VERSION_linux-yocto ?= "5.8%"
-PREFERRED_VERSION_linux-yocto-rt ?= "5.4%"
+PREFERRED_VERSION_linux-yocto ?= "5.10%"
+PREFERRED_VERSION_linux-yocto-rt ?= "5.10%"
 
 SDK_NAME = "${DISTRO}-${TCLIBC}-${SDKMACHINE}-${IMAGE_BASENAME}-${TUNE_PKGARCH}-${MACHINE}"
 SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}"
diff --git a/poky/meta-poky/conf/local.conf.sample b/poky/meta-poky/conf/local.conf.sample
index 68e71b9..096359e 100644
--- a/poky/meta-poky/conf/local.conf.sample
+++ b/poky/meta-poky/conf/local.conf.sample
@@ -112,7 +112,7 @@
 # This variable specifies the architecture to build SDK items for and means
 # you can build the SDK packages for architectures other than the machine you are
 # running the build on (i.e. building i686 packages on an x86_64 host).
-# Supported values are i686 and x86_64
+# Supported values are i686, x86_64, aarch64
 #SDKMACHINE ?= "i686"
 
 #
diff --git a/poky/meta-selftest/classes/test-mkimage-wrapper.bbclass b/poky/meta-selftest/classes/test-mkimage-wrapper.bbclass
new file mode 100644
index 0000000..7c98d7b
--- /dev/null
+++ b/poky/meta-selftest/classes/test-mkimage-wrapper.bbclass
@@ -0,0 +1,19 @@
+# Class to test UBOOT_MKIMAGE and UBOOT_MKIMAGE_SIGN
+# (in conjunction with kernel-fitimage.bbclass)
+#
+# SPDX-License-Identifier: MIT
+#
+
+UBOOT_MKIMAGE = "test_mkimage_wrapper"
+UBOOT_MKIMAGE_SIGN = "test_mkimage_signing_wrapper"
+
+test_mkimage_wrapper() {
+    echo "### uboot-mkimage wrapper message"
+    uboot-mkimage "$@"
+}
+
+test_mkimage_signing_wrapper() {
+    echo "### uboot-mkimage signing wrapper message"
+    uboot-mkimage "$@"
+}
+
diff --git a/poky/meta-selftest/files/static-group b/poky/meta-selftest/files/static-group
index 9213b8e..892231b 100644
--- a/poky/meta-selftest/files/static-group
+++ b/poky/meta-selftest/files/static-group
@@ -11,4 +11,11 @@
 avahi-autoipd:x:510:
 rpc:x:511:
 rpcuser:x:513:
-
+dhcpcd:x:514:
+sshd:x:516:
+lpadmin:x:517:
+crontab:x:518:
+tracing:x:519:
+pulse:x:520:
+bind:x:521:
+builder:x:522:
diff --git a/poky/meta-selftest/files/static-passwd b/poky/meta-selftest/files/static-passwd
index 412f85d..babbfbc 100644
--- a/poky/meta-selftest/files/static-passwd
+++ b/poky/meta-selftest/files/static-passwd
@@ -9,3 +9,9 @@
 rpc:x:511:511::/:/bin/nologin
 distcc:x:512:nogroup::/:/bin/nologin
 rpcuser:x:513:513::/var/lib/nfs:/bin/nologin
+dhcpcd:x:514:514::/:/bin/nologin
+tester:x:515:515::/:/bin/nologin
+sshd:x:516:516::/:/bin/nologin
+pulse:x:520:520::/:/bin/nologin
+bind:x:521:521::/:/bin/nologin
+builder:x:522:522::/:/bin/nologin
diff --git a/poky/meta-selftest/lib/pseudo_pyc_test1.py b/poky/meta-selftest/lib/pseudo_pyc_test1.py
new file mode 100644
index 0000000..b59abdd
--- /dev/null
+++ b/poky/meta-selftest/lib/pseudo_pyc_test1.py
@@ -0,0 +1 @@
+STRING = "pseudo_pyc_test1"
diff --git a/poky/meta-selftest/lib/pseudo_pyc_test2.py b/poky/meta-selftest/lib/pseudo_pyc_test2.py
new file mode 100644
index 0000000..fb67a97
--- /dev/null
+++ b/poky/meta-selftest/lib/pseudo_pyc_test2.py
@@ -0,0 +1 @@
+STRING = "pseudo_pyc_test2"
diff --git a/poky/meta-selftest/recipes-test/images/wic-image-minimal.bb b/poky/meta-selftest/recipes-test/images/wic-image-minimal.bb
index e1da203..1cb0198 100644
--- a/poky/meta-selftest/recipes-test/images/wic-image-minimal.bb
+++ b/poky/meta-selftest/recipes-test/images/wic-image-minimal.bb
@@ -6,7 +6,10 @@
 
 IMAGE_FSTYPES = "wic"
 
-WKS_FILE_DEPENDS = "syslinux syslinux-native dosfstools-native mtools-native gptfdisk-native"
+WKS_FILE_DEPENDS = "dosfstools-native mtools-native gptfdisk-native"
+WKS_FILE_DEPENDS_append_x86 = " syslinux-native syslinux"
+WKS_FILE_DEPENDS_append_x86-64 = " syslinux-native syslinux"
+WKS_FILE_DEPENDS_append_x86-x32 = " syslinux-native syslinux"
 
 LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
 
diff --git a/poky/meta-selftest/recipes-test/pseudo-pyc-test/pseudo-pyc-test.bb b/poky/meta-selftest/recipes-test/pseudo-pyc-test/pseudo-pyc-test.bb
new file mode 100644
index 0000000..12dc91a
--- /dev/null
+++ b/poky/meta-selftest/recipes-test/pseudo-pyc-test/pseudo-pyc-test.bb
@@ -0,0 +1,15 @@
+SUMMARY = "pseudo env test"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+INHIBIT_DEFAULT_DEPS = "1"
+
+python do_compile() {
+    import pseudo_pyc_test1
+    print(pseudo_pyc_test1.STRING)
+}
+
+python do_install() {
+    import pseudo_pyc_test2
+    print(pseudo_pyc_test2.STRING)
+}
diff --git a/poky/meta-selftest/recipes-test/selftest-chown/selftest-chown.bb b/poky/meta-selftest/recipes-test/selftest-chown/selftest-chown.bb
index 87bf943..440471f 100644
--- a/poky/meta-selftest/recipes-test/selftest-chown/selftest-chown.bb
+++ b/poky/meta-selftest/recipes-test/selftest-chown/selftest-chown.bb
@@ -3,6 +3,8 @@
 
 LICENSE = "MIT"
 
+DEPENDS += "coreutils-native"
+
 S = "${WORKDIR}"
 
 inherit useradd allarch
@@ -16,10 +18,13 @@
 	install -d   ${TESTDIR}/dir
 	touch        ${TESTDIR}/file
 	ln -s ./file ${TESTDIR}/symlink
+	install -d   ${TESTDIR}/fifotest
+	mkfifo       ${TESTDIR}/fifotest/fifo
 
 	chown    test:test ${TESTDIR}/file
 	chown -R test:test ${TESTDIR}/dir
 	chown -h test:test ${TESTDIR}/symlink
+	chown -R test:test ${TESTDIR}/fifotest
 }
 
 FILES_${PN} = "${sysconfdir}/selftest-chown/*"
diff --git a/poky/meta-selftest/wic/test_empty_plugin.wks b/poky/meta-selftest/wic/test_empty_plugin.wks
new file mode 100644
index 0000000..4e91e04
--- /dev/null
+++ b/poky/meta-selftest/wic/test_empty_plugin.wks
@@ -0,0 +1,4 @@
+# short-description: image for checking empty partition creation
+
+part / --source rootfs --fstype=ext4 --align 1024 --use-uuid
+part empty --source empty --ondisk sda --size 1024 --align 1024
diff --git a/poky/meta-yocto-bsp/README.hardware b/poky/meta-yocto-bsp/README.hardware
index 5996be7..9803af0 100644
--- a/poky/meta-yocto-bsp/README.hardware
+++ b/poky/meta-yocto-bsp/README.hardware
@@ -120,7 +120,7 @@
 
 
 Texas Instruments Beaglebone (beaglebone-yocto)
-=========================================
+===============================================
 
 The Beaglebone is an ARM Cortex-A8 development board with USB, Ethernet, 2D/3D
 accelerated graphics, audio, serial, JTAG, and SD/MMC. The Black adds a faster
@@ -150,7 +150,7 @@
 
   2. Use the "dd" utility to write the image to the SD card. For example:
 
-     # dd core-image-minimal-beaglebone-yocto.wic of=/dev/sdb
+     # dd if=core-image-minimal-beaglebone-yocto.wic of=/dev/sdb
 
   3. Insert the SD card into the Beaglebone and boot the board.
 
diff --git a/poky/meta-yocto-bsp/conf/layer.conf b/poky/meta-yocto-bsp/conf/layer.conf
index bf0c1bf..eb9f55e 100644
--- a/poky/meta-yocto-bsp/conf/layer.conf
+++ b/poky/meta-yocto-bsp/conf/layer.conf
@@ -5,6 +5,12 @@
 BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
             ${LAYERDIR}/recipes-*/*/*.bbappend"
 
+
+PREFERRED_VERSION_linux-yocto_genericx86 ?= "5.8%"
+PREFERRED_VERSION_linux-yocto_genericx86-64 ?= "5.8%"
+PREFERRED_VERSION_linux-yocto_edgerouter ?= "5.8%"
+PREFERRED_VERSION_linux-yocto_beaglebone-yocto ?= "5.8%"
+
 BBFILE_COLLECTIONS += "yoctobsp"
 BBFILE_PATTERN_yoctobsp = "^${LAYERDIR}/"
 BBFILE_PRIORITY_yoctobsp = "5"
diff --git a/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf b/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf
index b7defb0..523472a 100644
--- a/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf
+++ b/poky/meta-yocto-bsp/conf/machine/beaglebone-yocto.conf
@@ -38,7 +38,7 @@
 
 MACHINE_FEATURES = "usbgadget usbhost vfat alsa"
 
-IMAGE_BOOT_FILES ?= "u-boot.${UBOOT_SUFFIX} MLO zImage am335x-bone.dtb am335x-boneblack.dtb am335x-bonegreen.dtb"
+IMAGE_BOOT_FILES ?= "u-boot.${UBOOT_SUFFIX} ${SPL_BINARY} ${KERNEL_IMAGETYPE} ${KERNEL_DEVICETREE}"
 
 # support runqemu
 EXTRA_IMAGEDEPENDS += "qemu-native qemu-helper-native"
diff --git a/poky/meta-yocto-bsp/wic/beaglebone-yocto.wks b/poky/meta-yocto-bsp/wic/beaglebone-yocto.wks
index 97bd480..701ae0b 100644
--- a/poky/meta-yocto-bsp/wic/beaglebone-yocto.wks
+++ b/poky/meta-yocto-bsp/wic/beaglebone-yocto.wks
@@ -3,5 +3,5 @@
 # Boot files are located in the first vfat partition.
 
 part /boot --source bootimg-partition --ondisk mmcblk0 --fstype=vfat --label boot --active --align 4 --size 16 --sourceparams="loader=u-boot" --use-uuid
-part / --source rootfs --ondisk mmcblk --fstype=ext4 --label root --align 4 --use-uuid
+part / --source rootfs --ondisk mmcblk0 --fstype=ext4 --label root --align 4 --use-uuid
 bootloader --append="console=ttyS0,115200"
diff --git a/poky/meta/classes/archiver.bbclass b/poky/meta/classes/archiver.bbclass
index 598298e..858507b 100644
--- a/poky/meta/classes/archiver.bbclass
+++ b/poky/meta/classes/archiver.bbclass
@@ -590,6 +590,7 @@
 addtask do_ar_recipe
 addtask do_deploy_archives
 do_build[recrdeptask] += "do_deploy_archives"
+do_rootfs[recrdeptask] += "do_deploy_archives"
 do_populate_sdk[recrdeptask] += "do_deploy_archives"
 
 python () {
diff --git a/poky/meta/classes/ccache.bbclass b/poky/meta/classes/ccache.bbclass
index b545735..f00fafc 100644
--- a/poky/meta/classes/ccache.bbclass
+++ b/poky/meta/classes/ccache.bbclass
@@ -1,5 +1,7 @@
 #
 # Usage:
+# - Install ccache package on the host distribution and set up a build directory
+#
 # - Enable ccache
 #   Add the following line to a conffile such as conf/local.conf:
 #   INHERIT += "ccache"
@@ -33,6 +35,10 @@
 
 export CCACHE_DIR ?= "${CCACHE_TOP_DIR}/${MULTIMACH_TARGET_SYS}/${PN}"
 
+# Fixed errors:
+# ccache: error: Failed to create directory /run/user/0/ccache-tmp: Permission denied
+export CCACHE_TEMPDIR ?= "${CCACHE_DIR}/tmp"
+
 # We need to stop ccache considering the current directory or the
 # debug-prefix-map target directory to be significant when calculating
 # its hash. Without this the cache would be invalidated every time
@@ -47,7 +53,6 @@
     # quilt-native doesn't need ccache since no c files
     if not (pn in ('ccache-native', 'quilt-native') or
             bb.utils.to_boolean(d.getVar('CCACHE_DISABLE'))):
-        d.appendVar('DEPENDS', ' ccache-native')
         d.setVar('CCACHE', 'ccache ')
 }
 
diff --git a/poky/meta/classes/distutils3.bbclass b/poky/meta/classes/distutils3.bbclass
index 7356b52..a916a80 100644
--- a/poky/meta/classes/distutils3.bbclass
+++ b/poky/meta/classes/distutils3.bbclass
@@ -12,28 +12,30 @@
 DISTUTILS_PYTHON = "python3"
 DISTUTILS_PYTHON_class-native = "nativepython3"
 
+DISTUTILS_SETUP_PATH ?= "${S}"
+
 distutils3_do_configure() {
     :
 }
 
 distutils3_do_compile() {
-        cd ${S}
+        cd ${DISTUTILS_SETUP_PATH}
         NO_FETCH_BUILD=1 \
         STAGING_INCDIR=${STAGING_INCDIR} \
         STAGING_LIBDIR=${STAGING_LIBDIR} \
-        ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} ${S}/setup.py \
+        ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
         build --build-base=${B} ${DISTUTILS_BUILD_ARGS} || \
         bbfatal_log "'${PYTHON_PN} setup.py build ${DISTUTILS_BUILD_ARGS}' execution failed."
 }
 distutils3_do_compile[vardepsexclude] = "MACHINE"
 
 distutils3_do_install() {
-        cd ${S}
+        cd ${DISTUTILS_SETUP_PATH}
         install -d ${D}${PYTHON_SITEPACKAGES_DIR}
         STAGING_INCDIR=${STAGING_INCDIR} \
         STAGING_LIBDIR=${STAGING_LIBDIR} \
         PYTHONPATH=${D}${PYTHON_SITEPACKAGES_DIR} \
-        ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} ${S}/setup.py \
+        ${STAGING_BINDIR_NATIVE}/${PYTHON_PN}-native/${PYTHON_PN} setup.py \
         build --build-base=${B} install --skip-build ${DISTUTILS_INSTALL_ARGS} || \
         bbfatal_log "'${PYTHON_PN} setup.py install ${DISTUTILS_INSTALL_ARGS}' execution failed."
 
diff --git a/poky/meta/classes/go.bbclass b/poky/meta/classes/go.bbclass
index a9e31b5..5b26378 100644
--- a/poky/meta/classes/go.bbclass
+++ b/poky/meta/classes/go.bbclass
@@ -40,6 +40,7 @@
 GO_EXTLDFLAGS ?= "${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} ${GO_RPATH_LINK} ${LDFLAGS}"
 GO_LINKMODE ?= ""
 GO_LINKMODE_class-nativesdk = "--linkmode=external"
+GO_LINKMODE_class-native = "--linkmode=external"
 GO_LDFLAGS ?= '-ldflags="${GO_RPATH} ${GO_LINKMODE} -extldflags '${GO_EXTLDFLAGS}'"'
 export GOBUILDFLAGS ?= "-v ${GO_LDFLAGS} -trimpath"
 export GOPATH_OMIT_IN_ACTIONID ?= "1"
diff --git a/poky/meta/classes/grub-efi-cfg.bbclass b/poky/meta/classes/grub-efi-cfg.bbclass
index 3a2cdd6..ea21b3d 100644
--- a/poky/meta/classes/grub-efi-cfg.bbclass
+++ b/poky/meta/classes/grub-efi-cfg.bbclass
@@ -120,3 +120,4 @@
 
     cfgfile.close()
 }
+build_efi_cfg[vardepsexclude] += "OVERRIDES"
diff --git a/poky/meta/classes/insane.bbclass b/poky/meta/classes/insane.bbclass
index cf2165c..105d2a5 100644
--- a/poky/meta/classes/insane.bbclass
+++ b/poky/meta/classes/insane.bbclass
@@ -87,7 +87,8 @@
 
 QAPATHTEST[shebang-size] = "package_qa_check_shebang_size"
 def package_qa_check_shebang_size(path, name, d, elf, messages):
-    if os.path.islink(path) or elf:
+    import stat
+    if os.path.islink(path) or stat.S_ISFIFO(os.stat(path).st_mode) or elf:
         return
 
     try:
diff --git a/poky/meta/classes/kernel-fitimage.bbclass b/poky/meta/classes/kernel-fitimage.bbclass
index bb2f3c4..9fa302a 100644
--- a/poky/meta/classes/kernel-fitimage.bbclass
+++ b/poky/meta/classes/kernel-fitimage.bbclass
@@ -72,6 +72,19 @@
 # Standard format for public key certificate
 FIT_KEY_SIGN_PKCS ?= "-x509"
 
+# Description string
+FIT_DESC ?= "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}"
+
+# Sign individual images as well
+FIT_SIGN_INDIVIDUAL ?= "0"
+
+# mkimage command
+UBOOT_MKIMAGE ?= "uboot-mkimage"
+UBOOT_MKIMAGE_SIGN ?= "${UBOOT_MKIMAGE}"
+
+# Arguments passed to mkimage for signing
+UBOOT_MKIMAGE_SIGN_ARGS ?= ""
+
 #
 # Emit the fitImage ITS header
 #
@@ -81,7 +94,7 @@
 /dts-v1/;
 
 / {
-        description = "U-Boot fitImage for ${DISTRO_NAME}/${PV}/${MACHINE}";
+        description = "${FIT_DESC}";
         #address-cells = <1>;
 EOF
 }
@@ -132,6 +145,8 @@
 fitimage_emit_section_kernel() {
 
 	kernel_csum="${FIT_HASH_ALG}"
+	kernel_sign_algo="${FIT_SIGN_ALG}"
+	kernel_sign_keyname="${UBOOT_SIGN_KEYNAME}"
 
 	ENTRYPOINT="${UBOOT_ENTRYPOINT}"
 	if [ -n "${UBOOT_ENTRYSYMBOL}" ]; then
@@ -154,6 +169,17 @@
                         };
                 };
 EOF
+
+	if [ "${UBOOT_SIGN_ENABLE}" = "1" -a "${FIT_SIGN_INDIVIDUAL}" = "1" -a -n "${kernel_sign_keyname}" ] ; then
+		sed -i '$ d' ${1}
+		cat << EOF >> ${1}
+                        signature@1 {
+                                algo = "${kernel_csum},${kernel_sign_algo}";
+                                key-name-hint = "${kernel_sign_keyname}";
+                        };
+                };
+EOF
+	fi
 }
 
 #
@@ -165,6 +191,8 @@
 fitimage_emit_section_dtb() {
 
 	dtb_csum="${FIT_HASH_ALG}"
+	dtb_sign_algo="${FIT_SIGN_ALG}"
+	dtb_sign_keyname="${UBOOT_SIGN_KEYNAME}"
 
 	dtb_loadline=""
 	dtb_ext=${DTB##*.}
@@ -188,6 +216,17 @@
                         };
                 };
 EOF
+
+	if [ "${UBOOT_SIGN_ENABLE}" = "1" -a "${FIT_SIGN_INDIVIDUAL}" = "1" -a -n "${dtb_sign_keyname}" ] ; then
+		sed -i '$ d' ${1}
+		cat << EOF >> ${1}
+                        signature@1 {
+                                algo = "${dtb_csum},${dtb_sign_algo}";
+                                key-name-hint = "${dtb_sign_keyname}";
+                        };
+                };
+EOF
+	fi
 }
 
 #
@@ -226,6 +265,8 @@
 fitimage_emit_section_ramdisk() {
 
 	ramdisk_csum="${FIT_HASH_ALG}"
+	ramdisk_sign_algo="${FIT_SIGN_ALG}"
+	ramdisk_sign_keyname="${UBOOT_SIGN_KEYNAME}"
 	ramdisk_loadline=""
 	ramdisk_entryline=""
 
@@ -251,6 +292,17 @@
                         };
                 };
 EOF
+
+	if [ "${UBOOT_SIGN_ENABLE}" = "1" -a "${FIT_SIGN_INDIVIDUAL}" = "1" -a -n "${ramdisk_sign_keyname}" ] ; then
+		sed -i '$ d' ${1}
+		cat << EOF >> ${1}
+                        signature@1 {
+                                algo = "${ramdisk_csum},${ramdisk_sign_algo}";
+                                key-name-hint = "${ramdisk_sign_keyname}";
+                        };
+                };
+EOF
+	fi
 }
 
 #
@@ -270,6 +322,13 @@
 		conf_sign_keyname="${UBOOT_SIGN_KEYNAME}"
 	fi
 
+	its_file="${1}"
+	kernel_id="${2}"
+	dtb_image="${3}"
+	ramdisk_id="${4}"
+	config_id="${5}"
+	default_flag="${6}"
+
 	# Test if we have any DTBs at all
 	sep=""
 	conf_desc=""
@@ -282,49 +341,49 @@
 
 	# conf node name is selected based on dtb ID if it is present,
 	# otherwise its selected based on kernel ID
-	if [ -n "${3}" ]; then
-		conf_node=$conf_node${3}
+	if [ -n "${dtb_image}" ]; then
+		conf_node=$conf_node${dtb_image}
 	else
-		conf_node=$conf_node${2}
+		conf_node=$conf_node${kernel_id}
 	fi
 
-	if [ -n "${2}" ]; then
+	if [ -n "${kernel_id}" ]; then
 		conf_desc="Linux kernel"
 		sep=", "
-		kernel_line="kernel = \"kernel@${2}\";"
+		kernel_line="kernel = \"kernel@${kernel_id}\";"
 	fi
 
-	if [ -n "${3}" ]; then
+	if [ -n "${dtb_image}" ]; then
 		conf_desc="${conf_desc}${sep}FDT blob"
 		sep=", "
-		fdt_line="fdt = \"fdt@${3}\";"
+		fdt_line="fdt = \"fdt@${dtb_image}\";"
 	fi
 
-	if [ -n "${4}" ]; then
+	if [ -n "${ramdisk_id}" ]; then
 		conf_desc="${conf_desc}${sep}ramdisk"
 		sep=", "
-		ramdisk_line="ramdisk = \"ramdisk@${4}\";"
+		ramdisk_line="ramdisk = \"ramdisk@${ramdisk_id}\";"
 	fi
 
-	if [ -n "${5}" ]; then
+	if [ -n "${config_id}" ]; then
 		conf_desc="${conf_desc}${sep}setup"
-		setup_line="setup = \"setup@${5}\";"
+		setup_line="setup = \"setup@${config_id}\";"
 	fi
 
-	if [ "${6}" = "1" ]; then
+	if [ "${default_flag}" = "1" ]; then
 		# default node is selected based on dtb ID if it is present,
 		# otherwise its selected based on kernel ID
-		if [ -n "${3}" ]; then
-			default_line="default = \"conf@${3}\";"
+		if [ -n "${dtb_image}" ]; then
+			default_line="default = \"conf@${dtb_image}\";"
 		else
-			default_line="default = \"conf@${2}\";"
+			default_line="default = \"conf@${kernel_id}\";"
 		fi
 	fi
 
-	cat << EOF >> ${1}
+	cat << EOF >> ${its_file}
                 ${default_line}
                 $conf_node {
-			description = "${6} ${conf_desc}";
+			description = "${default_flag} ${conf_desc}";
 			${kernel_line}
 			${fdt_line}
 			${ramdisk_line}
@@ -339,28 +398,28 @@
 		sign_line="sign-images = "
 		sep=""
 
-		if [ -n "${2}" ]; then
+		if [ -n "${kernel_id}" ]; then
 			sign_line="${sign_line}${sep}\"kernel\""
 			sep=", "
 		fi
 
-		if [ -n "${3}" ]; then
+		if [ -n "${dtb_image}" ]; then
 			sign_line="${sign_line}${sep}\"fdt\""
 			sep=", "
 		fi
 
-		if [ -n "${4}" ]; then
+		if [ -n "${ramdisk_id}" ]; then
 			sign_line="${sign_line}${sep}\"ramdisk\""
 			sep=", "
 		fi
 
-		if [ -n "${5}" ]; then
+		if [ -n "${config_id}" ]; then
 			sign_line="${sign_line}${sep}\"setup\""
 		fi
 
 		sign_line="${sign_line};"
 
-		cat << EOF >> ${1}
+		cat << EOF >> ${its_file}
                         signature@1 {
                                 algo = "${conf_csum},${conf_sign_algo}";
                                 key-name-hint = "${conf_sign_keyname}";
@@ -369,7 +428,7 @@
 EOF
 	fi
 
-	cat << EOF >> ${1}
+	cat << EOF >> ${its_file}
                 };
 EOF
 }
@@ -495,7 +554,7 @@
 	#
 	# Step 6: Assemble the image
 	#
-	uboot-mkimage \
+	${UBOOT_MKIMAGE} \
 		${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
 		-f ${1} \
 		arch/${ARCH}/boot/${2}
@@ -511,11 +570,12 @@
 			cp -P ${STAGING_DATADIR}/u-boot*.dtb ${B}
 			add_key_to_u_boot="-K ${B}/${UBOOT_DTB_BINARY}"
 		fi
-		uboot-mkimage \
+		${UBOOT_MKIMAGE_SIGN} \
 			${@'-D "${UBOOT_MKIMAGE_DTCOPTS}"' if len('${UBOOT_MKIMAGE_DTCOPTS}') else ''} \
 			-F -k "${UBOOT_SIGN_KEYDIR}" \
 			$add_key_to_u_boot \
-			-r arch/${ARCH}/boot/${2}
+			-r arch/${ARCH}/boot/${2} \
+			${UBOOT_MKIMAGE_SIGN_ARGS}
 	fi
 }
 
diff --git a/poky/meta/classes/kernel.bbclass b/poky/meta/classes/kernel.bbclass
index 1a444ef..2f1006d 100644
--- a/poky/meta/classes/kernel.bbclass
+++ b/poky/meta/classes/kernel.bbclass
@@ -1,5 +1,7 @@
 inherit linux-kernel-base kernel-module-split
 
+COMPATIBLE_HOST = ".*-linux"
+
 KERNEL_PACKAGE_NAME ??= "kernel"
 KERNEL_DEPLOYSUBDIR ??= "${@ "" if (d.getVar("KERNEL_PACKAGE_NAME") == "kernel") else d.getVar("KERNEL_PACKAGE_NAME") }"
 
diff --git a/poky/meta/classes/license.bbclass b/poky/meta/classes/license.bbclass
index f90176d..dc91118 100644
--- a/poky/meta/classes/license.bbclass
+++ b/poky/meta/classes/license.bbclass
@@ -31,6 +31,7 @@
             f.write("%s: %s\n" % (key, info[key]))
 }
 
+PSEUDO_IGNORE_PATHS .= ",${@','.join(((d.getVar('COMMON_LICENSE_DIR') or '') + ' ' + (d.getVar('LICENSE_PATH') or '')).split())}"
 # it would be better to copy them in do_install_append, but find_license_filesa is python
 python perform_packagecopy_prepend () {
     enabled = oe.data.typed_value('LICENSE_CREATE_PACKAGE', d)
diff --git a/poky/meta/classes/linuxloader.bbclass b/poky/meta/classes/linuxloader.bbclass
index 720e5df..b161c51 100644
--- a/poky/meta/classes/linuxloader.bbclass
+++ b/poky/meta/classes/linuxloader.bbclass
@@ -1,6 +1,6 @@
 def get_musl_loader_arch(d):
     import re
-    ldso_arch = None
+    ldso_arch = "NotSupported"
 
     targetarch = d.getVar("TARGET_ARCH")
     if targetarch.startswith("microblaze"):
@@ -32,7 +32,7 @@
 def get_glibc_loader(d):
     import re
 
-    dynamic_loader = None
+    dynamic_loader = "NotSupported"
     targetarch = d.getVar("TARGET_ARCH")
     if targetarch in ["powerpc", "microblaze"]:
         dynamic_loader = "${base_libdir}/ld.so.1"
@@ -58,7 +58,7 @@
     overrides = d.getVar("OVERRIDES").split(":")
 
     if "libc-baremetal" in overrides:
-        return None
+        return "NotSupported"
 
     if "libc-musl" in overrides:
         dynamic_loader = get_musl_loader(d)
diff --git a/poky/meta/classes/populate_sdk_base.bbclass b/poky/meta/classes/populate_sdk_base.bbclass
index 49b1833..4db0511 100644
--- a/poky/meta/classes/populate_sdk_base.bbclass
+++ b/poky/meta/classes/populate_sdk_base.bbclass
@@ -263,7 +263,7 @@
 
 	rm -f ${T}/pre_install_command ${T}/post_install_command
 
-	if [ ${SDK_RELOCATE_AFTER_INSTALL} -eq 1 ] ; then
+	if [ "${SDK_RELOCATE_AFTER_INSTALL}" = "1" ] ; then
 		cp ${TOOLCHAIN_SHAR_REL_TMPL} ${T}/post_install_command
 	fi
 	cat << "EOF" >> ${T}/pre_install_command
diff --git a/poky/meta/classes/sanity.bbclass b/poky/meta/classes/sanity.bbclass
index 3262d08..d134b40 100644
--- a/poky/meta/classes/sanity.bbclass
+++ b/poky/meta/classes/sanity.bbclass
@@ -770,10 +770,10 @@
     if 0 == os.getuid():
         raise_sanity_error("Do not use Bitbake as root.", d)
 
-    # Check the Python version, we now have a minimum of Python 3.4
+    # Check the Python version, we now have a minimum of Python 3.6
     import sys
-    if sys.hexversion < 0x030500F0:
-        status.addresult('The system requires at least Python 3.5 to run. Please update your Python interpreter.\n')
+    if sys.hexversion < 0x030600F0:
+        status.addresult('The system requires at least Python 3.6 to run. Please update your Python interpreter.\n')
 
     # Check the bitbake version meets minimum requirements
     from distutils.version import LooseVersion
diff --git a/poky/meta/classes/uboot-extlinux-config.bbclass b/poky/meta/classes/uboot-extlinux-config.bbclass
index f4bf94b..be285da 100644
--- a/poky/meta/classes/uboot-extlinux-config.bbclass
+++ b/poky/meta/classes/uboot-extlinux-config.bbclass
@@ -153,5 +153,6 @@
 }
 UBOOT_EXTLINUX_VARS = "CONSOLE MENU_DESCRIPTION ROOT KERNEL_IMAGE FDTDIR FDT KERNEL_ARGS INITRD"
 do_create_extlinux_config[vardeps] += "${@' '.join(['UBOOT_EXTLINUX_%s_%s' % (v, l) for v in d.getVar('UBOOT_EXTLINUX_VARS').split() for l in d.getVar('UBOOT_EXTLINUX_LABELS').split()])}"
+do_create_extlinux_config[vardepsexclude] += "OVERRIDES"
 
 addtask create_extlinux_config before do_install do_deploy after do_compile
diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf
index 0d38eac..be94b78 100644
--- a/poky/meta/conf/bitbake.conf
+++ b/poky/meta/conf/bitbake.conf
@@ -136,7 +136,7 @@
 TARGET_LD_ARCH = "${TUNE_LDARGS}"
 TARGET_AS_ARCH = "${TUNE_ASARGS}"
 
-SDKMACHINE ??= "x86_64"
+SDKMACHINE ??= "${BUILD_ARCH}"
 SDK_OS = "${BUILD_OS}"
 SDK_VENDOR = "-oesdk"
 SDK_SYS = "${SDK_ARCH}${SDK_VENDOR}-${SDK_OS}"
@@ -486,7 +486,7 @@
     [ ar as awk basename bash bzip2 cat chgrp chmod chown chrpath cmp comm cp cpio \
     cpp cut date dd diff diffstat dirname du echo egrep env expand expr false \
     fgrep file find flock g++ gawk gcc getconf getopt git grep gunzip gzip \
-    head hostname iconv id install ld ldd ln ls make md5sum mkdir mknod \
+    head hostname iconv id install ld ldd ln ls make md5sum mkdir mkfifo mknod \
     mktemp mv nm objcopy objdump od patch perl pr printf pwd \
     python3 ranlib readelf readlink realpath rm rmdir rpcgen sed seq sh \
     sha1sum sha224sum sha256sum sha384sum sha512sum \
@@ -498,7 +498,7 @@
 HOSTTOOLS += "${@'ip ping ps scp ssh stty' if (bb.utils.contains_any('IMAGE_CLASSES', 'testimage testsdk', True, False, d) or any(x in (d.getVar("BBINCLUDED") or "") for x in ["testimage.bbclass", "testsdk.bbclass"])) else ''}"
 
 # Link to these if present
-HOSTTOOLS_NONFATAL += "aws gcc-ar gpg ld.bfd ld.gold nc pigz sftp socat ssh sudo"
+HOSTTOOLS_NONFATAL += "aws ccache gcc-ar gpg ld.bfd ld.gold nc pigz sftp socat ssh sudo"
 
 # Temporary add few more detected in bitbake world
 HOSTTOOLS_NONFATAL += "join nl size yes zcat"
@@ -685,15 +685,15 @@
 PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
 PSEUDO_PASSWD ?= "${STAGING_DIR_TARGET}:${PSEUDO_SYSROOT}"
 PSEUDO_SYSROOT = "${COMPONENTS_DIR}/${BUILD_ARCH}/pseudo-native"
-PSEUDO_IGNORE_PATHS = "/usr/,/etc/,/lib,/dev/,${T},${WORKDIR}/recipe-sysroot,${SSTATE_DIR},${STAMPS_DIR},${WORKDIR}/pkgdata-sysroot,${TMPDIR}/sstate-control,${DEPLOY_DIR},${WORKDIR}/deploy-,${TMPDIR}/buildstats,${WORKDIR}/sstate-build-package_,${WORKDIR}/sstate-install-package_,${WORKDIR}/sstate-build-image_complete,${TMPDIR}/sysroots-components,${BUILDHISTORY_DIR},${TMPDIR}/pkgdata,${TOPDIR}/cache,${COREBASE}/scripts,${COREBASE}/meta,${CCACHE_DIR}"
+PSEUDO_IGNORE_PATHS = "/usr/,/etc/,/lib,/dev/,/run/,${T},${WORKDIR}/recipe-sysroot,${SSTATE_DIR},${STAMPS_DIR},${WORKDIR}/pkgdata-sysroot,${TMPDIR}/sstate-control,${DEPLOY_DIR},${WORKDIR}/deploy-,${TMPDIR}/buildstats,${WORKDIR}/sstate-build-package_,${WORKDIR}/sstate-install-package_,${WORKDIR}/sstate-build-image_complete,${TMPDIR}/sysroots-components,${BUILDHISTORY_DIR},${TMPDIR}/pkgdata,${TOPDIR}/cache,${COREBASE}/scripts,${CCACHE_DIR}"
 
 export PSEUDO_DISABLED = "1"
 #export PSEUDO_PREFIX = "${STAGING_DIR_NATIVE}${prefix_native}"
 #export PSEUDO_BINDIR = "${STAGING_DIR_NATIVE}${bindir_native}"
 #export PSEUDO_LIBDIR = "${STAGING_DIR_NATIVE}$PSEUDOBINDIR/../lib/pseudo/lib
-FAKEROOTBASEENV = "PSEUDO_BINDIR=${PSEUDO_SYSROOT}${bindir_native} PSEUDO_LIBDIR=${PSEUDO_SYSROOT}${prefix_native}/lib/pseudo/lib PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_IGNORE_PATHS=${PSEUDO_IGNORE_PATHS} PSEUDO_DISABLED=1"
+FAKEROOTBASEENV = "PSEUDO_BINDIR=${PSEUDO_SYSROOT}${bindir_native} PSEUDO_LIBDIR=${PSEUDO_SYSROOT}${prefix_native}/lib/pseudo/lib PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_IGNORE_PATHS=${@oe.path.canonicalize(d.getVar('PSEUDO_IGNORE_PATHS'))} PSEUDO_DISABLED=1 PYTHONDONTWRITEBYTECODE=1"
 FAKEROOTCMD = "${PSEUDO_SYSROOT}${bindir_native}/pseudo"
-FAKEROOTENV = "PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_PASSWD=${PSEUDO_PASSWD} PSEUDO_NOSYMLINKEXP=1 PSEUDO_IGNORE_PATHS=${PSEUDO_IGNORE_PATHS} PSEUDO_DISABLED=0"
+FAKEROOTENV = "PSEUDO_PREFIX=${PSEUDO_SYSROOT}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_PASSWD=${PSEUDO_PASSWD} PSEUDO_NOSYMLINKEXP=1 PSEUDO_IGNORE_PATHS=${@oe.path.canonicalize(d.getVar('PSEUDO_IGNORE_PATHS'))} PSEUDO_DISABLED=0"
 FAKEROOTNOENV = "PSEUDO_UNLOAD=1"
 FAKEROOTDIRS = "${PSEUDO_LOCALSTATEDIR}"
 PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"
diff --git a/poky/meta/conf/distro/include/maintainers.inc b/poky/meta/conf/distro/include/maintainers.inc
index e9c69b2..b0ddfb8 100644
--- a/poky/meta/conf/distro/include/maintainers.inc
+++ b/poky/meta/conf/distro/include/maintainers.inc
@@ -31,14 +31,14 @@
 RECIPE_MAINTAINER_pn-acpica = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER_pn-acpid = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER_pn-adwaita-icon-theme = "Ross Burton <ross.burton@arm.com>"
-RECIPE_MAINTAINER_pn-alsa-lib = "Tanu Kaskinen <tanuk@iki.fi>"
-RECIPE_MAINTAINER_pn-alsa-plugins = "Tanu Kaskinen <tanuk@iki.fi>"
-RECIPE_MAINTAINER_pn-alsa-state = "Tanu Kaskinen <tanuk@iki.fi>"
-RECIPE_MAINTAINER_pn-alsa-tools = "Tanu Kaskinen <tanuk@iki.fi>"
-RECIPE_MAINTAINER_pn-alsa-topology-conf = "Tanu Kaskinen <tanuk@iki.fi>"
-RECIPE_MAINTAINER_pn-alsa-ucm-conf = "Tanu Kaskinen <tanuk@iki.fi>"
-RECIPE_MAINTAINER_pn-alsa-utils = "Tanu Kaskinen <tanuk@iki.fi>"
-RECIPE_MAINTAINER_pn-alsa-utils-scripts = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-alsa-lib = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER_pn-alsa-plugins = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER_pn-alsa-state = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER_pn-alsa-tools = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER_pn-alsa-topology-conf = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER_pn-alsa-ucm-conf = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER_pn-alsa-utils = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER_pn-alsa-utils-scripts = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER_pn-apmd = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-apr = "Hongxu Jia <hongxu.jia@windriver.com>"
 RECIPE_MAINTAINER_pn-apr-util = "Hongxu Jia <hongxu.jia@windriver.com>"
@@ -175,7 +175,7 @@
 RECIPE_MAINTAINER_pn-ffmpeg = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-file = "Yi Zhao <yi.zhao@windriver.com>"
 RECIPE_MAINTAINER_pn-findutils = "Chen Qi <Qi.Chen@windriver.com>"
-RECIPE_MAINTAINER_pn-flac = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-flac = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER_pn-flex = "Chen Qi <Qi.Chen@windriver.com>"
 RECIPE_MAINTAINER_pn-font-alias = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-font-util = "Armin Kuster <akuster808@gmail.com>"
@@ -297,10 +297,10 @@
 RECIPE_MAINTAINER_pn-kmod-native = "Chen Qi <Qi.Chen@windriver.com>"
 RECIPE_MAINTAINER_pn-kmscube = "Carlos Rafael Giani <dv@pseudoterminal.org>"
 RECIPE_MAINTAINER_pn-l3afpad = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-lame = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-lame = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER_pn-ldconfig-native = "Khem Raj <raj.khem@gmail.com>"
 RECIPE_MAINTAINER_pn-less = "Yi Zhao <yi.zhao@windriver.com>"
-RECIPE_MAINTAINER_pn-liba52 = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-liba52 = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER_pn-libacpi = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-libaio = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-libarchive = "Otavio Salvador <otavio.salvador@ossystems.com.br>"
@@ -343,7 +343,7 @@
 RECIPE_MAINTAINER_pn-libhandy = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-libical = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER_pn-libice = "Armin Kuster <akuster808@gmail.com>"
-RECIPE_MAINTAINER_pn-libid3tag = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-libid3tag = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER_pn-libidn2 = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER_pn-libinput = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER_pn-libjitterentropy = "Ross Burton <ross.burton@arm.com>"
@@ -374,11 +374,11 @@
 RECIPE_MAINTAINER_pn-libpsl = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-librepo = "Wang Mingyu <wangmy@cn.fujitsu.com>"
 RECIPE_MAINTAINER_pn-librsvg = "Anuj Mittal <anuj.mittal@intel.com>"
-RECIPE_MAINTAINER_pn-libsamplerate0 = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-libsamplerate0 = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER_pn-libsdl2 = "Yi Zhao <yi.zhao@windriver.com>"
 RECIPE_MAINTAINER_pn-libsecret = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-libsm = "Armin Kuster <akuster808@gmail.com>"
-RECIPE_MAINTAINER_pn-libsndfile1 = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-libsndfile1 = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER_pn-libsolv = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-libsoup-2.4 = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-libssp-nonshared = "Khem Raj <raj.khem@gmail.com>"
@@ -577,8 +577,8 @@
 RECIPE_MAINTAINER_pn-psmisc = "Alexander Kanavin <alex.kanavin@gmail.com>"
 RECIPE_MAINTAINER_pn-psplash = "Yi Zhao <yi.zhao@windriver.com>"
 RECIPE_MAINTAINER_pn-ptest-runner = "Ross Burton <ross.burton@arm.com>"
-RECIPE_MAINTAINER_pn-pulseaudio = "Tanu Kaskinen <tanuk@iki.fi>"
-RECIPE_MAINTAINER_pn-pulseaudio-client-conf-sato = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-pulseaudio = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER_pn-pulseaudio-client-conf-sato = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER_pn-puzzles = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-python3 = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
 RECIPE_MAINTAINER_pn-python3-async = "Oleksandr Kravchuk <open.source@oleksandr-kravchuk.com>"
@@ -651,7 +651,7 @@
 RECIPE_MAINTAINER_pn-run-postinsts = "Ross Burton <ross.burton@arm.com>"
 RECIPE_MAINTAINER_pn-rxvt-unicode = "Armin Kuster <akuster808@gmail.com>"
 RECIPE_MAINTAINER_pn-sato-screenshot = "Ross Burton <ross.burton@arm.com>"
-RECIPE_MAINTAINER_pn-sbc = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-sbc = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER_pn-screen = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-sed = "Chen Qi <Qi.Chen@windriver.com>"
 RECIPE_MAINTAINER_pn-serf = "Anuj Mittal <anuj.mittal@intel.com>"
@@ -666,8 +666,8 @@
 RECIPE_MAINTAINER_pn-signing-keys = "Richard Purdie <richard.purdie@linuxfoundation.org>"
 RECIPE_MAINTAINER_pn-slang = "Yi Zhao <yi.zhao@windriver.com>"
 RECIPE_MAINTAINER_pn-socat = "Hongxu Jia <hongxu.jia@windriver.com>"
-RECIPE_MAINTAINER_pn-speex = "Tanu Kaskinen <tanuk@iki.fi>"
-RECIPE_MAINTAINER_pn-speexdsp = "Tanu Kaskinen <tanuk@iki.fi>"
+RECIPE_MAINTAINER_pn-speex = "Unassigned <unassigned@yoctoproject.org>"
+RECIPE_MAINTAINER_pn-speexdsp = "Unassigned <unassigned@yoctoproject.org>"
 RECIPE_MAINTAINER_pn-spirv-tools = "Jose Quaresma <quaresma.jose@gmail.com>"
 RECIPE_MAINTAINER_pn-sqlite3 = "Anuj Mittal <anuj.mittal@intel.com>"
 RECIPE_MAINTAINER_pn-squashfs-tools = "Robert Yang <liezhi.yang@windriver.com>"
@@ -797,3 +797,4 @@
 RECIPE_MAINTAINER_pn-xz = "Denys Dmytriyenko <denys@ti.com>"
 RECIPE_MAINTAINER_pn-zip = "Denys Dmytriyenko <denys@ti.com>"
 RECIPE_MAINTAINER_pn-zlib = "Denys Dmytriyenko <denys@ti.com>"
+RECIPE_MAINTAINER_pn-zstd = "Alexander Kanavin <alex.kanavin@gmail.com>"
diff --git a/poky/meta/conf/distro/include/tcmode-default.inc b/poky/meta/conf/distro/include/tcmode-default.inc
index 75796a7..fd4d760 100644
--- a/poky/meta/conf/distro/include/tcmode-default.inc
+++ b/poky/meta/conf/distro/include/tcmode-default.inc
@@ -21,7 +21,7 @@
 BINUVERSION ?= "2.35%"
 GDBVERSION ?= "10.%"
 GLIBCVERSION ?= "2.32"
-LINUXLIBCVERSION ?= "5.8%"
+LINUXLIBCVERSION ?= "5.10%"
 QEMUVERSION ?= "5.1%"
 GOVERSION ?= "1.15%"
 # This can not use wildcards like 8.0.% since it is also used in mesa to denote
diff --git a/poky/meta/conf/image-uefi.conf b/poky/meta/conf/image-uefi.conf
index aaeff12..882a0e7 100644
--- a/poky/meta/conf/image-uefi.conf
+++ b/poky/meta/conf/image-uefi.conf
@@ -8,9 +8,12 @@
 # Location inside rootfs.
 EFI_FILES_PATH = "${EFI_PREFIX}${EFIDIR}"
 
+# The EFI name for the architecture
+EFI_ARCH ?= "INVALID"
+EFI_ARCH_x86 = "ia32"
+EFI_ARCH_x86-64 = "x64"
+EFI_ARCH_aarch64 = "aa64"
+EFI_ARCH_arm = "arm"
+
 # Determine name of bootloader image
-EFI_BOOT_IMAGE ?= "bootINVALID.efi"
-EFI_BOOT_IMAGE_x86-64 = "bootx64.efi"
-EFI_BOOT_IMAGE_x86 = "bootia32.efi"
-EFI_BOOT_IMAGE_aarch64 = "bootaa64.efi"
-EFI_BOOT_IMAGE_arm = "bootarm.efi"
+EFI_BOOT_IMAGE ?= "boot${EFI_ARCH}.efi"
diff --git a/poky/meta/conf/machine/include/riscv/qemuriscv.inc b/poky/meta/conf/machine/include/riscv/qemuriscv.inc
index 0e88c91..47d7e9b 100644
--- a/poky/meta/conf/machine/include/riscv/qemuriscv.inc
+++ b/poky/meta/conf/machine/include/riscv/qemuriscv.inc
@@ -10,6 +10,7 @@
 KEEPUIMAGE = "no"
 
 SERIAL_CONSOLES ?= "115200;ttyS0 115200;hvc0"
+SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}"
 
 IMAGE_FSTYPES += "ext4 wic.qcow2"
 
diff --git a/poky/meta/conf/machine/include/x86-base.inc b/poky/meta/conf/machine/include/x86-base.inc
index a3169b7..ef6690b 100644
--- a/poky/meta/conf/machine/include/x86-base.inc
+++ b/poky/meta/conf/machine/include/x86-base.inc
@@ -18,7 +18,7 @@
 # kernel-related variables
 #
 PREFERRED_PROVIDER_virtual/kernel ??= "linux-yocto"
-PREFERRED_VERSION_linux-yocto ??= "5.8%"
+PREFERRED_VERSION_linux-yocto ??= "5.10%"
 
 #
 # XSERVER subcomponents, used to build the XSERVER variable
diff --git a/poky/meta/conf/machine/qemuarm.conf b/poky/meta/conf/machine/qemuarm.conf
index 702b850..257cfa3 100644
--- a/poky/meta/conf/machine/qemuarm.conf
+++ b/poky/meta/conf/machine/qemuarm.conf
@@ -17,7 +17,7 @@
 QB_MACHINE = "-machine virt,highmem=off"
 QB_CPU = "-cpu cortex-a15"
 # Standard Serial console
-QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0"
+QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0 vmalloc=256"
 # For graphics to work we need to define the VGA device as well as the necessary USB devices
 QB_OPT_APPEND = "-device VGA,edid=on"
 QB_OPT_APPEND += "-device qemu-xhci -device usb-tablet -device usb-kbd"
diff --git a/poky/meta/conf/machine/qemuarmv5.conf b/poky/meta/conf/machine/qemuarmv5.conf
index 7e8c9e1..dfe2a89 100644
--- a/poky/meta/conf/machine/qemuarmv5.conf
+++ b/poky/meta/conf/machine/qemuarmv5.conf
@@ -12,9 +12,9 @@
 # For runqemu
 QB_SYSTEM_NAME = "qemu-system-arm"
 QB_MACHINE = "-machine versatilepb"
-QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,115200 console=tty"
+QB_KERNEL_CMDLINE_APPEND = "console=ttyAMA0,115200 console=tty vmalloc=256"
 QB_OPT_APPEND = "-usb -device usb-tablet"
-PREFERRED_VERSION_linux-yocto ??= "5.8%"
+PREFERRED_VERSION_linux-yocto ??= "5.10%"
 QB_DTB = "${@oe.utils.version_less_or_equal('PREFERRED_VERSION_linux-yocto', '4.7', '', 'zImage-versatile-pb.dtb', d)}"
 
 KMACHINE_qemuarmv5 = "qemuarm"
diff --git a/poky/meta/lib/oe/path.py b/poky/meta/lib/oe/path.py
index 0829724..c8d8ad0 100644
--- a/poky/meta/lib/oe/path.py
+++ b/poky/meta/lib/oe/path.py
@@ -320,3 +320,24 @@
 
     return files
 
+def canonicalize(paths, sep=','):
+    """Given a string with paths (separated by commas by default), expand
+    each path using os.path.realpath() and return the resulting paths as a
+    string (separated using the same separator a the original string).
+    """
+    # Ignore paths containing "$" as they are assumed to be unexpanded bitbake
+    # variables. Normally they would be ignored, e.g., when passing the paths
+    # through the shell they would expand to empty strings. However, when they
+    # are passed through os.path.realpath(), it will cause them to be prefixed
+    # with the absolute path to the current directory and thus not be empty
+    # anymore.
+    #
+    # Also maintain trailing slashes, as the paths may actually be used as
+    # prefixes in sting compares later on, where the slashes then are important.
+    canonical_paths = []
+    for path in (paths or '').split(sep):
+        if '$' not in path:
+            trailing_slash = path.endswith('/') and '/' or ''
+            canonical_paths.append(os.path.realpath(path) + trailing_slash)
+
+    return sep.join(canonical_paths)
diff --git a/poky/meta/lib/oe/qa.py b/poky/meta/lib/oe/qa.py
index ea831b9..e8a854a 100644
--- a/poky/meta/lib/oe/qa.py
+++ b/poky/meta/lib/oe/qa.py
@@ -156,6 +156,7 @@
     """
     try:
         return {
+            0x00: "Unset",
             0x02: "SPARC",
             0x03: "x86",
             0x08: "MIPS",
diff --git a/poky/meta/lib/oeqa/runtime/cases/suspend.py b/poky/meta/lib/oeqa/runtime/cases/suspend.py
new file mode 100644
index 0000000..67b6f7e
--- /dev/null
+++ b/poky/meta/lib/oeqa/runtime/cases/suspend.py
@@ -0,0 +1,33 @@
+from oeqa.runtime.case import OERuntimeTestCase
+from oeqa.core.decorator.depends import OETestDepends
+from oeqa.core.decorator.data import skipIfQemu
+import threading
+import time
+
+class Suspend_Test(OERuntimeTestCase):
+
+    def test_date(self): 
+        (status, output) = self.target.run('date')
+        self.assertEqual(status, 0,  msg = 'Failed to run date command, output : %s' % output)
+        
+    def test_ping(self):
+        t_thread = threading.Thread(target=self.target.run, args=("ping 8.8.8.8",))
+        t_thread.start()
+        time.sleep(2)
+        
+        status, output = self.target.run('pidof ping')
+        self.target.run('kill -9 %s' % output)
+        self.assertEqual(status, 0, msg = 'Not able to find process that runs ping, output : %s' % output)  
+        
+    def set_suspend(self): 
+        (status, output) = self.target.run('sudo rtcwake -m mem -s 10')
+        self.assertEqual(status, 0,  msg = 'Failed to suspends your system to RAM, output : %s' % output)
+    
+    @skipIfQemu('qemuall', 'Test only runs on real hardware')
+    @OETestDepends(['ssh.SSHTest.test_ssh'])
+    def test_suspend(self):
+        self.test_date()
+        self.test_ping()
+        self.set_suspend()
+        self.test_date()
+        self.test_ping()
diff --git a/poky/meta/lib/oeqa/runtime/cases/terminal.py b/poky/meta/lib/oeqa/runtime/cases/terminal.py
index a268f26..8fcca99 100644
--- a/poky/meta/lib/oeqa/runtime/cases/terminal.py
+++ b/poky/meta/lib/oeqa/runtime/cases/terminal.py
@@ -10,9 +10,12 @@
     @OEHasPackage(['matchbox-terminal'])
     @OETestDepends(['ssh.SSHTest.test_ssh'])
     def test_terminal_running(self):
-        t_thread = threading.Thread(target=self.target.run, args=('export DISPLAY=:0 && matchbox-terminal',))
+        t_thread = threading.Thread(target=self.target.run, args=("export DISPLAY=:0 && matchbox-terminal -e 'sh -c \"uname -a && exec sh\"'",))
         t_thread.start()
         time.sleep(2)
+        
         status, output = self.target.run('pidof matchbox-terminal')
+        number_of_terminal = len(output.split())
+        self.assertEqual(number_of_terminal, 1, msg='There should be only one terminal being launched. Number of terminal launched : %s' % number_of_terminal)
         self.target.run('kill -9 %s' % output)
-        self.assertEqual(status, 0, msg='Not able to find process that runs terminal.')   
+        self.assertEqual(status, 0, msg='Not able to find process that runs terminal.')     
diff --git a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
index e91f0bd..d0f6477 100644
--- a/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
+++ b/poky/meta/lib/oeqa/selftest/cases/buildoptions.py
@@ -33,10 +33,10 @@
         self.assertTrue(incremental_removed, msg = "Match failed in:\n%s" % log_data_removed)
 
     def test_ccache_tool(self):
-        bitbake("ccache-native")
-        bb_vars = get_bb_vars(['SYSROOT_DESTDIR', 'bindir'], 'ccache-native')
-        p = bb_vars['SYSROOT_DESTDIR'] + bb_vars['bindir'] + "/" + "ccache"
-        self.assertTrue(os.path.isfile(p), msg = "No ccache found (%s)" % p)
+        bb_vars = get_bb_vars(['HOSTTOOLS_DIR'], 'm4-native')
+        p = bb_vars['HOSTTOOLS_DIR'] + "/" + "ccache"
+        if not os.path.isfile(p):
+            self.skipTest("No ccache binary found in %s" % bb_vars['HOSTTOOLS_DIR'])
         self.write_config('INHERIT += "ccache"')
         self.add_command_to_tearDown('bitbake -c clean m4-native')
         bitbake("m4-native -c clean")
diff --git a/poky/meta/lib/oeqa/selftest/cases/devtool.py b/poky/meta/lib/oeqa/selftest/cases/devtool.py
index b8edc89..4eba238 100644
--- a/poky/meta/lib/oeqa/selftest/cases/devtool.py
+++ b/poky/meta/lib/oeqa/selftest/cases/devtool.py
@@ -57,7 +57,7 @@
                         if relpth.endswith('/'):
                             destdir = os.path.join(corecopydir, relpth)
                             # avoid race condition by not copying .pyc files YPBZ#13421,13803
-                            shutil.copytree(pth, destdir, ignore=ignore_patterns('*.pyc', '__pycache__'))
+                            shutil.copytree(pth, destdir, ignore=shutil.ignore_patterns('*.pyc', '__pycache__'))
                         else:
                             destdir = os.path.join(corecopydir, os.path.dirname(relpth))
                             bb.utils.mkdirhier(destdir)
diff --git a/poky/meta/lib/oeqa/selftest/cases/fitimage.py b/poky/meta/lib/oeqa/selftest/cases/fitimage.py
new file mode 100644
index 0000000..19b9f53
--- /dev/null
+++ b/poky/meta/lib/oeqa/selftest/cases/fitimage.py
@@ -0,0 +1,233 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+from oeqa.selftest.case import OESelftestTestCase
+from oeqa.utils.commands import runCmd, bitbake, get_bb_var, runqemu
+import os
+import json
+import re
+
+class FitImageTests(OESelftestTestCase):
+
+    def test_fit_image(self):
+        """
+        Summary:     Check if FIT image and Image Tree Source (its) are built
+                     and the Image Tree Source has the correct fields.
+        Expected:    1. fitImage and fitImage-its can be built
+                     2. The type, load address, entrypoint address and
+                     default values of kernel and ramdisk are as expected
+                     in the Image Tree Source. Not all the fields are tested,
+                     only the key fields that wont vary between different
+                     architectures.
+        Product:     oe-core
+        Author:      Usama Arif <usama.arif@arm.com>
+        """
+        config = """
+# Enable creation of fitImage
+KERNEL_IMAGETYPE = "Image"
+KERNEL_IMAGETYPES += " fitImage "
+KERNEL_CLASSES = " kernel-fitimage "
+
+# RAM disk variables including load address and entrypoint for kernel and RAM disk
+IMAGE_FSTYPES += "cpio.gz"
+INITRAMFS_IMAGE = "core-image-minimal"
+UBOOT_RD_LOADADDRESS = "0x88000000"
+UBOOT_RD_ENTRYPOINT = "0x88000000"
+UBOOT_LOADADDRESS = "0x80080000"
+UBOOT_ENTRYPOINT = "0x80080000"
+FIT_DESC = "A model description"
+"""
+        self.write_config(config)
+
+        # fitImage is created as part of linux recipe
+        bitbake("virtual/kernel")
+
+        image_type = "core-image-minimal"
+        deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
+        machine = get_bb_var('MACHINE')
+        fitimage_its_path = os.path.join(deploy_dir_image,
+            "fitImage-its-%s-%s-%s" % (image_type, machine, machine))
+        fitimage_path = os.path.join(deploy_dir_image,
+            "fitImage-%s-%s-%s" % (image_type, machine, machine))
+
+        self.assertTrue(os.path.exists(fitimage_its_path),
+            "%s image tree source doesn't exist" % (fitimage_its_path))
+        self.assertTrue(os.path.exists(fitimage_path),
+            "%s FIT image doesn't exist" % (fitimage_path))
+
+        # Check that the type, load address, entrypoint address and default
+        # values for kernel and ramdisk in Image Tree Source are as expected.
+        # The order of fields in the below array is important. Not all the
+        # fields are tested, only the key fields that wont vary between
+        # different architectures.
+        its_field_check = [
+            'description = "A model description";',
+            'type = "kernel";',
+            'load = <0x80080000>;',
+            'entry = <0x80080000>;',
+            'type = "ramdisk";',
+            'load = <0x88000000>;',
+            'entry = <0x88000000>;',
+            'default = "conf@1";',
+            'kernel = "kernel@1";',
+            'ramdisk = "ramdisk@1";'
+            ]
+
+        with open(fitimage_its_path) as its_file:
+            field_index = 0
+            for line in its_file:
+                if field_index == len(its_field_check):
+                    break
+                if its_field_check[field_index] in line:
+                    field_index +=1
+
+        if field_index != len(its_field_check): # if its equal, the test passed
+            self.assertTrue(field_index == len(its_field_check),
+                "Fields in Image Tree Source File %s did not match, error in finding %s"
+                % (fitimage_its_path, its_field_check[field_index]))
+
+
+    def test_sign_fit_image(self):
+        """
+        Summary:     Check if FIT image and Image Tree Source (its) are created
+                     and signed correctly.
+        Expected:    1) its and FIT image are built successfully
+                     2) Scanning the its file indicates signing is enabled
+                        as requested by UBOOT_SIGN_ENABLE (using keys generated
+                        via FIT_GENERATE_KEYS)
+                     3) Dumping the FIT image indicates signature values
+                        are present (including for images as enabled via
+                        FIT_SIGN_INDIVIDUAL)
+                     4) Examination of the do_assemble_fitimage runfile/logfile
+                        indicate that UBOOT_MKIMAGE, UBOOT_MKIMAGE_SIGN and
+                        UBOOT_MKIMAGE_SIGN_ARGS are working as expected.
+        Product:     oe-core
+        Author:      Paul Eggleton <paul.eggleton@microsoft.com> based upon
+                     work by Usama Arif <usama.arif@arm.com>
+        """
+        config = """
+# Enable creation of fitImage
+MACHINE = "beaglebone-yocto"
+KERNEL_IMAGETYPES += " fitImage "
+KERNEL_CLASSES = " kernel-fitimage test-mkimage-wrapper "
+UBOOT_SIGN_ENABLE = "1"
+FIT_GENERATE_KEYS = "1"
+UBOOT_SIGN_KEYDIR = "${TOPDIR}/signing-keys"
+UBOOT_SIGN_KEYNAME = "oe-selftest"
+FIT_SIGN_INDIVIDUAL = "1"
+UBOOT_MKIMAGE_SIGN_ARGS = "-c 'a smart comment'"
+"""
+        self.write_config(config)
+
+        # fitImage is created as part of linux recipe
+        bitbake("virtual/kernel")
+
+        image_type = "core-image-minimal"
+        deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
+        machine = get_bb_var('MACHINE')
+        fitimage_its_path = os.path.join(deploy_dir_image,
+            "fitImage-its-%s" % (machine,))
+        fitimage_path = os.path.join(deploy_dir_image,
+            "fitImage-%s.bin" % (machine,))
+
+        self.assertTrue(os.path.exists(fitimage_its_path),
+            "%s image tree source doesn't exist" % (fitimage_its_path))
+        self.assertTrue(os.path.exists(fitimage_path),
+            "%s FIT image doesn't exist" % (fitimage_path))
+
+        req_itspaths = [
+            ['/', 'images', 'kernel@1'],
+            ['/', 'images', 'kernel@1', 'signature@1'],
+            ['/', 'images', 'fdt@am335x-boneblack.dtb'],
+            ['/', 'images', 'fdt@am335x-boneblack.dtb', 'signature@1'],
+            ['/', 'configurations', 'conf@am335x-boneblack.dtb'],
+            ['/', 'configurations', 'conf@am335x-boneblack.dtb', 'signature@1'],
+        ]
+
+        itspath = []
+        itspaths = []
+        linect = 0
+        sigs = {}
+        with open(fitimage_its_path) as its_file:
+            linect += 1
+            for line in its_file:
+                line = line.strip()
+                if line.endswith('};'):
+                    itspath.pop()
+                elif line.endswith('{'):
+                    itspath.append(line[:-1].strip())
+                    itspaths.append(itspath[:])
+                elif itspath and itspath[-1] == 'signature@1':
+                    itsdotpath = '.'.join(itspath)
+                    if not itsdotpath in sigs:
+                        sigs[itsdotpath] = {}
+                    if not '=' in line or not line.endswith(';'):
+                        self.fail('Unexpected formatting in %s sigs section line %d:%s' % (fitimage_its_path, linect, line))
+                    key, value = line.split('=', 1)
+                    sigs[itsdotpath][key.rstrip()] = value.lstrip().rstrip(';')
+
+        for reqpath in req_itspaths:
+            if not reqpath in itspaths:
+                self.fail('Missing section in its file: %s' % reqpath)
+
+        reqsigvalues_image = {
+            'algo': '"sha256,rsa2048"',
+            'key-name-hint': '"oe-selftest"',
+        }
+        reqsigvalues_config = {
+            'algo': '"sha256,rsa2048"',
+            'key-name-hint': '"oe-selftest"',
+            'sign-images': '"kernel", "fdt"',
+        }
+
+        for itspath, values in sigs.items():
+            if 'conf@' in itspath:
+                reqsigvalues = reqsigvalues_config
+            else:
+                reqsigvalues = reqsigvalues_image
+            for reqkey, reqvalue in reqsigvalues.items():
+                value = values.get(reqkey, None)
+                if value is None:
+                    self.fail('Missing key "%s" in its file signature section %s' % (reqkey, itspath))
+                self.assertEqual(value, reqvalue)
+
+        # Dump the image to see if it really got signed
+        bitbake("u-boot-tools-native -c addto_recipe_sysroot")
+        result = runCmd('bitbake -e u-boot-tools-native | grep ^RECIPE_SYSROOT_NATIVE=')
+        recipe_sysroot_native = result.output.split('=')[1].strip('"')
+        dumpimage_path = os.path.join(recipe_sysroot_native, 'usr', 'bin', 'dumpimage')
+        result = runCmd('%s -l %s' % (dumpimage_path, fitimage_path))
+        in_signed = None
+        signed_sections = {}
+        for line in result.output.splitlines():
+            if line.startswith((' Configuration', ' Image')):
+                in_signed = re.search('\((.*)\)', line).groups()[0]
+            elif re.match('^ *', line) in (' ', ''):
+                in_signed = None
+            elif in_signed:
+                if not in_signed in signed_sections:
+                    signed_sections[in_signed] = {}
+                key, value = line.split(':', 1)
+                signed_sections[in_signed][key.strip()] = value.strip()
+        self.assertIn('kernel@1', signed_sections)
+        self.assertIn('fdt@am335x-boneblack.dtb', signed_sections)
+        self.assertIn('conf@am335x-boneblack.dtb', signed_sections)
+        for signed_section, values in signed_sections.items():
+            value = values.get('Sign algo', None)
+            self.assertEqual(value, 'sha256,rsa2048:oe-selftest', 'Signature algorithm for %s not expected value' % signed_section)
+            value = values.get('Sign value', None)
+            self.assertEqual(len(value), 512, 'Signature value for section %s not expected length' % signed_section)
+
+        # Check for UBOOT_MKIMAGE_SIGN_ARGS
+        result = runCmd('bitbake -e virtual/kernel | grep ^T=')
+        tempdir = result.output.split('=', 1)[1].strip().strip('')
+        result = runCmd('grep "a smart comment" %s/run.do_assemble_fitimage' % tempdir, ignore_status=True)
+        self.assertEqual(result.status, 0, 'UBOOT_MKIMAGE_SIGN_ARGS value did not get used')
+
+        # Check for evidence of test-mkimage-wrapper class
+        result = runCmd('grep "### uboot-mkimage wrapper message" %s/log.do_assemble_fitimage' % tempdir, ignore_status=True)
+        self.assertEqual(result.status, 0, 'UBOOT_MKIMAGE did not work')
+        result = runCmd('grep "### uboot-mkimage signing wrapper message" %s/log.do_assemble_fitimage' % tempdir, ignore_status=True)
+        self.assertEqual(result.status, 0, 'UBOOT_MKIMAGE_SIGN did not work')
+
diff --git a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
index 415e031..6723a81 100644
--- a/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
+++ b/poky/meta/lib/oeqa/selftest/cases/imagefeatures.py
@@ -264,80 +264,6 @@
 
         bitbake("--graphviz core-image-sato")
 
-    def test_fit_image(self):
-        """
-        Summary:     Check if FIT image and Image Tree Source (its) are built
-                     and the Image Tree Source has the correct fields.
-        Expected:    1. fitImage and fitImage-its can be built
-                     2. The type, load address, entrypoint address and
-                     default values of kernel and ramdisk are as expected
-                     in the Image Tree Source. Not all the fields are tested,
-                     only the key fields that wont vary between different
-                     architectures.
-        Product:     oe-core
-        Author:      Usama Arif <usama.arif@arm.com>
-        """
-        config = """
-# Enable creation of fitImage
-KERNEL_IMAGETYPE = "Image"
-KERNEL_IMAGETYPES += " fitImage "
-KERNEL_CLASSES = " kernel-fitimage "
-
-# RAM disk variables including load address and entrypoint for kernel and RAM disk
-IMAGE_FSTYPES += "cpio.gz"
-INITRAMFS_IMAGE = "core-image-minimal"
-UBOOT_RD_LOADADDRESS = "0x88000000"
-UBOOT_RD_ENTRYPOINT = "0x88000000"
-UBOOT_LOADADDRESS = "0x80080000"
-UBOOT_ENTRYPOINT = "0x80080000"
-"""
-        self.write_config(config)
-
-        # fitImage is created as part of linux recipe
-        bitbake("virtual/kernel")
-
-        image_type = "core-image-minimal"
-        deploy_dir_image = get_bb_var('DEPLOY_DIR_IMAGE')
-        machine = get_bb_var('MACHINE')
-        fitimage_its_path = os.path.join(deploy_dir_image,
-            "fitImage-its-%s-%s-%s" % (image_type, machine, machine))
-        fitimage_path = os.path.join(deploy_dir_image,
-            "fitImage-%s-%s-%s" % (image_type, machine, machine))
-
-        self.assertTrue(os.path.exists(fitimage_its_path),
-            "%s image tree source doesn't exist" % (fitimage_its_path))
-        self.assertTrue(os.path.exists(fitimage_path),
-            "%s FIT image doesn't exist" % (fitimage_path))
-
-        # Check that the type, load address, entrypoint address and default
-        # values for kernel and ramdisk in Image Tree Source are as expected.
-        # The order of fields in the below array is important. Not all the
-        # fields are tested, only the key fields that wont vary between
-        # different architectures.
-        its_field_check = ['type = "kernel";',
-            'load = <0x80080000>;',
-            'entry = <0x80080000>;',
-            'type = "ramdisk";',
-            'load = <0x88000000>;',
-            'entry = <0x88000000>;',
-            'default = "conf@1";',
-            'kernel = "kernel@1";',
-            'ramdisk = "ramdisk@1";'
-            ]
-
-        with open(fitimage_its_path) as its_file:
-            field_index = 0
-            for line in its_file:
-                if field_index == len(its_field_check):
-                    break
-                if its_field_check[field_index] in line:
-                    field_index +=1
-
-        if field_index != len(its_field_check): # if its equal, the test passed
-            self.assertTrue(field_index == len(its_field_check),
-                "Fields in Image Tree Source File %s did not match, error in finding %s"
-                % (fitimage_its_path, its_field_check[field_index]))
-
     def test_image_gen_debugfs(self):
         """
         Summary:     Check debugfs generation
diff --git a/poky/meta/lib/oeqa/selftest/cases/oelib/elf.py b/poky/meta/lib/oeqa/selftest/cases/oelib/elf.py
index d0a2809..5a5f9b4 100644
--- a/poky/meta/lib/oeqa/selftest/cases/oelib/elf.py
+++ b/poky/meta/lib/oeqa/selftest/cases/oelib/elf.py
@@ -21,6 +21,6 @@
         self.assertEqual(oe.qa.elf_machine_to_string(0xB7), "AArch64")
         self.assertEqual(oe.qa.elf_machine_to_string(0xF7), "BPF")
 
-        self.assertEqual(oe.qa.elf_machine_to_string(0x00), "Unknown (0)")
+        self.assertEqual(oe.qa.elf_machine_to_string(0x00), "Unset")
         self.assertEqual(oe.qa.elf_machine_to_string(0xDEADBEEF), "Unknown (3735928559)")
         self.assertEqual(oe.qa.elf_machine_to_string("foobar"), "Unknown ('foobar')")
diff --git a/poky/meta/lib/oeqa/selftest/cases/package.py b/poky/meta/lib/oeqa/selftest/cases/package.py
index 3010b1a..7166c39 100644
--- a/poky/meta/lib/oeqa/selftest/cases/package.py
+++ b/poky/meta/lib/oeqa/selftest/cases/package.py
@@ -168,6 +168,7 @@
         with runqemu('core-image-minimal') as qemu:
             for path in [ sysconfdir + "/selftest-chown/file",
                           sysconfdir + "/selftest-chown/dir",
-                          sysconfdir + "/selftest-chown/symlink"]:
+                          sysconfdir + "/selftest-chown/symlink",
+                          sysconfdir + "/selftest-chown/fifotest/fifo"]:
                 if not check_ownership(qemu, "test", "test", path):
                     self.fail('Test ownership %s failed' % path)
diff --git a/poky/meta/lib/oeqa/selftest/cases/pkgdata.py b/poky/meta/lib/oeqa/selftest/cases/pkgdata.py
index 833a180..254abc4 100644
--- a/poky/meta/lib/oeqa/selftest/cases/pkgdata.py
+++ b/poky/meta/lib/oeqa/selftest/cases/pkgdata.py
@@ -218,3 +218,9 @@
     def test_specify_pkgdatadir(self):
         result = runCmd('oe-pkgdata-util -p %s lookup-pkg zlib' % get_bb_var('PKGDATA_DIR'))
         self.assertEqual(result.output, 'libz1')
+
+    def test_no_param(self):
+        result = runCmd('oe-pkgdata-util', ignore_status=True)
+        self.assertEqual(result.status, 2, "Status different than 2. output: %s" % result.output)
+        currpos = result.output.find('usage: oe-pkgdata-util')
+        self.assertTrue(currpos != -1, msg = "Test is Failed. Help is not Displayed in %s" % result.output)
diff --git a/poky/meta/lib/oeqa/selftest/cases/pseudo.py b/poky/meta/lib/oeqa/selftest/cases/pseudo.py
new file mode 100644
index 0000000..33593d5
--- /dev/null
+++ b/poky/meta/lib/oeqa/selftest/cases/pseudo.py
@@ -0,0 +1,27 @@
+#
+# SPDX-License-Identifier: MIT
+#
+
+import glob
+import os
+import shutil
+from oeqa.utils.commands import bitbake, get_test_layer
+from oeqa.selftest.case import OESelftestTestCase
+
+class Pseudo(OESelftestTestCase):
+
+    def test_pseudo_pyc_creation(self):
+        self.write_config("")
+
+        metaselftestpath = get_test_layer()
+        pycache_path = os.path.join(metaselftestpath, 'lib/__pycache__')
+        if os.path.exists(pycache_path):
+            shutil.rmtree(pycache_path)
+
+        bitbake('pseudo-pyc-test -c install')
+
+        test1_pyc_present = len(glob.glob(os.path.join(pycache_path, 'pseudo_pyc_test1.*.pyc')))
+        self.assertTrue(test1_pyc_present, 'test1 pyc file missing, should be created outside of pseudo context.')
+
+        test2_pyc_present = len(glob.glob(os.path.join(pycache_path, 'pseudo_pyc_test2.*.pyc')))
+        self.assertFalse(test2_pyc_present, 'test2 pyc file present, should not be created in pseudo context.')
diff --git a/poky/meta/lib/oeqa/selftest/cases/reproducible.py b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
index a7ef336..eee494e 100644
--- a/poky/meta/lib/oeqa/selftest/cases/reproducible.py
+++ b/poky/meta/lib/oeqa/selftest/cases/reproducible.py
@@ -17,6 +17,72 @@
 import os
 import datetime
 
+# For sample packages, see:
+# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201127-0t7wr_oo/
+# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201127-4s9ejwyp/
+# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201127-haiwdlbr/
+# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201127-hwds3mcl/
+# https://autobuilder.yocto.io/pub/repro-fail/oe-reproducible-20201203-sua0pzvc/
+# (both packages/ and packages-excluded/)
+exclude_packages = [
+	'acpica-src',
+	'babeltrace2-ptest',
+	'bootchart2-doc',
+	'cups',
+	'cwautomacros',
+	'dtc',
+	'efivar',
+	'epiphany',
+	'gcr',
+	'git',
+	'glide',
+	'go-dep',
+	'go-helloworld',
+	'go-runtime',
+	'go_',
+	'groff',
+	'gst-devtools',
+	'gstreamer1.0-python',
+	'gtk-doc',
+	'igt-gpu-tools',
+        'kernel-devsrc',
+	'libaprutil',
+	'libcap-ng',
+	'libhandy-1-src',
+	'libid3tag',
+	'libproxy',
+	'libsecret-dev',
+	'libsecret-src',
+	'lttng-tools-dbg',
+	'lttng-tools-ptest',
+	'ltp',
+	'meson',
+	'ovmf-shell-efi',
+	'parted-ptest',
+	'perf',
+	'python3-cython',
+	'qemu',
+	'quilt-ptest',
+	'rsync',
+	'ruby',
+	'spirv-tools-dev',
+	'swig',
+	'syslinux-misc',
+	'systemd-bootchart',
+	'valgrind-ptest',
+	'vim',
+	'watchdog',
+	'xmlto',
+	'xorg-minimal-fonts'
+	]
+
+def is_excluded(package):
+    package_name = os.path.basename(package)
+    for i in exclude_packages:
+        if package_name.startswith(i):
+            return True
+    return False
+
 MISSING = 'MISSING'
 DIFFERENT = 'DIFFERENT'
 SAME = 'SAME'
@@ -39,6 +105,7 @@
         self.total = []
         self.missing = []
         self.different = []
+        self.different_excluded = []
         self.same = []
 
     def add_result(self, r):
@@ -46,7 +113,10 @@
         if r.status == MISSING:
             self.missing.append(r)
         elif r.status == DIFFERENT:
-            self.different.append(r)
+            if is_excluded(r.reference):
+                self.different_excluded.append(r)
+            else:
+                self.different.append(r)
         else:
             self.same.append(r)
 
@@ -54,10 +124,11 @@
         self.total.sort()
         self.missing.sort()
         self.different.sort()
+        self.different_excluded.sort()
         self.same.sort()
 
     def __str__(self):
-        return 'same=%i different=%i missing=%i total=%i' % (len(self.same), len(self.different), len(self.missing), len(self.total))
+        return 'same=%i different=%i different_excluded=%i missing=%i total=%i' % (len(self.same), len(self.different), len(self.different_excluded), len(self.missing), len(self.total))
 
 def compare_file(reference, test, diffutils_sysroot):
     result = CompareResult()
@@ -105,7 +176,7 @@
 
 class ReproducibleTests(OESelftestTestCase):
     package_classes = ['deb', 'ipk']
-    images = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline']
+    images = ['core-image-minimal', 'core-image-sato', 'core-image-full-cmdline', 'world']
     save_results = False
     if 'OEQA_DEBUGGING_SAVED_OUTPUT' in os.environ:
         save_results = os.environ['OEQA_DEBUGGING_SAVED_OUTPUT']
@@ -176,6 +247,12 @@
             PACKAGE_CLASSES = "{package_classes}"
             INHIBIT_PACKAGE_STRIP = "1"
             TMPDIR = "{tmpdir}"
+            LICENSE_FLAGS_WHITELIST = "commercial"
+            DISTRO_FEATURES_append = ' systemd pam'
+            USERADDEXTENSION = "useradd-staticids"
+            USERADD_ERROR_DYNAMIC = "skip"
+            USERADD_UID_TABLES += "files/static-passwd"
+            USERADD_GID_TABLES += "files/static-group"
             ''').format(package_classes=' '.join('package_%s' % c for c in self.package_classes),
                         tmpdir=tmpdir)
 
@@ -235,6 +312,7 @@
 
                 self.write_package_list(package_class, 'missing', result.missing)
                 self.write_package_list(package_class, 'different', result.different)
+                self.write_package_list(package_class, 'different_excluded', result.different_excluded)
                 self.write_package_list(package_class, 'same', result.same)
 
                 if self.save_results:
@@ -242,8 +320,12 @@
                         self.copy_file(d.reference, '/'.join([save_dir, 'packages', strip_topdir(d.reference)]))
                         self.copy_file(d.test, '/'.join([save_dir, 'packages', strip_topdir(d.test)]))
 
+                    for d in result.different_excluded:
+                        self.copy_file(d.reference, '/'.join([save_dir, 'packages-excluded', strip_topdir(d.reference)]))
+                        self.copy_file(d.test, '/'.join([save_dir, 'packages-excluded', strip_topdir(d.test)]))
+
                 if result.missing or result.different:
-                    fails.append("The following %s packages are missing or different: %s" %
+                    fails.append("The following %s packages are missing or different and not in exclusion list: %s" %
                             (c, '\n'.join(r.test for r in (result.missing + result.different))))
 
         # Clean up empty directories
diff --git a/poky/meta/lib/oeqa/selftest/cases/wic.py b/poky/meta/lib/oeqa/selftest/cases/wic.py
index 714637e..091f0ab 100644
--- a/poky/meta/lib/oeqa/selftest/cases/wic.py
+++ b/poky/meta/lib/oeqa/selftest/cases/wic.py
@@ -990,6 +990,26 @@
             out = glob(self.resultdir + "%s-*direct" % wksname)
             self.assertEqual(1, len(out))
 
+    def test_empty_plugin(self):
+        """Test empty plugin"""
+        config = 'IMAGE_FSTYPES = "wic"\nWKS_FILE = "test_empty_plugin.wks"\n'
+        self.append_config(config)
+        self.assertEqual(0, bitbake('core-image-minimal').status)
+        self.remove_config(config)
+
+        bb_vars = get_bb_vars(['DEPLOY_DIR_IMAGE', 'MACHINE'])
+        deploy_dir = bb_vars['DEPLOY_DIR_IMAGE']
+        machine = bb_vars['MACHINE']
+        image_path = os.path.join(deploy_dir, 'core-image-minimal-%s.wic' % machine)
+        self.assertEqual(True, os.path.exists(image_path))
+
+        sysroot = get_bb_var('RECIPE_SYSROOT_NATIVE', 'wic-tools')
+
+        # Fstype column from 'wic ls' should be empty for the second partition
+        # as listed in test_empty_plugin.wks
+        result = runCmd("wic ls %s -n %s | awk -F ' ' '{print $1 \" \" $5}' | grep '^2' | wc -w" % (image_path, sysroot))
+        self.assertEqual('1', result.output)
+
     @only_for_arch(['i586', 'i686', 'x86_64'])
     def test_biosplusefi_plugin_qemu(self):
         """Test biosplusefi plugin in qemu"""
diff --git a/poky/meta/lib/oeqa/selftest/context.py b/poky/meta/lib/oeqa/selftest/context.py
index dd3609c..1659926 100644
--- a/poky/meta/lib/oeqa/selftest/context.py
+++ b/poky/meta/lib/oeqa/selftest/context.py
@@ -34,7 +34,7 @@
         (builddir, newbuilddir) = self.setupfunc("-st", None, self.suite)
         ret = super().run(result)
         os.chdir(builddir)
-        if newbuilddir and ret.wasSuccessful():
+        if newbuilddir and ret.wasSuccessful() and self.removefunc:
             self.removefunc(newbuilddir)
 
 def removebuilddir(d):
@@ -54,7 +54,7 @@
     bb.utils.prunedir(d, ionice=True)
 
 class OESelftestTestContext(OETestContext):
-    def __init__(self, td=None, logger=None, machines=None, config_paths=None, newbuilddir=None):
+    def __init__(self, td=None, logger=None, machines=None, config_paths=None, newbuilddir=None, keep_builddir=None):
         super(OESelftestTestContext, self).__init__(td, logger)
 
         self.machines = machines
@@ -62,6 +62,11 @@
         self.config_paths = config_paths
         self.newbuilddir = newbuilddir
 
+        if keep_builddir:
+            self.removebuilddir = None
+        else:
+            self.removebuilddir = removebuilddir
+
     def setup_builddir(self, suffix, selftestdir, suite):
         builddir = os.environ['BUILDDIR']
         if not selftestdir:
@@ -119,9 +124,9 @@
         if processes:
             from oeqa.core.utils.concurrencytest import ConcurrentTestSuite
 
-            return ConcurrentTestSuite(suites, processes, self.setup_builddir, removebuilddir)
+            return ConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir)
         else:
-            return NonConcurrentTestSuite(suites, processes, self.setup_builddir, removebuilddir)
+            return NonConcurrentTestSuite(suites, processes, self.setup_builddir, self.removebuilddir)
 
     def runTests(self, processes=None, machine=None, skips=[]):
         if machine:
@@ -179,6 +184,9 @@
                 action='append', default=None,
                 help='Exclude all (unhidden) tests that match any of the specified tag(s). (exclude applies before select)')
 
+        parser.add_argument('-K', '--keep-builddir', action='store_true',
+                help='Keep the test build directory even if all tests pass')
+
         parser.add_argument('-B', '--newbuilddir', help='New build directory to use for tests.')
         parser.add_argument('-v', '--verbose', action='store_true')
         parser.set_defaults(func=self.run)
@@ -236,6 +244,7 @@
         self.tc_kwargs['init']['config_paths']['localconf'] = os.path.join(builddir, "conf/local.conf")
         self.tc_kwargs['init']['config_paths']['bblayers'] = os.path.join(builddir, "conf/bblayers.conf")
         self.tc_kwargs['init']['newbuilddir'] = args.newbuilddir
+        self.tc_kwargs['init']['keep_builddir'] = args.keep_builddir
 
         def tag_filter(tags):
             if args.exclude_tags:
diff --git a/poky/meta/lib/oeqa/utils/commands.py b/poky/meta/lib/oeqa/utils/commands.py
index 6c1535d..a71c16a 100644
--- a/poky/meta/lib/oeqa/utils/commands.py
+++ b/poky/meta/lib/oeqa/utils/commands.py
@@ -188,7 +188,10 @@
     # call sync around the tests to ensure the IO queue doesn't get too large, taking any IO
     # hit here rather than in bitbake shutdown.
     if sync:
+        p = os.environ['PATH']
+        os.environ['PATH'] = "/usr/bin:/bin:/usr/sbin:/sbin:" + p
         os.system("sync")
+        os.environ['PATH'] = p
 
     result.command = command
     result.status = cmd.status
diff --git a/poky/meta/recipes-bsp/grub/files/CVE-2020-14309-CVE-2020-14310-CVE-2020-14311-malloc-Use-overflow-checking-primitives-where-we-do-.patch b/poky/meta/recipes-bsp/grub/files/CVE-2020-14309-CVE-2020-14310-CVE-2020-14311-malloc-Use-overflow-checking-primitives-where-we-do-.patch
index 896a214..7214ead 100644
--- a/poky/meta/recipes-bsp/grub/files/CVE-2020-14309-CVE-2020-14310-CVE-2020-14311-malloc-Use-overflow-checking-primitives-where-we-do-.patch
+++ b/poky/meta/recipes-bsp/grub/files/CVE-2020-14309-CVE-2020-14310-CVE-2020-14311-malloc-Use-overflow-checking-primitives-where-we-do-.patch
@@ -30,7 +30,7 @@
 Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
 
 Upstream-Status: Backport
-CVE: CVE-2020-14309, CVE-2020-14310, CVE-2020-14311
+CVE: CVE-2020-14309 CVE-2020-14310 CVE-2020-14311
 
 Reference to upstream patch:
 https://git.savannah.gnu.org/cgit/grub.git/commit/?id=3f05d693d1274965ffbe4ba99080dc2c570944c6
diff --git a/poky/meta/recipes-bsp/grub/files/determinism.patch b/poky/meta/recipes-bsp/grub/files/determinism.patch
new file mode 100644
index 0000000..3c1f562
--- /dev/null
+++ b/poky/meta/recipes-bsp/grub/files/determinism.patch
@@ -0,0 +1,56 @@
+The output in moddep.lst generated from syminfo.lst using genmoddep.awk is
+not deterministic since the order of the dependencies on each line can vary
+depending on how awk sorts the values in the array.
+
+Be deterministic in the output by sorting the dependencies on each line.
+
+Also, the output of the SOURCES lines in grub-core/Makefile.core.am, generated
+from grub-core/Makefile.core.def with gentpl.py is not deterministic due to
+missing sorting of the list used to generate it. Add such a sort.
+
+Also ensure the generated unidata.c file is deterministic by sorting the
+keys of the dict.
+
+Upstream-Status: Pending
+Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: grub-2.04/grub-core/genmoddep.awk
+===================================================================
+--- grub-2.04.orig/grub-core/genmoddep.awk
++++ grub-2.04/grub-core/genmoddep.awk
+@@ -59,7 +59,9 @@ END {
+     }
+     modlist = ""
+     depcount[mod] = 0
+-    for (depmod in uniqmods) {
++    n = asorti(uniqmods, w)
++    for (i = 1; i <= n; i++) {
++      depmod = w[i]
+       modlist = modlist " " depmod;
+       inverse_dependencies[depmod] = inverse_dependencies[depmod] " " mod
+       depcount[mod]++
+Index: grub-2.04/gentpl.py
+===================================================================
+--- grub-2.04.orig/gentpl.py
++++ grub-2.04/gentpl.py
+@@ -568,6 +568,7 @@ def foreach_platform_value(defn, platfor
+     for group in RMAP[platform]:
+         for value in defn.find_all(group + suffix):
+             r.append(closure(value))
++    r.sort()
+     return ''.join(r)
+ 
+ def platform_conditional(platform, closure):
+Index: grub-2.04/util/import_unicode.py
+===================================================================
+--- grub-2.04.orig/util/import_unicode.py
++++ grub-2.04/util/import_unicode.py
+@@ -174,7 +174,7 @@ infile.close ()
+ 
+ outfile.write ("struct grub_unicode_arabic_shape grub_unicode_arabic_shapes[] = {\n ")
+ 
+-for x in arabicsubst:
++for x in sorted(arabicsubst):
+     try:
+         if arabicsubst[x]['join'] == "DUAL":
+             outfile.write ("{0x%x, 0x%x, 0x%x, 0x%x, 0x%x},\n " % (arabicsubst[x][0], arabicsubst[x][1], arabicsubst[x][2], arabicsubst[x][3], arabicsubst[x][4]))
diff --git a/poky/meta/recipes-bsp/grub/grub2.inc b/poky/meta/recipes-bsp/grub/grub2.inc
index d020103..49c869b 100644
--- a/poky/meta/recipes-bsp/grub/grub2.inc
+++ b/poky/meta/recipes-bsp/grub/grub2.inc
@@ -27,6 +27,7 @@
            file://script-Remove-unused-fields-from-grub_script_functio.patch \
            file://CVE-2020-15706-script-Avoid-a-use-after-free-when-redefining-a-func.patch \
            file://CVE-2020-15707-linux-Fix-integer-overflows-in-initrd-size-handling.patch \
+           file://determinism.patch \
 "
 SRC_URI[md5sum] = "5ce674ca6b2612d8939b9e6abed32934"
 SRC_URI[sha256sum] = "f10c85ae3e204dbaec39ae22fa3c5e99f0665417e91c2cb49b7e5031658ba6ea"
diff --git a/poky/meta/recipes-bsp/u-boot/u-boot-tools.inc b/poky/meta/recipes-bsp/u-boot/u-boot-tools.inc
index 8ae290a..4ed936a 100644
--- a/poky/meta/recipes-bsp/u-boot/u-boot-tools.inc
+++ b/poky/meta/recipes-bsp/u-boot/u-boot-tools.inc
@@ -23,6 +23,21 @@
 SED_CONFIG_EFI_aarch64 = ''
 
 do_compile () {
+	# Yes, this is crazy. If you build on a system with git < 2.14 from scratch, the tree will
+	# be marked as "dirty" and the version will include "-dirty", leading to a reproducibility problem.
+	# The issue is the inode count for Licnses/README changing due to do_populate_lic hardlinking a
+	# copy of the file. We avoid this by ensuring the index is updated with a "git diff" before the
+	# u-boot machinery tries to determine the version.
+	#
+	# build$ ../git/scripts/setlocalversion ../git
+	# ""
+	# build$ ln ../git/
+	# build$ ln ../git/README ../foo
+	# build$ ../git/scripts/setlocalversion ../git
+	# ""-dirty
+	# (i.e. creating a hardlink dirties the index)
+	cd ${S}; git diff; cd ${B}
+
 	oe_runmake -C ${S} sandbox_defconfig O=${B}
 
 	# Disable CONFIG_CMD_LICENSE, license.h is not used by tools and
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.9/0001-avoid-start-failure-with-bind-user.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.10/0001-avoid-start-failure-with-bind-user.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.9/0001-avoid-start-failure-with-bind-user.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.10/0001-avoid-start-failure-with-bind-user.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.9/0001-named-lwresd-V-and-start-log-hide-build-options.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.10/0001-named-lwresd-V-and-start-log-hide-build-options.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.9/0001-named-lwresd-V-and-start-log-hide-build-options.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.10/0001-named-lwresd-V-and-start-log-hide-build-options.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.9/bind-ensure-searching-for-json-headers-searches-sysr.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.10/bind-ensure-searching-for-json-headers-searches-sysr.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.9/bind-ensure-searching-for-json-headers-searches-sysr.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.10/bind-ensure-searching-for-json-headers-searches-sysr.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.9/bind9 b/poky/meta/recipes-connectivity/bind/bind-9.16.10/bind9
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.9/bind9
rename to poky/meta/recipes-connectivity/bind/bind-9.16.10/bind9
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.9/conf.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.10/conf.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.9/conf.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.10/conf.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.9/generate-rndc-key.sh b/poky/meta/recipes-connectivity/bind/bind-9.16.10/generate-rndc-key.sh
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.9/generate-rndc-key.sh
rename to poky/meta/recipes-connectivity/bind/bind-9.16.10/generate-rndc-key.sh
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.9/init.d-add-support-for-read-only-rootfs.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.10/init.d-add-support-for-read-only-rootfs.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.9/init.d-add-support-for-read-only-rootfs.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.10/init.d-add-support-for-read-only-rootfs.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.9/make-etc-initd-bind-stop-work.patch b/poky/meta/recipes-connectivity/bind/bind-9.16.10/make-etc-initd-bind-stop-work.patch
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.9/make-etc-initd-bind-stop-work.patch
rename to poky/meta/recipes-connectivity/bind/bind-9.16.10/make-etc-initd-bind-stop-work.patch
diff --git a/poky/meta/recipes-connectivity/bind/bind-9.16.9/named.service b/poky/meta/recipes-connectivity/bind/bind-9.16.10/named.service
similarity index 100%
rename from poky/meta/recipes-connectivity/bind/bind-9.16.9/named.service
rename to poky/meta/recipes-connectivity/bind/bind-9.16.10/named.service
diff --git a/poky/meta/recipes-connectivity/bind/bind_9.16.9.bb b/poky/meta/recipes-connectivity/bind/bind_9.16.10.bb
similarity index 97%
rename from poky/meta/recipes-connectivity/bind/bind_9.16.9.bb
rename to poky/meta/recipes-connectivity/bind/bind_9.16.10.bb
index be8a294..71194a6 100644
--- a/poky/meta/recipes-connectivity/bind/bind_9.16.9.bb
+++ b/poky/meta/recipes-connectivity/bind/bind_9.16.10.bb
@@ -19,7 +19,7 @@
            file://0001-avoid-start-failure-with-bind-user.patch \
            "
 
-SRC_URI[sha256sum] = "bcb292c4d738a46e3cbcb8afaa25ecf54f77652fa575135da9a2a1d525304a5a"
+SRC_URI[sha256sum] = "bc47fc019c6205e6a6bfb839c544a1472321df0537ba905b846a4cbffe3362b3"
 
 UPSTREAM_CHECK_URI = "https://ftp.isc.org/isc/bind9/"
 # stay at 9.16 follow the ESV versions divisible by 4
diff --git a/poky/meta/recipes-connectivity/dhcpcd/dhcpcd_9.3.2.bb b/poky/meta/recipes-connectivity/dhcpcd/dhcpcd_9.4.0.bb
similarity index 95%
rename from poky/meta/recipes-connectivity/dhcpcd/dhcpcd_9.3.2.bb
rename to poky/meta/recipes-connectivity/dhcpcd/dhcpcd_9.4.0.bb
index cca60dd..56fcf5c 100644
--- a/poky/meta/recipes-connectivity/dhcpcd/dhcpcd_9.3.2.bb
+++ b/poky/meta/recipes-connectivity/dhcpcd/dhcpcd_9.4.0.bb
@@ -17,7 +17,7 @@
            file://dhcpcd@.service \
            "
 
-SRC_URI[sha256sum] = "6d49af5e766a2515e6366e4f669663df04ecdf90a1a60ddb1d7a2feb4b5d2566"
+SRC_URI[sha256sum] = "41a69297f380bf15ee8f94f73154f8c2bca7157a087c0d5aca8de000ba1d4513"
 
 inherit pkgconfig autotools-brokensep systemd useradd
 
diff --git a/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb b/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb
index adf6d44..09a196a 100644
--- a/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb
+++ b/poky/meta/recipes-connectivity/inetutils/inetutils_1.9.4.bb
@@ -71,6 +71,7 @@
          install -m 0755 -d ${D}${base_bindir}
          mv ${D}${bindir}/ping* ${D}${base_bindir}/
          mv ${D}${bindir}/hostname ${D}${base_bindir}/
+         mv ${D}${bindir}/dnsdomainname ${D}${base_bindir}/
     fi
     mv ${D}${bindir}/ifconfig ${D}${base_sbindir}/
     mv ${D}${libexecdir}/syslogd ${D}${base_sbindir}/
@@ -118,8 +119,9 @@
 NOAUTOPACKAGEDEBUG = "1"
 
 ALTERNATIVE_PRIORITY = "79"
-ALTERNATIVE_${PN} = "whois"
+ALTERNATIVE_${PN} = "whois dnsdomainname"
 ALTERNATIVE_LINK_NAME[uucpd]  = "${sbindir}/in.uucpd"
+ALTERNATIVE_LINK_NAME[dnsdomainname]  = "${base_bindir}/dnsdomainname"
 
 ALTERNATIVE_PRIORITY_${PN}-logger = "60"
 ALTERNATIVE_${PN}-logger = "logger"
diff --git a/poky/meta/recipes-connectivity/iproute2/iproute2.inc b/poky/meta/recipes-connectivity/iproute2/iproute2.inc
index 403d264..7a22fe9 100644
--- a/poky/meta/recipes-connectivity/iproute2/iproute2.inc
+++ b/poky/meta/recipes-connectivity/iproute2/iproute2.inc
@@ -20,11 +20,13 @@
 PACKAGECONFIG[elf] = ",,elfutils,"
 PACKAGECONFIG[devlink] = ",,libmnl,"
 
+IPROUTE2_MAKE_SUBDIRS = "lib tc ip bridge misc genl ${@bb.utils.filter('PACKAGECONFIG', 'devlink tipc', d)}"
+
 EXTRA_OEMAKE = "\
     CC='${CC}' \
     KERNEL_INCLUDE=${STAGING_INCDIR} \
     DOCDIR=${docdir}/iproute2 \
-    SUBDIRS='lib tc ip bridge misc genl ${@bb.utils.filter('PACKAGECONFIG', 'devlink tipc', d)}' \
+    SUBDIRS='${IPROUTE2_MAKE_SUBDIRS}' \
     SBINDIR='${base_sbindir}' \
     LIBDIR='${libdir}' \
 "
diff --git a/poky/meta/recipes-connectivity/kea/kea_1.7.10.bb b/poky/meta/recipes-connectivity/kea/kea_1.8.2.bb
similarity index 96%
rename from poky/meta/recipes-connectivity/kea/kea_1.7.10.bb
rename to poky/meta/recipes-connectivity/kea/kea_1.8.2.bb
index c9a1190..3dc4f6a 100644
--- a/poky/meta/recipes-connectivity/kea/kea_1.7.10.bb
+++ b/poky/meta/recipes-connectivity/kea/kea_1.8.2.bb
@@ -19,7 +19,7 @@
            file://fix_pid_keactrl.patch \
            file://0001-src-lib-log-logger_unittest_support.cc-do-not-write-.patch \
            "
-SRC_URI[sha256sum] = "4e121f0e58b175a827581c69cb1d60778647049fa47f142940dddc9ce58f3c82"
+SRC_URI[sha256sum] = "486ca7abedb9d6fdf8e4344ad8688d1171f2ef0f5506d118988aadeae80a1d39"
 
 inherit autotools systemd update-rc.d upstream-version-is-even
 
diff --git a/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb b/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb
index 0b0bbab..7dccc15 100644
--- a/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb
+++ b/poky/meta/recipes-connectivity/mobile-broadband-provider-info/mobile-broadband-provider-info_git.bb
@@ -3,8 +3,8 @@
 SECTION = "network"
 LICENSE = "PD"
 LIC_FILES_CHKSUM = "file://COPYING;md5=87964579b2a8ece4bc6744d2dc9a8b04"
-SRCREV = "22b49d86fb7aded2c195a9d49e5924da696b3228"
-PV = "20190618"
+SRCREV = "90f3fe28aa25135b7e4a54a7816388913bfd4a2a"
+PV = "20201225"
 PE = "1"
 
 SRC_URI = "git://gitlab.gnome.org/GNOME/mobile-broadband-provider-info.git;protocol=https"
diff --git a/poky/meta/recipes-connectivity/openssh/openssh_8.4p1.bb b/poky/meta/recipes-connectivity/openssh/openssh_8.4p1.bb
index 676a8a6..688fc8a 100644
--- a/poky/meta/recipes-connectivity/openssh/openssh_8.4p1.bb
+++ b/poky/meta/recipes-connectivity/openssh/openssh_8.4p1.bb
@@ -67,8 +67,8 @@
                 --disable-strip \
                 "
 
-# musl doesn't implement wtmp/utmp
-EXTRA_OECONF_append_libc-musl = " --disable-wtmp"
+# musl doesn't implement wtmp/utmp and logwtmp
+EXTRA_OECONF_append_libc-musl = " --disable-wtmp --disable-lastlog"
 
 # Since we do not depend on libbsd, we do not want configure to use it
 # just because it finds libutil.h.  But, specifying --disable-libutil
diff --git a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1h.bb b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1i.bb
similarity index 95%
rename from poky/meta/recipes-connectivity/openssl/openssl_1.1.1h.bb
rename to poky/meta/recipes-connectivity/openssl/openssl_1.1.1i.bb
index 1827167..c63ba3c 100644
--- a/poky/meta/recipes-connectivity/openssl/openssl_1.1.1h.bb
+++ b/poky/meta/recipes-connectivity/openssl/openssl_1.1.1i.bb
@@ -23,7 +23,7 @@
            file://environment.d-openssl.sh \
            "
 
-SRC_URI[sha256sum] = "5c9ca8774bd7b03e5784f26ae9e9e6d749c9da2438545077e6b3d755a06595d9"
+SRC_URI[sha256sum] = "e8be6a35fe41d10603c3cc635e93289ed00bf34b79671a3a4de64fcee00d5242"
 
 inherit lib_package multilib_header multilib_script ptest
 MULTILIB_SCRIPTS = "${PN}-bin:${bindir}/c_rehash"
@@ -113,6 +113,9 @@
 	linux-sparc | linux-supersparc)
 		target=linux-sparcv9
 		;;
+	mingw32-x86_64)
+		target=mingw64
+		;;
 	esac
 
 	useprefix=${prefix}
@@ -195,6 +198,8 @@
                       ${libdir}/ssl-1.1/openssl.cnf* \
                       "
 FILES_${PN}-engines = "${libdir}/engines-1.1"
+# ${prefix} comes from what we pass into --prefix at configure time (which is used for INSTALLTOP)
+FILES_${PN}-engines_append_mingw32_class-nativesdk = " ${prefix}${libdir}/engines-1_1"
 FILES_${PN}-misc = "${libdir}/ssl-1.1/misc ${bindir}/c_rehash"
 FILES_${PN} =+ "${libdir}/ssl-1.1/*"
 FILES_${PN}_append_class-nativesdk = " ${SDKPATHNATIVE}/environment-setup.d/openssl.sh"
diff --git a/poky/meta/recipes-connectivity/ppp/ppp/0001-Fix-build-with-musl.patch b/poky/meta/recipes-connectivity/ppp/ppp/0001-Fix-build-with-musl.patch
deleted file mode 100644
index 6529136..0000000
--- a/poky/meta/recipes-connectivity/ppp/ppp/0001-Fix-build-with-musl.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From e50cdaed07e51f2508f94eb1f34fe43776e4ca78 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Fri, 29 May 2015 14:57:05 -0700
-Subject: [PATCH] Fix build with musl
-
-There are several assumption about glibc
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Pending
----
- include/net/ppp_defs.h                  | 2 ++
- pppd/Makefile.linux                     | 2 +-
- pppd/plugins/rp-pppoe/config.h          | 3 ++-
- pppd/plugins/rp-pppoe/plugin.c          | 1 -
- pppd/plugins/rp-pppoe/pppoe-discovery.c | 8 ++++----
- pppd/plugins/rp-pppoe/pppoe.h           | 2 +-
- pppd/sys-linux.c                        | 3 ++-
- 7 files changed, 12 insertions(+), 9 deletions(-)
-
-diff --git a/include/net/ppp_defs.h b/include/net/ppp_defs.h
-index b06eda5..dafa36c 100644
---- a/include/net/ppp_defs.h
-+++ b/include/net/ppp_defs.h
-@@ -38,6 +38,8 @@
- #ifndef _PPP_DEFS_H_
- #define _PPP_DEFS_H_
- 
-+#include <sys/time.h>
-+
- /*
-  * The basic PPP frame.
-  */
-diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
-index 4e485a1..76411bc 100644
---- a/pppd/Makefile.linux
-+++ b/pppd/Makefile.linux
-@@ -131,7 +131,7 @@ LIBS	+= -lcrypt
- endif
- 
- ifdef USE_LIBUTIL
--CFLAGS	+= -DHAVE_LOGWTMP=1
-+#CFLAGS	+= -DHAVE_LOGWTMP=1
- LIBS	+= -lutil
- endif
- 
-diff --git a/pppd/plugins/rp-pppoe/config.h b/pppd/plugins/rp-pppoe/config.h
-index a708859..4a16a88 100644
---- a/pppd/plugins/rp-pppoe/config.h
-+++ b/pppd/plugins/rp-pppoe/config.h
-@@ -78,8 +78,9 @@
- #define HAVE_NET_IF_ARP_H 1
- 
- /* Define if you have the <net/ethernet.h> header file.  */
-+#ifdef __GLIBC__
- #define HAVE_NET_ETHERNET_H 1
--
-+#endif
- /* Define if you have the <net/if.h> header file.  */
- #define HAVE_NET_IF_H 1
- 
-diff --git a/pppd/plugins/rp-pppoe/plugin.c b/pppd/plugins/rp-pppoe/plugin.c
-index 44e0c31..93c0906 100644
---- a/pppd/plugins/rp-pppoe/plugin.c
-+++ b/pppd/plugins/rp-pppoe/plugin.c
-@@ -46,7 +46,6 @@ static char const RCSID[] =
- #include <unistd.h>
- #include <fcntl.h>
- #include <signal.h>
--#include <net/ethernet.h>
- #include <net/if_arp.h>
- #include <linux/ppp_defs.h>
- #include <linux/if_pppox.h>
-diff --git a/pppd/plugins/rp-pppoe/pppoe-discovery.c b/pppd/plugins/rp-pppoe/pppoe-discovery.c
-index f19c6d8..f45df2c 100644
---- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
-+++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
-@@ -29,10 +29,6 @@
- #include <linux/if_packet.h>
- #endif
- 
--#ifdef HAVE_NET_ETHERNET_H
--#include <net/ethernet.h>
--#endif
--
- #ifdef HAVE_ASM_TYPES_H
- #include <asm/types.h>
- #endif
-diff --git a/pppd/plugins/rp-pppoe/pppoe.h b/pppd/plugins/rp-pppoe/pppoe.h
-index a4e7d5c..de191c8 100644
---- a/pppd/plugins/rp-pppoe/pppoe.h
-+++ b/pppd/plugins/rp-pppoe/pppoe.h
-@@ -90,7 +90,7 @@ typedef unsigned long UINT32_t;
- #ifdef HAVE_SYS_SOCKET_H
- #include <sys/socket.h>
- #endif
--#ifndef HAVE_SYS_DLPI_H
-+#if !defined HAVE_SYS_DLPI_H && defined HAVE_NET_ETHERNET_H
- #include <netinet/if_ether.h>
- #endif
- #endif
-diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
-index a0531e9..84ee394 100644
---- a/pppd/sys-linux.c
-+++ b/pppd/sys-linux.c
-@@ -112,7 +112,7 @@
- #include <linux/types.h>
- #include <linux/if.h>
- #include <linux/if_arp.h>
--#include <linux/route.h>
-+/* #include <linux/route.h> */
- #include <linux/if_ether.h>
- #endif
- #include <netinet/in.h>
-@@ -145,6 +145,7 @@
- #endif
- 
- #ifdef INET6
-+#include <net/route.h>
- #ifndef _LINUX_IN6_H
- /*
-  *    This is in linux/include/net/ipv6.h.
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-connectivity/ppp/ppp/0001-ppp-Remove-unneeded-include.patch b/poky/meta/recipes-connectivity/ppp/ppp/0001-ppp-Remove-unneeded-include.patch
deleted file mode 100644
index a32f89f..0000000
--- a/poky/meta/recipes-connectivity/ppp/ppp/0001-ppp-Remove-unneeded-include.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-commit cd90fd147844a0cfec101f1e2db7a3c59d236621
-Author: Jussi Kukkonen <jussi.kukkonen@intel.com>
-Date:   Wed Dec 28 14:11:22 2016 +0200
-
-pppol2tp plugin: Remove unneeded include
-
-The include is not required and will break compile on musl libc with
-    
-| In file included from pppol2tp.c:34:0:
-| /usr/include/linux/if.h:97:2: error: expected identifier before numeric constant
-|   IFF_LOWER_UP   = 1<<16, /* __volatile__ */
-
-Patch originally from Khem Raj.
-
-Upstream-Status: Pending [https://github.com/paulusmack/ppp/issues/73]
-Signed-off-by: Jussi Kukkonen <jussi.kukkonen@intel.com>
-
-diff --git a/pppd/plugins/pppol2tp/openl2tp.c b/pppd/plugins/pppol2tp/openl2tp.c
-index 9643b96..458316b 100644
---- a/pppd/plugins/pppol2tp/openl2tp.c
-+++ b/pppd/plugins/pppol2tp/openl2tp.c
-@@ -47,7 +47,6 @@
- #include <linux/if_ether.h>
- #include <linux/ppp_defs.h>
- #include <linux/if_ppp.h>
--#include <linux/if_pppox.h>
- #include <linux/if_pppol2tp.h>
- 
- #include "l2tp_event.h"
-diff --git a/pppd/plugins/pppol2tp/pppol2tp.c b/pppd/plugins/pppol2tp/pppol2tp.c
-index 0e28606..4f6d98c 100644
---- a/pppd/plugins/pppol2tp/pppol2tp.c
-+++ b/pppd/plugins/pppol2tp/pppol2tp.c
-@@ -46,7 +46,6 @@
- #include <linux/if_ether.h>
- #include <linux/ppp_defs.h>
- #include <linux/if_ppp.h>
--#include <linux/if_pppox.h>
- #include <linux/if_pppol2tp.h>
- 
- /* should be added to system's socket.h... */
----
-
diff --git a/poky/meta/recipes-connectivity/ppp/ppp/0001-pppd-Fix-bounds-check-in-EAP-code.patch b/poky/meta/recipes-connectivity/ppp/ppp/0001-pppd-Fix-bounds-check-in-EAP-code.patch
deleted file mode 100644
index b7ba7ba..0000000
--- a/poky/meta/recipes-connectivity/ppp/ppp/0001-pppd-Fix-bounds-check-in-EAP-code.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 8d7970b8f3db727fe798b65f3377fe6787575426 Mon Sep 17 00:00:00 2001
-From: Paul Mackerras <paulus@ozlabs.org>
-Date: Mon, 3 Feb 2020 15:53:28 +1100
-Subject: [PATCH] pppd: Fix bounds check in EAP code
-
-Given that we have just checked vallen < len, it can never be the case
-that vallen >= len + sizeof(rhostname).  This fixes the check so we
-actually avoid overflowing the rhostname array.
-
-Reported-by: Ilja Van Sprundel <ivansprundel@ioactive.com>
-Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
-
-Upstream-Status: Backport
-[https://github.com/paulusmack/ppp/commit/8d7970b8f3db727fe798b65f3377fe6787575426]
-
-CVE: CVE-2020-8597
-
-Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
----
- pppd/eap.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/pppd/eap.c b/pppd/eap.c
-index 94407f5..1b93db0 100644
---- a/pppd/eap.c
-+++ b/pppd/eap.c
-@@ -1420,7 +1420,7 @@ int len;
- 		}
- 
- 		/* Not so likely to happen. */
--		if (vallen >= len + sizeof (rhostname)) {
-+		if (len - vallen >= sizeof (rhostname)) {
- 			dbglog("EAP: trimming really long peer name down");
- 			BCOPY(inp + vallen, rhostname, sizeof (rhostname) - 1);
- 			rhostname[sizeof (rhostname) - 1] = '\0';
-@@ -1846,7 +1846,7 @@ int len;
- 		}
- 
- 		/* Not so likely to happen. */
--		if (vallen >= len + sizeof (rhostname)) {
-+		if (len - vallen >= sizeof (rhostname)) {
- 			dbglog("EAP: trimming really long peer name down");
- 			BCOPY(inp + vallen, rhostname, sizeof (rhostname) - 1);
- 			rhostname[sizeof (rhostname) - 1] = '\0';
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-connectivity/ppp/ppp/copts.patch b/poky/meta/recipes-connectivity/ppp/ppp/copts.patch
deleted file mode 100644
index 53ff06e..0000000
--- a/poky/meta/recipes-connectivity/ppp/ppp/copts.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-ppp: use build system CFLAGS when compiling
-
-Upstream-Status: Pending
-
-Override the hard-coded COPTS make variables with
-CFLAGS.  Add COPTS into one Makefile that did not
-use it.
-
-Signed-off-by: Joe Slater <jslater@windriver.com>
-
---- a/pppd/plugins/radius/Makefile.linux
-+++ b/pppd/plugins/radius/Makefile.linux
-@@ -12,7 +12,7 @@ VERSION = $(shell awk -F '"' '/VERSION/ 
- INSTALL	= install
- 
- PLUGIN=radius.so radattr.so radrealms.so
--CFLAGS=-I. -I../.. -I../../../include -O2 -fPIC -DRC_LOG_FACILITY=LOG_DAEMON
-+CFLAGS=-I. -I../.. -I../../../include $(COPTS) -fPIC -DRC_LOG_FACILITY=LOG_DAEMON
- 
- # Uncomment the next line to include support for Microsoft's
- # MS-CHAP authentication protocol.
diff --git a/poky/meta/recipes-connectivity/ppp/ppp/fix-CVE-2015-3310.patch b/poky/meta/recipes-connectivity/ppp/ppp/fix-CVE-2015-3310.patch
deleted file mode 100644
index c5a0be8..0000000
--- a/poky/meta/recipes-connectivity/ppp/ppp/fix-CVE-2015-3310.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-ppp: Buffer overflow in radius plugin
-
-From: https://bugs.debian.org/cgi-bin/bugreport.cgi?msg=5;bug=782450
-
-Upstream-Status: Backport
-CVE: CVE-2015-3310
-
-On systems with more than 65535 processes running, pppd aborts when
-sending a "start" accounting message to the RADIUS server because of a
-buffer overflow in rc_mksid.
-
-The process id is used in rc_mksid to generate a pseudo-unique string,
-assuming that the hex representation of the pid will be at most 4
-characters (FFFF). __sprintf_chk(), used when compiling with
-optimization levels greater than 0 and FORTIFY_SOURCE, detects the
-buffer overflow and makes pppd crash.
-
-The following patch fixes the problem.
-
---- ppp-2.4.6.orig/pppd/plugins/radius/util.c
-+++ ppp-2.4.6/pppd/plugins/radius/util.c
-@@ -77,7 +77,7 @@ rc_mksid (void)
-   static unsigned short int cnt = 0;
-   sprintf (buf, "%08lX%04X%02hX",
- 	   (unsigned long int) time (NULL),
--	   (unsigned int) getpid (),
-+	   (unsigned int) getpid () % 65535,
- 	   cnt & 0xFF);
-   cnt++;
-   return buf;
diff --git a/poky/meta/recipes-connectivity/ppp/ppp/makefile-remove-hard-usr-reference.patch b/poky/meta/recipes-connectivity/ppp/ppp/makefile-remove-hard-usr-reference.patch
deleted file mode 100644
index 614a474..0000000
--- a/poky/meta/recipes-connectivity/ppp/ppp/makefile-remove-hard-usr-reference.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 505705d0e1b55ce3fdc10d0e5eab5488f869adb6 Mon Sep 17 00:00:00 2001
-From: Andreas Oberritter <obi@opendreambox.org>
-Date: Thu, 1 Jul 2010 14:34:12 +0800
-Subject: [PATCH] ppp: Upgraded to version 2.4.5
-
-The patch comes from OpenEmbedded.
-Rebased for ppp-2.4.5. Dongxiao Xu <dongxiao.xu@intel.com>
-
-Updated from OE-Classic to include the pcap hunk.
-Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
-
-Upstream-Status: Inappropriate [configuration]
-
----
- pppd/Makefile.linux | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
-index 4e485a1..44c4193 100644
---- a/pppd/Makefile.linux
-+++ b/pppd/Makefile.linux
-@@ -188,10 +188,10 @@ LIBS	+= -ldl
- endif
- 
- ifdef FILTER
--ifneq ($(wildcard /usr/include/pcap-bpf.h),)
-+#ifneq ($(wildcard /usr/include/pcap-bpf.h),)
- LIBS    += -lpcap
- CFLAGS  += -DPPP_FILTER
--endif
-+#endif
- endif
- 
- ifdef HAVE_INET6
diff --git a/poky/meta/recipes-connectivity/ppp/ppp/makefile.patch b/poky/meta/recipes-connectivity/ppp/ppp/makefile.patch
deleted file mode 100644
index 25b8ded..0000000
--- a/poky/meta/recipes-connectivity/ppp/ppp/makefile.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From f7fb1d1abfa6d208fb40fca1602e0c488108f1b5 Mon Sep 17 00:00:00 2001
-From: Richard Purdie <richard@openedhand.com>
-Date: Wed, 31 Aug 2005 10:45:47 +0000
-Subject: [PATCH] Initial population
-
-The patch comes from OpenEmbedded
-Rebased for ppp-2.4.5. Dongxiao Xu <dongxiao.xu@intel.com>
-
-Upstream-Status: Inappropriate [configuration]
-
----
- chat/Makefile.linux                  |  2 +-
- pppd/Makefile.linux                  |  4 ++--
- pppd/plugins/radius/Makefile.linux   | 10 +++++-----
- pppd/plugins/rp-pppoe/Makefile.linux |  4 ++--
- pppdump/Makefile.linux               |  2 +-
- pppstats/Makefile.linux              |  2 +-
- 6 files changed, 12 insertions(+), 12 deletions(-)
-
-diff --git a/chat/Makefile.linux b/chat/Makefile.linux
-index 0732ec8..f082dab 100644
---- a/chat/Makefile.linux
-+++ b/chat/Makefile.linux
-@@ -25,7 +25,7 @@ chat.o:	chat.c
- 
- install: chat
- 	mkdir -p $(BINDIR) $(MANDIR)
--	$(INSTALL) -s -c chat $(BINDIR)
-+	$(INSTALL) -c chat $(BINDIR)
- 	$(INSTALL) -c -m 644 chat.8 $(MANDIR)
- 
- clean:
-diff --git a/pppd/Makefile.linux b/pppd/Makefile.linux
-index 9664f70..4e485a1 100644
---- a/pppd/Makefile.linux
-+++ b/pppd/Makefile.linux
-@@ -107,7 +107,7 @@ ifdef USE_SRP
- CFLAGS	+= -DUSE_SRP -DOPENSSL -I/usr/local/ssl/include
- LIBS	+= -lsrp -L/usr/local/ssl/lib -lcrypto
- TARGETS	+= srp-entry
--EXTRAINSTALL = $(INSTALL) -s -c -m 555 srp-entry $(BINDIR)/srp-entry
-+EXTRAINSTALL = $(INSTALL) -c -m 555 srp-entry $(BINDIR)/srp-entry
- MANPAGES += srp-entry.8
- EXTRACLEAN += srp-entry.o
- NEEDDES=y
-@@ -219,7 +219,7 @@ all: $(TARGETS)
- install: pppd
- 	mkdir -p $(BINDIR) $(MANDIR)
- 	$(EXTRAINSTALL)
--	$(INSTALL) -s -c -m 555 pppd $(BINDIR)/pppd
-+	$(INSTALL) -c -m 555 pppd $(BINDIR)/pppd
- 	if chgrp pppusers $(BINDIR)/pppd 2>/dev/null; then \
- 	  chmod o-rx,u+s $(BINDIR)/pppd; fi
- 	$(INSTALL) -c -m 444 pppd.8 $(MANDIR)
-diff --git a/pppd/plugins/radius/Makefile.linux b/pppd/plugins/radius/Makefile.linux
-index e702263..af57ae3 100644
---- a/pppd/plugins/radius/Makefile.linux
-+++ b/pppd/plugins/radius/Makefile.linux
-@@ -36,11 +36,11 @@ all: $(PLUGIN)
- 
- install: all
- 	$(INSTALL) -d -m 755 $(LIBDIR)
--	$(INSTALL) -s -c -m 755 radius.so $(LIBDIR)
--	$(INSTALL) -s -c -m 755 radattr.so $(LIBDIR)
--	$(INSTALL) -s -c -m 755 radrealms.so $(LIBDIR)
--	$(INSTALL) -c -m 444 pppd-radius.8 $(MANDIR)
--	$(INSTALL) -c -m 444 pppd-radattr.8 $(MANDIR)
-+	$(INSTALL) -c -m 755 radius.so $(LIBDIR)
-+	$(INSTALL) -c -m 755 radattr.so $(LIBDIR)
-+	$(INSTALL) -c -m 755 radrealms.so $(LIBDIR)
-+	$(INSTALL) -m 444 pppd-radius.8 $(MANDIR)
-+	$(INSTALL) -m 444 pppd-radattr.8 $(MANDIR)
- 
- radius.so: radius.o libradiusclient.a
- 	$(CC) $(LDFLAGS) -o radius.so -shared radius.o libradiusclient.a
-diff --git a/pppd/plugins/rp-pppoe/Makefile.linux b/pppd/plugins/rp-pppoe/Makefile.linux
-index 749ccc2..2c93f4a 100644
---- a/pppd/plugins/rp-pppoe/Makefile.linux
-+++ b/pppd/plugins/rp-pppoe/Makefile.linux
-@@ -43,9 +43,9 @@ rp-pppoe.so: plugin.o discovery.o if.o common.o
- 
- install: all
- 	$(INSTALL) -d -m 755 $(LIBDIR)
--	$(INSTALL) -s -c -m 4550 rp-pppoe.so $(LIBDIR)
-+	$(INSTALL) -c -m 4550 rp-pppoe.so $(LIBDIR)
- 	$(INSTALL) -d -m 755 $(BINDIR)
--	$(INSTALL) -s -c -m 555 pppoe-discovery $(BINDIR)
-+	$(INSTALL) -c -m 555 pppoe-discovery $(BINDIR)
- 
- clean:
- 	rm -f *.o *.so pppoe-discovery
-diff --git a/pppdump/Makefile.linux b/pppdump/Makefile.linux
-index cdf7ac4..0457561 100644
---- a/pppdump/Makefile.linux
-+++ b/pppdump/Makefile.linux
-@@ -17,5 +17,5 @@ clean:
- 
- install:
- 	mkdir -p $(BINDIR) $(MANDIR)
--	$(INSTALL) -s -c pppdump $(BINDIR)
-+	$(INSTALL) -c pppdump $(BINDIR)
- 	$(INSTALL) -c -m 444 pppdump.8 $(MANDIR)
-diff --git a/pppstats/Makefile.linux b/pppstats/Makefile.linux
-index 71afbe6..1819370 100644
---- a/pppstats/Makefile.linux
-+++ b/pppstats/Makefile.linux
-@@ -22,7 +22,7 @@ all: pppstats
- 
- install: pppstats
- 	-mkdir -p $(MANDIR)
--	$(INSTALL) -s -c pppstats $(BINDIR)
-+	$(INSTALL) -c pppstats $(BINDIR)
- 	$(INSTALL) -c -m 444 pppstats.8 $(MANDIR)
- 
- pppstats: $(PPPSTATSRCS)
diff --git a/poky/meta/recipes-connectivity/ppp/ppp/makefix.patch b/poky/meta/recipes-connectivity/ppp/ppp/makefix.patch
new file mode 100644
index 0000000..9471df3
--- /dev/null
+++ b/poky/meta/recipes-connectivity/ppp/ppp/makefix.patch
@@ -0,0 +1,40 @@
+We were seeing reproducibility issues where one host would use the internal 
+logwtmp wrapper, another would use the one in libutil. The issue was that in
+some cases the "\#include" was making it to CC, in others, "#include". The
+issue seems to be related to shell escaping.
+
+The root cause looks to be:
+http://git.savannah.gnu.org/cgit/make.git/commit/?id=c6966b323811c37acedff05b576b907b06aea5f4
+
+Instead of relying on shell quoting, use make to indirect the variable
+and avoid the problem.
+
+See https://github.com/paulusmack/ppp/issues/233
+
+Upstream-Status: Backport [https://github.com/paulusmack/ppp/commit/b4430f7092ececdff2504d5f3393a4c6528c3686]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: ppp-2.4.9/pppd/Makefile.linux
+===================================================================
+--- ppp-2.4.9.orig/pppd/Makefile.linux
++++ ppp-2.4.9/pppd/Makefile.linux
+@@ -80,7 +80,8 @@ PLUGIN=y
+ #USE_SRP=y
+ 
+ # Use libutil; test if logwtmp is declared in <utmp.h> to detect
+-ifeq ($(shell echo '\#include <utmp.h>' | $(CC) -E - 2>/dev/null | grep -q logwtmp && echo yes),yes)
++UTMPHEADER = "\#include <utmp.h>"
++ifeq ($(shell echo $(UTMPHEADER) | $(CC) -E - 2>/dev/null | grep -q logwtmp && echo yes),yes)
+ USE_LIBUTIL=y
+ endif
+ 
+@@ -143,7 +144,8 @@ CFLAGS   += -DHAS_SHADOW
+ #LIBS     += -lshadow $(LIBS)
+ endif
+ 
+-ifeq ($(shell echo '\#include <crypt.h>' | $(CC) -E - >/dev/null 2>&1 && echo yes),yes)
++CRYPTHEADER = "\#include <utmp.h>"
++ifeq ($(shell echo $(CRYPTHEADER) | $(CC) -E - >/dev/null 2>&1 && echo yes),yes)
+ CFLAGS  += -DHAVE_CRYPT_H=1
+ LIBS	+= -lcrypt
+ endif
diff --git a/poky/meta/recipes-connectivity/ppp/ppp/pppd-resolv-varrun.patch b/poky/meta/recipes-connectivity/ppp/ppp/pppd-resolv-varrun.patch
deleted file mode 100644
index a72414f..0000000
--- a/poky/meta/recipes-connectivity/ppp/ppp/pppd-resolv-varrun.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-The patch comes from OpenEmbedded
-Rebased for ppp-2.4.5. Dongxiao Xu <dongxiao.xu@intel.com>
-
-Upstream-Status: Inappropriate [embedded specific]
-
-diff -ruN ppp-2.4.5-orig/pppd/ipcp.c ppp-2.4.5/pppd/ipcp.c
---- ppp-2.4.5-orig/pppd/ipcp.c	2010-06-30 15:51:12.050166398 +0800
-+++ ppp-2.4.5/pppd/ipcp.c	2010-06-30 17:02:33.930393283 +0800
-@@ -55,6 +55,8 @@
- #include <sys/socket.h>
- #include <netinet/in.h>
- #include <arpa/inet.h>
-+#include <sys/stat.h>
-+#include <unistd.h>
- 
- #include "pppd.h"
- #include "fsm.h"
-@@ -2095,6 +2097,14 @@
-     u_int32_t peerdns1, peerdns2;
- {
-     FILE *f;
-+    struct stat dirinfo;
-+
-+    if(stat(_PATH_OUTDIR, &dirinfo)) {
-+        if(mkdir(_PATH_OUTDIR, 0775)) {
-+            error("Failed to create directory %s: %m", _PATH_OUTDIR);
-+            return;
-+        }
-+    }
- 
-     f = fopen(_PATH_RESOLV, "w");
-     if (f == NULL) {
-diff -ruN ppp-2.4.5-orig/pppd/pathnames.h ppp-2.4.5/pppd/pathnames.h
---- ppp-2.4.5-orig/pppd/pathnames.h	2010-06-30 15:51:12.043682063 +0800
-+++ ppp-2.4.5/pppd/pathnames.h	2010-06-30 17:03:20.594371055 +0800
-@@ -30,7 +30,8 @@
- #define _PATH_TTYOPT	 _ROOT_PATH "/etc/ppp/options."
- #define _PATH_CONNERRS	 _ROOT_PATH "/etc/ppp/connect-errors"
- #define _PATH_PEERFILES	 _ROOT_PATH "/etc/ppp/peers/"
--#define _PATH_RESOLV	 _ROOT_PATH "/etc/ppp/resolv.conf"
-+#define _PATH_OUTDIR	_ROOT_PATH _PATH_VARRUN "/ppp"
-+#define _PATH_RESOLV	_PATH_OUTDIR "/resolv.conf"
- 
- #define _PATH_USEROPT	 ".ppprc"
- #define	_PATH_PSEUDONYM	 ".ppp_pseudonym"
diff --git a/poky/meta/recipes-connectivity/ppp/ppp_2.4.8.bb b/poky/meta/recipes-connectivity/ppp/ppp_2.4.9.bb
similarity index 85%
rename from poky/meta/recipes-connectivity/ppp/ppp_2.4.8.bb
rename to poky/meta/recipes-connectivity/ppp/ppp_2.4.9.bb
index f9c60d6..a78992f 100644
--- a/poky/meta/recipes-connectivity/ppp/ppp_2.4.8.bb
+++ b/poky/meta/recipes-connectivity/ppp/ppp_2.4.9.bb
@@ -12,9 +12,7 @@
                     file://chat/chat.c;beginline=1;endline=15;md5=0d374b8545ee5c62d7aff1acbd38add2"
 
 SRC_URI = "https://download.samba.org/pub/${BPN}/${BP}.tar.gz \
-           file://makefile.patch \
-           file://pppd-resolv-varrun.patch \
-           file://makefile-remove-hard-usr-reference.patch \
+           file://makefix.patch \
            file://pon \
            file://poff \
            file://init \
@@ -22,26 +20,18 @@
            file://ip-down \
            file://08setupdns \
            file://92removedns \
-           file://copts.patch \
            file://pap \
            file://ppp_on_boot \
            file://provider \
            file://ppp@.service \
-           file://fix-CVE-2015-3310.patch \
-           file://0001-ppp-Remove-unneeded-include.patch \
-           file://0001-pppd-Fix-bounds-check-in-EAP-code.patch \
            "
 
-SRC_URI_append_libc-musl = "\
-           file://0001-Fix-build-with-musl.patch \
-"
-SRC_URI[md5sum] = "2ca8342b9804be15103fd3f687af701c"
-SRC_URI[sha256sum] = "f6bf89beae26b2943dff8f1003533d6a5a4909a0fa6edfbec44fe039bbe61bc6"
+SRC_URI[sha256sum] = "f938b35eccde533ea800b15a7445b2f1137da7f88e32a16898d02dee8adc058d"
 
 inherit autotools-brokensep systemd
 
 TARGET_CC_ARCH += " ${LDFLAGS}"
-EXTRA_OEMAKE = "STRIPPROG=${STRIP} MANDIR=${D}${datadir}/man/man8 INCDIR=${D}${includedir} LIBDIR=${D}${libdir}/pppd/${PV} BINDIR=${D}${sbindir}"
+EXTRA_OEMAKE = "CC='${CC}' STRIPPROG=${STRIP} MANDIR=${D}${datadir}/man/man8 INCDIR=${D}${includedir} LIBDIR=${D}${libdir}/pppd/${PV} BINDIR=${D}${sbindir}"
 EXTRA_OECONF = "--disable-strip"
 
 # Package Makefile computes CFLAGS, referencing COPTS.
@@ -86,7 +76,7 @@
 PACKAGES =+ "${PN}-oa ${PN}-oe ${PN}-radius ${PN}-winbind ${PN}-minconn ${PN}-password ${PN}-l2tp ${PN}-tools"
 FILES_${PN}        = "${sysconfdir} ${bindir} ${sbindir}/chat ${sbindir}/pppd ${systemd_unitdir}/system/ppp@.service"
 FILES_${PN}-oa       = "${libdir}/pppd/${PV}/pppoatm.so"
-FILES_${PN}-oe       = "${sbindir}/pppoe-discovery ${libdir}/pppd/${PV}/rp-pppoe.so"
+FILES_${PN}-oe       = "${sbindir}/pppoe-discovery ${libdir}/pppd/${PV}/*pppoe.so"
 FILES_${PN}-radius   = "${libdir}/pppd/${PV}/radius.so ${libdir}/pppd/${PV}/radattr.so ${libdir}/pppd/${PV}/radrealms.so"
 FILES_${PN}-winbind  = "${libdir}/pppd/${PV}/winbind.so"
 FILES_${PN}-minconn  = "${libdir}/pppd/${PV}/minconn.so"
@@ -101,3 +91,6 @@
 SUMMARY_${PN}-password = "Plugin for PPP to get passwords via a pipe"
 SUMMARY_${PN}-l2tp     = "Plugin for PPP for l2tp support"
 SUMMARY_${PN}-tools    = "Additional tools for the PPP package"
+
+# Ignore compatibility symlink rp-pppoe.so->pppoe.so
+INSANE_SKIP_${PN}-oe += "dev-so"
diff --git a/poky/meta/recipes-core/busybox/busybox-inittab_1.32.0.bb b/poky/meta/recipes-core/busybox/busybox-inittab_1.32.0.bb
index 61fb8cb..8d0f419 100644
--- a/poky/meta/recipes-core/busybox/busybox-inittab_1.32.0.bb
+++ b/poky/meta/recipes-core/busybox/busybox-inittab_1.32.0.bb
@@ -23,6 +23,53 @@
 		id=`echo ${i} | sed -e 's/^.*;//' -e 's/;.*//'`
 		echo "$id::respawn:${base_sbindir}/getty ${j}" >> ${D}${sysconfdir}/inittab
 	done
+	if [ "${USE_VT}" = "1" ]; then
+		cat <<EOF >>${D}${sysconfdir}/inittab
+# ${base_sbindir}/getty invocations for the runlevels.
+#
+# The "id" field MUST be the same as the last
+# characters of the device (after "tty").
+#
+# Format:
+#  <id>:<runlevels>:<action>:<process>
+#
+
+EOF
+
+		for n in ${SYSVINIT_ENABLED_GETTYS}
+		do
+			echo "tty$n:12345:respawn:${base_sbindir}/getty 38400 tty$n" >> ${D}${sysconfdir}/inittab
+		done
+		echo "" >> ${D}${sysconfdir}/inittab
+	fi
+
+}
+
+pkg_postinst_${PN} () {
+# run this on host and on target
+if [ "${SERIAL_CONSOLES_CHECK}" = "" ]; then
+       exit 0
+fi
+}
+
+pkg_postinst_ontarget_${PN} () {
+# run this on the target
+if [ -e /proc/consoles ]; then
+        tmp="${SERIAL_CONSOLES_CHECK}"
+        for i in $tmp
+        do
+                j=`echo ${i} | sed -e s/^.*\;//g -e s/\:.*//g`
+                k=`echo ${i} | sed s/^.*\://g`
+                if [ -z "`grep ${j} /proc/consoles`" ]; then
+                        if [ -z "${k}" ] || [ -z "`grep ${k} /proc/consoles`" ] || [ ! -e /dev/${j} ]; then
+                                sed -i -e /^.*${j}\ /d -e /^.*${j}$/d /etc/inittab
+                        fi
+                fi
+        done
+        kill -HUP 1
+else
+        exit 1
+fi
 }
 
 # SERIAL_CONSOLES is generally defined by the MACHINE .conf.
@@ -33,3 +80,6 @@
 CONFFILES_${PN} = "${sysconfdir}/inittab"
 
 RCONFLICTS_${PN} = "sysvinit-inittab"
+
+USE_VT ?= "1"
+SYSVINIT_ENABLED_GETTYS ?= "1"
diff --git a/poky/meta/recipes-core/busybox/busybox.inc b/poky/meta/recipes-core/busybox/busybox.inc
index e0522be..47fcb59 100644
--- a/poky/meta/recipes-core/busybox/busybox.inc
+++ b/poky/meta/recipes-core/busybox/busybox.inc
@@ -309,9 +309,10 @@
 			install -m 0755 ${WORKDIR}/mdev-mount.sh ${D}${sysconfdir}/mdev
 		fi
 	fi
-	if grep -q "CONFIG_INIT=y" ${B}/.config; then
+	if grep -q "CONFIG_INIT=y" ${B}/.config && ${@bb.utils.contains('VIRTUAL-RUNTIME_init_manager','busybox','true','false',d)}; then
 		install -D -m 0755 ${WORKDIR}/rcS ${D}${sysconfdir}/init.d/rcS
 		install -D -m 0755 ${WORKDIR}/rcK ${D}${sysconfdir}/init.d/rcK
+		install -D -m 0755 ${WORKDIR}/rcS.default ${D}${sysconfdir}/default/rcS
 	fi
 
 	if ${@bb.utils.contains('DISTRO_FEATURES','systemd','true','false',d)}; then
diff --git a/poky/meta/recipes-core/busybox/busybox/mdev.cfg b/poky/meta/recipes-core/busybox/busybox/mdev.cfg
index 6aefe90..143e609 100644
--- a/poky/meta/recipes-core/busybox/busybox/mdev.cfg
+++ b/poky/meta/recipes-core/busybox/busybox/mdev.cfg
@@ -9,3 +9,5 @@
 CONFIG_CTTYHACK=y
 
 CONFIG_FEATURE_SHADOWPASSWDS=y
+CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y
+CONFIG_FEATURE_MDEV_DAEMON=y
diff --git a/poky/meta/recipes-core/busybox/busybox_1.32.0.bb b/poky/meta/recipes-core/busybox/busybox_1.32.0.bb
index 8e23b0d..3a66944 100644
--- a/poky/meta/recipes-core/busybox/busybox_1.32.0.bb
+++ b/poky/meta/recipes-core/busybox/busybox_1.32.0.bb
@@ -33,6 +33,7 @@
            file://getopts.cfg \
            file://resize.cfg \
            ${@["", "file://init.cfg"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \
+           ${@["", "file://rcS.default"][(d.getVar('VIRTUAL-RUNTIME_init_manager') == 'busybox')]} \
            ${@["", "file://mdev.cfg"][(d.getVar('VIRTUAL-RUNTIME_dev_manager') == 'busybox-mdev')]} \
            file://syslog.cfg \
            file://unicode.cfg \
diff --git a/poky/meta/recipes-core/busybox/files/mdev b/poky/meta/recipes-core/busybox/files/mdev
index 8c9c06e..2fbdfb0 100755
--- a/poky/meta/recipes-core/busybox/files/mdev
+++ b/poky/meta/recipes-core/busybox/files/mdev
@@ -1,21 +1,43 @@
 #!/bin/sh
-mount -t proc proc /proc
-mount -t sysfs sysfs /sys
-mount -t tmpfs tmpfs /dev  -o size=64k,mode=0755
-mkdir /dev/pts /dev/shm
-chmod 777 /dev/shm
-mount -t devpts devpts /dev/pts
-touch /dev/mdev.seq
-#sysctl -w kernel.hotplug=/sbin/mdev
-echo "/sbin/mdev" > /proc/sys/kernel/hotplug
-mdev -s
+#
+# Run the mdev daemon
+#
 
-#
-# We might have mounted something over /dev, see if /dev/initctl is there.
-#
-if test ! -p /dev/initctl
-then
-        rm -f /dev/initctl
-        mknod -m 600 /dev/initctl p
-fi
+DAEMON="mdev"
+PIDFILE="/var/run/$DAEMON.pid"
+
+
+start() {
+  echo -n "Starting $DAEMON... "
+  start-stop-daemon -S -b -m -p $PIDFILE -x /sbin/mdev -- -df
+  [ $? -eq 0 ] && echo "OK" || echo "ERROR"
+
+  # coldplug modules
+  find /sys/ -name modalias -print0 | \
+    xargs -0 sort -u | \
+    tr '\n' '\0' | \
+    xargs -0 modprobe -abq
+}
+
+stop() {
+  echo -n "Stopping $DAEMON... "
+  start-stop-daemon -K -p $PIDFILE
+  [ $? -eq 0 ] && echo "OK" || echo "ERROR"
+}
+
+restart() {
+  stop
+  start
+}
+
+case "$1" in
+  start|stop|restart)
+  "$1"
+  ;;
+  *)
+  echo "Usage: $0 {start|stop|restart}"
+  exit 1
+esac
+
+exit $?
 
diff --git a/poky/meta/recipes-core/busybox/files/rcS.default b/poky/meta/recipes-core/busybox/files/rcS.default
new file mode 100644
index 0000000..44c9747
--- /dev/null
+++ b/poky/meta/recipes-core/busybox/files/rcS.default
@@ -0,0 +1,31 @@
+#
+#	Defaults for the boot scripts in /etc/rcS.d
+#
+
+# Time files in /tmp are kept in days.
+TMPTIME=0
+# Set to yes if you want sulogin to be spawned on bootup
+SULOGIN=no
+# Set to no if you want to be able to login over telnet/rlogin
+# before system startup is complete (as soon as inetd is started)
+DELAYLOGIN=no
+# Assume that the BIOS clock is set to UTC time (recommended)
+UTC=yes
+# Set VERBOSE to "no" if you would like a more quiet bootup.
+VERBOSE=no
+# Set EDITMOTD to "no" if you don't want /etc/motd to be edited automatically
+EDITMOTD=no
+# Whether to fsck root on boot
+ENABLE_ROOTFS_FSCK=no
+# Set FSCKFIX to "yes" if you want to add "-y" to the fsck at startup.
+FSCKFIX=yes
+# Set TICKADJ to the correct tick value for this specific machine
+#TICKADJ=10000
+# Enable caching in populate-volatile.sh
+VOLATILE_ENABLE_CACHE=yes
+# Indicate whether the rootfs is intended to be read-only or not.
+# Setting ROOTFS_READ_ONLY to yes and rebooting will give you a read-only rootfs.
+# Normally you should not change this value.
+ROOTFS_READ_ONLY=no
+# Indicate init system type
+INIT_SYSTEM=busybox
diff --git a/poky/meta/recipes-core/coreutils/coreutils_8.32.bb b/poky/meta/recipes-core/coreutils/coreutils_8.32.bb
index 4eb357e..320f93b 100644
--- a/poky/meta/recipes-core/coreutils/coreutils_8.32.bb
+++ b/poky/meta/recipes-core/coreutils/coreutils_8.32.bb
@@ -39,6 +39,9 @@
 # The lib/oe/path.py requires xattr
 PACKAGECONFIG_class-native ??= "xattr"
 
+# oe-core builds need xattr support
+PACKAGECONFIG_class-nativesdk ??= "xattr"
+
 # with, without, depends, rdepends
 #
 PACKAGECONFIG[acl] = "--enable-acl,--disable-acl,acl,"
diff --git a/poky/meta/recipes-core/dropbear/dropbear.inc b/poky/meta/recipes-core/dropbear/dropbear.inc
index 080ee26..a30f98f 100644
--- a/poky/meta/recipes-core/dropbear/dropbear.inc
+++ b/poky/meta/recipes-core/dropbear/dropbear.inc
@@ -58,6 +58,9 @@
 # This is causing [textrel] QA warning
 EXTRA_OECONF += "--disable-harden"
 
+# musl does not implement wtmp/logwtmp APIs
+EXTRA_OECONF_append_libc-musl = " --disable-wtmp --disable-lastlog"
+
 do_install() {
 	install -d ${D}${sysconfdir} \
 		${D}${sysconfdir}/init.d \
diff --git a/poky/meta/recipes-core/ell/ell/0001-ell-add-missing-include-in-dhcp-server.patch b/poky/meta/recipes-core/ell/ell/0001-ell-add-missing-include-in-dhcp-server.patch
new file mode 100644
index 0000000..2460d26
--- /dev/null
+++ b/poky/meta/recipes-core/ell/ell/0001-ell-add-missing-include-in-dhcp-server.patch
@@ -0,0 +1,23 @@
+From dd350f4e2258b5a638bc8fb26a6193147902d292 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?=C3=89rico=20Nogueira?= <ericonr@disroot.org>
+Date: Mon, 30 Nov 2020 18:40:33 -0300
+Subject: [PATCH] ell: add missing include in dhcp-server.
+
+Upstream-Status: Backport
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ ell/dhcp-server.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/ell/dhcp-server.c b/ell/dhcp-server.c
+index c983ed4..144e83e 100644
+--- a/ell/dhcp-server.c
++++ b/ell/dhcp-server.c
+@@ -24,6 +24,7 @@
+ #include <config.h>
+ #endif
+ 
++#include <linux/types.h>
+ #include <net/ethernet.h>
+ #include <sys/socket.h>
+ #include <arpa/inet.h>
diff --git a/poky/meta/recipes-core/ell/ell/0001-pem.c-do-not-use-rawmemchr.patch b/poky/meta/recipes-core/ell/ell/0001-pem.c-do-not-use-rawmemchr.patch
new file mode 100644
index 0000000..f0ce6f1
--- /dev/null
+++ b/poky/meta/recipes-core/ell/ell/0001-pem.c-do-not-use-rawmemchr.patch
@@ -0,0 +1,27 @@
+From 277e1eca67fcc23cb31be7b826d83a19d9b89bd2 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Tue, 22 Dec 2020 10:30:54 +0000
+Subject: [PATCH] pem.c: do not use rawmemchr()
+
+This is a glibc-only function, and causes build failures with
+alternative libc implementations such as musl.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ ell/pem.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ell/pem.c b/ell/pem.c
+index 790f2c2..237ae02 100644
+--- a/ell/pem.c
++++ b/ell/pem.c
+@@ -224,7 +224,7 @@ static uint8_t *pem_load_buffer(const void *buf, size_t buf_len,
+ 
+ 		/* Check that each header line has a key and a colon */
+ 		while (start < end) {
+-			const char *lf = rawmemchr(start, '\n');
++			const char *lf = memchr(start, '\n', end - start);
+ 			const char *colon = memchr(start, ':', lf - start);
+ 
+ 			if (!colon)
diff --git a/poky/meta/recipes-core/ell/ell_0.33.bb b/poky/meta/recipes-core/ell/ell_0.35.bb
similarity index 73%
rename from poky/meta/recipes-core/ell/ell_0.33.bb
rename to poky/meta/recipes-core/ell/ell_0.35.bb
index 2fa0510..ccc54b5 100644
--- a/poky/meta/recipes-core/ell/ell_0.33.bb
+++ b/poky/meta/recipes-core/ell/ell_0.35.bb
@@ -13,8 +13,11 @@
 
 inherit autotools pkgconfig
 
-SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz"
-SRC_URI[sha256sum] = "d9e40e641164150394b74b719b9726fc734f24b2cde679cf5f3be6915c34eded"
+SRC_URI = "https://mirrors.edge.kernel.org/pub/linux/libs/${BPN}/${BPN}-${PV}.tar.xz \
+           file://0001-ell-add-missing-include-in-dhcp-server.patch \
+           file://0001-pem.c-do-not-use-rawmemchr.patch \
+           "
+SRC_URI[sha256sum] = "2bfe9da7781f65f1cb1595a5a068a3ae74d4b68b74f287c6f0c892cfe623913f"
 
 do_configure_prepend () {
     mkdir -p ${S}/build-aux
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch
new file mode 100644
index 0000000..508c8c3
--- /dev/null
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch
@@ -0,0 +1,26 @@
+From b833254bcc9fcf4cdc2572027b1154d799535ca4 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sun, 20 Dec 2020 22:01:43 +0100
+Subject: [PATCH] gio/tests/codegen.py: bump timeout to 100 seconds
+
+This may be necessary on overloaded CI systems.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ gio/tests/codegen.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gio/tests/codegen.py b/gio/tests/codegen.py
+index 51de0ed..ca98c9d 100644
+--- a/gio/tests/codegen.py
++++ b/gio/tests/codegen.py
+@@ -51,7 +51,7 @@ class TestCodegen(unittest.TestCase):
+     cwd = ''
+ 
+     def setUp(self):
+-        self.timeout_seconds = 10  # seconds per test
++        self.timeout_seconds = 100  # seconds per test
+         self.tmpdir = tempfile.TemporaryDirectory()
+         self.cwd = os.getcwd()
+         os.chdir(self.tmpdir.name)
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
index 2b8e930..4cbcc29 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0/relocate-modules.patch
@@ -1,4 +1,4 @@
-From 85931fbb981b5aae38f1c1370d5d3c091cb862b8 Mon Sep 17 00:00:00 2001
+From 011c9f024b6475d31e7d5432a38d00fb67eaea40 Mon Sep 17 00:00:00 2001
 From: Ross Burton <ross.burton@intel.com>
 Date: Fri, 11 Mar 2016 15:35:55 +0000
 Subject: [PATCH] glib-2.0: relocate the GIO module directory for native builds
diff --git a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.66.2.bb b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.66.4.bb
similarity index 91%
rename from poky/meta/recipes-core/glib-2.0/glib-2.0_2.66.2.bb
rename to poky/meta/recipes-core/glib-2.0/glib-2.0_2.66.4.bb
index 1f83660..70e8aa8 100644
--- a/poky/meta/recipes-core/glib-2.0/glib-2.0_2.66.2.bb
+++ b/poky/meta/recipes-core/glib-2.0/glib-2.0_2.66.4.bb
@@ -16,11 +16,12 @@
            file://0001-Do-not-write-bindir-into-pkg-config-files.patch \
            file://0001-meson-Run-atomics-test-on-clang-as-well.patch \
            file://0001-gio-tests-resources.c-comment-out-a-build-host-only-.patch \
+           file://0001-gio-tests-codegen.py-bump-timeout-to-100-seconds.patch \
            "
 
 SRC_URI_append_class-native = " file://relocate-modules.patch"
 
-SRC_URI[sha256sum] = "ec390bed4e8dd0f89e918f385e8d4cfd7470b1ef7c1ce93ec5c4fc6e3c6a17c4"
+SRC_URI[sha256sum] = "97df8670e32f9fd4f7392b0980e661dd625012015d58350da1e58e343f4af984"
 
 # Find any meson cross files in FILESPATH that are relevant for the current
 # build (using siteinfo) and add them to EXTRA_OEMESON.
diff --git a/poky/meta/recipes-core/glibc/glibc/0031-linux-Allow-adjtime-with-NULL-argument-BZ-26833.patch b/poky/meta/recipes-core/glibc/glibc/0031-linux-Allow-adjtime-with-NULL-argument-BZ-26833.patch
new file mode 100644
index 0000000..a458a2a
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/0031-linux-Allow-adjtime-with-NULL-argument-BZ-26833.patch
@@ -0,0 +1,110 @@
+From 75a193b7611bade31a150dfcc528b973e3d46231 Mon Sep 17 00:00:00 2001
+From: Adhemerval Zanella <adhemerval.zanella@linaro.org>
+Date: Mon, 2 Nov 2020 16:18:29 -0300
+Subject: [PATCH] linux: Allow adjtime with NULL argument [BZ #26833]
+
+The adjtime interface allows return the amount of time remaining
+from any previous adjustment that has not yet been completed by
+passing a NULL as first argument.  This was introduced with y2038
+support 0308077e3a.
+
+Checked on i686-linux-gnu.
+
+Reviewed-by: Lukasz Majewski <lukma@denx.de>
+Upstream-Status: Backport [https://sourceware.org/git/?p=glibc.git;a=commit;h=75a193b7611bade31a150dfcc528b973e3d46231]
+Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
+---
+ sysdeps/unix/sysv/linux/adjtime.c | 11 +++++---
+ time/Makefile                     |  3 ++-
+ time/tst-adjtime.c                | 44 +++++++++++++++++++++++++++++++
+ 3 files changed, 54 insertions(+), 4 deletions(-)
+ create mode 100644 time/tst-adjtime.c
+
+diff --git a/sysdeps/unix/sysv/linux/adjtime.c b/sysdeps/unix/sysv/linux/adjtime.c
+index 3f9a4ea2eb..6d1d1b6af2 100644
+--- a/sysdeps/unix/sysv/linux/adjtime.c
++++ b/sysdeps/unix/sysv/linux/adjtime.c
+@@ -68,11 +68,16 @@ libc_hidden_def (__adjtime64)
+ int
+ __adjtime (const struct timeval *itv, struct timeval *otv)
+ {
+-  struct __timeval64 itv64, otv64;
++  struct __timeval64 itv64, *pitv64 = NULL;
++  struct __timeval64 otv64;
+   int retval;
+ 
+-  itv64 = valid_timeval_to_timeval64 (*itv);
+-  retval = __adjtime64 (&itv64, otv != NULL ? &otv64 : NULL);
++  if (itv != NULL)
++    {
++      itv64 = valid_timeval_to_timeval64 (*itv);
++      pitv64 = &itv64;
++    }
++  retval = __adjtime64 (pitv64, otv != NULL ? &otv64 : NULL);
+   if (otv != NULL)
+     *otv = valid_timeval64_to_timeval (otv64);
+ 
+diff --git a/time/Makefile b/time/Makefile
+index 26aa835166..f27a75a115 100644
+--- a/time/Makefile
++++ b/time/Makefile
+@@ -47,7 +47,8 @@ tests	:= test_time clocktest tst-posixtz tst-strptime tst_wcsftime \
+ 	   tst-mktime3 tst-strptime2 bug-asctime bug-asctime_r bug-mktime1 \
+ 	   tst-strptime3 bug-getdate1 tst-strptime-whitespace tst-ftime \
+ 	   tst-tzname tst-y2039 bug-mktime4 tst-strftime2 tst-strftime3 \
+-	   tst-clock tst-clock2 tst-clock_nanosleep tst-cpuclock1
++	   tst-clock tst-clock2 tst-clock_nanosleep tst-cpuclock1 \
++	   tst-adjtime
+ 
+ include ../Rules
+ 
+diff --git a/time/tst-adjtime.c b/time/tst-adjtime.c
+new file mode 100644
+index 0000000000..ae2b37cdab
+--- /dev/null
++++ b/time/tst-adjtime.c
+@@ -0,0 +1,44 @@
++/* Basic tests for adjtime.
++   Copyright (C) 2020 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <https://www.gnu.org/licenses/>.  */
++
++#include <sys/time.h>
++#include <stdlib.h>
++
++#include <errno.h>
++#include <support/check.h>
++
++
++static int
++do_test (void)
++{
++  /* Check if the interface allows getting the amount of time remaining
++     from any previous adjustment that has not yet been completed.  This
++     is a non-privileged function of adjtime.  */
++  struct timeval tv;
++  int r = adjtime (NULL, &tv);
++  if (r == -1)
++    {
++      if (errno == ENOSYS)
++	FAIL_UNSUPPORTED ("adjtime unsupported");
++      FAIL_EXIT1 ("adjtime (NULL, ...) failed: %m");
++    }
++
++  return 0;
++}
++
++#include <support/test-driver.c>
diff --git a/poky/meta/recipes-core/glibc/glibc/CVE-2020-29562.patch b/poky/meta/recipes-core/glibc/glibc/CVE-2020-29562.patch
new file mode 100644
index 0000000..134b4e3
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/CVE-2020-29562.patch
@@ -0,0 +1,155 @@
+From 228edd356f03bf62dcf2b1335f25d43c602ee68d Mon Sep 17 00:00:00 2001
+From: Michael Colavita <mcolavita@fb.com>
+Date: Thu, 19 Nov 2020 11:44:40 -0500
+Subject: [PATCH] iconv: Fix incorrect UCS4 inner loop bounds (BZ#26923)
+
+Previously, in UCS4 conversion routines we limit the number of
+characters we examine to the minimum of the number of characters in the
+input and the number of characters in the output. This is not the
+correct behavior when __GCONV_IGNORE_ERRORS is set, as we do not consume
+an output character when we skip a code unit. Instead, track the input
+and output pointers and terminate the loop when either reaches its
+limit.
+
+This resolves assertion failures when resetting the input buffer in a step of
+iconv, which assumes that the input will be fully consumed given sufficient
+output space.
+
+Upstream-Status: Backport [git://sourceware.org/git/glibc.git]
+CVE: CVE-2020-29562
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+---
+ iconv/Makefile       |  2 +-
+ iconv/gconv_simple.c | 16 ++++----------
+ iconv/tst-iconv8.c   | 50 ++++++++++++++++++++++++++++++++++++++++++++
+ 3 files changed, 55 insertions(+), 13 deletions(-)
+ create mode 100644 iconv/tst-iconv8.c
+
+diff --git a/iconv/Makefile b/iconv/Makefile
+index 30bf996d3a..f9b51e23ec 100644
+--- a/iconv/Makefile
++++ b/iconv/Makefile
+@@ -44,7 +44,7 @@ CFLAGS-linereader.c += -DNO_TRANSLITERATION
+ CFLAGS-simple-hash.c += -I../locale
+ 
+ tests	= tst-iconv1 tst-iconv2 tst-iconv3 tst-iconv4 tst-iconv5 tst-iconv6 \
+-	  tst-iconv7 tst-iconv-mt tst-iconv-opt
++	  tst-iconv7 tst-iconv8 tst-iconv-mt tst-iconv-opt
+ 
+ others		= iconv_prog iconvconfig
+ install-others-programs	= $(inst_bindir)/iconv
+diff --git a/iconv/gconv_simple.c b/iconv/gconv_simple.c
+index d4797fba17..963b29f246 100644
+--- a/iconv/gconv_simple.c
++++ b/iconv/gconv_simple.c
+@@ -239,11 +239,9 @@ ucs4_internal_loop (struct __gconv_step *step,
+   int flags = step_data->__flags;
+   const unsigned char *inptr = *inptrp;
+   unsigned char *outptr = *outptrp;
+-  size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;
+   int result;
+-  size_t cnt;
+ 
+-  for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
++  for (; inptr + 4 <= inend && outptr + 4 <= outend; inptr += 4)
+     {
+       uint32_t inval;
+ 
+@@ -307,11 +305,9 @@ ucs4_internal_loop_unaligned (struct __gconv_step *step,
+   int flags = step_data->__flags;
+   const unsigned char *inptr = *inptrp;
+   unsigned char *outptr = *outptrp;
+-  size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;
+   int result;
+-  size_t cnt;
+ 
+-  for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
++  for (; inptr + 4 <= inend && outptr + 4 <= outend; inptr += 4)
+     {
+       if (__glibc_unlikely (inptr[0] > 0x80))
+ 	{
+@@ -613,11 +609,9 @@ ucs4le_internal_loop (struct __gconv_step *step,
+   int flags = step_data->__flags;
+   const unsigned char *inptr = *inptrp;
+   unsigned char *outptr = *outptrp;
+-  size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;
+   int result;
+-  size_t cnt;
+ 
+-  for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
++  for (; inptr + 4 <= inend && outptr + 4 <= outend; inptr += 4)
+     {
+       uint32_t inval;
+ 
+@@ -684,11 +678,9 @@ ucs4le_internal_loop_unaligned (struct __gconv_step *step,
+   int flags = step_data->__flags;
+   const unsigned char *inptr = *inptrp;
+   unsigned char *outptr = *outptrp;
+-  size_t n_convert = MIN (inend - inptr, outend - outptr) / 4;
+   int result;
+-  size_t cnt;
+ 
+-  for (cnt = 0; cnt < n_convert; ++cnt, inptr += 4)
++  for (; inptr + 4 <= inend && outptr + 4 <= outend; inptr += 4)
+     {
+       if (__glibc_unlikely (inptr[3] > 0x80))
+ 	{
+diff --git a/iconv/tst-iconv8.c b/iconv/tst-iconv8.c
+new file mode 100644
+index 0000000000..0b92b19f66
+--- /dev/null
++++ b/iconv/tst-iconv8.c
+@@ -0,0 +1,50 @@
++/* Test iconv behavior on UCS4 conversions with //IGNORE.
++   Copyright (C) 2020 Free Software Foundation, Inc.
++   This file is part of the GNU C Library.
++
++   The GNU C Library is free software; you can redistribute it and/or
++   modify it under the terms of the GNU Lesser General Public
++   License as published by the Free Software Foundation; either
++   version 2.1 of the License, or (at your option) any later version.
++
++   The GNU C Library is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++   Lesser General Public License for more details.
++
++   You should have received a copy of the GNU Lesser General Public
++   License along with the GNU C Library; if not, see
++   <http://www.gnu.org/licenses/>.  */
++
++/* Derived from BZ #26923 */
++#include <errno.h>
++#include <iconv.h>
++#include <stdio.h>
++#include <support/check.h>
++
++static int
++do_test (void)
++{
++  iconv_t cd = iconv_open ("UTF-8//IGNORE", "ISO-10646/UCS4/");
++  TEST_VERIFY_EXIT (cd != (iconv_t) -1);
++
++  /*
++   * Convert sequence beginning with an irreversible character into buffer that
++   * is too small.
++   */
++  char input[12] = "\xe1\x80\xa1" "AAAAAAAAA";
++  char *inptr = input;
++  size_t insize = sizeof (input);
++  char output[6];
++  char *outptr = output;
++  size_t outsize = sizeof (output);
++
++  TEST_VERIFY (iconv (cd, &inptr, &insize, &outptr, &outsize) == -1);
++  TEST_VERIFY (errno == E2BIG);
++
++  TEST_VERIFY_EXIT (iconv_close (cd) != -1);
++
++  return 0;
++}
++
++#include <support/test-driver.c>
+-- 
+2.17.0
+
diff --git a/poky/meta/recipes-core/glibc/glibc/CVE-2020-29573.patch b/poky/meta/recipes-core/glibc/glibc/CVE-2020-29573.patch
new file mode 100644
index 0000000..0f54d72
--- /dev/null
+++ b/poky/meta/recipes-core/glibc/glibc/CVE-2020-29573.patch
@@ -0,0 +1,56 @@
+From 681900d29683722b1cb0a8e565a0585846ec5a61 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Tue, 22 Sep 2020 19:07:48 +0200
+Subject: [PATCH] x86: Harden printf against non-normal long double values (bug
+ 26649)
+
+The behavior of isnan/__builtin_isnan on bit patterns that do not
+correspond to something that the CPU would produce from valid inputs
+is currently under-defined in the toolchain. (The GCC built-in and
+glibc disagree.)
+
+The isnan check in PRINTF_FP_FETCH in stdio-common/printf_fp.c
+assumes the GCC behavior that returns true for non-normal numbers
+which are not specified as NaN. (The glibc implementation returns
+false for such numbers.)
+
+At present, passing non-normal numbers to __mpn_extract_long_double
+causes this function to produce irregularly shaped multi-precision
+integers, triggering undefined behavior in __printf_fp_l.
+
+With GCC 10 and glibc 2.32, this behavior is not visible because
+__builtin_isnan is used, which avoids calling
+__mpn_extract_long_double in this case.  This commit updates the
+implementation of __mpn_extract_long_double so that regularly shaped
+multi-precision integers are produced in this case, avoiding
+undefined behavior in __printf_fp_l.
+
+Upstream-Status: Backport [git://sourceware.org/git/glibc.git]
+CVE: CVE-2020-29573
+Signed-off-by: Zhixiong Chi <zhixiong.chi@windriver.com>
+---
+ sysdeps/i386/ldbl2mpn.c                  |  8 ++++
+ 1 files changed, 8 insertions(+)
+
+diff --git a/sysdeps/i386/ldbl2mpn.c b/sysdeps/i386/ldbl2mpn.c
+index ec8464eef7..23afedfb67 100644
+--- a/sysdeps/i386/ldbl2mpn.c
++++ b/sysdeps/i386/ldbl2mpn.c
+@@ -115,6 +115,14 @@ __mpn_extract_long_double (mp_ptr res_ptr, mp_size_t size,
+ 	   && res_ptr[N - 1] == 0)
+     /* Pseudo zero.  */
+     *expt = 0;
++  else
++    /* Unlike other floating point formats, the most significant bit
++       is explicit and expected to be set for normal numbers.  Set it
++       in case it is cleared in the input.  Otherwise, callers will
++       not be able to produce the expected multi-precision integer
++       layout by shifting.  */
++    res_ptr[N - 1] |= (mp_limb_t) 1 << (LDBL_MANT_DIG - 1
++					- ((N - 1) * BITS_PER_MP_LIMB));
+ 
+   return N;
+ }
+-- 
+2.17.0
+
diff --git a/poky/meta/recipes-core/glibc/glibc_2.32.bb b/poky/meta/recipes-core/glibc/glibc_2.32.bb
index 2a0e464..b850c28 100644
--- a/poky/meta/recipes-core/glibc/glibc_2.32.bb
+++ b/poky/meta/recipes-core/glibc/glibc_2.32.bb
@@ -43,6 +43,9 @@
            file://0028-readlib-Add-OECORE_KNOWN_INTERPRETER_NAMES-to-known-.patch \
            file://0029-wordsize.h-Unify-the-header-between-arm-and-aarch64.patch \
            file://0030-powerpc-Do-not-ask-compiler-for-finding-arch.patch \
+           file://0031-linux-Allow-adjtime-with-NULL-argument-BZ-26833.patch \
+           file://CVE-2020-29562.patch \
+           file://CVE-2020-29573.patch \
            "
 S = "${WORKDIR}/git"
 B = "${WORKDIR}/build-${TARGET_SYS}"
diff --git a/poky/meta/recipes-core/initscripts/init-system-helpers_1.58.bb b/poky/meta/recipes-core/initscripts/init-system-helpers_1.60.bb
similarity index 96%
rename from poky/meta/recipes-core/initscripts/init-system-helpers_1.58.bb
rename to poky/meta/recipes-core/initscripts/init-system-helpers_1.60.bb
index b591f41..33977e6 100644
--- a/poky/meta/recipes-core/initscripts/init-system-helpers_1.58.bb
+++ b/poky/meta/recipes-core/initscripts/init-system-helpers_1.60.bb
@@ -16,7 +16,7 @@
 LICENSE = "BSD-3-Clause & GPLv2"
 LIC_FILES_CHKSUM = "file://debian/copyright;md5=ee2b1830fcfead84d07bc060ec43e072"
 
-SRCREV = "6a1860c6f5ad295af605ddf588933544e7c24ce1"
+SRCREV = "dbd9197569c0935029acd5c9b02b84c68fd937ee"
 SRC_URI = "git://salsa.debian.org/debian/init-system-helpers.git;protocol=https"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh b/poky/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
index 02f0351..a63e71b 100755
--- a/poky/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
+++ b/poky/meta/recipes-core/initscripts/initscripts-1.0/checkroot.sh
@@ -74,7 +74,7 @@
 #
 # Check the root filesystem.
 #
-if test -f /fastboot || test $rootcheck = no
+if test -f /fastboot || test "$rootcheck" = "no"
 then
   test $rootcheck = yes && echo "Fast boot, no filesystem check"
 else
diff --git a/poky/meta/recipes-core/initscripts/initscripts-1.0/mountall.sh b/poky/meta/recipes-core/initscripts/initscripts-1.0/mountall.sh
index c719be5..2839d57 100755
--- a/poky/meta/recipes-core/initscripts/initscripts-1.0/mountall.sh
+++ b/poky/meta/recipes-core/initscripts/initscripts-1.0/mountall.sh
@@ -19,15 +19,21 @@
 test "$VERBOSE" != no && echo "Mounting local filesystems..."
 mount -at nonfs,nosmbfs,noncpfs 2>/dev/null
 
-#
-# We might have mounted something over /dev, see if /dev/initctl is there.
-#
-if test ! -p /dev/initctl
-then
-	rm -f /dev/initctl
-	mknod -m 600 /dev/initctl p
+
+# We might have mounted something over /run; see if
+# /dev/initctl is present.  Look for
+# /sbin/init.sysvinit to verify that sysvinit (and
+# not busybox or systemd) is installed as default init).
+INITCTL="/dev/initctl"
+if [ ! -p "$INITCTL" ] && [ "${INIT_SYSTEM}" = "sysvinit" ]; then
+    # Create new control channel
+		rm -f "$INITCTL"
+		mknod -m 600 "$INITCTL" p
+
+		# Reopen control channel.
+		PID="$(pidof -s /sbin/init || echo 1)"
+		[ -n "$PID" ] && kill -s USR1 "$PID"
 fi
-kill -USR1 1
 
 #
 # Execute swapon command again, in case we want to swap to
diff --git a/poky/meta/recipes-core/kbd/kbd_2.3.0.bb b/poky/meta/recipes-core/kbd/kbd_2.4.0.bb
similarity index 77%
rename from poky/meta/recipes-core/kbd/kbd_2.3.0.bb
rename to poky/meta/recipes-core/kbd/kbd_2.4.0.bb
index 529f49b..65ba70b 100644
--- a/poky/meta/recipes-core/kbd/kbd_2.3.0.bb
+++ b/poky/meta/recipes-core/kbd/kbd_2.4.0.bb
@@ -15,7 +15,7 @@
 SRC_URI = "${KERNELORG_MIRROR}/linux/utils/${BPN}/${BP}.tar.xz \
            "
 
-SRC_URI[sha256sum] = "685056143cb8effd0a1d44b5c391eb50d80dcfd014b1a4d6e2650a28d61cb82a"
+SRC_URI[sha256sum] = "55f0740458cfd3a84e775e50d7e8b92dc01846db1edad8e2411ccc293ece9b9f"
 
 PACKAGECONFIG ?= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
                   "
@@ -29,6 +29,13 @@
 FILES_${PN}-keymaps = "${datadir}/keymaps"
 FILES_${PN}-unimaps = "${datadir}/unimaps"
 
+do_install_append () {
+    if [ ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'yes', '', d)} = yes ] \
+    && [ -f ${D}${sysconfdir}/pam.d/vlock ]; then
+        mv -f ${D}${sysconfdir}/pam.d/vlock ${D}${sysconfdir}/pam.d/vlock.kbd
+    fi
+}
+
 inherit update-alternatives
 
 ALTERNATIVE_${PN} = "chvt deallocvt fgconsole openvt showkey \
diff --git a/poky/meta/recipes-core/meta/buildtools-tarball.bb b/poky/meta/recipes-core/meta/buildtools-tarball.bb
index 560b8d6..9da81d5 100644
--- a/poky/meta/recipes-core/meta/buildtools-tarball.bb
+++ b/poky/meta/recipes-core/meta/buildtools-tarball.bb
@@ -67,7 +67,7 @@
 	# Generate new (mini) sdk-environment-setup file
 	script=${1:-${SDK_OUTPUT}/${SDKPATH}/environment-setup-${SDK_SYS}}
 	touch $script
-	echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:$PATH' >> $script
+	echo 'export PATH=${SDKPATHNATIVE}${bindir_nativesdk}:${SDKPATHNATIVE}${sbindir_nativesdk}:${SDKPATHNATIVE}${base_bindir_nativesdk}:${SDKPATHNATIVE}${base_sbindir_nativesdk}:$PATH' >> $script
 	echo 'export OECORE_NATIVE_SYSROOT="${SDKPATHNATIVE}"' >> $script
 	echo 'export GIT_SSL_CAINFO="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script
 	echo 'export SSL_CERT_FILE="${SDKPATHNATIVE}${sysconfdir}/ssl/certs/ca-certificates.crt"' >>$script
diff --git a/poky/meta/recipes-core/meta/wic-tools.bb b/poky/meta/recipes-core/meta/wic-tools.bb
index 3e7d0ed..bc6cc0d 100644
--- a/poky/meta/recipes-core/meta/wic-tools.bb
+++ b/poky/meta/recipes-core/meta/wic-tools.bb
@@ -3,14 +3,15 @@
 LICENSE = "MIT"
 
 DEPENDS = "\
-           parted-native syslinux-native gptfdisk-native dosfstools-native \
+           parted-native gptfdisk-native dosfstools-native \
            mtools-native bmap-tools-native grub-native cdrtools-native \
            btrfs-tools-native squashfs-tools-native pseudo-native \
            e2fsprogs-native util-linux-native tar-native\
            "
-DEPENDS_append_x86 = " syslinux grub-efi systemd-boot"
-DEPENDS_append_x86-64 = " syslinux grub-efi systemd-boot"
-DEPENDS_append_x86-x32 = " syslinux grub-efi"
+DEPENDS_append_x86 = " syslinux-native syslinux grub-efi systemd-boot"
+DEPENDS_append_x86-64 = " syslinux-native syslinux grub-efi systemd-boot"
+DEPENDS_append_x86-x32 = " syslinux-native syslinux grub-efi"
+DEPENDS_append_aarch64 = " grub-efi systemd-boot"
 
 INHIBIT_DEFAULT_DEPS = "1"
 
diff --git a/poky/meta/recipes-core/musl/musl/0001-crt-Add-.file-directive.patch b/poky/meta/recipes-core/musl/musl/0001-crt-Add-.file-directive.patch
index d2bd587..35c8b65 100644
--- a/poky/meta/recipes-core/musl/musl/0001-crt-Add-.file-directive.patch
+++ b/poky/meta/recipes-core/musl/musl/0001-crt-Add-.file-directive.patch
@@ -43,8 +43,6 @@
  crt/x86_64/crtn.s     | 1 +
  28 files changed, 28 insertions(+)
 
-diff --git a/crt/aarch64/crti.s b/crt/aarch64/crti.s
-index 775df0ac..0f7c23a9 100644
 --- a/crt/aarch64/crti.s
 +++ b/crt/aarch64/crti.s
 @@ -1,3 +1,4 @@
@@ -52,8 +50,6 @@
  .section .init
  .global _init
  .type _init,%function
-diff --git a/crt/aarch64/crtn.s b/crt/aarch64/crtn.s
-index 73cab692..d62fc129 100644
 --- a/crt/aarch64/crtn.s
 +++ b/crt/aarch64/crtn.s
 @@ -1,3 +1,4 @@
@@ -61,8 +57,6 @@
  .section .init
  	ldp x29,x30,[sp],#16
  	ret
-diff --git a/crt/arm/crti.s b/crt/arm/crti.s
-index 18dc1e41..8df72979 100644
 --- a/crt/arm/crti.s
 +++ b/crt/arm/crti.s
 @@ -1,3 +1,4 @@
@@ -70,8 +64,6 @@
  .syntax unified
  
  .section .init
-diff --git a/crt/arm/crtn.s b/crt/arm/crtn.s
-index dc020f92..7451355b 100644
 --- a/crt/arm/crtn.s
 +++ b/crt/arm/crtn.s
 @@ -1,3 +1,4 @@
@@ -79,8 +71,6 @@
  .syntax unified
  
  .section .init
-diff --git a/crt/i386/crti.s b/crt/i386/crti.s
-index d2682a20..2823fc3b 100644
 --- a/crt/i386/crti.s
 +++ b/crt/i386/crti.s
 @@ -1,3 +1,4 @@
@@ -88,8 +78,6 @@
  .section .init
  .global _init
  _init:
-diff --git a/crt/i386/crtn.s b/crt/i386/crtn.s
-index f3b61e01..04fb1646 100644
 --- a/crt/i386/crtn.s
 +++ b/crt/i386/crtn.s
 @@ -1,3 +1,4 @@
@@ -97,8 +85,6 @@
  .section .init
  	add $12,%esp
  	ret
-diff --git a/crt/microblaze/crti.s b/crt/microblaze/crti.s
-index ed1c2fa4..29ee4733 100644
 --- a/crt/microblaze/crti.s
 +++ b/crt/microblaze/crti.s
 @@ -1,3 +1,4 @@
@@ -106,8 +92,6 @@
  .section .init
  .global _init
  .align 2
-diff --git a/crt/microblaze/crtn.s b/crt/microblaze/crtn.s
-index 1e02c984..c2083749 100644
 --- a/crt/microblaze/crtn.s
 +++ b/crt/microblaze/crtn.s
 @@ -1,3 +1,4 @@
@@ -115,8 +99,6 @@
  .section .init
  	lwi r15, r1, 0
  	rtsd r15, 8
-diff --git a/crt/mips/crti.s b/crt/mips/crti.s
-index 39dee380..0211764e 100644
 --- a/crt/mips/crti.s
 +++ b/crt/mips/crti.s
 @@ -1,3 +1,4 @@
@@ -124,8 +106,6 @@
  .set noreorder
  
  .section .init
-diff --git a/crt/mips/crtn.s b/crt/mips/crtn.s
-index 506a04b7..606490cf 100644
 --- a/crt/mips/crtn.s
 +++ b/crt/mips/crtn.s
 @@ -1,3 +1,4 @@
@@ -133,8 +113,6 @@
  .set noreorder
  
  .section .init
-diff --git a/crt/mips64/crti.s b/crt/mips64/crti.s
-index c962dd09..f2c19cdd 100644
 --- a/crt/mips64/crti.s
 +++ b/crt/mips64/crti.s
 @@ -1,3 +1,4 @@
@@ -142,8 +120,6 @@
  .set noreorder
  
  .section .init
-diff --git a/crt/mips64/crtn.s b/crt/mips64/crtn.s
-index f3930b24..68903ffa 100644
 --- a/crt/mips64/crtn.s
 +++ b/crt/mips64/crtn.s
 @@ -1,3 +1,4 @@
@@ -151,8 +127,6 @@
  .set noreorder
  
  .section .init
-diff --git a/crt/mipsn32/crti.s b/crt/mipsn32/crti.s
-index 14fa28d9..a35387d3 100644
 --- a/crt/mipsn32/crti.s
 +++ b/crt/mipsn32/crti.s
 @@ -1,3 +1,4 @@
@@ -160,8 +134,6 @@
  .set	noreorder
  .section	.init
  .global	_init
-diff --git a/crt/mipsn32/crtn.s b/crt/mipsn32/crtn.s
-index dccd7e89..bdb6e561 100644
 --- a/crt/mipsn32/crtn.s
 +++ b/crt/mipsn32/crtn.s
 @@ -1,3 +1,4 @@
@@ -169,8 +141,6 @@
  .set	noreorder
  .section	.init
  	ld	$gp, 16($sp)
-diff --git a/crt/or1k/crti.s b/crt/or1k/crti.s
-index 7e741459..919369ca 100644
 --- a/crt/or1k/crti.s
 +++ b/crt/or1k/crti.s
 @@ -1,3 +1,4 @@
@@ -178,8 +148,6 @@
  .section .init
  .global _init
  _init:
-diff --git a/crt/or1k/crtn.s b/crt/or1k/crtn.s
-index 4185a027..d670b327 100644
 --- a/crt/or1k/crtn.s
 +++ b/crt/or1k/crtn.s
 @@ -1,3 +1,4 @@
@@ -187,8 +155,6 @@
  .section .init
  	l.lwz	r9,0(r1)
  	l.jr	r9
-diff --git a/crt/powerpc/crti.s b/crt/powerpc/crti.s
-index 60461ca4..b748ca48 100644
 --- a/crt/powerpc/crti.s
 +++ b/crt/powerpc/crti.s
 @@ -1,3 +1,4 @@
@@ -196,8 +162,6 @@
  .section .init
  .align 2
  .global _init
-diff --git a/crt/powerpc/crtn.s b/crt/powerpc/crtn.s
-index 2d14a6f0..d989e36f 100644
 --- a/crt/powerpc/crtn.s
 +++ b/crt/powerpc/crtn.s
 @@ -1,3 +1,4 @@
@@ -205,8 +169,6 @@
  .section .init
  .align 2
  	lwz 0,36(1)
-diff --git a/crt/powerpc64/crti.s b/crt/powerpc64/crti.s
-index 9f712f0e..d3323a67 100644
 --- a/crt/powerpc64/crti.s
 +++ b/crt/powerpc64/crti.s
 @@ -1,3 +1,4 @@
@@ -214,8 +176,6 @@
  .section .init
  .align 2
  .global _init
-diff --git a/crt/powerpc64/crtn.s b/crt/powerpc64/crtn.s
-index a7a9f4a0..5e71ae66 100644
 --- a/crt/powerpc64/crtn.s
 +++ b/crt/powerpc64/crtn.s
 @@ -1,3 +1,4 @@
@@ -223,8 +183,6 @@
  .section .init
  .align 2
  	addi 1, 1, 32
-diff --git a/crt/s390x/crti.s b/crt/s390x/crti.s
-index f453205b..3da3c5e1 100644
 --- a/crt/s390x/crti.s
 +++ b/crt/s390x/crti.s
 @@ -1,3 +1,4 @@
@@ -232,8 +190,6 @@
  .section .init
  .align 2
  .global _init
-diff --git a/crt/s390x/crtn.s b/crt/s390x/crtn.s
-index 06066dc9..bfd55caf 100644
 --- a/crt/s390x/crtn.s
 +++ b/crt/s390x/crtn.s
 @@ -1,3 +1,4 @@
@@ -241,8 +197,6 @@
  .section .init
  .align 2
  	lmg  %r14, %r15, 272(%r15)
-diff --git a/crt/sh/crti.s b/crt/sh/crti.s
-index d99bfd5c..77d61c51 100644
 --- a/crt/sh/crti.s
 +++ b/crt/sh/crti.s
 @@ -1,3 +1,4 @@
@@ -250,8 +204,6 @@
  .section .init
  .global  _init
  .type    _init, @function
-diff --git a/crt/sh/crtn.s b/crt/sh/crtn.s
-index 958ce951..29deb5be 100644
 --- a/crt/sh/crtn.s
 +++ b/crt/sh/crtn.s
 @@ -1,3 +1,4 @@
@@ -259,8 +211,6 @@
  .section .init
  	lds.l @r15+, pr
  	mov.l @r15+, r14
-diff --git a/crt/x32/crti.s b/crt/x32/crti.s
-index 4788968b..8668b7c7 100644
 --- a/crt/x32/crti.s
 +++ b/crt/x32/crti.s
 @@ -1,3 +1,4 @@
@@ -268,8 +218,6 @@
  .section .init
  .global _init
  _init:
-diff --git a/crt/x32/crtn.s b/crt/x32/crtn.s
-index 29198b77..ef73d295 100644
 --- a/crt/x32/crtn.s
 +++ b/crt/x32/crtn.s
 @@ -1,3 +1,4 @@
@@ -277,8 +225,6 @@
  .section .init
  	pop %rax
  	ret
-diff --git a/crt/x86_64/crti.s b/crt/x86_64/crti.s
-index 4788968b..8668b7c7 100644
 --- a/crt/x86_64/crti.s
 +++ b/crt/x86_64/crti.s
 @@ -1,3 +1,4 @@
@@ -286,8 +232,6 @@
  .section .init
  .global _init
  _init:
-diff --git a/crt/x86_64/crtn.s b/crt/x86_64/crtn.s
-index 29198b77..ef73d295 100644
 --- a/crt/x86_64/crtn.s
 +++ b/crt/x86_64/crtn.s
 @@ -1,3 +1,4 @@
@@ -295,6 +239,3 @@
  .section .init
  	pop %rax
  	ret
--- 
-2.29.1
-
diff --git a/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch b/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch
index f57aae5..0aeb5eb 100644
--- a/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch
+++ b/poky/meta/recipes-core/musl/musl/0002-ldso-Use-syslibdir-and-libdir-as-default-pathes-to-l.patch
@@ -34,16 +34,16 @@
  LDFLAGS_ALL = $(LDFLAGS_AUTO) $(LDFLAGS)
 --- a/ldso/dynlink.c
 +++ b/ldso/dynlink.c
-@@ -24,6 +24,8 @@
- #include "libc.h"
- #include "dynlink.h"
+@@ -29,6 +29,8 @@
+ #define realloc __libc_realloc
+ #define free __libc_free
  
 +#define SYS_PATH_DFLT SYSLIBDIR ":" LIBDIR
 +
  static void error(const char *, ...);
  
  #define MAXP2(a,b) (-(-(a)&-(b)))
-@@ -1071,7 +1073,7 @@ static struct dso *load_library(const ch
+@@ -1094,7 +1096,7 @@ static struct dso *load_library(const ch
  					sys_path = "";
  				}
  			}
diff --git a/poky/meta/recipes-core/musl/musl_git.bb b/poky/meta/recipes-core/musl/musl_git.bb
index 23c2072..d4e75f9 100644
--- a/poky/meta/recipes-core/musl/musl_git.bb
+++ b/poky/meta/recipes-core/musl/musl_git.bb
@@ -4,7 +4,7 @@
 require musl.inc
 inherit linuxloader
 
-SRCREV = "d91a6cf6e369a79587c5665fce9635e5634ca201"
+SRCREV = "1e4204d522670a1d8b8ab85f1cfefa960547e8af"
 
 BASEVER = "1.2.1"
 
diff --git a/poky/meta/recipes-core/ncurses/files/0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch b/poky/meta/recipes-core/ncurses/files/0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch
new file mode 100644
index 0000000..1eb1776
--- /dev/null
+++ b/poky/meta/recipes-core/ncurses/files/0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch
@@ -0,0 +1,29 @@
+From 3b3e87934bb6d8511261d7c3d6e39b4f71849272 Mon Sep 17 00:00:00 2001
+From: Nathan Rossi <nathan@nathanrossi.com>
+Date: Mon, 14 Dec 2020 13:39:02 +1000
+Subject: [PATCH] gen-pkgconfig.in: Do not include LDFLAGS in generated pc
+ files
+
+Including the LDFLAGS in the pkgconfig output is problematic as OE
+includes build host specific paths and options (e.g. uninative and
+'-Wl,--dynamic-linker=').
+
+Upstream-Status: Inappropriate [OE Specific]
+Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
+---
+ misc/gen-pkgconfig.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/misc/gen-pkgconfig.in b/misc/gen-pkgconfig.in
+index 8f00b824b9..009d215663 100644
+--- a/misc/gen-pkgconfig.in
++++ b/misc/gen-pkgconfig.in
+@@ -80,7 +80,7 @@ if [ "$includedir" != "/usr/include" ]; then
+ fi
+ 
+ lib_flags=
+-for opt in -L$libdir @LDFLAGS@ @EXTRA_LDFLAGS@ @LIBS@
++for opt in -L$libdir @LIBS@
+ do
+ 	case $opt in
+ 	-l*) # LIBS is handled specially below
diff --git a/poky/meta/recipes-core/ncurses/ncurses.inc b/poky/meta/recipes-core/ncurses/ncurses.inc
index 4b61889..fe4e8a5 100644
--- a/poky/meta/recipes-core/ncurses/ncurses.inc
+++ b/poky/meta/recipes-core/ncurses/ncurses.inc
@@ -312,7 +312,7 @@
 "
 
 # 'reset' is a symlink to 'tset' which is in the 'ncurses' package
-RDEPENDS_${PN}-tools = "${PN}"
+RDEPENDS_${PN}-tools = "${PN} ${PN}-terminfo-base"
 
 FILES_${PN}-terminfo = "\
   ${datadir}/terminfo \
diff --git a/poky/meta/recipes-core/ncurses/ncurses_6.2.bb b/poky/meta/recipes-core/ncurses/ncurses_6.2.bb
index f3c84c2..e7d7396 100644
--- a/poky/meta/recipes-core/ncurses/ncurses_6.2.bb
+++ b/poky/meta/recipes-core/ncurses/ncurses_6.2.bb
@@ -2,6 +2,7 @@
 
 SRC_URI += "file://0001-tic-hang.patch \
            file://0002-configure-reproducible.patch \
+           file://0003-gen-pkgconfig.in-Do-not-include-LDFLAGS-in-generated.patch \
            "
 # commit id corresponds to the revision in package version
 SRCREV = "a669013cd5e9d6434e5301348ea51baf306c93c4"
diff --git a/poky/meta/recipes-core/ovmf/ovmf_git.bb b/poky/meta/recipes-core/ovmf/ovmf_git.bb
index 04c4449..d785ff6 100644
--- a/poky/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/poky/meta/recipes-core/ovmf/ovmf_git.bb
@@ -17,10 +17,10 @@
            file://0002-BaseTools-makefile-adjust-to-build-in-under-bitbake.patch \
            file://0003-ovmf-enable-long-path-file.patch \
            file://0004-ovmf-Update-to-latest.patch \
-        "
+           "
 
-PV = "edk2-stable202008"
-SRCREV = "06dc822d045c2bb42e497487935485302486e151"
+PV = "edk2-stable202011"
+SRCREV = "872f953262d68a11da7bc2fb3ded16df234b8700"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>edk2-stable.*)"
 
 inherit deploy
diff --git a/poky/meta/recipes-core/psplash/files/psplash-init b/poky/meta/recipes-core/psplash/files/psplash-init
index f58e043..e0f80bc 100755
--- a/poky/meta/recipes-core/psplash/files/psplash-init
+++ b/poky/meta/recipes-core/psplash/files/psplash-init
@@ -7,6 +7,9 @@
 # Default-Stop:
 ### END INIT INFO
 
+. /etc/default/rcS
+export PSPLASH_FIFO_DIR
+
 if [ ! -e /dev/fb0 ]; then
     echo "Framebuffer /dev/fb0 not detected"
     echo "Boot splashscreen disabled"
@@ -23,7 +26,6 @@
         esac
 done
 
-export PSPLASH_FIFO_DIR=/mnt/.psplash
 [ -d $PSPLASH_FIFO_DIR ] || mkdir -p $PSPLASH_FIFO_DIR
 if ! mountpoint -q $PSPLASH_FIFO_DIR; then
 	mount tmpfs -t tmpfs $PSPLASH_FIFO_DIR -o,size=40k
diff --git a/poky/meta/recipes-core/psplash/psplash_git.bb b/poky/meta/recipes-core/psplash/psplash_git.bb
index 44f0007..59e1e3f 100644
--- a/poky/meta/recipes-core/psplash/psplash_git.bb
+++ b/poky/meta/recipes-core/psplash/psplash_git.bb
@@ -102,6 +102,10 @@
 	if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
 		install -d ${D}${sysconfdir}/init.d/
 		install -m 0755 ${WORKDIR}/psplash-init ${D}${sysconfdir}/init.d/psplash.sh
+
+		# make fifo for psplash
+		install -d ${D}/mnt
+		mkfifo ${D}/mnt/psplash_fifo
 	fi
 
 	if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
@@ -122,3 +126,5 @@
 
 INITSCRIPT_NAME = "psplash.sh"
 INITSCRIPT_PARAMS = "start 0 S . stop 20 0 1 6 ."
+
+FILES_${PN} += "/mnt"
diff --git a/poky/meta/recipes-core/readline/readline-8.0/configure-fix.patch b/poky/meta/recipes-core/readline/readline-8.1/configure-fix.patch
similarity index 100%
rename from poky/meta/recipes-core/readline/readline-8.0/configure-fix.patch
rename to poky/meta/recipes-core/readline/readline-8.1/configure-fix.patch
diff --git a/poky/meta/recipes-core/readline/readline-8.0/norpath.patch b/poky/meta/recipes-core/readline/readline-8.1/norpath.patch
similarity index 100%
rename from poky/meta/recipes-core/readline/readline-8.0/norpath.patch
rename to poky/meta/recipes-core/readline/readline-8.1/norpath.patch
diff --git a/poky/meta/recipes-core/readline/readline-8.0/rl-native.map b/poky/meta/recipes-core/readline/readline-8.1/rl-native.map
similarity index 100%
rename from poky/meta/recipes-core/readline/readline-8.0/rl-native.map
rename to poky/meta/recipes-core/readline/readline-8.1/rl-native.map
diff --git a/poky/meta/recipes-core/readline/readline_8.0.bb b/poky/meta/recipes-core/readline/readline_8.0.bb
deleted file mode 100644
index 99d022a..0000000
--- a/poky/meta/recipes-core/readline/readline_8.0.bb
+++ /dev/null
@@ -1,7 +0,0 @@
-require readline.inc
-
-SRC_URI += "file://configure-fix.patch \
-            file://norpath.patch"
-
-SRC_URI[archive.md5sum] = "7e6c1f16aee3244a69aba6e438295ca3"
-SRC_URI[archive.sha256sum] = "e339f51971478d369f8a053a330a190781acb9864cf4c541060f12078948e461"
diff --git a/poky/meta/recipes-core/readline/readline_8.1.bb b/poky/meta/recipes-core/readline/readline_8.1.bb
new file mode 100644
index 0000000..0786a08
--- /dev/null
+++ b/poky/meta/recipes-core/readline/readline_8.1.bb
@@ -0,0 +1,7 @@
+require readline.inc
+
+SRC_URI += "file://configure-fix.patch \
+            file://norpath.patch"
+
+SRC_URI[archive.md5sum] = "e9557dd5b1409f5d7b37ef717c64518e"
+SRC_URI[archive.sha256sum] = "f8ceb4ee131e3232226a17f51b164afc46cd0b9e6cef344be87c65962cb82b02"
diff --git a/poky/meta/recipes-core/systemd/systemd-boot_246.6.bb b/poky/meta/recipes-core/systemd/systemd-boot_247.2.bb
similarity index 88%
rename from poky/meta/recipes-core/systemd/systemd-boot_246.6.bb
rename to poky/meta/recipes-core/systemd/systemd-boot_247.2.bb
index f92c639..249e620 100644
--- a/poky/meta/recipes-core/systemd/systemd-boot_246.6.bb
+++ b/poky/meta/recipes-core/systemd/systemd-boot_247.2.bb
@@ -47,16 +47,14 @@
 
 # Imported from the old gummiboot recipe
 TUNE_CCARGS_remove = "-mfpmath=sse"
-COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux"
+
+COMPATIBLE_HOST = "(aarch64.*|arm.*|x86_64.*|i.86.*)-linux"
 COMPATIBLE_HOST_x86-x32 = "null"
 
 do_compile() {
-	SYSTEMD_BOOT_EFI_ARCH="ia32"
-	if [ "${TARGET_ARCH}" = "x86_64" ]; then
-		SYSTEMD_BOOT_EFI_ARCH="x64"
-	fi
-
-	ninja src/boot/efi/${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE}
+	ninja \
+		src/boot/efi/${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE} \
+		src/boot/efi/linux${EFI_ARCH}.efi.stub
 }
 
 do_install() {
@@ -66,5 +64,7 @@
 
 do_deploy () {
 	install ${B}/src/boot/efi/systemd-boot*.efi ${DEPLOYDIR}
+	install ${B}/src/boot/efi/linux*.efi.stub ${DEPLOYDIR}
 }
+
 addtask deploy before do_build after do_compile
diff --git a/poky/meta/recipes-core/systemd/systemd-conf_246.1.bb b/poky/meta/recipes-core/systemd/systemd-conf_247.2.bb
similarity index 100%
rename from poky/meta/recipes-core/systemd/systemd-conf_246.1.bb
rename to poky/meta/recipes-core/systemd/systemd-conf_247.2.bb
diff --git a/poky/meta/recipes-core/systemd/systemd.inc b/poky/meta/recipes-core/systemd/systemd.inc
index 1733565..cb7d782 100644
--- a/poky/meta/recipes-core/systemd/systemd.inc
+++ b/poky/meta/recipes-core/systemd/systemd.inc
@@ -14,8 +14,8 @@
 LIC_FILES_CHKSUM = "file://LICENSE.GPL2;md5=751419260aa954499f7abaabaa882bbe \
                     file://LICENSE.LGPL2.1;md5=4fbd65380cdd255951079008b364516c"
 
-SRCREV = "2ee1c57c4ff4fd3349cf03c2e89fbd18ca0b3a4a"
-SRCBRANCH = "v246-stable"
+SRCREV = "937118a5b2f27a7913c421ad76893cdda01c5566"
+SRCBRANCH = "v247-stable"
 SRC_URI = "git://github.com/systemd/systemd-stable.git;protocol=git;branch=${SRCBRANCH}"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch b/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch
index 2676c14..8dd22ee 100644
--- a/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch
@@ -29,7 +29,7 @@
 ===================================================================
 --- systemd-stable.orig/units/meson.build
 +++ systemd-stable/units/meson.build
-@@ -54,8 +54,7 @@ units = [
+@@ -55,8 +55,7 @@ units = [
          ['poweroff.target',                     '',
           (with_runlevels ? 'runlevel0.target' : '')],
          ['printer.target',                      ''],
@@ -38,8 +38,8 @@
 +        ['proc-sys-fs-binfmt_misc.automount',   'ENABLE_BINFMT'],
          ['proc-sys-fs-binfmt_misc.mount',       'ENABLE_BINFMT'],
          ['reboot.target',                       '',
-          (with_runlevels ? 'runlevel6.target ctrl-alt-del.target' : 'ctrl-alt-del.target')],
-@@ -162,8 +161,7 @@ in_units = [
+          'ctrl-alt-del.target' + (with_runlevels ? ' runlevel6.target' : '')],
+@@ -166,8 +165,7 @@ in_units = [
          ['rc-local.service',                     'HAVE_SYSV_COMPAT'],
          ['rescue.service',                       ''],
          ['systemd-backlight@.service',           'ENABLE_BACKLIGHT'],
@@ -64,7 +64,7 @@
 ===================================================================
 --- systemd-stable.orig/units/systemd-binfmt.service.in
 +++ systemd-stable/units/systemd-binfmt.service.in
-@@ -14,6 +14,7 @@ Documentation=https://www.kernel.org/doc
+@@ -14,6 +14,7 @@ Documentation=https://www.kernel.org/doc/html/latest/admin-guide/binfmt-misc.htm
  Documentation=https://www.freedesktop.org/wiki/Software/systemd/APIFileSystems
  DefaultDependencies=no
  Conflicts=shutdown.target
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch b/poky/meta/recipes-core/systemd/systemd/0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch
index 622a410..e49e066 100644
--- a/poky/meta/recipes-core/systemd/systemd/0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch
@@ -14,8 +14,8 @@
 
 --- a/src/core/systemd.pc.in
 +++ b/src/core/systemd.pc.in
-@@ -65,16 +65,16 @@ systemdshutdowndir=${systemd_shutdown_di
- tmpfiles_dir=${prefix}/lib/tmpfiles.d
+@@ -65,16 +65,16 @@ systemdshutdowndir=${systemd_shutdown_dir}
+ tmpfiles_dir=/usr/lib/tmpfiles.d
  tmpfilesdir=${tmpfiles_dir}
  
 -sysusers_dir=${rootprefix}/lib/sysusers.d
@@ -34,4 +34,4 @@
 +modules_load_dir=${prefix}/lib/modules-load.d
  modulesloaddir=${modules_load_dir}
  
- catalog_dir=${prefix}/lib/systemd/catalog
+ catalog_dir=/usr/lib/systemd/catalog
diff --git a/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch b/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
index 30fe9a1..d856bcb 100644
--- a/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0002-don-t-use-glibc-specific-qsort_r.patch
@@ -1,7 +1,7 @@
-From 3eb12a6ba0bce149717eaabeb1505d379b3d705a Mon Sep 17 00:00:00 2001
+From 66ece0b870b3a34fdabc48b88437e6cc354e9fce Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 13:41:41 +0800
-Subject: [PATCH] don't use glibc-specific qsort_r
+Subject: [PATCH 02/26] don't use glibc-specific qsort_r
 
 Upstream-Status: Inappropriate [musl specific]
 
@@ -10,18 +10,19 @@
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
 [Rebased for v242]
 Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-
+[Rebased for v247]
+Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
 ---
  src/basic/sort-util.h              | 14 ------------
  src/libsystemd/sd-hwdb/hwdb-util.c | 19 +++++++++++-----
  src/shared/format-table.c          | 36 ++++++++++++++++++++----------
  3 files changed, 38 insertions(+), 31 deletions(-)
 
-Index: systemd-stable/src/basic/sort-util.h
-===================================================================
---- systemd-stable.orig/src/basic/sort-util.h
-+++ systemd-stable/src/basic/sort-util.h
-@@ -54,17 +54,3 @@ static inline void _qsort_safe(void *bas
+diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
+index 1d194a1f04..3394c9eb72 100644
+--- a/src/basic/sort-util.h
++++ b/src/basic/sort-util.h
+@@ -54,17 +54,3 @@ static inline void _qsort_safe(void *base, size_t nmemb, size_t size, __compar_f
                  int (*_func_)(const typeof(p[0])*, const typeof(p[0])*) = func; \
                  _qsort_safe((p), (n), sizeof((p)[0]), (__compar_fn_t) _func_); \
          })
@@ -39,11 +40,11 @@
 -                int (*_func_)(const typeof(p[0])*, const typeof(p[0])*, typeof(userdata)) = func; \
 -                qsort_r_safe((p), (n), sizeof((p)[0]), (__compar_d_fn_t) _func_, userdata); \
 -        })
-Index: systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c
-===================================================================
---- systemd-stable.orig/src/libsystemd/sd-hwdb/hwdb-util.c
-+++ systemd-stable/src/libsystemd/sd-hwdb/hwdb-util.c
-@@ -128,9 +128,13 @@ static void trie_free(struct trie *trie)
+diff --git a/src/libsystemd/sd-hwdb/hwdb-util.c b/src/libsystemd/sd-hwdb/hwdb-util.c
+index 4c94ba9c88..95495dba6d 100644
+--- a/src/libsystemd/sd-hwdb/hwdb-util.c
++++ b/src/libsystemd/sd-hwdb/hwdb-util.c
+@@ -126,9 +126,13 @@ static void trie_free(struct trie *trie) {
  
  DEFINE_TRIVIAL_CLEANUP_FUNC(struct trie*, trie_free);
  
@@ -60,7 +61,7 @@
  }
  
  static int trie_node_add_value(struct trie *trie, struct trie_node *node,
-@@ -158,7 +162,10 @@ static int trie_node_add_value(struct tr
+@@ -156,7 +160,10 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
                          .value_off = v,
                  };
  
@@ -72,7 +73,7 @@
                  if (val) {
                          /* At this point we have 2 identical properties on the same match-string.
                           * Since we process files in order, we just replace the previous value. */
-@@ -184,7 +191,9 @@ static int trie_node_add_value(struct tr
+@@ -182,7 +189,9 @@ static int trie_node_add_value(struct trie *trie, struct trie_node *node,
                  .line_number = line_number,
          };
          node->values_count++;
@@ -83,11 +84,11 @@
          return 0;
  }
  
-Index: systemd-stable/src/shared/format-table.c
-===================================================================
---- systemd-stable.orig/src/shared/format-table.c
-+++ systemd-stable/src/shared/format-table.c
-@@ -1246,31 +1246,33 @@ static int cell_data_compare(TableData *
+diff --git a/src/shared/format-table.c b/src/shared/format-table.c
+index a13a198b7a..bce10bc607 100644
+--- a/src/shared/format-table.c
++++ b/src/shared/format-table.c
+@@ -1243,30 +1243,32 @@ static int cell_data_compare(TableData *a, size_t index_a, TableData *b, size_t
          return CMP(index_a, index_b);
  }
  
@@ -95,7 +96,6 @@
 +static Table *user_table;
 +static int table_data_compare(const void *x, const void *y) {
 +        const size_t *a = x, *b=y;
-         size_t i;
          int r;
  
 -        assert(t);
@@ -115,8 +115,8 @@
                  return 1;
  
          /* Order other lines by the sorting map */
--        for (i = 0; i < t->n_sort_map; i++) {
-+        for (i = 0; i < user_table->n_sort_map; i++) {
+-        for (size_t i = 0; i < t->n_sort_map; i++) {
++        for (size_t i = 0; i < user_table->n_sort_map; i++) {
                  TableData *d, *dd;
  
 -                d = t->data[*a + t->sort_map[i]];
@@ -131,8 +131,8 @@
          }
  
          /* Order identical lines by the order there were originally added in */
-@@ -1798,7 +1800,12 @@ int table_print(Table *t, FILE *f) {
-                 for (i = 0; i < n_rows; i++)
+@@ -1844,7 +1846,12 @@ int table_print(Table *t, FILE *f) {
+                 for (size_t i = 0; i < n_rows; i++)
                          sorted[i] = i * t->n_columns;
  
 -                typesafe_qsort_r(sorted, n_rows, table_data_compare, t);
@@ -145,8 +145,8 @@
          }
  
          if (t->display_map)
-@@ -2375,7 +2382,12 @@ int table_to_json(Table *t, JsonVariant
-                 for (i = 0; i < n_rows; i++)
+@@ -2440,7 +2447,12 @@ int table_to_json(Table *t, JsonVariant **ret) {
+                 for (size_t i = 0; i < n_rows; i++)
                          sorted[i] = i * t->n_columns;
  
 -                typesafe_qsort_r(sorted, n_rows, table_data_compare, t);
@@ -159,3 +159,6 @@
          }
  
          if (t->display_map)
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch b/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
index 1404895..f43a22a 100644
--- a/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0003-missing_type.h-add-__compare_fn_t-and-comparison_fn_.patch
@@ -1,7 +1,7 @@
-From 233de872b9b033ec842c2135152d2e006ac44c16 Mon Sep 17 00:00:00 2001
+From 9f0d5996bbb2db3679a4075fa8301750b786c03b Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 13:55:12 +0800
-Subject: [PATCH] missing_type.h: add __compare_fn_t and comparison_fn_t
+Subject: [PATCH 03/26] missing_type.h: add __compare_fn_t and comparison_fn_t
 
 Make it work with musl where comparison_fn_t and __compare_fn_t
 is not provided.
@@ -13,7 +13,6 @@
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
 [Rebased for v242]
 Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
-
 ---
  src/basic/missing_type.h | 9 +++++++++
  src/basic/sort-util.h    | 1 +
@@ -22,7 +21,7 @@
  4 files changed, 12 insertions(+)
 
 diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
-index bf8a6caa1b46..c487e65e7bde 100644
+index f6233090a9..aeaf6ad5ec 100644
 --- a/src/basic/missing_type.h
 +++ b/src/basic/missing_type.h
 @@ -10,3 +10,12 @@
@@ -39,7 +38,7 @@
 +typedef int (*__compar_fn_t)(const void *, const void *);
 +#endif
 diff --git a/src/basic/sort-util.h b/src/basic/sort-util.h
-index 27d68b341cf3..307ea4ac0e8e 100644
+index 3394c9eb72..d9cb2aecb6 100644
 --- a/src/basic/sort-util.h
 +++ b/src/basic/sort-util.h
 @@ -4,6 +4,7 @@
@@ -51,7 +50,7 @@
  void *xbsearch_r(const void *key, const void *base, size_t nmemb, size_t size,
                   __compar_d_fn_t compar, void *arg);
 diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
-index 128674327362..09ccd613e32c 100644
+index 8a7f82812a..a56f12f47f 100644
 --- a/src/core/kmod-setup.c
 +++ b/src/core/kmod-setup.c
 @@ -10,6 +10,7 @@
@@ -63,7 +62,7 @@
  #if HAVE_KMOD
  #include "module-util.h"
 diff --git a/src/journal/catalog.c b/src/journal/catalog.c
-index 70b2c8b46c4e..d574a64586f1 100644
+index 0f6ad8a29e..4e1077ade4 100644
 --- a/src/journal/catalog.c
 +++ b/src/journal/catalog.c
 @@ -28,6 +28,7 @@
@@ -74,3 +73,6 @@
  
  const char * const catalog_file_dirs[] = {
          "/usr/local/lib/systemd/catalog/",
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch b/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
index e65c543..bdd64a0 100644
--- a/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0004-add-fallback-parse_printf_format-implementation.patch
@@ -1,7 +1,7 @@
-From 8af168cefca01f8f2da336f1c82620c284dc74f2 Mon Sep 17 00:00:00 2001
+From f3dbe29f7620a063af4d8eb3ea7c48ecd410200d Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 14:04:21 +0800
-Subject: [PATCH] add fallback parse_printf_format implementation
+Subject: [PATCH 04/26] add fallback parse_printf_format implementation
 
 Upstream-Status: Inappropriate [musl specific]
 
@@ -10,7 +10,6 @@
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
 [rebased for systemd 243]
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
 ---
  meson.build                     |   1 +
  src/basic/meson.build           |   5 +
@@ -22,11 +21,11 @@
  create mode 100644 src/basic/parse-printf-format.c
  create mode 100644 src/basic/parse-printf-format.h
 
-Index: systemd-stable/meson.build
-===================================================================
---- systemd-stable.orig/meson.build
-+++ systemd-stable/meson.build
-@@ -638,6 +638,7 @@ endif
+diff --git a/meson.build b/meson.build
+index f406d595e6..6aa47fc755 100644
+--- a/meson.build
++++ b/meson.build
+@@ -646,6 +646,7 @@ endif
  foreach header : ['crypt.h',
                    'linux/memfd.h',
                    'linux/vm_sockets.h',
@@ -34,11 +33,11 @@
                    'sys/auxv.h',
                    'valgrind/memcheck.h',
                    'valgrind/valgrind.h',
-Index: systemd-stable/src/basic/meson.build
-===================================================================
---- systemd-stable.orig/src/basic/meson.build
-+++ systemd-stable/src/basic/meson.build
-@@ -317,6 +317,11 @@ foreach item : [['af',     af_list_txt,
+diff --git a/src/basic/meson.build b/src/basic/meson.build
+index 1183ea83ad..aa5c958850 100644
+--- a/src/basic/meson.build
++++ b/src/basic/meson.build
+@@ -322,6 +322,11 @@ foreach item : [['af',     af_list_txt,     'af',         ''],
  endforeach
  
  basic_sources += generated_gperf_headers
@@ -50,10 +49,11 @@
  basic_gcrypt_sources = files(
          'gcrypt-util.c',
          'gcrypt-util.h')
-Index: systemd-stable/src/basic/parse-printf-format.c
-===================================================================
+diff --git a/src/basic/parse-printf-format.c b/src/basic/parse-printf-format.c
+new file mode 100644
+index 0000000000..49437e5445
 --- /dev/null
-+++ systemd-stable/src/basic/parse-printf-format.c
++++ b/src/basic/parse-printf-format.c
 @@ -0,0 +1,273 @@
 +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
 +
@@ -328,10 +328,11 @@
 +
 +        return last;
 +}
-Index: systemd-stable/src/basic/parse-printf-format.h
-===================================================================
+diff --git a/src/basic/parse-printf-format.h b/src/basic/parse-printf-format.h
+new file mode 100644
+index 0000000000..47be7522d7
 --- /dev/null
-+++ systemd-stable/src/basic/parse-printf-format.h
++++ b/src/basic/parse-printf-format.h
 @@ -0,0 +1,57 @@
 +/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
 +
@@ -390,12 +391,12 @@
 +size_t parse_printf_format(const char *fmt, size_t n, int *types);
 +
 +#endif /* HAVE_PRINTF_H */
-Index: systemd-stable/src/basic/stdio-util.h
-===================================================================
---- systemd-stable.orig/src/basic/stdio-util.h
-+++ systemd-stable/src/basic/stdio-util.h
+diff --git a/src/basic/stdio-util.h b/src/basic/stdio-util.h
+index 6dc1e72312..cea76b36cf 100644
+--- a/src/basic/stdio-util.h
++++ b/src/basic/stdio-util.h
 @@ -1,13 +1,13 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  #pragma once
  
 -#include <printf.h>
@@ -409,10 +410,10 @@
  
  #define snprintf_ok(buf, len, fmt, ...) \
          ((size_t) snprintf(buf, len, fmt, __VA_ARGS__) < (len))
-Index: systemd-stable/src/journal/journal-send.c
-===================================================================
---- systemd-stable.orig/src/journal/journal-send.c
-+++ systemd-stable/src/journal/journal-send.c
+diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
+index fd3fd7ef9c..e8e6ad555b 100644
+--- a/src/journal/journal-send.c
++++ b/src/journal/journal-send.c
 @@ -2,7 +2,6 @@
  
  #include <errno.h>
@@ -429,3 +430,6 @@
  
  #define SNDBUF_SIZE (8*1024*1024)
  
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch b/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
index 8e7a2fb..154e57b 100644
--- a/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0005-src-basic-missing.h-check-for-missing-strndupa.patch
@@ -1,7 +1,7 @@
-From 7e771de87cf728a8678f1f28f391bba3589e2496 Mon Sep 17 00:00:00 2001
+From 5aeae0ea89f5af74ed5d95bed1d87a03b3801ff0 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 14:18:21 +0800
-Subject: [PATCH] src/basic/missing.h: check for missing strndupa
+Subject: [PATCH 05/26] src/basic/missing.h: check for missing strndupa
 
 include missing.h  for definition of strndupa
 
@@ -15,7 +15,8 @@
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
 Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
 [rebased for systemd 244]
-
+[Rebased for v247]
+Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
 ---
  meson.build                                |  1 +
  src/backlight/backlight.c                  |  1 +
@@ -70,31 +71,31 @@
  50 files changed, 61 insertions(+)
 
 diff --git a/meson.build b/meson.build
-index 9187439bdd..bea9935a91 100644
+index 6aa47fc755..0d0fa4963c 100644
 --- a/meson.build
 +++ b/meson.build
-@@ -527,6 +527,7 @@ foreach ident : [
-                                  #include <unistd.h>
-                                  #include <signal.h>
+@@ -535,6 +535,7 @@ foreach ident : [
                                   #include <sys/wait.h>'''],
+         ['mallinfo',          '''#include <malloc.h>'''],
+         ['close_range',       '''#include <unistd.h>'''],
 +        ['strndupa' ,         '''#include <string.h>'''],
  ]
  
          have = cc.has_function(ident[0], prefix : ident[1], args : '-D_GNU_SOURCE')
 diff --git a/src/backlight/backlight.c b/src/backlight/backlight.c
-index 3a644363e1..73946a829b 100644
+index d1b6a81e33..38b7008371 100644
 --- a/src/backlight/backlight.c
 +++ b/src/backlight/backlight.c
-@@ -17,6 +17,7 @@
+@@ -19,6 +19,7 @@
  #include "string-util.h"
  #include "strv.h"
  #include "util.h"
 +#include "missing_stdlib.h"
  
- static int find_pci_or_platform_parent(sd_device *device, sd_device **ret) {
-         const char *subsystem, *sysname, *value;
+ static int help(void) {
+         _cleanup_free_ char *link = NULL;
 diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
-index e94fcfad02..856a7068b0 100644
+index f28bf1866a..bb960f183c 100644
 --- a/src/basic/cgroup-util.c
 +++ b/src/basic/cgroup-util.c
 @@ -38,6 +38,7 @@
@@ -106,7 +107,7 @@
  static int cg_enumerate_items(const char *controller, const char *path, FILE **_f, const char *item) {
          _cleanup_free_ char *fs = NULL;
 diff --git a/src/basic/env-util.c b/src/basic/env-util.c
-index b8dc98915f..5049b37594 100644
+index a84863ff22..d4f5d57231 100644
 --- a/src/basic/env-util.c
 +++ b/src/basic/env-util.c
 @@ -15,6 +15,7 @@
@@ -115,13 +116,13 @@
  #include "utf8.h"
 +#include "missing_stdlib.h"
  
- #define VALID_CHARS_ENV_NAME                    \
-         DIGITS LETTERS                          \
+ /* We follow bash for the character set. Different shells have different rules. */
+ #define VALID_BASH_ENV_NAME_CHARS               \
 diff --git a/src/basic/log.c b/src/basic/log.c
-index c6fe203808..b7ef932d28 100644
+index d4054cf46a..b608863e45 100644
 --- a/src/basic/log.c
 +++ b/src/basic/log.c
-@@ -35,6 +35,7 @@
+@@ -36,6 +36,7 @@
  #include "terminal-util.h"
  #include "time-util.h"
  #include "utf8.h"
@@ -130,7 +131,7 @@
  #define SNDBUF_SIZE (8*1024*1024)
  
 diff --git a/src/basic/missing_stdlib.h b/src/basic/missing_stdlib.h
-index 188a8d4406..1e16ec287a 100644
+index 8c76f93eb2..9068bfb4f0 100644
 --- a/src/basic/missing_stdlib.h
 +++ b/src/basic/missing_stdlib.h
 @@ -11,3 +11,15 @@
@@ -150,10 +151,10 @@
 +  })
 +#endif
 diff --git a/src/basic/mkdir.c b/src/basic/mkdir.c
-index 6ebc2b95fd..88f4359bab 100644
+index f91f8f7a08..fb31596216 100644
 --- a/src/basic/mkdir.c
 +++ b/src/basic/mkdir.c
-@@ -13,6 +13,7 @@
+@@ -14,6 +14,7 @@
  #include "stat-util.h"
  #include "stdio-util.h"
  #include "user-util.h"
@@ -162,10 +163,10 @@
  int mkdir_safe_internal(
                  const char *path,
 diff --git a/src/basic/parse-util.c b/src/basic/parse-util.c
-index 44f0438cf4..54b4133343 100644
+index 5d4dafe3a5..70749750d4 100644
 --- a/src/basic/parse-util.c
 +++ b/src/basic/parse-util.c
-@@ -19,6 +19,7 @@
+@@ -22,6 +22,7 @@
  #include "stat-util.h"
  #include "string-util.h"
  #include "strv.h"
@@ -174,7 +175,7 @@
  int parse_boolean(const char *v) {
          if (!v)
 diff --git a/src/basic/path-lookup.c b/src/basic/path-lookup.c
-index 52968dee34..2f4f7e3dcd 100644
+index 96b82170d0..71342b46af 100644
 --- a/src/basic/path-lookup.c
 +++ b/src/basic/path-lookup.c
 @@ -15,6 +15,7 @@
@@ -186,7 +187,7 @@
  int xdg_user_runtime_dir(char **ret, const char *suffix) {
          const char *e;
 diff --git a/src/basic/proc-cmdline.c b/src/basic/proc-cmdline.c
-index ba47ca5812..8baf728fde 100644
+index 0b6fb137bd..e8e8c7b270 100644
 --- a/src/basic/proc-cmdline.c
 +++ b/src/basic/proc-cmdline.c
 @@ -15,6 +15,7 @@
@@ -198,7 +199,7 @@
  int proc_cmdline(char **ret) {
          const char *e;
 diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
-index 7aaf95bfce..da7e836f14 100644
+index ccab71f7d2..8f9eee8d36 100644
 --- a/src/basic/procfs-util.c
 +++ b/src/basic/procfs-util.c
 @@ -11,6 +11,7 @@
@@ -210,7 +211,7 @@
  int procfs_tasks_get_limit(uint64_t *ret) {
          _cleanup_free_ char *value = NULL;
 diff --git a/src/basic/selinux-util.c b/src/basic/selinux-util.c
-index c94ee26bd9..14e35b4653 100644
+index 4989f4f37c..ca00bf99d8 100644
 --- a/src/basic/selinux-util.c
 +++ b/src/basic/selinux-util.c
 @@ -27,6 +27,7 @@
@@ -222,10 +223,10 @@
  #if HAVE_SELINUX
  DEFINE_TRIVIAL_CLEANUP_FUNC(context_t, context_free);
 diff --git a/src/basic/time-util.c b/src/basic/time-util.c
-index 15cc1b8851..02bb3f01f9 100644
+index 5318d6378d..23c2f77675 100644
 --- a/src/basic/time-util.c
 +++ b/src/basic/time-util.c
-@@ -26,6 +26,7 @@
+@@ -27,6 +27,7 @@
  #include "string-util.h"
  #include "strv.h"
  #include "time-util.h"
@@ -234,7 +235,7 @@
  static clockid_t map_clock_id(clockid_t c) {
  
 diff --git a/src/boot/bless-boot.c b/src/boot/bless-boot.c
-index b96e1f927f..cba979baca 100644
+index cd34f88bb9..3a77b6f2ca 100644
 --- a/src/boot/bless-boot.c
 +++ b/src/boot/bless-boot.c
 @@ -18,6 +18,7 @@
@@ -246,10 +247,10 @@
  static char **arg_path = NULL;
  
 diff --git a/src/core/dbus-cgroup.c b/src/core/dbus-cgroup.c
-index b7d2e32639..fdbc1df95e 100644
+index 37c581fb22..e02789d689 100644
 --- a/src/core/dbus-cgroup.c
 +++ b/src/core/dbus-cgroup.c
-@@ -15,6 +15,7 @@
+@@ -16,6 +16,7 @@
  #include "fileio.h"
  #include "limits-util.h"
  #include "path-util.h"
@@ -258,7 +259,7 @@
  BUS_DEFINE_PROPERTY_GET(bus_property_get_tasks_max, "t", TasksMax, tasks_max_resolve);
  
 diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c
-index 50f7ada8ce..5c760ee487 100644
+index abe009c395..0451e58d1c 100644
 --- a/src/core/dbus-execute.c
 +++ b/src/core/dbus-execute.c
 @@ -41,6 +41,7 @@
@@ -270,7 +271,7 @@
  BUS_DEFINE_PROPERTY_GET_ENUM(bus_property_get_exec_output, exec_output, ExecOutput);
  static BUS_DEFINE_PROPERTY_GET_ENUM(property_get_exec_input, exec_input, ExecInput);
 diff --git a/src/core/dbus-util.c b/src/core/dbus-util.c
-index 951450e53d..50d134e9a1 100644
+index d6223db305..3654c344ee 100644
 --- a/src/core/dbus-util.c
 +++ b/src/core/dbus-util.c
 @@ -7,6 +7,7 @@
@@ -282,10 +283,10 @@
  int bus_property_get_triggered_unit(
                  sd_bus *bus,
 diff --git a/src/core/execute.c b/src/core/execute.c
-index 2a4840a3a9..d3f1e0e0f8 100644
+index c992b8d5d3..89632e0582 100644
 --- a/src/core/execute.c
 +++ b/src/core/execute.c
-@@ -89,6 +89,7 @@
+@@ -96,6 +96,7 @@
  #include "unit.h"
  #include "user-util.h"
  #include "utmp-wtmp.h"
@@ -294,7 +295,7 @@
  #define IDLE_TIMEOUT_USEC (5*USEC_PER_SEC)
  #define IDLE_TIMEOUT2_USEC (1*USEC_PER_SEC)
 diff --git a/src/core/kmod-setup.c b/src/core/kmod-setup.c
-index 09ccd613e3..f4e64fa283 100644
+index a56f12f47f..6b8729ef67 100644
 --- a/src/core/kmod-setup.c
 +++ b/src/core/kmod-setup.c
 @@ -11,6 +11,7 @@
@@ -306,7 +307,7 @@
  #if HAVE_KMOD
  #include "module-util.h"
 diff --git a/src/core/service.c b/src/core/service.c
-index 00e61945ba..1ecab28354 100644
+index d7bdeb7cca..bfd483b2c0 100644
 --- a/src/core/service.c
 +++ b/src/core/service.c
 @@ -41,6 +41,7 @@
@@ -318,7 +319,7 @@
  static const UnitActiveState state_translation_table[_SERVICE_STATE_MAX] = {
          [SERVICE_DEAD] = UNIT_INACTIVE,
 diff --git a/src/coredump/coredump-vacuum.c b/src/coredump/coredump-vacuum.c
-index 35885dfb47..bb9f0660a6 100644
+index 30c67ffe7c..595bc30726 100644
 --- a/src/coredump/coredump-vacuum.c
 +++ b/src/coredump/coredump-vacuum.c
 @@ -16,6 +16,7 @@
@@ -330,7 +331,7 @@
  #define DEFAULT_MAX_USE_LOWER (uint64_t) (1ULL*1024ULL*1024ULL)           /* 1 MiB */
  #define DEFAULT_MAX_USE_UPPER (uint64_t) (4ULL*1024ULL*1024ULL*1024ULL)   /* 4 GiB */
 diff --git a/src/journal-remote/journal-remote-main.c b/src/journal-remote/journal-remote-main.c
-index 77dfdefd64..e21ecbeff8 100644
+index d2aa1815c2..a851aa203f 100644
 --- a/src/journal-remote/journal-remote-main.c
 +++ b/src/journal-remote/journal-remote-main.c
 @@ -22,6 +22,7 @@
@@ -342,10 +343,10 @@
  #define PRIV_KEY_FILE CERTIFICATE_ROOT "/private/journal-remote.pem"
  #define CERT_FILE     CERTIFICATE_ROOT "/certs/journal-remote.pem"
 diff --git a/src/journal/journalctl.c b/src/journal/journalctl.c
-index 8d4897b942..15476b3c83 100644
+index bcf2e01d5c..5394d1dc01 100644
 --- a/src/journal/journalctl.c
 +++ b/src/journal/journalctl.c
-@@ -69,6 +69,7 @@
+@@ -73,6 +73,7 @@
  #include "unit-name.h"
  #include "user-util.h"
  #include "varlink.h"
@@ -354,7 +355,7 @@
  #define DEFAULT_FSS_INTERVAL_USEC (15*USEC_PER_MINUTE)
  #define PROCESS_INOTIFY_INTERVAL 1024   /* Every 1,024 messages processed */
 diff --git a/src/journal/sd-journal.c b/src/journal/sd-journal.c
-index 6fb0abb419..2d94d9938e 100644
+index cb1ab88ca5..7f35759540 100644
 --- a/src/journal/sd-journal.c
 +++ b/src/journal/sd-journal.c
 @@ -40,6 +40,7 @@
@@ -366,7 +367,7 @@
  #define JOURNAL_FILES_MAX 7168
  
 diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
-index 55e35cd902..0ed98f9224 100644
+index 86ff5bdfa2..3fd053a358 100644
 --- a/src/libsystemd/sd-bus/bus-message.c
 +++ b/src/libsystemd/sd-bus/bus-message.c
 @@ -21,6 +21,7 @@
@@ -378,7 +379,7 @@
  static int message_append_basic(sd_bus_message *m, char type, const void *p, const void **stored);
  
 diff --git a/src/libsystemd/sd-bus/bus-objects.c b/src/libsystemd/sd-bus/bus-objects.c
-index 6abac8822c..c74c9cd7fa 100644
+index 275c4318a1..5ffee59d17 100644
 --- a/src/libsystemd/sd-bus/bus-objects.c
 +++ b/src/libsystemd/sd-bus/bus-objects.c
 @@ -13,6 +13,7 @@
@@ -390,7 +391,7 @@
  static int node_vtable_get_userdata(
                  sd_bus *bus,
 diff --git a/src/libsystemd/sd-bus/bus-socket.c b/src/libsystemd/sd-bus/bus-socket.c
-index fc7e8e844a..7af4dd2712 100644
+index 4881fd0d32..c865f1133b 100644
 --- a/src/libsystemd/sd-bus/bus-socket.c
 +++ b/src/libsystemd/sd-bus/bus-socket.c
 @@ -28,6 +28,7 @@
@@ -402,7 +403,7 @@
  #define SNDBUF_SIZE (8*1024*1024)
  
 diff --git a/src/libsystemd/sd-bus/sd-bus.c b/src/libsystemd/sd-bus/sd-bus.c
-index 9de5e454a6..fe86c93c63 100644
+index b8d4dc8d95..a8bac2665d 100644
 --- a/src/libsystemd/sd-bus/sd-bus.c
 +++ b/src/libsystemd/sd-bus/sd-bus.c
 @@ -41,6 +41,7 @@
@@ -414,7 +415,7 @@
  #define log_debug_bus_message(m)                                         \
          do {                                                             \
 diff --git a/src/libsystemd/sd-bus/test-bus-benchmark.c b/src/libsystemd/sd-bus/test-bus-benchmark.c
-index 8de0a859ee..58044b6ba9 100644
+index 8c6711797a..fac178823a 100644
 --- a/src/libsystemd/sd-bus/test-bus-benchmark.c
 +++ b/src/libsystemd/sd-bus/test-bus-benchmark.c
 @@ -14,6 +14,7 @@
@@ -426,7 +427,7 @@
  #define MAX_SIZE (2*1024*1024)
  
 diff --git a/src/locale/keymap-util.c b/src/locale/keymap-util.c
-index 233d081300..40a32b9700 100644
+index cb8153f4fe..d52a56019d 100644
 --- a/src/locale/keymap-util.c
 +++ b/src/locale/keymap-util.c
 @@ -21,6 +21,7 @@
@@ -438,7 +439,7 @@
  static bool startswith_comma(const char *s, const char *prefix) {
          s = startswith(s, prefix);
 diff --git a/src/login/pam_systemd.c b/src/login/pam_systemd.c
-index 16f4289585..6c5e438b36 100644
+index 8e7a94db55..b5c368c6d1 100644
 --- a/src/login/pam_systemd.c
 +++ b/src/login/pam_systemd.c
 @@ -31,6 +31,7 @@
@@ -450,7 +451,7 @@
  #include "parse-util.h"
  #include "path-util.h"
 diff --git a/src/network/generator/network-generator.c b/src/network/generator/network-generator.c
-index bed1e42697..e4847c2bee 100644
+index 2fa21a067a..2e9995aa62 100644
 --- a/src/network/generator/network-generator.c
 +++ b/src/network/generator/network-generator.c
 @@ -13,6 +13,7 @@
@@ -462,7 +463,7 @@
  /*
    # .network
 diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c
-index d341fa25aa..91646bc2c2 100644
+index 92bb5120ab..eeca905c75 100644
 --- a/src/nspawn/nspawn-settings.c
 +++ b/src/nspawn/nspawn-settings.c
 @@ -16,6 +16,7 @@
@@ -474,7 +475,7 @@
  Settings *settings_new(void) {
          Settings *s;
 diff --git a/src/nss-mymachines/nss-mymachines.c b/src/nss-mymachines/nss-mymachines.c
-index 5db0dcef76..681f8677e4 100644
+index 53f0492116..c71941fdd7 100644
 --- a/src/nss-mymachines/nss-mymachines.c
 +++ b/src/nss-mymachines/nss-mymachines.c
 @@ -19,6 +19,7 @@
@@ -486,7 +487,7 @@
  NSS_GETHOSTBYNAME_PROTOTYPES(mymachines);
  NSS_GETPW_PROTOTYPES(mymachines);
 diff --git a/src/portable/portable.c b/src/portable/portable.c
-index 3a1367ec2b..f29336cb1e 100644
+index ed7eac0291..78986977f8 100644
 --- a/src/portable/portable.c
 +++ b/src/portable/portable.c
 @@ -31,6 +31,7 @@
@@ -498,31 +499,31 @@
  static const char profile_dirs[] = CONF_PATHS_NULSTR("systemd/portable/profile");
  
 diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c
-index 3072b984e5..c46ae374bf 100644
+index b479335769..212d0bed20 100644
 --- a/src/resolve/resolvectl.c
 +++ b/src/resolve/resolvectl.c
-@@ -36,6 +36,7 @@
- #include "strv.h"
+@@ -37,6 +37,7 @@
  #include "terminal-util.h"
+ #include "utf8.h"
  #include "verbs.h"
 +#include "missing_stdlib.h"
  
  static int arg_family = AF_UNSPEC;
  static int arg_ifindex = 0;
 diff --git a/src/shared/bus-get-properties.c b/src/shared/bus-get-properties.c
-index 8ad4694046..da5082c02a 100644
+index 32f68d5e6a..bda1e1ef4f 100644
 --- a/src/shared/bus-get-properties.c
 +++ b/src/shared/bus-get-properties.c
-@@ -3,6 +3,7 @@
- #include "bus-get-properties.h"
+@@ -4,6 +4,7 @@
  #include "rlimit-util.h"
+ #include "stdio-util.h"
  #include "string-util.h"
 +#include "missing_stdlib.h"
  
  int bus_property_get_bool(
                  sd_bus *bus,
 diff --git a/src/shared/bus-unit-procs.c b/src/shared/bus-unit-procs.c
-index b21fe39326..af2640005c 100644
+index 3e97be9671..2b8ca838f7 100644
 --- a/src/shared/bus-unit-procs.c
 +++ b/src/shared/bus-unit-procs.c
 @@ -10,6 +10,7 @@
@@ -534,10 +535,10 @@
  struct CGroupInfo {
          char *cgroup_path;
 diff --git a/src/shared/bus-unit-util.c b/src/shared/bus-unit-util.c
-index f2652ed9a5..eb019fc89f 100644
+index 2bab2299fb..62afdc7973 100644
 --- a/src/shared/bus-unit-util.c
 +++ b/src/shared/bus-unit-util.c
-@@ -39,6 +39,7 @@
+@@ -44,6 +44,7 @@
  #include "unit-def.h"
  #include "user-util.h"
  #include "utf8.h"
@@ -546,22 +547,22 @@
  int bus_parse_unit_info(sd_bus_message *message, UnitInfo *u) {
          assert(message);
 diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
-index 77c1c62182..5cd31f3c15 100644
+index fbda218b3b..aae0be75c6 100644
 --- a/src/shared/bus-util.c
 +++ b/src/shared/bus-util.c
-@@ -22,6 +22,7 @@
+@@ -21,6 +21,7 @@
+ #include "path-util.h"
  #include "socket-util.h"
  #include "stdio-util.h"
- /* #include "string-util.h" */
 +#include "missing_stdlib.h"
  
  static int name_owner_change_callback(sd_bus_message *m, void *userdata, sd_bus_error *ret_error) {
          sd_event *e = userdata;
 diff --git a/src/shared/dns-domain.c b/src/shared/dns-domain.c
-index b812665315..8e68f7f8fc 100644
+index 8bd1e3a6ac..f8d6eab9bd 100644
 --- a/src/shared/dns-domain.c
 +++ b/src/shared/dns-domain.c
-@@ -23,6 +23,7 @@
+@@ -17,6 +17,7 @@
  #include "string-util.h"
  #include "strv.h"
  #include "utf8.h"
@@ -570,7 +571,7 @@
  int dns_label_unescape(const char **name, char *dest, size_t sz, DNSLabelFlags flags) {
          const char *n;
 diff --git a/src/shared/journal-importer.c b/src/shared/journal-importer.c
-index 7c4fc7021d..3fbaf5a639 100644
+index e95b638f4d..a1bf15baa8 100644
 --- a/src/shared/journal-importer.c
 +++ b/src/shared/journal-importer.c
 @@ -14,6 +14,7 @@
@@ -582,7 +583,7 @@
  enum {
          IMPORTER_STATE_LINE = 0,    /* waiting to read, or reading line */
 diff --git a/src/shared/logs-show.c b/src/shared/logs-show.c
-index 899e894ab7..628854ac9c 100644
+index bf574d32a5..a09c79d2fb 100644
 --- a/src/shared/logs-show.c
 +++ b/src/shared/logs-show.c
 @@ -41,6 +41,7 @@
@@ -594,10 +595,10 @@
  /* up to three lines (each up to 100 characters) or 300 characters, whichever is less */
  #define PRINT_LINE_THRESHOLD 3
 diff --git a/src/shared/pager.c b/src/shared/pager.c
-index e03be6d23b..50e3d1f75c 100644
+index f689d9f28f..aae3957c2f 100644
 --- a/src/shared/pager.c
 +++ b/src/shared/pager.c
-@@ -23,6 +23,7 @@
+@@ -26,6 +26,7 @@
  #include "strv.h"
  #include "terminal-util.h"
  #include "util.h"
@@ -606,7 +607,7 @@
  static pid_t pager_pid = 0;
  
 diff --git a/src/shared/uid-range.c b/src/shared/uid-range.c
-index 7cb7d8a477..8e7d7f9e7c 100644
+index 5d5bf7f21d..f1002ffa6c 100644
 --- a/src/shared/uid-range.c
 +++ b/src/shared/uid-range.c
 @@ -9,6 +9,7 @@
@@ -618,7 +619,7 @@
  static bool uid_range_intersect(UidRange *range, uid_t start, uid_t nr) {
          assert(range);
 diff --git a/src/socket-proxy/socket-proxyd.c b/src/socket-proxy/socket-proxyd.c
-index b461aead60..9941695ed9 100644
+index 4391d9f1f5..9b73cd0aeb 100644
 --- a/src/socket-proxy/socket-proxyd.c
 +++ b/src/socket-proxy/socket-proxyd.c
 @@ -26,6 +26,7 @@
@@ -630,7 +631,7 @@
  #define BUFFER_SIZE (256 * 1024)
  
 diff --git a/src/test/test-hexdecoct.c b/src/test/test-hexdecoct.c
-index 52217429b1..70708dedf3 100644
+index f0f9679769..128fc164da 100644
 --- a/src/test/test-hexdecoct.c
 +++ b/src/test/test-hexdecoct.c
 @@ -6,6 +6,7 @@
@@ -642,7 +643,7 @@
  static void test_hexchar(void) {
          assert_se(hexchar(0xa) == 'a');
 diff --git a/src/udev/udev-builtin-path_id.c b/src/udev/udev-builtin-path_id.c
-index 6c020ac0ed..10723ec46c 100644
+index 0da59e2c75..66da3741ee 100644
 --- a/src/udev/udev-builtin-path_id.c
 +++ b/src/udev/udev-builtin-path_id.c
 @@ -22,6 +22,7 @@
@@ -654,7 +655,7 @@
  _printf_(2,3)
  static void path_prepend(char **path, const char *fmt, ...) {
 diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
-index e1c2baf7f2..62d4086802 100644
+index 5159d19a38..0ed5b65844 100644
 --- a/src/udev/udev-event.c
 +++ b/src/udev/udev-event.c
 @@ -34,6 +34,7 @@
@@ -666,7 +667,7 @@
  typedef struct Spawn {
          sd_device *device;
 diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
-index c36f032f66..36970813d8 100644
+index ef6a0c112c..422fc19127 100644
 --- a/src/udev/udev-rules.c
 +++ b/src/udev/udev-rules.c
 @@ -30,6 +30,7 @@
@@ -677,3 +678,6 @@
  
  #define RULES_DIRS (const char* const*) CONF_PATHS_STRV("udev/rules.d")
  
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch b/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch
index abc438e..b689cf1 100644
--- a/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0006-Include-netinet-if_ether.h.patch
@@ -1,7 +1,7 @@
-From 47818052121d135632f5e46c369e3e4706a0f9e0 Mon Sep 17 00:00:00 2001
+From d3ed0da271738fd0fc3d3e4d82d6f5810334b05e Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Thu, 26 Oct 2017 22:10:42 -0700
-Subject: [PATCH] Include netinet/if_ether.h
+Subject: [PATCH 06/26] Include netinet/if_ether.h
 
 Fixes
 /path/to/systemd/recipe-sysroot/usr/include/netinet/if_ether.h:101:8: error: redefinition of 'struct ethhdr'
@@ -29,7 +29,8 @@
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
 [rebased for systemd 243]
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
+[rebased for systemd 247]
+Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
 ---
  src/libsystemd-network/sd-dhcp6-client.c  | 1 -
  src/libsystemd/sd-netlink/netlink-types.c | 1 +
@@ -52,10 +53,10 @@
  src/udev/udev-builtin-net_setup_link.c    | 1 +
  19 files changed, 18 insertions(+), 4 deletions(-)
 
-Index: systemd-stable/src/libsystemd-network/sd-dhcp6-client.c
-===================================================================
---- systemd-stable.orig/src/libsystemd-network/sd-dhcp6-client.c
-+++ systemd-stable/src/libsystemd-network/sd-dhcp6-client.c
+diff --git a/src/libsystemd-network/sd-dhcp6-client.c b/src/libsystemd-network/sd-dhcp6-client.c
+index 30ac526fc9..126077e13c 100644
+--- a/src/libsystemd-network/sd-dhcp6-client.c
++++ b/src/libsystemd-network/sd-dhcp6-client.c
 @@ -5,7 +5,6 @@
  
  #include <errno.h>
@@ -64,10 +65,10 @@
  #include <linux/if_infiniband.h>
  
  #include "sd-dhcp6-client.h"
-Index: systemd-stable/src/libsystemd/sd-netlink/netlink-types.c
-===================================================================
---- systemd-stable.orig/src/libsystemd/sd-netlink/netlink-types.c
-+++ systemd-stable/src/libsystemd/sd-netlink/netlink-types.c
+diff --git a/src/libsystemd/sd-netlink/netlink-types.c b/src/libsystemd/sd-netlink/netlink-types.c
+index 6fb6c147d9..8eda02d202 100644
+--- a/src/libsystemd/sd-netlink/netlink-types.c
++++ b/src/libsystemd/sd-netlink/netlink-types.c
 @@ -3,6 +3,7 @@
  #include <netinet/in.h>
  #include <stdint.h>
@@ -76,10 +77,10 @@
  #include <linux/can/vxcan.h>
  #include <linux/netlink.h>
  #include <linux/rtnetlink.h>
-Index: systemd-stable/src/machine/machine-dbus.c
-===================================================================
---- systemd-stable.orig/src/machine/machine-dbus.c
-+++ systemd-stable/src/machine/machine-dbus.c
+diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
+index bb67beb665..f5780f1aec 100644
+--- a/src/machine/machine-dbus.c
++++ b/src/machine/machine-dbus.c
 @@ -3,6 +3,7 @@
  #include <errno.h>
  #include <sys/mount.h>
@@ -88,66 +89,66 @@
  
  /* When we include libgen.h because we need dirname() we immediately
   * undefine basename() since libgen.h defines it as a macro to the POSIX
-Index: systemd-stable/src/network/netdev/bond.c
-===================================================================
---- systemd-stable.orig/src/network/netdev/bond.c
-+++ systemd-stable/src/network/netdev/bond.c
+diff --git a/src/network/netdev/bond.c b/src/network/netdev/bond.c
+index e27f36067b..8868f1da5d 100644
+--- a/src/network/netdev/bond.c
++++ b/src/network/netdev/bond.c
 @@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  
 +#include <netinet/if_ether.h>
  #include "alloc-util.h"
  #include "bond.h"
  #include "bond-util.h"
-Index: systemd-stable/src/network/netdev/bridge.c
-===================================================================
---- systemd-stable.orig/src/network/netdev/bridge.c
-+++ systemd-stable/src/network/netdev/bridge.c
+diff --git a/src/network/netdev/bridge.c b/src/network/netdev/bridge.c
+index 1f59cd8b42..5fdbae7e99 100644
+--- a/src/network/netdev/bridge.c
++++ b/src/network/netdev/bridge.c
 @@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  
 +#include <netinet/if_ether.h>
  #include <net/if.h>
  
  #include "bridge.h"
-Index: systemd-stable/src/network/netdev/macsec.c
-===================================================================
---- systemd-stable.orig/src/network/netdev/macsec.c
-+++ systemd-stable/src/network/netdev/macsec.c
+diff --git a/src/network/netdev/macsec.c b/src/network/netdev/macsec.c
+index 82e71c3920..fbae86e216 100644
+--- a/src/network/netdev/macsec.c
++++ b/src/network/netdev/macsec.c
 @@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  
 +#include <netinet/if_ether.h>
  #include <netinet/in.h>
  #include <linux/if_ether.h>
  #include <linux/if_macsec.h>
-Index: systemd-stable/src/network/netdev/netdev-gperf.gperf
-===================================================================
---- systemd-stable.orig/src/network/netdev/netdev-gperf.gperf
-+++ systemd-stable/src/network/netdev/netdev-gperf.gperf
+diff --git a/src/network/netdev/netdev-gperf.gperf b/src/network/netdev/netdev-gperf.gperf
+index 4e89761f2c..91251fa6ec 100644
+--- a/src/network/netdev/netdev-gperf.gperf
++++ b/src/network/netdev/netdev-gperf.gperf
 @@ -2,6 +2,7 @@
  #if __GNUC__ >= 7
  _Pragma("GCC diagnostic ignored \"-Wimplicit-fallthrough\"")
  #endif
 +#include <netinet/if_ether.h>
  #include <stddef.h>
+ #include "bareudp.h"
  #include "bond.h"
- #include "bridge.h"
-Index: systemd-stable/src/network/netdev/netdev.c
-===================================================================
---- systemd-stable.orig/src/network/netdev/netdev.c
-+++ systemd-stable/src/network/netdev/netdev.c
+diff --git a/src/network/netdev/netdev.c b/src/network/netdev/netdev.c
+index 9f390b5781..62aeafb1e4 100644
+--- a/src/network/netdev/netdev.c
++++ b/src/network/netdev/netdev.c
 @@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  
 +#include <netinet/if_ether.h>
  #include <net/if.h>
  #include <netinet/in.h>
  #include <unistd.h>
-Index: systemd-stable/src/network/networkd-brvlan.c
-===================================================================
---- systemd-stable.orig/src/network/networkd-brvlan.c
-+++ systemd-stable/src/network/networkd-brvlan.c
+diff --git a/src/network/networkd-brvlan.c b/src/network/networkd-brvlan.c
+index e53c73c30c..9bf0771b84 100644
+--- a/src/network/networkd-brvlan.c
++++ b/src/network/networkd-brvlan.c
 @@ -4,6 +4,7 @@
  ***/
  
@@ -156,24 +157,49 @@
  #include <linux/if_bridge.h>
  #include <stdbool.h>
  
-Index: systemd-stable/src/network/networkd-dhcp-common.c
-===================================================================
---- systemd-stable.orig/src/network/networkd-dhcp-common.c
-+++ systemd-stable/src/network/networkd-dhcp-common.c
-@@ -5,6 +5,7 @@
- #include "escape.h"
- #include "in-addr-util.h"
+diff --git a/src/network/networkd-dhcp-common.c b/src/network/networkd-dhcp-common.c
+index c338c775a7..ab35d65c53 100644
+--- a/src/network/networkd-dhcp-common.c
++++ b/src/network/networkd-dhcp-common.c
+@@ -1,7 +1,8 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
++#include <net/if_arp.h>
++#include <net/if.h>
+ 
+ #include "dhcp-internal.h"
+ #include "dhcp6-internal.h"
+@@ -10,6 +10,7 @@
  #include "networkd-dhcp-common.h"
+ #include "networkd-link.h"
+ #include "networkd-manager.h"
 +#include <netinet/if_ether.h>
  #include "networkd-network.h"
  #include "parse-util.h"
- #include "string-table.h"
-Index: systemd-stable/src/network/networkd-dhcp4.c
-===================================================================
---- systemd-stable.orig/src/network/networkd-dhcp4.c
-+++ systemd-stable/src/network/networkd-dhcp4.c
+ #include "socket-util.h"
+diff --git a/src/network/networkd-dhcp-server.c b/src/network/networkd-dhcp-server.c
+index cf279c640d..bae541029b 100644
+--- a/src/network/networkd-dhcp-server.c
++++ b/src/network/networkd-dhcp-server.c
+@@ -1,8 +1,8 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+ #include <netinet/in.h>
+-#include <linux/if_arp.h>
+-#include <linux/if.h>
++#include <net/if_arp.h>
++#include <net/if.h>
+ 
+ #include "sd-dhcp-server.h"
+ 
+diff --git a/src/network/networkd-dhcp4.c b/src/network/networkd-dhcp4.c
+index 02d33841b6..a30d8dd82c 100644
+--- a/src/network/networkd-dhcp4.c
++++ b/src/network/networkd-dhcp4.c
 @@ -1,9 +1,9 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  
 +#include <netinet/if_ether.h>
  #include <netinet/in.h>
@@ -183,10 +209,10 @@
  
  #include "escape.h"
  #include "alloc-util.h"
-Index: systemd-stable/src/network/networkd-dhcp6.c
-===================================================================
---- systemd-stable.orig/src/network/networkd-dhcp6.c
-+++ systemd-stable/src/network/networkd-dhcp6.c
+diff --git a/src/network/networkd-dhcp6.c b/src/network/networkd-dhcp6.c
+index d4d4182ee5..635d08f7d5 100644
+--- a/src/network/networkd-dhcp6.c
++++ b/src/network/networkd-dhcp6.c
 @@ -3,9 +3,9 @@
    Copyright © 2014 Intel Corporation. All rights reserved.
  ***/
@@ -198,12 +224,12 @@
  
  #include "sd-dhcp6-client.h"
  
-Index: systemd-stable/src/network/networkd-link.c
-===================================================================
---- systemd-stable.orig/src/network/networkd-link.c
-+++ systemd-stable/src/network/networkd-link.c
+diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c
+index ced18de425..07b43770de 100644
+--- a/src/network/networkd-link.c
++++ b/src/network/networkd-link.c
 @@ -1,8 +1,8 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  
 +#include <netinet/if_ether.h>
  #include <netinet/in.h>
@@ -212,41 +238,59 @@
  #include <linux/if_link.h>
  #include <unistd.h>
  
-Index: systemd-stable/src/network/networkd-network.c
-===================================================================
---- systemd-stable.orig/src/network/networkd-network.c
-+++ systemd-stable/src/network/networkd-network.c
+diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
+index 3254641461..f0ada419fd 100644
+--- a/src/network/networkd-network.c
++++ b/src/network/networkd-network.c
 @@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  
 +#include <netinet/if_ether.h>
  #include <net/if.h>
  #include <netinet/in.h>
  #include <linux/netdevice.h>
-Index: systemd-stable/src/network/test-network-tables.c
-===================================================================
---- systemd-stable.orig/src/network/test-network-tables.c
-+++ systemd-stable/src/network/test-network-tables.c
-@@ -1,3 +1,4 @@
+diff --git a/src/network/networkd-route.c b/src/network/networkd-route.c
+index 10f30c1a7e..579885726c 100644
+--- a/src/network/networkd-route.c
++++ b/src/network/networkd-route.c
+@@ -1,7 +1,10 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
+ #include <linux/icmpv6.h>
+-#include <linux/ipv6_route.h>
++/* linux/ipv6_route.h conflicts with netinet/in.h so define manually */
++#ifndef IP6_RT_PRIO_USER
++#define IP6_RT_PRIO_USER       1024
++#endif
+ 
+ #include "alloc-util.h"
+ #include "netlink-util.h"
+diff --git a/src/network/test-network-tables.c b/src/network/test-network-tables.c
+index 475cac7527..9bae6eda16 100644
+--- a/src/network/test-network-tables.c
++++ b/src/network/test-network-tables.c
+@@ -1,5 +1,6 @@
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
+ 
 +#include <netinet/if_ether.h>
  #include "bond.h"
  #include "dhcp6-internal.h"
  #include "dhcp6-protocol.h"
-Index: systemd-stable/src/shared/ethtool-util.c
-===================================================================
---- systemd-stable.orig/src/shared/ethtool-util.c
-+++ systemd-stable/src/shared/ethtool-util.c
+diff --git a/src/shared/ethtool-util.c b/src/shared/ethtool-util.c
+index e6fab262f2..41dd3d7df7 100644
+--- a/src/shared/ethtool-util.c
++++ b/src/shared/ethtool-util.c
 @@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  
 +#include <netinet/if_ether.h>
  #include <net/if.h>
  #include <sys/ioctl.h>
  #include <linux/ethtool.h>
-Index: systemd-stable/src/shared/ethtool-util.h
-===================================================================
---- systemd-stable.orig/src/shared/ethtool-util.h
-+++ systemd-stable/src/shared/ethtool-util.h
+diff --git a/src/shared/ethtool-util.h b/src/shared/ethtool-util.h
+index f94b3e15bf..08a7e4fa09 100644
+--- a/src/shared/ethtool-util.h
++++ b/src/shared/ethtool-util.h
 @@ -3,6 +3,7 @@
  
  #include <macro.h>
@@ -255,25 +299,28 @@
  #include <linux/ethtool.h>
  
  #include "conf-parser.h"
-Index: systemd-stable/src/udev/net/link-config.c
-===================================================================
---- systemd-stable.orig/src/udev/net/link-config.c
-+++ systemd-stable/src/udev/net/link-config.c
+diff --git a/src/udev/net/link-config.c b/src/udev/net/link-config.c
+index d12fd0e299..636806dc23 100644
+--- a/src/udev/net/link-config.c
++++ b/src/udev/net/link-config.c
 @@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  
 +#include <netinet/if_ether.h>
  #include <linux/netdevice.h>
  #include <netinet/ether.h>
  #include <unistd.h>
-Index: systemd-stable/src/udev/udev-builtin-net_setup_link.c
-===================================================================
---- systemd-stable.orig/src/udev/udev-builtin-net_setup_link.c
-+++ systemd-stable/src/udev/udev-builtin-net_setup_link.c
+diff --git a/src/udev/udev-builtin-net_setup_link.c b/src/udev/udev-builtin-net_setup_link.c
+index cb12b943fe..5a28c8b563 100644
+--- a/src/udev/udev-builtin-net_setup_link.c
++++ b/src/udev/udev-builtin-net_setup_link.c
 @@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  
 +#include <netinet/if_ether.h>
  #include "device-util.h"
  #include "alloc-util.h"
  #include "link-config.h"
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch b/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
similarity index 80%
rename from poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch
rename to poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
index dd6eceb..6865421 100644
--- a/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch
@@ -1,7 +1,8 @@
-From 77f98727f1d19a8fb327b55c92f1a9ee7b859e9f Mon Sep 17 00:00:00 2001
+From 87a14dde13c8fa68239a4ab62914a093062b3b29 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 14:56:21 +0800
-Subject: [PATCH] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not defined
+Subject: [PATCH 07/26] don't fail if GLOB_BRACE and GLOB_ALTDIRFUNC is not
+ defined
 
 If the standard library doesn't provide brace
 expansion users just won't get it.
@@ -16,17 +17,16 @@
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
 [rebased for systemd 243]
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
 ---
  src/basic/glob-util.c     | 12 ++++++++++++
  src/test/test-glob-util.c | 16 ++++++++++++++++
  src/tmpfiles/tmpfiles.c   | 10 ++++++++++
  3 files changed, 38 insertions(+)
 
-Index: systemd-stable/src/basic/glob-util.c
-===================================================================
---- systemd-stable.orig/src/basic/glob-util.c
-+++ systemd-stable/src/basic/glob-util.c
+diff --git a/src/basic/glob-util.c b/src/basic/glob-util.c
+index bc0278e57f..c973f82e54 100644
+--- a/src/basic/glob-util.c
++++ b/src/basic/glob-util.c
 @@ -12,6 +12,12 @@
  #include "path-util.h"
  #include "strv.h"
@@ -48,7 +48,7 @@
          /* We want to set GLOB_ALTDIRFUNC ourselves, don't allow it to be set. */
          assert(!(flags & GLOB_ALTDIRFUNC));
  
-@@ -32,9 +39,14 @@ int safe_glob(const char *path, int flag
+@@ -32,9 +39,14 @@ int safe_glob(const char *path, int flags, glob_t *pglob) {
                  pglob->gl_lstat = lstat;
          if (!pglob->gl_stat)
                  pglob->gl_stat = stat;
@@ -63,10 +63,10 @@
          if (k == GLOB_NOMATCH)
                  return -ENOENT;
          if (k == GLOB_NOSPACE)
-Index: systemd-stable/src/test/test-glob-util.c
-===================================================================
---- systemd-stable.orig/src/test/test-glob-util.c
-+++ systemd-stable/src/test/test-glob-util.c
+diff --git a/src/test/test-glob-util.c b/src/test/test-glob-util.c
+index df6444c433..79a692046e 100644
+--- a/src/test/test-glob-util.c
++++ b/src/test/test-glob-util.c
 @@ -12,6 +12,12 @@
  #include "rm-rf.h"
  #include "tmpfile-util.h"
@@ -114,11 +114,11 @@
          assert_se(r == GLOB_NOMATCH);
  
          (void) rm_rf(template, REMOVE_ROOT|REMOVE_PHYSICAL);
-Index: systemd-stable/src/tmpfiles/tmpfiles.c
-===================================================================
---- systemd-stable.orig/src/tmpfiles/tmpfiles.c
-+++ systemd-stable/src/tmpfiles/tmpfiles.c
-@@ -59,6 +59,12 @@
+diff --git a/src/tmpfiles/tmpfiles.c b/src/tmpfiles/tmpfiles.c
+index 9906c70eef..5eb63b1d57 100644
+--- a/src/tmpfiles/tmpfiles.c
++++ b/src/tmpfiles/tmpfiles.c
+@@ -63,6 +63,12 @@
  #include "umask-util.h"
  #include "user-util.h"
  
@@ -131,7 +131,7 @@
  /* This reads all files listed in /etc/tmpfiles.d/?*.conf and creates
   * them in the file system. This is intended to be used to create
   * properly owned directories beneath /tmp, /var/tmp, /run, which are
-@@ -1867,7 +1873,9 @@ finish:
+@@ -1936,7 +1942,9 @@ finish:
  
  static int glob_item(Item *i, action_t action) {
          _cleanup_globfree_ glob_t g = {
@@ -141,7 +141,7 @@
          };
          int r = 0, k;
          char **fn;
-@@ -1887,7 +1895,9 @@ static int glob_item(Item *i, action_t a
+@@ -1956,7 +1964,9 @@ static int glob_item(Item *i, action_t action) {
  
  static int glob_item_recursively(Item *i, fdaction_t action) {
          _cleanup_globfree_ glob_t g = {
@@ -151,3 +151,6 @@
          };
          int r = 0, k;
          char **fn;
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch b/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
index 1f61893..94cdc2e 100644
--- a/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0008-add-missing-FTW_-macros-for-musl.patch
@@ -1,7 +1,7 @@
-From 7c440cfc53aa52c9dc91c3a8c105bcf314c53af6 Mon Sep 17 00:00:00 2001
+From 8caea3fe87d55fd16de7d1b8266239fa954cb498 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:00:06 +0800
-Subject: [PATCH] add missing FTW_ macros for musl
+Subject: [PATCH 08/26] add missing FTW_ macros for musl
 
 This is to avoid build failures like below for musl.
 
@@ -10,13 +10,12 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
 ---
  src/basic/missing_type.h | 20 ++++++++++++++++++++
  1 file changed, 20 insertions(+)
 
 diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
-index c487e65e7bde..23602ebbd533 100644
+index aeaf6ad5ec..3df1084ef2 100644
 --- a/src/basic/missing_type.h
 +++ b/src/basic/missing_type.h
 @@ -19,3 +19,23 @@ typedef int (*comparison_fn_t)(const void *, const void *);
@@ -43,3 +42,6 @@
 +#ifndef FTW_SKIP_SIBLINGS
 +#define FTW_SKIP_SIBLINGS 3
 +#endif
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch b/poky/meta/recipes-core/systemd/systemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
similarity index 77%
rename from poky/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch
rename to poky/meta/recipes-core/systemd/systemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
index 1505516..76cc75c 100644
--- a/poky/meta/recipes-core/systemd/systemd/0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch
@@ -1,20 +1,19 @@
-From eed7427db98cc01db7e9b3479655d68b044bc85b Mon Sep 17 00:00:00 2001
+From d8e4f0aa1760e4c7bb8476beecd35025c9cbb95a Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:03:47 +0800
-Subject: [PATCH] fix missing of __register_atfork for non-glibc builds
+Subject: [PATCH 09/26] fix missing of __register_atfork for non-glibc builds
 
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
 ---
  src/basic/process-util.c | 7 +++++++
  1 file changed, 7 insertions(+)
 
-Index: systemd-stable/src/basic/process-util.c
-===================================================================
---- systemd-stable.orig/src/basic/process-util.c
-+++ systemd-stable/src/basic/process-util.c
+diff --git a/src/basic/process-util.c b/src/basic/process-util.c
+index 0851613fc9..4417101569 100644
+--- a/src/basic/process-util.c
++++ b/src/basic/process-util.c
 @@ -18,6 +18,9 @@
  #if HAVE_VALGRIND_VALGRIND_H
  #include <valgrind/valgrind.h>
@@ -41,3 +40,6 @@
  
  pid_t getpid_cached(void) {
          static bool installed = false;
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch b/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
similarity index 78%
rename from poky/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch
rename to poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
index a6fcd2f..aeacd86 100644
--- a/poky/meta/recipes-core/systemd/systemd/0011-Use-uintmax_t-for-handling-rlim_t.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0010-Use-uintmax_t-for-handling-rlim_t.patch
@@ -1,7 +1,7 @@
-From 4aa91347ae975051dbe4dd2f98a1f4f459f2604f Mon Sep 17 00:00:00 2001
+From e45bb02174812e4935214f42a18725be320770d5 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:12:41 +0800
-Subject: [PATCH] Use uintmax_t for handling rlim_t
+Subject: [PATCH 10/26] Use uintmax_t for handling rlim_t
 
 PRIu{32,64} is not right format to represent rlim_t type
 therefore use %ju and typecast the rlim_t variables to
@@ -20,18 +20,17 @@
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 [Rebased for v241]
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
 ---
  src/basic/format-util.h |  8 +-------
  src/basic/rlimit-util.c | 10 +++++-----
  src/core/execute.c      |  4 ++--
  3 files changed, 8 insertions(+), 14 deletions(-)
 
-Index: systemd-stable/src/basic/format-util.h
-===================================================================
---- systemd-stable.orig/src/basic/format-util.h
-+++ systemd-stable/src/basic/format-util.h
-@@ -32,13 +32,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32
+diff --git a/src/basic/format-util.h b/src/basic/format-util.h
+index b7e18768e3..3195ab205d 100644
+--- a/src/basic/format-util.h
++++ b/src/basic/format-util.h
+@@ -32,13 +32,7 @@ assert_cc(sizeof(gid_t) == sizeof(uint32_t));
  #  define PRI_TIMEX "li"
  #endif
  
@@ -46,11 +45,11 @@
  
  #if SIZEOF_DEV_T == 8
  #  define DEV_FMT "%" PRIu64
-Index: systemd-stable/src/basic/rlimit-util.c
-===================================================================
---- systemd-stable.orig/src/basic/rlimit-util.c
-+++ systemd-stable/src/basic/rlimit-util.c
-@@ -306,13 +306,13 @@ int rlimit_format(const struct rlimit *r
+diff --git a/src/basic/rlimit-util.c b/src/basic/rlimit-util.c
+index 880976312c..9e1b61cd4a 100644
+--- a/src/basic/rlimit-util.c
++++ b/src/basic/rlimit-util.c
+@@ -306,13 +306,13 @@ int rlimit_format(const struct rlimit *rl, char **ret) {
          if (rl->rlim_cur >= RLIM_INFINITY && rl->rlim_max >= RLIM_INFINITY)
                  s = strdup("infinity");
          else if (rl->rlim_cur >= RLIM_INFINITY)
@@ -77,12 +76,12 @@
  
          return 1;
  }
-Index: systemd-stable/src/core/execute.c
-===================================================================
---- systemd-stable.orig/src/core/execute.c
-+++ systemd-stable/src/core/execute.c
-@@ -4686,9 +4686,9 @@ void exec_context_dump(const ExecContext
-         for (i = 0; i < RLIM_NLIMITS; i++)
+diff --git a/src/core/execute.c b/src/core/execute.c
+index 89632e0582..335283776c 100644
+--- a/src/core/execute.c
++++ b/src/core/execute.c
+@@ -5288,9 +5288,9 @@ void exec_context_dump(const ExecContext *c, FILE* f, const char *prefix) {
+         for (unsigned i = 0; i < RLIM_NLIMITS; i++)
                  if (c->rlimit[i]) {
                          fprintf(f, "%sLimit%s: " RLIM_FMT "\n",
 -                                prefix, rlimit_to_string(i), c->rlimit[i]->rlim_max);
@@ -93,3 +92,6 @@
                  }
  
          if (c->ioprio_set) {
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch b/poky/meta/recipes-core/systemd/systemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
similarity index 76%
rename from poky/meta/recipes-core/systemd/systemd/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
rename to poky/meta/recipes-core/systemd/systemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
index 049096d..6d7fdbc 100644
--- a/poky/meta/recipes-core/systemd/systemd/0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch
@@ -1,22 +1,22 @@
-From 62fac5e3ff0fccd329cdc49605258b6d0e573a3e Mon Sep 17 00:00:00 2001
+From d1db531ddd3bbf94d5e764b7917bcc8684ff6357 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Wed, 28 Feb 2018 21:25:22 -0800
-Subject: [PATCH] test-sizeof.c: Disable tests for missing typedefs in musl
+Subject: [PATCH 11/26] test-sizeof.c: Disable tests for missing typedefs in
+ musl
 
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
 ---
  src/test/test-sizeof.c | 4 ++++
  1 file changed, 4 insertions(+)
 
 diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
-index 1020e0cb3153..c65062d2562c 100644
+index 3c9dc180fa..e1a59d408c 100644
 --- a/src/test/test-sizeof.c
 +++ b/src/test/test-sizeof.c
-@@ -44,8 +44,10 @@ int main(void) {
+@@ -55,8 +55,10 @@ int main(void) {
          info(unsigned);
          info(long unsigned);
          info(long long unsigned);
@@ -27,7 +27,7 @@
  
          info(float);
          info(double);
-@@ -63,7 +65,9 @@ int main(void) {
+@@ -74,7 +76,9 @@ int main(void) {
          info(ssize_t);
          info(time_t);
          info(usec_t);
@@ -37,3 +37,6 @@
          info(pid_t);
          info(uid_t);
          info(gid_t);
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch b/poky/meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
similarity index 83%
rename from poky/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
rename to poky/meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
index 0a7594c..c15b6e7 100644
--- a/poky/meta/recipes-core/systemd/systemd/0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch
@@ -1,7 +1,7 @@
-From e6f871078d8d6f076c84f908fa57af15417ab87d Mon Sep 17 00:00:00 2001
+From 03e89da266edf70121a19ffc32a78cc3b97585ef Mon Sep 17 00:00:00 2001
 From: Andre McCurdy <armccurdy@gmail.com>
 Date: Tue, 10 Oct 2017 14:33:30 -0700
-Subject: [PATCH] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
+Subject: [PATCH 12/26] don't pass AT_SYMLINK_NOFOLLOW flag to faccessat()
 
 Avoid using AT_SYMLINK_NOFOLLOW flag. It doesn't seem like the right
 thing to do and it's not portable (not supported by musl). See:
@@ -25,17 +25,16 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Andre McCurdy <armccurdy@gmail.com>
-
 ---
  src/basic/fs-util.h          | 22 +++++++++++++++++++++-
  src/shared/base-filesystem.c |  6 +++---
  2 files changed, 24 insertions(+), 4 deletions(-)
 
-Index: systemd-stable/src/basic/fs-util.h
-===================================================================
---- systemd-stable.orig/src/basic/fs-util.h
-+++ systemd-stable/src/basic/fs-util.h
-@@ -42,7 +42,27 @@ int fchmod_opath(int fd, mode_t m);
+diff --git a/src/basic/fs-util.h b/src/basic/fs-util.h
+index 5dc8853eac..0491b3dae2 100644
+--- a/src/basic/fs-util.h
++++ b/src/basic/fs-util.h
+@@ -43,7 +43,27 @@ int futimens_opath(int fd, const struct timespec ts[2]);
  int fd_warn_permissions(const char *path, int fd);
  int stat_warn_permissions(const char *path, const struct stat *st);
  
@@ -64,11 +63,11 @@
  
  int touch_file(const char *path, bool parents, usec_t stamp, uid_t uid, gid_t gid, mode_t mode);
  int touch(const char *path);
-Index: systemd-stable/src/shared/base-filesystem.c
-===================================================================
---- systemd-stable.orig/src/shared/base-filesystem.c
-+++ systemd-stable/src/shared/base-filesystem.c
-@@ -54,7 +54,7 @@ int base_filesystem_create(const char *r
+diff --git a/src/shared/base-filesystem.c b/src/shared/base-filesystem.c
+index 1d05409086..1ed06c31ab 100644
+--- a/src/shared/base-filesystem.c
++++ b/src/shared/base-filesystem.c
+@@ -54,7 +54,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
                  return log_error_errno(errno, "Failed to open root file system: %m");
  
          for (i = 0; i < ELEMENTSOF(table); i ++) {
@@ -77,7 +76,7 @@
                          continue;
  
                  if (table[i].target) {
-@@ -62,7 +62,7 @@ int base_filesystem_create(const char *r
+@@ -62,7 +62,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
  
                          /* check if one of the targets exists */
                          NULSTR_FOREACH(s, table[i].target) {
@@ -86,7 +85,7 @@
                                          continue;
  
                                  /* check if a specific file exists at the target path */
-@@ -73,7 +73,7 @@ int base_filesystem_create(const char *r
+@@ -73,7 +73,7 @@ int base_filesystem_create(const char *root, uid_t uid, gid_t gid) {
                                          if (!p)
                                                  return log_oom();
  
@@ -95,3 +94,6 @@
                                                  continue;
                                  }
  
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch b/poky/meta/recipes-core/systemd/systemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
similarity index 65%
rename from poky/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch
rename to poky/meta/recipes-core/systemd/systemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
index 67d5041..89736bc 100644
--- a/poky/meta/recipes-core/systemd/systemd/0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch
@@ -1,7 +1,8 @@
-From ec335ef3bb903a7eaf054103cc51411e71e6448c Mon Sep 17 00:00:00 2001
+From dd134880e9a16595ab473934577e873c748e9c7a Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Sun, 27 May 2018 08:36:44 -0700
-Subject: [PATCH] Define glibc compatible basename() for non-glibc systems
+Subject: [PATCH 13/26] Define glibc compatible basename() for non-glibc
+ systems
 
 Fixes builds with musl, even though systemd is adamant about
 using non-posix basename implementation, we have a way out
@@ -9,15 +10,14 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
-
 ---
  src/machine/machine-dbus.c | 5 +++++
  1 file changed, 5 insertions(+)
 
-Index: systemd-stable/src/machine/machine-dbus.c
-===================================================================
---- systemd-stable.orig/src/machine/machine-dbus.c
-+++ systemd-stable/src/machine/machine-dbus.c
+diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
+index f5780f1aec..aec5825b3e 100644
+--- a/src/machine/machine-dbus.c
++++ b/src/machine/machine-dbus.c
 @@ -11,6 +11,11 @@
  #include <libgen.h>
  #undef basename
@@ -30,3 +30,6 @@
  #include "alloc-util.h"
  #include "bus-common-errors.h"
  #include "bus-get-properties.h"
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch b/poky/meta/recipes-core/systemd/systemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
similarity index 76%
rename from poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
rename to poky/meta/recipes-core/systemd/systemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
index 3d456ec..e95d2ae 100644
--- a/poky/meta/recipes-core/systemd/systemd/0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch
@@ -1,7 +1,7 @@
-From bb28a9c870bb47dcdb1ccebaa8e3a5a86730a244 Mon Sep 17 00:00:00 2001
+From 55af446156da863b5b36a1109845858956a4c274 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Wed, 4 Jul 2018 15:00:44 +0800
-Subject: [PATCH] Do not disable buffering when writing to oom_score_adj
+Subject: [PATCH 14/26] Do not disable buffering when writing to oom_score_adj
 
 On musl, disabling buffering when writing to oom_score_adj will
 cause the following error.
@@ -19,15 +19,14 @@
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
 [rebased for systemd 243]
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
 ---
  src/basic/process-util.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
-Index: systemd-stable/src/basic/process-util.c
-===================================================================
---- systemd-stable.orig/src/basic/process-util.c
-+++ systemd-stable/src/basic/process-util.c
+diff --git a/src/basic/process-util.c b/src/basic/process-util.c
+index 4417101569..556dab8ebf 100644
+--- a/src/basic/process-util.c
++++ b/src/basic/process-util.c
 @@ -1536,7 +1536,7 @@ int set_oom_score_adjust(int value) {
          sprintf(t, "%i", value);
  
@@ -37,3 +36,6 @@
  }
  
  int pidfd_get_pid(int fd, pid_t *ret) {
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch b/poky/meta/recipes-core/systemd/systemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
similarity index 67%
rename from poky/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
rename to poky/meta/recipes-core/systemd/systemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
index 48fd007..5cdcf84 100644
--- a/poky/meta/recipes-core/systemd/systemd/0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch
@@ -1,7 +1,7 @@
-From 4938705454cf46cfe8deac8ce457d5d2432cbead Mon Sep 17 00:00:00 2001
+From e382845aed90cfe4496a8351d57d4466dd2e9a9c Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Tue, 10 Jul 2018 15:40:17 +0800
-Subject: [PATCH] distinguish XSI-compliant strerror_r from GNU-specifi
+Subject: [PATCH 15/26] distinguish XSI-compliant strerror_r from GNU-specifi
  strerror_r
 
 XSI-compliant strerror_r and GNU-specifi strerror_r are different.
@@ -18,17 +18,16 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
 ---
  src/journal/journal-send.c        | 5 +++++
  src/libsystemd/sd-bus/bus-error.c | 5 +++++
  2 files changed, 10 insertions(+)
 
-Index: systemd-stable/src/journal/journal-send.c
-===================================================================
---- systemd-stable.orig/src/journal/journal-send.c
-+++ systemd-stable/src/journal/journal-send.c
-@@ -348,7 +348,12 @@ static int fill_iovec_perror_and_send(co
+diff --git a/src/journal/journal-send.c b/src/journal/journal-send.c
+index e8e6ad555b..8ca5271d02 100644
+--- a/src/journal/journal-send.c
++++ b/src/journal/journal-send.c
+@@ -348,7 +348,12 @@ static int fill_iovec_perror_and_send(const char *message, int skip, struct iove
                  char* j;
  
                  errno = 0;
@@ -41,11 +40,11 @@
                  if (errno == 0) {
                          char error[STRLEN("ERRNO=") + DECIMAL_STR_MAX(int) + 1];
  
-Index: systemd-stable/src/libsystemd/sd-bus/bus-error.c
-===================================================================
---- systemd-stable.orig/src/libsystemd/sd-bus/bus-error.c
-+++ systemd-stable/src/libsystemd/sd-bus/bus-error.c
-@@ -379,7 +379,12 @@ static void bus_error_strerror(sd_bus_er
+diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
+index 8da2024a50..9605a9b869 100644
+--- a/src/libsystemd/sd-bus/bus-error.c
++++ b/src/libsystemd/sd-bus/bus-error.c
+@@ -392,7 +392,12 @@ static void bus_error_strerror(sd_bus_error *e, int error) {
                          return;
  
                  errno = 0;
@@ -58,3 +57,6 @@
                  if (errno == ERANGE || strlen(x) >= k - 1) {
                          free(m);
                          k *= 2;
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch b/poky/meta/recipes-core/systemd/systemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
similarity index 81%
rename from poky/meta/recipes-core/systemd/systemd/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
rename to poky/meta/recipes-core/systemd/systemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
index 3b80646..9a125de 100644
--- a/poky/meta/recipes-core/systemd/systemd/0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch
@@ -1,7 +1,7 @@
-From 1c4c73a7cc0fb59eb68ab70699f7f51af5c163b2 Mon Sep 17 00:00:00 2001
+From 0c7af5f288231a8c0545e169e01ba5ee173cafe7 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:18:00 +0800
-Subject: [PATCH] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP
+Subject: [PATCH 16/26] Hide __start_BUS_ERROR_MAP and __stop_BUS_ERROR_MAP
 
 for currently unknown reasons they get exported to the shared libries
 even without being listed in the sym file
@@ -11,16 +11,15 @@
 Signed-off-by: Khem Raj <raj.khem@gmail.com>
 [Rebased for v241]
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
 ---
  src/libsystemd/sd-bus/bus-error.c | 4 ++--
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/src/libsystemd/sd-bus/bus-error.c b/src/libsystemd/sd-bus/bus-error.c
-index 28a5159c4480..962a4de10c56 100644
+index 9605a9b869..38b6cf90c3 100644
 --- a/src/libsystemd/sd-bus/bus-error.c
 +++ b/src/libsystemd/sd-bus/bus-error.c
-@@ -54,8 +54,8 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map bus_standard_errors[] = {
+@@ -55,8 +55,8 @@ BUS_ERROR_MAP_ELF_REGISTER const sd_bus_error_map bus_standard_errors[] = {
  };
  
  /* GCC maps this magically to the beginning and end of the BUS_ERROR_MAP section */
@@ -31,3 +30,6 @@
  
  /* Additional maps registered with sd_bus_error_add_map() are in this
   * NULL terminated array */
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0020-missing_type.h-add-__compar_d_fn_t-definition.patch b/poky/meta/recipes-core/systemd/systemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
similarity index 79%
rename from poky/meta/recipes-core/systemd/systemd/0020-missing_type.h-add-__compar_d_fn_t-definition.patch
rename to poky/meta/recipes-core/systemd/systemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
index db4041b..31747c6 100644
--- a/poky/meta/recipes-core/systemd/systemd/0020-missing_type.h-add-__compar_d_fn_t-definition.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0017-missing_type.h-add-__compar_d_fn_t-definition.patch
@@ -1,7 +1,7 @@
-From 8303d49cabaf3ab8890ba1d266972c721dfe6ee8 Mon Sep 17 00:00:00 2001
+From 32dd7a47b87793cd836ab4bb776d1524f24c2d58 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:27:54 +0800
-Subject: [PATCH] missing_type.h: add __compar_d_fn_t definition
+Subject: [PATCH 17/26] missing_type.h: add __compar_d_fn_t definition
 
 Fix the following compile failure:
 src/basic/util.h:71:18: error: unknown type name '__compar_d_fn_t'; did you mean '__compar_fn_t'?
@@ -9,13 +9,12 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
 ---
  src/basic/missing_type.h | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/src/basic/missing_type.h b/src/basic/missing_type.h
-index 23602ebbd533..917d314a81bf 100644
+index 3df1084ef2..697aa7f58a 100644
 --- a/src/basic/missing_type.h
 +++ b/src/basic/missing_type.h
 @@ -13,6 +13,7 @@
@@ -26,3 +25,6 @@
  #endif
  
  #ifndef __COMPAR_FN_T
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0021-avoid-redefinition-of-prctl_mm_map-structure.patch b/poky/meta/recipes-core/systemd/systemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
similarity index 73%
rename from poky/meta/recipes-core/systemd/systemd/0021-avoid-redefinition-of-prctl_mm_map-structure.patch
rename to poky/meta/recipes-core/systemd/systemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
index 7dacc36..56d361a 100644
--- a/poky/meta/recipes-core/systemd/systemd/0021-avoid-redefinition-of-prctl_mm_map-structure.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0018-avoid-redefinition-of-prctl_mm_map-structure.patch
@@ -1,7 +1,7 @@
-From 6364ff5534678c158a7fb8d4e50d0a6ce72c1ad8 Mon Sep 17 00:00:00 2001
+From bfc3416edeb69082ac9b9c9e844f12d7b45bb006 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 15:44:54 +0800
-Subject: [PATCH] avoid redefinition of prctl_mm_map structure
+Subject: [PATCH 18/26] avoid redefinition of prctl_mm_map structure
 
 Fix the following compile failure:
 error: redefinition of 'struct prctl_mm_map'
@@ -9,17 +9,16 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
 ---
  src/basic/missing_prctl.h | 2 ++
  1 file changed, 2 insertions(+)
 
 diff --git a/src/basic/missing_prctl.h b/src/basic/missing_prctl.h
-index f80cd17f346b..47e489354053 100644
+index ab851306ba..5547cad875 100644
 --- a/src/basic/missing_prctl.h
 +++ b/src/basic/missing_prctl.h
 @@ -1,7 +1,9 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  #pragma once
  
 +#ifdef __GLIBC__
@@ -28,3 +27,6 @@
  
  /* 58319057b7847667f0c9585b9de0e8932b0fdb08 (4.3) */
  #ifndef PR_CAP_AMBIENT
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0021-Handle-missing-LOCK_EX.patch b/poky/meta/recipes-core/systemd/systemd/0019-Handle-missing-LOCK_EX.patch
similarity index 75%
rename from poky/meta/recipes-core/systemd/systemd/0021-Handle-missing-LOCK_EX.patch
rename to poky/meta/recipes-core/systemd/systemd/0019-Handle-missing-LOCK_EX.patch
index 67d9162..6ca1964 100644
--- a/poky/meta/recipes-core/systemd/systemd/0021-Handle-missing-LOCK_EX.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0019-Handle-missing-LOCK_EX.patch
@@ -1,7 +1,7 @@
-From 190854c2114dc6e74c8859dc251e3737e3c0f353 Mon Sep 17 00:00:00 2001
+From e427f03de2c56e868bb0f24aa231315b2dae1b71 Mon Sep 17 00:00:00 2001
 From: Alex Kiernan <alex.kiernan@gmail.com>
 Date: Fri, 7 Aug 2020 15:19:27 +0000
-Subject: [PATCH] Handle missing LOCK_EX
+Subject: [PATCH 19/26] Handle missing LOCK_EX
 
 Upstream-Status: Inappropriate [musl specific]
 Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
@@ -10,10 +10,10 @@
  1 file changed, 1 insertion(+)
 
 diff --git a/src/partition/makefs.c b/src/partition/makefs.c
-index 97f50c9033..7f55acd229 100644
+index fd924d2231..b97580fdcc 100644
 --- a/src/partition/makefs.c
 +++ b/src/partition/makefs.c
-@@ -5,6 +5,7 @@
+@@ -6,6 +6,7 @@
  #include <sys/stat.h>
  #include <sys/types.h>
  #include <unistd.h>
@@ -21,3 +21,6 @@
  
  #include "alloc-util.h"
  #include "blockdev-util.h"
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch b/poky/meta/recipes-core/systemd/systemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
similarity index 88%
rename from poky/meta/recipes-core/systemd/systemd/0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
rename to poky/meta/recipes-core/systemd/systemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
index d57ca1f..f74de43 100644
--- a/poky/meta/recipes-core/systemd/systemd/0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch
@@ -1,7 +1,7 @@
-From 328c39fae2631deb5737dd56f46159dd6b4cdbed Mon Sep 17 00:00:00 2001
+From 9abbc5e69e21aef0d4d4567e69302fa660b76c53 Mon Sep 17 00:00:00 2001
 From: Alex Kiernan <alex.kiernan@gmail.com>
 Date: Fri, 7 Aug 2020 15:20:17 +0000
-Subject: [PATCH] Fix incompatible pointer type struct sockaddr_un *
+Subject: [PATCH 20/26] Fix incompatible pointer type struct sockaddr_un *
 
 | ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c: In function 'cant_be_in_netns':
 | ../../../../../../workspace/sources/systemd/src/nspawn/nspawn.c:4893:25: error: passing argument 2 of 'connect' from incompatible pointer type [-Werror=incompatible-pointer-types]
@@ -23,10 +23,10 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
-index 0450c9f795..7305db04ef 100644
+index 0842731c18..3528b7ff14 100644
 --- a/src/nspawn/nspawn.c
 +++ b/src/nspawn/nspawn.c
-@@ -4890,7 +4890,7 @@ static int cant_be_in_netns(void) {
+@@ -5084,7 +5084,7 @@ static int cant_be_in_netns(void) {
          if (fd < 0)
                  return log_error_errno(errno, "Failed to allocate udev control socket: %m");
  
@@ -35,3 +35,6 @@
  
                  if (errno == ENOENT || ERRNO_IS_DISCONNECT(errno))
                          return log_error_errno(SYNTHETIC_ERRNO(EOPNOTSUPP),
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0024-test-json.c-define-M_PIl.patch b/poky/meta/recipes-core/systemd/systemd/0021-test-json.c-define-M_PIl.patch
similarity index 80%
rename from poky/meta/recipes-core/systemd/systemd/0024-test-json.c-define-M_PIl.patch
rename to poky/meta/recipes-core/systemd/systemd/0021-test-json.c-define-M_PIl.patch
index 80beada..fa6652a 100644
--- a/poky/meta/recipes-core/systemd/systemd/0024-test-json.c-define-M_PIl.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0021-test-json.c-define-M_PIl.patch
@@ -1,7 +1,7 @@
-From a05cc5fb3dc0e51682c40196285cdda34ec90783 Mon Sep 17 00:00:00 2001
+From 1f5bc54bed0b365e7e448c26f6c792dbe8b3b198 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Mon, 25 Feb 2019 16:53:06 +0800
-Subject: [PATCH] test-json.c: define M_PIl
+Subject: [PATCH 21/26] test-json.c: define M_PIl
 
 Fix the following compile failure:
 src/test/test-json.c:305:50: error: 'M_PIl' undeclared (first use in this function); did you mean 'M_PI'?
@@ -9,16 +9,15 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
-
 ---
  src/test/test-json.c | 4 ++++
  1 file changed, 4 insertions(+)
 
 diff --git a/src/test/test-json.c b/src/test/test-json.c
-index a6613043b924..ca823ea79f05 100644
+index 1d4b11945e..572c8cf9d0 100644
 --- a/src/test/test-json.c
 +++ b/src/test/test-json.c
-@@ -12,6 +12,10 @@
+@@ -13,6 +13,10 @@
  #include "tests.h"
  #include "util.h"
  
@@ -29,3 +28,6 @@
  static void test_tokenizer(const char *data, ...) {
          unsigned line = 0, column = 0;
          void *state = NULL;
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch b/poky/meta/recipes-core/systemd/systemd/0022-do-not-disable-buffer-in-writing-files.patch
similarity index 72%
rename from poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch
rename to poky/meta/recipes-core/systemd/systemd/0022-do-not-disable-buffer-in-writing-files.patch
index 39a9753..675fd20 100644
--- a/poky/meta/recipes-core/systemd/systemd/0001-do-not-disable-buffer-in-writing-files.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0022-do-not-disable-buffer-in-writing-files.patch
@@ -1,7 +1,7 @@
-From f92fd7e77ed5aab2dda01a20e6891c37f09415d3 Mon Sep 17 00:00:00 2001
+From 564dba5ad0cd884e3f69fa19ca64095413578ea5 Mon Sep 17 00:00:00 2001
 From: Chen Qi <Qi.Chen@windriver.com>
 Date: Fri, 1 Mar 2019 15:22:15 +0800
-Subject: [PATCH] do not disable buffer in writing files
+Subject: [PATCH 22/26] do not disable buffer in writing files
 
 Do not disable buffer in writing files, otherwise we get
 failure at boot for musl like below.
@@ -18,7 +18,6 @@
 Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
 [rebased for systemd 243]
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
 ---
  src/basic/cgroup-util.c                 | 10 +++++-----
  src/basic/procfs-util.c                 |  4 ++--
@@ -40,11 +39,11 @@
  src/vconsole/vconsole-setup.c           |  2 +-
  18 files changed, 35 insertions(+), 35 deletions(-)
 
-Index: systemd-stable/src/basic/cgroup-util.c
-===================================================================
---- systemd-stable.orig/src/basic/cgroup-util.c
-+++ systemd-stable/src/basic/cgroup-util.c
-@@ -769,7 +769,7 @@ int cg_install_release_agent(const char
+diff --git a/src/basic/cgroup-util.c b/src/basic/cgroup-util.c
+index bb960f183c..cb804c5f4b 100644
+--- a/src/basic/cgroup-util.c
++++ b/src/basic/cgroup-util.c
+@@ -759,7 +759,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
  
          sc = strstrip(contents);
          if (isempty(sc)) {
@@ -53,7 +52,7 @@
                  if (r < 0)
                          return r;
          } else if (!path_equal(sc, agent))
-@@ -787,7 +787,7 @@ int cg_install_release_agent(const char
+@@ -777,7 +777,7 @@ int cg_install_release_agent(const char *controller, const char *agent) {
  
          sc = strstrip(contents);
          if (streq(sc, "0")) {
@@ -62,7 +61,7 @@
                  if (r < 0)
                          return r;
  
-@@ -814,7 +814,7 @@ int cg_uninstall_release_agent(const cha
+@@ -804,7 +804,7 @@ int cg_uninstall_release_agent(const char *controller) {
          if (r < 0)
                  return r;
  
@@ -71,7 +70,7 @@
          if (r < 0)
                  return r;
  
-@@ -824,7 +824,7 @@ int cg_uninstall_release_agent(const cha
+@@ -814,7 +814,7 @@ int cg_uninstall_release_agent(const char *controller) {
          if (r < 0)
                  return r;
  
@@ -80,7 +79,7 @@
          if (r < 0)
                  return r;
  
-@@ -1656,7 +1656,7 @@ int cg_set_attribute(const char *control
+@@ -1646,7 +1646,7 @@ int cg_set_attribute(const char *controller, const char *path, const char *attri
          if (r < 0)
                  return r;
  
@@ -89,11 +88,11 @@
  }
  
  int cg_get_attribute(const char *controller, const char *path, const char *attribute, char **ret) {
-Index: systemd-stable/src/basic/procfs-util.c
-===================================================================
---- systemd-stable.orig/src/basic/procfs-util.c
-+++ systemd-stable/src/basic/procfs-util.c
-@@ -86,13 +86,13 @@ int procfs_tasks_set_limit(uint64_t limi
+diff --git a/src/basic/procfs-util.c b/src/basic/procfs-util.c
+index 8f9eee8d36..480f8cc0b4 100644
+--- a/src/basic/procfs-util.c
++++ b/src/basic/procfs-util.c
+@@ -86,13 +86,13 @@ int procfs_tasks_set_limit(uint64_t limit) {
           * decrease it, as threads-max is the much more relevant sysctl. */
          if (limit > pid_max-1) {
                  sprintf(buffer, "%" PRIu64, limit+1); /* Add one, since PID 0 is not a valid PID */
@@ -109,11 +108,11 @@
          if (r < 0) {
                  uint64_t threads_max;
  
-Index: systemd-stable/src/basic/smack-util.c
-===================================================================
---- systemd-stable.orig/src/basic/smack-util.c
-+++ systemd-stable/src/basic/smack-util.c
-@@ -114,7 +114,7 @@ int mac_smack_apply_pid(pid_t pid, const
+diff --git a/src/basic/smack-util.c b/src/basic/smack-util.c
+index 3362ee3924..80c0f2a52e 100644
+--- a/src/basic/smack-util.c
++++ b/src/basic/smack-util.c
+@@ -114,7 +114,7 @@ int mac_smack_apply_pid(pid_t pid, const char *label) {
                  return 0;
  
          p = procfs_file_alloca(pid, "attr/current");
@@ -122,10 +121,10 @@
          if (r < 0)
                  return r;
  
-Index: systemd-stable/src/basic/util.c
-===================================================================
---- systemd-stable.orig/src/basic/util.c
-+++ systemd-stable/src/basic/util.c
+diff --git a/src/basic/util.c b/src/basic/util.c
+index f98ecf3858..13e0f7431f 100644
+--- a/src/basic/util.c
++++ b/src/basic/util.c
 @@ -267,7 +267,7 @@ void disable_coredumps(void) {
          if (detect_container() > 0)
                  return;
@@ -135,11 +134,11 @@
          if (r < 0)
                  log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m");
  }
-Index: systemd-stable/src/binfmt/binfmt.c
-===================================================================
---- systemd-stable.orig/src/binfmt/binfmt.c
-+++ systemd-stable/src/binfmt/binfmt.c
-@@ -48,7 +48,7 @@ static int delete_rule(const char *rule)
+diff --git a/src/binfmt/binfmt.c b/src/binfmt/binfmt.c
+index 43ed2f385b..37a6f578f7 100644
+--- a/src/binfmt/binfmt.c
++++ b/src/binfmt/binfmt.c
+@@ -48,7 +48,7 @@ static int delete_rule(const char *rule) {
          if (!fn)
                  return log_oom();
  
@@ -148,7 +147,7 @@
  }
  
  static int apply_rule(const char *rule) {
-@@ -56,7 +56,7 @@ static int apply_rule(const char *rule)
+@@ -56,7 +56,7 @@ static int apply_rule(const char *rule) {
  
          (void) delete_rule(rule);
  
@@ -166,11 +165,11 @@
  
                  STRV_FOREACH(f, files) {
                          k = apply_file(*f, true);
-Index: systemd-stable/src/core/main.c
-===================================================================
---- systemd-stable.orig/src/core/main.c
-+++ systemd-stable/src/core/main.c
-@@ -1382,7 +1382,7 @@ static int bump_unix_max_dgram_qlen(void
+diff --git a/src/core/main.c b/src/core/main.c
+index a280b756ff..334532cd42 100644
+--- a/src/core/main.c
++++ b/src/core/main.c
+@@ -1382,7 +1382,7 @@ static int bump_unix_max_dgram_qlen(void) {
          if (v >= DEFAULT_UNIX_MAX_DGRAM_QLEN)
                  return 0;
  
@@ -179,7 +178,7 @@
          if (r < 0)
                  return log_full_errno(IN_SET(r, -EROFS, -EPERM, -EACCES) ? LOG_DEBUG : LOG_WARNING, r,
                                        "Failed to bump AF_UNIX datagram queue length, ignoring: %m");
-@@ -1668,7 +1668,7 @@ static void initialize_core_pattern(bool
+@@ -1666,7 +1666,7 @@ static void initialize_core_pattern(bool skip_setup) {
          if (getpid_cached() != 1)
                  return;
  
@@ -188,11 +187,11 @@
          if (r < 0)
                  log_warning_errno(r, "Failed to write '%s' to /proc/sys/kernel/core_pattern, ignoring: %m", arg_early_core_pattern);
  }
-Index: systemd-stable/src/core/smack-setup.c
-===================================================================
---- systemd-stable.orig/src/core/smack-setup.c
-+++ systemd-stable/src/core/smack-setup.c
-@@ -325,17 +325,17 @@ int mac_smack_setup(bool *loaded_policy)
+diff --git a/src/core/smack-setup.c b/src/core/smack-setup.c
+index 1fe592af70..603942a000 100644
+--- a/src/core/smack-setup.c
++++ b/src/core/smack-setup.c
+@@ -325,17 +325,17 @@ int mac_smack_setup(bool *loaded_policy) {
          }
  
  #ifdef SMACK_RUN_LABEL
@@ -214,10 +213,10 @@
          if (r < 0)
                  log_warning_errno(r, "Failed to set SMACK netlabel rule \"127.0.0.1 -CIPSO\": %m");
  #endif
-Index: systemd-stable/src/hibernate-resume/hibernate-resume.c
-===================================================================
---- systemd-stable.orig/src/hibernate-resume/hibernate-resume.c
-+++ systemd-stable/src/hibernate-resume/hibernate-resume.c
+diff --git a/src/hibernate-resume/hibernate-resume.c b/src/hibernate-resume/hibernate-resume.c
+index d8f91f4e66..a088e6e2d8 100644
+--- a/src/hibernate-resume/hibernate-resume.c
++++ b/src/hibernate-resume/hibernate-resume.c
 @@ -45,7 +45,7 @@ int main(int argc, char *argv[]) {
                  return EXIT_FAILURE;
          }
@@ -227,11 +226,11 @@
          if (r < 0) {
                  log_error_errno(r, "Failed to write '%s' to /sys/power/resume: %m", major_minor);
                  return EXIT_FAILURE;
-Index: systemd-stable/src/libsystemd/sd-device/sd-device.c
-===================================================================
---- systemd-stable.orig/src/libsystemd/sd-device/sd-device.c
-+++ systemd-stable/src/libsystemd/sd-device/sd-device.c
-@@ -1877,7 +1877,7 @@ _public_ int sd_device_set_sysattr_value
+diff --git a/src/libsystemd/sd-device/sd-device.c b/src/libsystemd/sd-device/sd-device.c
+index d06f90ce1d..43d0a58750 100644
+--- a/src/libsystemd/sd-device/sd-device.c
++++ b/src/libsystemd/sd-device/sd-device.c
+@@ -1976,7 +1976,7 @@ _public_ int sd_device_set_sysattr_value(sd_device *device, const char *sysattr,
          if (!value)
                  return -ENOMEM;
  
@@ -240,11 +239,11 @@
          if (r < 0) {
                  if (r == -ELOOP)
                          return -EINVAL;
-Index: systemd-stable/src/login/logind-dbus.c
-===================================================================
---- systemd-stable.orig/src/login/logind-dbus.c
-+++ systemd-stable/src/login/logind-dbus.c
-@@ -1341,7 +1341,7 @@ static int trigger_device(Manager *m, sd
+diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c
+index 7d757aa286..a5d9da5b7e 100644
+--- a/src/login/logind-dbus.c
++++ b/src/login/logind-dbus.c
+@@ -1330,7 +1330,7 @@ static int trigger_device(Manager *m, sd_device *d) {
                  if (!t)
                          return -ENOMEM;
  
@@ -253,11 +252,11 @@
          }
  
          return 0;
-Index: systemd-stable/src/nspawn/nspawn-cgroup.c
-===================================================================
---- systemd-stable.orig/src/nspawn/nspawn-cgroup.c
-+++ systemd-stable/src/nspawn/nspawn-cgroup.c
-@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified
+diff --git a/src/nspawn/nspawn-cgroup.c b/src/nspawn/nspawn-cgroup.c
+index cb01b25bc6..e92051268b 100644
+--- a/src/nspawn/nspawn-cgroup.c
++++ b/src/nspawn/nspawn-cgroup.c
+@@ -124,7 +124,7 @@ int sync_cgroup(pid_t pid, CGroupUnified unified_requested, uid_t uid_shift) {
          fn = strjoina(tree, cgroup, "/cgroup.procs");
  
          sprintf(pid_string, PID_FMT, pid);
@@ -266,11 +265,11 @@
          if (r < 0) {
                  log_error_errno(r, "Failed to move process: %m");
                  goto finish;
-Index: systemd-stable/src/nspawn/nspawn.c
-===================================================================
---- systemd-stable.orig/src/nspawn/nspawn.c
-+++ systemd-stable/src/nspawn/nspawn.c
-@@ -2493,7 +2493,7 @@ static int reset_audit_loginuid(void) {
+diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
+index 3528b7ff14..11b0c20f95 100644
+--- a/src/nspawn/nspawn.c
++++ b/src/nspawn/nspawn.c
+@@ -2667,7 +2667,7 @@ static int reset_audit_loginuid(void) {
          if (streq(p, "4294967295"))
                  return 0;
  
@@ -279,7 +278,7 @@
          if (r < 0) {
                  log_error_errno(r,
                                  "Failed to reset audit login UID. This probably means that your kernel is too\n"
-@@ -3726,13 +3726,13 @@ static int setup_uid_map(pid_t pid) {
+@@ -3920,13 +3920,13 @@ static int setup_uid_map(pid_t pid) {
  
          xsprintf(uid_map, "/proc/" PID_FMT "/uid_map", pid);
          xsprintf(line, UID_FMT " " UID_FMT " " UID_FMT "\n", 0, arg_uid_shift, arg_uid_range);
@@ -295,11 +294,11 @@
          if (r < 0)
                  return log_error_errno(r, "Failed to write GID map: %m");
  
-Index: systemd-stable/src/shared/cgroup-setup.c
-===================================================================
---- systemd-stable.orig/src/shared/cgroup-setup.c
-+++ systemd-stable/src/shared/cgroup-setup.c
-@@ -267,7 +267,7 @@ int cg_attach(const char *controller, co
+diff --git a/src/shared/cgroup-setup.c b/src/shared/cgroup-setup.c
+index f197f715c7..077f893177 100644
+--- a/src/shared/cgroup-setup.c
++++ b/src/shared/cgroup-setup.c
+@@ -267,7 +267,7 @@ int cg_attach(const char *controller, const char *path, pid_t pid) {
  
          xsprintf(c, PID_FMT "\n", pid);
  
@@ -308,7 +307,7 @@
          if (r < 0)
                  return r;
  
-@@ -817,7 +817,7 @@ int cg_enable_everywhere(
+@@ -799,7 +799,7 @@ int cg_enable_everywhere(
                                          return log_debug_errno(errno, "Failed to open cgroup.subtree_control file of %s: %m", p);
                          }
  
@@ -317,11 +316,11 @@
                          if (r < 0) {
                                  log_debug_errno(r, "Failed to %s controller %s for %s (%s): %m",
                                                  FLAGS_SET(mask, bit) ? "enable" : "disable", n, p, fs);
-Index: systemd-stable/src/shared/sysctl-util.c
-===================================================================
---- systemd-stable.orig/src/shared/sysctl-util.c
-+++ systemd-stable/src/shared/sysctl-util.c
-@@ -93,7 +93,7 @@ int sysctl_write_ip_property(int af, con
+diff --git a/src/shared/sysctl-util.c b/src/shared/sysctl-util.c
+index 670c33108b..7c7c3dcfb6 100644
+--- a/src/shared/sysctl-util.c
++++ b/src/shared/sysctl-util.c
+@@ -93,7 +93,7 @@ int sysctl_write_ip_property(int af, const char *ifname, const char *property, c
  
          log_debug("Setting '%s' to '%s'", p, value);
  
@@ -330,11 +329,11 @@
  }
  
  int sysctl_read(const char *property, char **content) {
-Index: systemd-stable/src/sleep/sleep.c
-===================================================================
---- systemd-stable.orig/src/sleep/sleep.c
-+++ systemd-stable/src/sleep/sleep.c
-@@ -48,7 +48,7 @@ static int write_hibernate_location_info
+diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c
+index 39ab554290..d0e566645d 100644
+--- a/src/sleep/sleep.c
++++ b/src/sleep/sleep.c
+@@ -48,7 +48,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca
          assert(hibernate_location->swap);
  
          xsprintf(resume_str, "%u:%u", major(hibernate_location->devno), minor(hibernate_location->devno));
@@ -343,7 +342,7 @@
          if (r < 0)
                  return log_debug_errno(r, "Failed to write partition device to /sys/power/resume for '%s': '%s': %m",
                                         hibernate_location->swap->device, resume_str);
-@@ -75,7 +75,7 @@ static int write_hibernate_location_info
+@@ -75,7 +75,7 @@ static int write_hibernate_location_info(const HibernateLocation *hibernate_loca
          }
  
          xsprintf(offset_str, "%" PRIu64, hibernate_location->offset);
@@ -361,7 +360,7 @@
                  if (k >= 0)
                          return 0;
  
-@@ -114,7 +114,7 @@ static int write_state(FILE **f, char **
+@@ -114,7 +114,7 @@ static int write_state(FILE **f, char **states) {
          STRV_FOREACH(state, states) {
                  int k;
  
@@ -370,24 +369,24 @@
                  if (k >= 0)
                          return 0;
                  log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", *state);
-Index: systemd-stable/src/udev/udevadm-trigger.c
-===================================================================
---- systemd-stable.orig/src/udev/udevadm-trigger.c
-+++ systemd-stable/src/udev/udevadm-trigger.c
-@@ -43,7 +43,7 @@ static int exec_list(sd_device_enumerato
+diff --git a/src/udev/udevadm-trigger.c b/src/udev/udevadm-trigger.c
+index 5c74184c33..65f528314e 100644
+--- a/src/udev/udevadm-trigger.c
++++ b/src/udev/udevadm-trigger.c
+@@ -43,7 +43,7 @@ static int exec_list(sd_device_enumerator *e, const char *action, Set **settle_s
                  if (!filename)
                          return log_oom();
  
 -                r = write_string_file(filename, action, WRITE_STRING_FILE_DISABLE_BUFFER);
 +                r = write_string_file(filename, action, 0);
                  if (r < 0) {
-                         bool ignore = IN_SET(r, -ENOENT, -EACCES, -ENODEV, -EROFS);
+                         bool ignore = IN_SET(r, -ENOENT, -ENODEV);
  
-Index: systemd-stable/src/udev/udevd.c
-===================================================================
---- systemd-stable.orig/src/udev/udevd.c
-+++ systemd-stable/src/udev/udevd.c
-@@ -1153,7 +1153,7 @@ static int synthesize_change_one(sd_devi
+diff --git a/src/udev/udevd.c b/src/udev/udevd.c
+index d24b8d4398..d123a43904 100644
+--- a/src/udev/udevd.c
++++ b/src/udev/udevd.c
+@@ -1192,7 +1192,7 @@ static int synthesize_change_one(sd_device *dev, const char *syspath) {
  
          filename = strjoina(syspath, "/uevent");
          log_device_debug(dev, "device is closed, synthesising 'change' on %s", syspath);
@@ -396,11 +395,11 @@
          if (r < 0)
                  return log_device_debug_errno(dev, r, "Failed to write 'change' to %s: %m", filename);
          return 0;
-Index: systemd-stable/src/vconsole/vconsole-setup.c
-===================================================================
---- systemd-stable.orig/src/vconsole/vconsole-setup.c
-+++ systemd-stable/src/vconsole/vconsole-setup.c
-@@ -116,7 +116,7 @@ static int toggle_utf8_vc(const char *na
+diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
+index b28e2853e1..115b7233a0 100644
+--- a/src/vconsole/vconsole-setup.c
++++ b/src/vconsole/vconsole-setup.c
+@@ -116,7 +116,7 @@ static int toggle_utf8_vc(const char *name, int fd, bool utf8) {
  static int toggle_utf8_sysfs(bool utf8) {
          int r;
  
@@ -409,3 +408,6 @@
          if (r < 0)
                  return log_warning_errno(r, "Failed to %s sysfs UTF-8 flag: %m", enable_disable(utf8));
  
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch b/poky/meta/recipes-core/systemd/systemd/0023-Include-sys-wait.h.patch
similarity index 81%
rename from poky/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch
rename to poky/meta/recipes-core/systemd/systemd/0023-Include-sys-wait.h.patch
index ba7424d..ea4a024 100644
--- a/poky/meta/recipes-core/systemd/systemd/0002-src-login-brightness.c-include-sys-wait.h.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0023-Include-sys-wait.h.patch
@@ -1,7 +1,7 @@
-From 106922335ec502bcb4451c54a89be49f88fa54de Mon Sep 17 00:00:00 2001
+From 359e7a38824a906b0a24f5775f41a2ae3358bf06 Mon Sep 17 00:00:00 2001
 From: Scott Murray <scott.murray@konsulko.com>
 Date: Fri, 13 Sep 2019 19:26:27 -0400
-Subject: [PATCH] Include sys/wait.h
+Subject: [PATCH 23/26] Include sys/wait.h
 
 Fixes:
 src/login/logind-brightness.c:158:85: error: 'WEXITED' undeclared (first use in this function); did you mean 'WIFEXITED'?
@@ -11,19 +11,21 @@
 Upstream-Status: Pending
 
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
 ---
  src/login/logind-brightness.c | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/src/login/logind-brightness.c b/src/login/logind-brightness.c
-index 3f4b65e1fdf1..5af7e3d5ce3f 100644
+index a6a1603396..54848ce209 100644
 --- a/src/login/logind-brightness.c
 +++ b/src/login/logind-brightness.c
 @@ -1,5 +1,6 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  
 +#include <sys/wait.h>
  #include "bus-util.h"
  #include "device-util.h"
  #include "hash-funcs.h"
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch b/poky/meta/recipes-core/systemd/systemd/0024-Include-signal.h.patch
similarity index 86%
rename from poky/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch
rename to poky/meta/recipes-core/systemd/systemd/0024-Include-signal.h.patch
index 538a99c..2820d7b 100644
--- a/poky/meta/recipes-core/systemd/systemd/0003-src-basic-copy.c-include-signal.h.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0024-Include-signal.h.patch
@@ -1,7 +1,7 @@
-From 082d2eb2a65525890a913723764e67a36ee75384 Mon Sep 17 00:00:00 2001
+From 0592da08e16a17ceef0949ec9901397d8ec5af92 Mon Sep 17 00:00:00 2001
 From: Scott Murray <scott.murray@konsulko.com>
 Date: Fri, 13 Sep 2019 19:26:27 -0400
-Subject: [PATCH] Include signal.h
+Subject: [PATCH 24/26] Include signal.h
 
 Fixes several signal set related errors:
 src/basic/copy.c:92:19: error: implicit declaration of function 'sigemptyset' [-Werror=implicit-function-declaration]
@@ -12,13 +12,12 @@
 Upstream-Status: Pending
 
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
 ---
  src/basic/copy.c | 1 +
  1 file changed, 1 insertion(+)
 
 diff --git a/src/basic/copy.c b/src/basic/copy.c
-index 9028868f696d..5168586fa522 100644
+index 6a9c3a396f..8948bb4013 100644
 --- a/src/basic/copy.c
 +++ b/src/basic/copy.c
 @@ -8,6 +8,7 @@
@@ -29,3 +28,6 @@
  
  #include "alloc-util.h"
  #include "btrfs-util.h"
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch b/poky/meta/recipes-core/systemd/systemd/0025-Handle-__cpu_mask-usage.patch
similarity index 87%
rename from poky/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch
rename to poky/meta/recipes-core/systemd/systemd/0025-Handle-__cpu_mask-usage.patch
index d394444..1cc3985 100644
--- a/poky/meta/recipes-core/systemd/systemd/0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0025-Handle-__cpu_mask-usage.patch
@@ -1,7 +1,7 @@
-From dbe8b3ee45580defeefcac929b897c5437ffc50b Mon Sep 17 00:00:00 2001
+From bbda4a48a34662393117fc677c3a678d4ce4c2ec Mon Sep 17 00:00:00 2001
 From: Scott Murray <scott.murray@konsulko.com>
 Date: Fri, 13 Sep 2019 19:26:27 -0400
-Subject: [PATCH] Handle __cpu_mask usage
+Subject: [PATCH 25/26] Handle __cpu_mask usage
 
 Fixes errors:
 
@@ -18,14 +18,13 @@
 Upstream-Status: Inappropriate [musl specific]
 
 Signed-off-by: Scott Murray <scott.murray@konsulko.com>
-
 ---
  src/shared/cpu-set-util.h | 2 ++
  src/test/test-sizeof.c    | 2 +-
  2 files changed, 3 insertions(+), 1 deletion(-)
 
 diff --git a/src/shared/cpu-set-util.h b/src/shared/cpu-set-util.h
-index 27812dfd5923..0ab40731ea93 100644
+index 3c63a58826..4c2d4347fc 100644
 --- a/src/shared/cpu-set-util.h
 +++ b/src/shared/cpu-set-util.h
 @@ -6,6 +6,8 @@
@@ -38,11 +37,11 @@
  typedef struct CPUSet {
          cpu_set_t *set;
 diff --git a/src/test/test-sizeof.c b/src/test/test-sizeof.c
-index c65062d2562c..8b6eefa9cdae 100644
+index e1a59d408c..c269ea6e8c 100644
 --- a/src/test/test-sizeof.c
 +++ b/src/test/test-sizeof.c
 @@ -1,6 +1,5 @@
- /* SPDX-License-Identifier: LGPL-2.1+ */
+ /* SPDX-License-Identifier: LGPL-2.1-or-later */
  
 -#include <sched.h>
  #include <stdio.h>
@@ -56,3 +55,6 @@
  
  /* Print information about various types. Useful when diagnosing
   * gcc diagnostics on an unfamiliar architecture. */
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/0001-Handle-missing-gshadow.patch b/poky/meta/recipes-core/systemd/systemd/0026-Handle-missing-gshadow.patch
similarity index 67%
rename from poky/meta/recipes-core/systemd/systemd/0001-Handle-missing-gshadow.patch
rename to poky/meta/recipes-core/systemd/systemd/0026-Handle-missing-gshadow.patch
index c5960a0..4180afb 100644
--- a/poky/meta/recipes-core/systemd/systemd/0001-Handle-missing-gshadow.patch
+++ b/poky/meta/recipes-core/systemd/systemd/0026-Handle-missing-gshadow.patch
@@ -1,22 +1,26 @@
-From ef9580ea1e2f1e57af3c7dcb0ec392ba8dbb5c8d Mon Sep 17 00:00:00 2001
+From 47bf88f74717b417e4adbcc04256334b2335c873 Mon Sep 17 00:00:00 2001
 From: Alex Kiernan <alex.kiernan@gmail.com>
 Date: Tue, 10 Mar 2020 11:05:20 +0000
-Subject: [PATCH] Handle missing gshadow
+Subject: [PATCH 26/26] Handle missing gshadow
 
 gshadow usage is now present in the userdb code. Mask all uses of it to
 allow compilation on musl
 
 Upstream-Status: Inappropriate [musl specific]
 Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
+[Rebased for v247]
+Signed-off-by: Luca Boccassi <luca.boccassi@microsoft.com>
 ---
- src/shared/group-record-nss.c | 20 ++++++++++++++++++++
- src/shared/group-record-nss.h |  4 ++++
- src/shared/userdb.c           |  6 ++++++
+ src/shared/user-record-nss.c | 20 ++++++++++++++++++++
+ src/shared/user-record-nss.h |  4 ++++
+ src/shared/userdb.c          |  6 ++++++
  3 files changed, 30 insertions(+)
 
---- a/src/shared/group-record-nss.c
-+++ b/src/shared/group-record-nss.c
-@@ -19,8 +19,10 @@ int nss_group_to_group_record(
+diff --git a/src/shared/user-record-nss.c b/src/shared/user-record-nss.c
+index 88b8fc2f8f..a819d41bac 100644
+--- a/src/shared/user-record-nss.c
++++ b/src/shared/user-record-nss.c
+@@ -331,8 +331,10 @@ int nss_group_to_group_record(
          if (isempty(grp->gr_name))
                  return -EINVAL;
  
@@ -27,23 +31,23 @@
  
          g = group_record_new();
          if (!g)
-@@ -36,6 +38,7 @@ int nss_group_to_group_record(
+@@ -348,6 +350,7 @@ int nss_group_to_group_record(
  
          g->gid = grp->gr_gid;
  
 +#if ENABLE_GSHADOW
          if (sgrp) {
-                 if (looks_like_hashed_password(sgrp->sg_passwd)) {
+                 if (looks_like_hashed_password(utf8_only(sgrp->sg_passwd))) {
                          g->hashed_password = strv_new(sgrp->sg_passwd);
-@@ -51,6 +54,7 @@ int nss_group_to_group_record(
-                 if (!g->administrators)
-                         return -ENOMEM;
+@@ -363,6 +366,7 @@ int nss_group_to_group_record(
+                 if (r < 0)
+                         return r;
          }
 +#endif
  
          r = json_build(&g->json, JSON_BUILD_OBJECT(
                                         JSON_BUILD_PAIR("groupName", JSON_BUILD_STRING(g->group_name)),
-@@ -76,6 +80,7 @@ int nss_sgrp_for_group(const struct grou
+@@ -388,6 +392,7 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
          assert(ret_sgrp);
          assert(ret_buffer);
  
@@ -51,7 +55,7 @@
          for (;;) {
                  _cleanup_free_ char *buf = NULL;
                  struct sgrp sgrp, *result;
-@@ -104,6 +109,9 @@ int nss_sgrp_for_group(const struct grou
+@@ -416,6 +421,9 @@ int nss_sgrp_for_group(const struct group *grp, struct sgrp *ret_sgrp, char **re
                  buflen *= 2;
                  buf = mfree(buf);
          }
@@ -61,7 +65,7 @@
  }
  
  int nss_group_record_by_name(
-@@ -115,7 +123,9 @@ int nss_group_record_by_name(
+@@ -427,7 +435,9 @@ int nss_group_record_by_name(
          struct group grp, *result;
          bool incomplete = false;
          size_t buflen = 4096;
@@ -71,7 +75,7 @@
          int r;
  
          assert(name);
-@@ -145,6 +155,7 @@ int nss_group_record_by_name(
+@@ -457,6 +467,7 @@ int nss_group_record_by_name(
                  buf = mfree(buf);
          }
  
@@ -79,7 +83,7 @@
          if (with_shadow) {
                  r = nss_sgrp_for_group(result, &sgrp, &sbuf);
                  if (r < 0) {
-@@ -156,6 +167,9 @@ int nss_group_record_by_name(
+@@ -468,6 +479,9 @@ int nss_group_record_by_name(
                  incomplete = true;
  
          r = nss_group_to_group_record(result, sresult, ret);
@@ -89,7 +93,7 @@
          if (r < 0)
                  return r;
  
-@@ -172,7 +186,9 @@ int nss_group_record_by_gid(
+@@ -484,7 +498,9 @@ int nss_group_record_by_gid(
          struct group grp, *result;
          bool incomplete = false;
          size_t buflen = 4096;
@@ -99,7 +103,7 @@
          int r;
  
          assert(ret);
-@@ -200,6 +216,7 @@ int nss_group_record_by_gid(
+@@ -512,6 +528,7 @@ int nss_group_record_by_gid(
                  buf = mfree(buf);
          }
  
@@ -107,7 +111,7 @@
          if (with_shadow) {
                  r = nss_sgrp_for_group(result, &sgrp, &sbuf);
                  if (r < 0) {
-@@ -211,6 +228,9 @@ int nss_group_record_by_gid(
+@@ -523,6 +540,9 @@ int nss_group_record_by_gid(
                  incomplete = true;
  
          r = nss_group_to_group_record(result, sresult, ret);
@@ -117,8 +121,10 @@
          if (r < 0)
                  return r;
  
---- a/src/shared/group-record-nss.h
-+++ b/src/shared/group-record-nss.h
+diff --git a/src/shared/user-record-nss.h b/src/shared/user-record-nss.h
+index 22ab04d6ee..4e52e7a911 100644
+--- a/src/shared/user-record-nss.h
++++ b/src/shared/user-record-nss.h
 @@ -2,7 +2,11 @@
  #pragma once
  
@@ -128,12 +134,14 @@
 +#else
 +struct sgrp;
 +#endif
+ #include <pwd.h>
+ #include <shadow.h>
  
- #include "group-record.h"
- 
+diff --git a/src/shared/userdb.c b/src/shared/userdb.c
+index 2d480283d1..0d19764f2e 100644
 --- a/src/shared/userdb.c
 +++ b/src/shared/userdb.c
-@@ -930,13 +930,16 @@ int groupdb_iterator_get(UserDBIterator
+@@ -929,13 +929,16 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
                  if (gr) {
                          _cleanup_free_ char *buffer = NULL;
                          bool incomplete = false;
@@ -150,7 +158,7 @@
                          r = nss_sgrp_for_group(gr, &sgrp, &buffer);
                          if (r < 0) {
                                  log_debug_errno(r, "Failed to acquire shadow entry for group %s, ignoring: %m", gr->gr_name);
-@@ -944,6 +947,9 @@ int groupdb_iterator_get(UserDBIterator
+@@ -943,6 +946,9 @@ int groupdb_iterator_get(UserDBIterator *iterator, GroupRecord **ret) {
                          }
  
                          r = nss_group_to_group_record(gr, r >= 0 ? &sgrp : NULL, ret);
@@ -160,3 +168,6 @@
                          if (r < 0)
                                  return r;
  
+-- 
+2.27.0
+
diff --git a/poky/meta/recipes-core/systemd/systemd/selinux-hook-handling-to-enumerate-nexthop.patch b/poky/meta/recipes-core/systemd/systemd/selinux-hook-handling-to-enumerate-nexthop.patch
deleted file mode 100644
index b1c92ed..0000000
--- a/poky/meta/recipes-core/systemd/systemd/selinux-hook-handling-to-enumerate-nexthop.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 92b555aaabf710e0a672a7244e8c0e3963075133 Mon Sep 17 00:00:00 2001
-From: Purushottam choudhary <purushottam.choudhary@kpit.com>
-Date: Wed, 28 Oct 2020 22:11:49 +0530
-Subject: [PATCH] network: selinux hook handling to enumerate nexthop
-
-When selinux is enabled, the call of
-manager_rtnl_enumerate_nexthop() fails.
-
-This fix is to facilitate selinux hook handling for enumerating
-nexthop.
-
-In manager_rtnl_enumerate_nexthop() there is a check
-if "Not supported" is returned by the send_netlink() call.
-
-This check expects that -EOPNOTSUPP is returned,
-the selinux hook seems to return -EINVAL instead.
-
-This happens in kernel older than 5.3
-(more specificallytorvalds/linux@65ee00a) as it does not support
-nexthop handling through netlink.
-
-And if SELinux is enforced in the order kernel, callingRTM_GETNEXTHOP
-returns -EINVAL.
-
-Thus adding a call in the manager_rtnl_enumerate_nexthop for the
-extra return -EINVAL.
-
-Upstream-Status: Backport
-https://github.com/systemd/systemd/commit/92b555aaabf710e0a672a7244e8c0e3963075133
----
- src/network/networkd-manager.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c
-index a6c1a39..2a9be85 100644
---- a/src/network/networkd-manager.c
-+++ b/src/network/networkd-manager.c
-@@ -2121,7 +2121,7 @@ int manager_rtnl_enumerate_nexthop(Manager *m) {
-
-         r = sd_netlink_call(m->rtnl, req, 0, &reply);
-         if (r < 0) {
--                if (r == -EOPNOTSUPP) {
-+                if (r == -EOPNOTSUPP || r == -EINVAL) {
-                         log_debug("Nexthop are not supported by the kernel. Ignoring.");
-                         return 0;
-                 }
diff --git a/poky/meta/recipes-core/systemd/systemd_246.6.bb b/poky/meta/recipes-core/systemd/systemd_247.2.bb
similarity index 94%
rename from poky/meta/recipes-core/systemd/systemd_246.6.bb
rename to poky/meta/recipes-core/systemd/systemd_247.2.bb
index d9e7b1a..5eea78e 100644
--- a/poky/meta/recipes-core/systemd/systemd_246.6.bb
+++ b/poky/meta/recipes-core/systemd/systemd_247.2.bb
@@ -22,7 +22,6 @@
            file://0001-binfmt-Don-t-install-dependency-links-at-install-tim.patch \
            file://0003-implment-systemd-sysv-install-for-OE.patch \
            file://0001-systemd.pc.in-use-ROOTPREFIX-without-suffixed-slash.patch \
-           file://selinux-hook-handling-to-enumerate-nexthop.patch \
            file://0001-logind-Restore-chvt-as-non-root-user-without-polkit.patch \
            "
 
@@ -34,26 +33,26 @@
                file://0004-add-fallback-parse_printf_format-implementation.patch \
                file://0005-src-basic-missing.h-check-for-missing-strndupa.patch \
                file://0006-Include-netinet-if_ether.h.patch \
-               file://0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not.patch \
+               file://0007-don-t-fail-if-GLOB_BRACE-and-GLOB_ALTDIRFUNC-is-not-.patch \
                file://0008-add-missing-FTW_-macros-for-musl.patch \
-               file://0010-fix-missing-of-__register_atfork-for-non-glibc-build.patch \
-               file://0011-Use-uintmax_t-for-handling-rlim_t.patch \
-               file://0014-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
-               file://0015-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
-               file://0016-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
-               file://0017-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
-               file://0018-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
-               file://0019-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \
-               file://0020-missing_type.h-add-__compar_d_fn_t-definition.patch \
-               file://0021-avoid-redefinition-of-prctl_mm_map-structure.patch \
-               file://0021-Handle-missing-LOCK_EX.patch \
-               file://0022-Fix-incompatible-pointer-type-struct-sockaddr_un.patch \
-               file://0024-test-json.c-define-M_PIl.patch \
-               file://0001-do-not-disable-buffer-in-writing-files.patch \
-               file://0002-src-login-brightness.c-include-sys-wait.h.patch \
-               file://0003-src-basic-copy.c-include-signal.h.patch \
-               file://0004-src-shared-cpu-set-util.h-add-__cpu_mask-definition.patch \
-               file://0001-Handle-missing-gshadow.patch \
+               file://0009-fix-missing-of-__register_atfork-for-non-glibc-build.patch \
+               file://0010-Use-uintmax_t-for-handling-rlim_t.patch \
+               file://0011-test-sizeof.c-Disable-tests-for-missing-typedefs-in-.patch \
+               file://0012-don-t-pass-AT_SYMLINK_NOFOLLOW-flag-to-faccessat.patch \
+               file://0013-Define-glibc-compatible-basename-for-non-glibc-syste.patch \
+               file://0014-Do-not-disable-buffering-when-writing-to-oom_score_a.patch \
+               file://0015-distinguish-XSI-compliant-strerror_r-from-GNU-specif.patch \
+               file://0016-Hide-__start_BUS_ERROR_MAP-and-__stop_BUS_ERROR_MAP.patch \
+               file://0017-missing_type.h-add-__compar_d_fn_t-definition.patch \
+               file://0018-avoid-redefinition-of-prctl_mm_map-structure.patch \
+               file://0019-Handle-missing-LOCK_EX.patch \
+               file://0020-Fix-incompatible-pointer-type-struct-sockaddr_un.patch \
+               file://0021-test-json.c-define-M_PIl.patch \
+               file://0022-do-not-disable-buffer-in-writing-files.patch \
+               file://0023-Include-sys-wait.h.patch \
+               file://0024-Include-signal.h.patch \
+               file://0025-Handle-__cpu_mask-usage.patch \
+               file://0026-Handle-missing-gshadow.patch \
                "
 
 PAM_PLUGINS = " \
@@ -111,6 +110,9 @@
 
 CFLAGS_append_libc-musl = " -D__UAPI_DEF_ETHHDR=0 "
 
+# Some of the dependencies are weak-style recommends - if not available at runtime,
+# systemd won't fail but the library-related feature will be skipped with a warning.
+
 # Use the upstream systemd serial-getty@.service and rely on
 # systemd-getty-generator instead of using the OE-core specific
 # systemd-serialgetty.bb - not enabled by default.
@@ -123,7 +125,7 @@
 PACKAGECONFIG[bzip2] = "-Dbzip2=true,-Dbzip2=false,bzip2"
 PACKAGECONFIG[cgroupv2] = "-Ddefault-hierarchy=unified,-Ddefault-hierarchy=hybrid"
 PACKAGECONFIG[coredump] = "-Dcoredump=true,-Dcoredump=false"
-PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=true,-Dlibcryptsetup=false,cryptsetup"
+PACKAGECONFIG[cryptsetup] = "-Dlibcryptsetup=true,-Dlibcryptsetup=false,cryptsetup,,cryptsetup"
 PACKAGECONFIG[dbus] = "-Ddbus=true,-Ddbus=false,dbus"
 PACKAGECONFIG[efi] = "-Defi=true,-Defi=false"
 PACKAGECONFIG[gnu-efi] = "-Dgnu-efi=true -Defi-libdir=${STAGING_LIBDIR} -Defi-includedir=${STAGING_INCDIR}/efi,-Dgnu-efi=false,gnu-efi"
@@ -144,8 +146,8 @@
 PACKAGECONFIG[journal-upload] = "-Dlibcurl=true,-Dlibcurl=false,curl"
 PACKAGECONFIG[kmod] = "-Dkmod=true,-Dkmod=false,kmod"
 PACKAGECONFIG[ldconfig] = "-Dldconfig=true,-Dldconfig=false,,ldconfig"
-PACKAGECONFIG[libidn] = "-Dlibidn=true,-Dlibidn=false,libidn"
-PACKAGECONFIG[libidn2] = "-Dlibidn2=true,-Dlibidn2=false,libidn2"
+PACKAGECONFIG[libidn] = "-Dlibidn=true,-Dlibidn=false,libidn,,libidn"
+PACKAGECONFIG[libidn2] = "-Dlibidn2=true,-Dlibidn2=false,libidn2,,libidn2"
 PACKAGECONFIG[localed] = "-Dlocaled=true,-Dlocaled=false"
 PACKAGECONFIG[logind] = "-Dlogind=true,-Dlogind=false"
 PACKAGECONFIG[lz4] = "-Dlz4=true,-Dlz4=false,lz4"
@@ -157,12 +159,13 @@
 PACKAGECONFIG[nss] = "-Dnss-systemd=true,-Dnss-systemd=false"
 PACKAGECONFIG[nss-mymachines] = "-Dnss-mymachines=true,-Dnss-mymachines=false"
 PACKAGECONFIG[nss-resolve] = "-Dnss-resolve=true,-Dnss-resolve=false"
+PACKAGECONFIG[oomd] = "-Doomd=true,-Doomd=false"
 PACKAGECONFIG[openssl] = "-Dopenssl=true,-Dopenssl=false,openssl"
 PACKAGECONFIG[pam] = "-Dpam=true,-Dpam=false,libpam,${PAM_PLUGINS}"
 PACKAGECONFIG[pcre2] = "-Dpcre2=true,-Dpcre2=false,libpcre2"
 PACKAGECONFIG[polkit] = "-Dpolkit=true,-Dpolkit=false"
 PACKAGECONFIG[portabled] = "-Dportabled=true,-Dportabled=false"
-PACKAGECONFIG[qrencode] = "-Dqrencode=true,-Dqrencode=false,qrencode"
+PACKAGECONFIG[qrencode] = "-Dqrencode=true,-Dqrencode=false,qrencode,,qrencode"
 PACKAGECONFIG[quotacheck] = "-Dquotacheck=true,-Dquotacheck=false"
 PACKAGECONFIG[randomseed] = "-Drandomseed=true,-Drandomseed=false"
 PACKAGECONFIG[resolved] = "-Dresolve=true,-Dresolve=false"
@@ -209,6 +212,11 @@
                   -Drootlibdir=${rootlibdir} \
                   -Drootprefix=${rootprefix} \
                   -Ddefault-locale=C \
+                  -Dmode=release \
+                  -Dsystem-alloc-uid-min=101 \
+                  -Dsystem-uid-max=999 \
+                  -Dsystem-alloc-gid-min=101 \
+                  -Dsystem-gid-max=999 \
                   "
 
 # Hardcode target binary paths to avoid using paths from sysroot
@@ -470,6 +478,7 @@
                         ${base_bindir}/systemd-escape \
                         ${base_bindir}/systemd-inhibit \
                         ${bindir}/systemd-detect-virt \
+                        ${bindir}/systemd-dissect \
                         ${bindir}/systemd-path \
                         ${bindir}/systemd-run \
                         ${bindir}/systemd-cat \
@@ -553,6 +562,8 @@
                 ${sysconfdir}/resolv-conf.systemd \
                 ${sysconfdir}/X11/xinit/xinitrc.d/* \
                 ${rootlibexecdir}/systemd/* \
+                ${libdir}/pam.d \
+                ${nonarch_libdir}/pam.d \
                 ${systemd_unitdir}/* \
                 ${base_libdir}/security/*.so \
                 /cgroup \
@@ -564,6 +575,7 @@
                 ${bindir}/resolvectl \
                 ${bindir}/timedatectl \
                 ${bindir}/bootctl \
+                ${bindir}/oomctl \
                 ${exec_prefix}/lib/tmpfiles.d/*.conf \
                 ${exec_prefix}/lib/systemd \
                 ${exec_prefix}/lib/modules-load.d \
@@ -581,6 +593,7 @@
                 ${datadir}/dbus-1/system.d/org.freedesktop.login1.conf \
                 ${datadir}/dbus-1/system.d/org.freedesktop.timesync1.conf \
                 ${datadir}/dbus-1/system.d/org.freedesktop.portable1.conf \
+                ${datadir}/dbus-1/system.d/org.freedesktop.oom1.conf \
                "
 
 FILES_${PN}-dev += "${base_libdir}/security/*.la ${datadir}/dbus-1/interfaces/ ${sysconfdir}/rpm/macros.systemd"
diff --git a/poky/meta/recipes-core/sysvinit/sysvinit/rc b/poky/meta/recipes-core/sysvinit/sysvinit/rc
index d0d3149..41196ec 100755
--- a/poky/meta/recipes-core/sysvinit/sysvinit/rc
+++ b/poky/meta/recipes-core/sysvinit/sysvinit/rc
@@ -17,6 +17,7 @@
 
 . /etc/default/rcS
 export VERBOSE
+export PSPLASH_FIFO_DIR
 
 startup_progress() {
     step=$(($step + $step_change))
@@ -27,7 +28,7 @@
     fi
     #echo "PROGRESS is $progress $runlevel $first_step + ($step of $num_steps) $step_change $progress_size"
     if type psplash-write >/dev/null 2>&1; then
-        PSPLASH_FIFO_DIR=/mnt/.psplash psplash-write "PROGRESS $progress" || true
+        psplash-write "PROGRESS $progress" || true
     fi
 }
 
@@ -159,6 +160,9 @@
 			#
 			[ -f $previous_start ] && [ ! -f $stop ] && continue
 		fi
+		if [ x"${PSPLASH_TEXT_UPDATES}" = x"yes" ]; then
+			psplash-write "MSG $(basename $i .sh | cut -c 4-)" || true
+		fi
 		case "$runlevel" in
 			0|6)
 				startup $i stop
@@ -173,7 +177,6 @@
 #Uncomment to cause psplash to exit manually, otherwise it exits when it sees a VC switch
 if [ "x$runlevel" != "xS" ] && [ ! -x /etc/rc${runlevel}.d/S??xserver-nodm ]; then
     if type psplash-write >/dev/null 2>&1; then
-        PSPLASH_FIFO_DIR=/mnt/.psplash psplash-write "QUIT" || true
-    	umount -l /mnt/.psplash
+        psplash-write "QUIT" || true
     fi
 fi
diff --git a/poky/meta/recipes-core/sysvinit/sysvinit/rcS-default b/poky/meta/recipes-core/sysvinit/sysvinit/rcS-default
index 709cdf6..f7c4a2f 100644
--- a/poky/meta/recipes-core/sysvinit/sysvinit/rcS-default
+++ b/poky/meta/recipes-core/sysvinit/sysvinit/rcS-default
@@ -27,3 +27,10 @@
 # Setting ROOTFS_READ_ONLY to yes and rebooting will give you a read-only rootfs.
 # Normally you should not change this value.
 ROOTFS_READ_ONLY=no
+# rcS is also used when using busybox init and shares initscripts, some initscripts
+# need to have specific behavior depending on init system
+INIT_SYSTEM=sysvinit
+# set the psplash fifo directory
+PSPLASH_FIFO_DIR=/mnt
+# psplash textual updates knob
+PSPLASH_TEXT_UPDATES=#PSPLASH_TEXT#
diff --git a/poky/meta/recipes-core/sysvinit/sysvinit_2.97.bb b/poky/meta/recipes-core/sysvinit/sysvinit_2.98.bb
similarity index 92%
rename from poky/meta/recipes-core/sysvinit/sysvinit_2.97.bb
rename to poky/meta/recipes-core/sysvinit/sysvinit_2.98.bb
index 98916f7..41009bc 100644
--- a/poky/meta/recipes-core/sysvinit/sysvinit_2.97.bb
+++ b/poky/meta/recipes-core/sysvinit/sysvinit_2.98.bb
@@ -21,7 +21,7 @@
            file://bootlogd.init \
            file://01_bootlogd \
            "
-SRC_URI[sha256sum] = "2d5996857519bfd8634d2e1debabb3238fb38440f65fbfdc46420ee8bdf25110"
+SRC_URI[sha256sum] = "7b2c3ffaf19eaf1ca80268762f85f9e4eb8e3c973213d49f9802605b72caa7dc"
 
 S = "${WORKDIR}/sysvinit-${PV}"
 
@@ -29,6 +29,8 @@
 DEPENDS_append = " update-rc.d-native base-passwd virtual/crypt"
 do_package_setscene[depends] = "${MLPREFIX}base-passwd:do_populate_sysroot"
 
+PACKAGECONFIG[psplash-text-updates] = ",,"
+
 REQUIRED_DISTRO_FEATURES = "sysvinit"
 
 ALTERNATIVE_${PN} = "init mountpoint halt reboot runlevel shutdown poweroff last lastb mesg utmpdump wall"
@@ -91,7 +93,10 @@
 		install -d ${D}${sysconfdir}/rc$level.d
 	done
 
-	install -m 0644    ${WORKDIR}/rcS-default	${D}${sysconfdir}/default/rcS
+	sed -e \
+		's:#PSPLASH_TEXT#:${@bb.utils.contains("PACKAGECONFIG","psplash-text-updates","yes","no", d)}:g' \
+		${WORKDIR}/rcS-default > ${D}${sysconfdir}/default/rcS
+	chmod 0644 ${D}${sysconfdir}/default/rcS
 	install -m 0755    ${WORKDIR}/rc		${D}${sysconfdir}/init.d
 	install -m 0755    ${WORKDIR}/rcS		${D}${sysconfdir}/init.d
 	install -m 0755    ${WORKDIR}/bootlogd.init     ${D}${sysconfdir}/init.d/bootlogd
diff --git a/poky/meta/recipes-core/util-linux/util-linux/0001-build-sys-do-not-build-plymouth-ctrl.c-w-disabled-pl.patch b/poky/meta/recipes-core/util-linux/util-linux/0001-build-sys-do-not-build-plymouth-ctrl.c-w-disabled-pl.patch
new file mode 100644
index 0000000..f3ae5ef
--- /dev/null
+++ b/poky/meta/recipes-core/util-linux/util-linux/0001-build-sys-do-not-build-plymouth-ctrl.c-w-disabled-pl.patch
@@ -0,0 +1,52 @@
+From 5547316c85cd45c0ea29c4c7c48eecd616783cd5 Mon Sep 17 00:00:00 2001
+From: Pino Toscano <toscano.pino@tiscali.it>
+Date: Tue, 17 Nov 2020 11:27:48 +0100
+Subject: [PATCH] build-sys: do not build plymouth-ctrl.c w/ disabled plymouth
+
+Do not build plymouth-ctrl.c in agetty and sulogin in case the plymouth
+support is disabled.
+
+Upstream-Status: Backport [https://github.com/karelzak/util-linux/commit/5547316c85cd45c0ea29c4c7c48eecd616783cd5]
+Signed-off-by: Pino Toscano <toscano.pino@tiscali.it>
+---
+ login-utils/Makemodule.am | 6 ++++--
+ term-utils/Makemodule.am  | 6 ++++--
+ 2 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/login-utils/Makemodule.am b/login-utils/Makemodule.am
+index 4f52cea3c..8bc3ee37e 100644
+--- a/login-utils/Makemodule.am
++++ b/login-utils/Makemodule.am
+@@ -31,8 +31,10 @@ dist_man_MANS += login-utils/sulogin.8
+ sulogin_SOURCES = \
+ 	login-utils/sulogin.c \
+ 	login-utils/sulogin-consoles.c \
+-	login-utils/sulogin-consoles.h \
+-	lib/plymouth-ctrl.c
++	login-utils/sulogin-consoles.h
++if USE_PLYMOUTH_SUPPORT
++sulogin_SOURCES += lib/plymouth-ctrl.c
++endif
+ sulogin_LDADD = $(LDADD) libcommon.la
+ 
+ if HAVE_LIBCRYPT
+diff --git a/term-utils/Makemodule.am b/term-utils/Makemodule.am
+index 92df7dbc8..c424dbdf8 100644
+--- a/term-utils/Makemodule.am
++++ b/term-utils/Makemodule.am
+@@ -42,8 +42,10 @@ endif # BUILD_SCRIPTLIVE
+ if BUILD_AGETTY
+ sbin_PROGRAMS += agetty
+ dist_man_MANS += term-utils/agetty.8
+-agetty_SOURCES = term-utils/agetty.c \
+-		 lib/plymouth-ctrl.c
++agetty_SOURCES = term-utils/agetty.c
++if USE_PLYMOUTH_SUPPORT
++agetty_SOURCES += lib/plymouth-ctrl.c
++endif
+ agetty_LDADD = $(LDADD) libcommon.la
+ if BSD
+ agetty_LDADD += -lutil
+-- 
+2.29.2
+
diff --git a/poky/meta/recipes-core/util-linux/util-linux/0001-hwclock-do-not-assume-__NR_settimeofday_time32.patch b/poky/meta/recipes-core/util-linux/util-linux/0001-hwclock-do-not-assume-__NR_settimeofday_time32.patch
new file mode 100644
index 0000000..3e81847
--- /dev/null
+++ b/poky/meta/recipes-core/util-linux/util-linux/0001-hwclock-do-not-assume-__NR_settimeofday_time32.patch
@@ -0,0 +1,30 @@
+From 367972fae13d170675768d63678577cae1890143 Mon Sep 17 00:00:00 2001
+From: Pino Toscano <toscano.pino@tiscali.it>
+Date: Tue, 17 Nov 2020 11:32:45 +0100
+Subject: [PATCH] hwclock: do not assume __NR_settimeofday_time32
+
+Check that __NR_settimeofday_time32 exists before trying to use it as
+syscall number.
+
+Upstream-Status: Backport [https://github.com/karelzak/util-linux/commit/367972fae13d170675768d63678577cae1890143]
+Signed-off-by: Pino Toscano <toscano.pino@tiscali.it>
+---
+ sys-utils/hwclock.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/sys-utils/hwclock.c b/sys-utils/hwclock.c
+index 1f7ef3317..db448687d 100644
+--- a/sys-utils/hwclock.c
++++ b/sys-utils/hwclock.c
+@@ -678,7 +678,7 @@ display_time(struct timeval hwctime)
+ #ifndef SYS_settimeofday
+ # ifdef __NR_settimeofday
+ #  define SYS_settimeofday	__NR_settimeofday
+-# else
++# elif defined(__NR_settimeofday_time32)
+ #  define SYS_settimeofday	__NR_settimeofday_time32
+ # endif
+ #endif
+-- 
+2.29.2
+
diff --git a/poky/meta/recipes-core/util-linux/util-linux_2.36.bb b/poky/meta/recipes-core/util-linux/util-linux_2.36.1.bb
similarity index 98%
rename from poky/meta/recipes-core/util-linux/util-linux_2.36.bb
rename to poky/meta/recipes-core/util-linux/util-linux_2.36.1.bb
index 474f1e1..bf46922 100644
--- a/poky/meta/recipes-core/util-linux/util-linux_2.36.bb
+++ b/poky/meta/recipes-core/util-linux/util-linux_2.36.1.bb
@@ -39,8 +39,10 @@
            file://run-ptest \
            file://display_testname_for_subtest.patch \
            file://avoid_parallel_tests.patch \
+           file://0001-build-sys-do-not-build-plymouth-ctrl.c-w-disabled-pl.patch \
+           file://0001-hwclock-do-not-assume-__NR_settimeofday_time32.patch \
            "
-SRC_URI[sha256sum] = "9e4b1c67eb13b9b67feb32ae1dc0d50e08ce9e5d82e1cccd0ee771ad2fa9e0b1"
+SRC_URI[sha256sum] = "09fac242172cd8ec27f0739d8d192402c69417617091d8c6e974841568f37eed"
 
 PACKAGES =+ "${PN}-swaponoff"
 PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'pylibmount', '${PN}-pylibmount', '', d)}"
diff --git a/poky/meta/recipes-devtools/binutils/binutils_2.35.bb b/poky/meta/recipes-devtools/binutils/binutils_2.35.bb
index 2e645e1..976e497 100644
--- a/poky/meta/recipes-devtools/binutils/binutils_2.35.bb
+++ b/poky/meta/recipes-devtools/binutils/binutils_2.35.bb
@@ -52,9 +52,11 @@
 	rmdir ${D}/${libdir}64 || :
 }
 
-# Split out libbfd-*.so so including perf doesn't include extra stuff
-PACKAGE_BEFORE_PN += "libbfd"
+# Split out libbfd-*.so and libopcodes-*.so so including perf doesn't include
+# extra stuff
+PACKAGE_BEFORE_PN += "libbfd libopcodes"
 FILES_libbfd = "${libdir}/libbfd-*.so.* ${libdir}/libbfd-*.so"
+FILES_libopcodes = "${libdir}/libopcodes-*.so.* ${libdir}/libopcodes-*.so"
 
 SRC_URI_append_class-nativesdk =  " file://0003-binutils-nativesdk-Search-for-alternative-ld.so.conf.patch "
 
diff --git a/poky/meta/recipes-devtools/ccache/ccache/0001-Improve-SIMD-detection-735.patch b/poky/meta/recipes-devtools/ccache/ccache/0001-Improve-SIMD-detection-735.patch
new file mode 100644
index 0000000..12d4ebc
--- /dev/null
+++ b/poky/meta/recipes-devtools/ccache/ccache/0001-Improve-SIMD-detection-735.patch
@@ -0,0 +1,121 @@
+From 05d290165a3b61da09b715e6c8e62cebebab57cc Mon Sep 17 00:00:00 2001
+From: Erik Flodin <erik@ejohansson.se>
+Date: Mon, 7 Dec 2020 19:20:31 +0100
+Subject: [PATCH 1/2] Improve SIMD detection (#735)
+
+* Try to compile code to detect SSE/AVX support. Just checking if the compiler
+  supports the flag isn't enough as e.g. Clang on Apple's new ARM silicon seems
+  to accept the flag but then fails when building.
+* Try to detect and enable BLAKE3's Neon support.
+* Improve detection of AVX2 target attribute support and remove the explicit
+  compiler version check that hopefully shouldn't be needed.
+
+Fixes #734.
+Upstream-Status: Backport [https://github.com/ccache/ccache/commit/b438f50388dd00285083260f60450e6237b7d58f]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ cmake/GenerateConfigurationFile.cmake | 25 +++++++++---------
+ src/third_party/blake3/CMakeLists.txt | 38 ++++++++++++++++++++-------
+ 2 files changed, 42 insertions(+), 21 deletions(-)
+
+diff --git a/cmake/GenerateConfigurationFile.cmake b/cmake/GenerateConfigurationFile.cmake
+index a21861f4..836ff9bb 100644
+--- a/cmake/GenerateConfigurationFile.cmake
++++ b/cmake/GenerateConfigurationFile.cmake
+@@ -67,18 +67,19 @@ check_struct_has_member("struct stat" st_mtim sys/stat.h
+ check_struct_has_member("struct statfs" f_fstypename sys/mount.h
+                         HAVE_STRUCT_STATFS_F_FSTYPENAME)
+ 
+-include(CheckCXXCompilerFlag)
+-
+-# Old GCC versions don't have the required header support.
+-# Old Apple Clang versions seem to support -mavx2 but not the target
+-# attribute that's used to enable AVX2 for a certain function.
+-if((CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 5.0)
+-   OR (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 8.0))
+-  message(STATUS "Detected unsupported compiler for HAVE_AVX2 - disabled")
+-  set(HAVE_AVX2 FALSE)
+-else()
+-  check_cxx_compiler_flag(-mavx2 HAVE_AVX2)
+-endif()
++include(CheckCXXSourceCompiles)
++check_cxx_source_compiles(
++  [=[
++    #include <immintrin.h>
++    void func() __attribute__((target("avx2")));
++    void func() { _mm256_abs_epi8(_mm256_set1_epi32(42)); }
++    int main()
++    {
++      func();
++      return 0;
++    }
++  ]=]
++  HAVE_AVX2)
+ 
+ list(APPEND CMAKE_REQUIRED_LIBRARIES ws2_32)
+ list(REMOVE_ITEM CMAKE_REQUIRED_LIBRARIES ws2_32)
+diff --git a/src/third_party/blake3/CMakeLists.txt b/src/third_party/blake3/CMakeLists.txt
+index a75e5611..cc24253c 100644
+--- a/src/third_party/blake3/CMakeLists.txt
++++ b/src/third_party/blake3/CMakeLists.txt
+@@ -13,9 +13,9 @@ else()
+ endif()
+ 
+ include(CheckAsmCompilerFlag)
+-include(CheckCCompilerFlag)
++include(CheckCSourceCompiles)
+ 
+-function(add_source_if_enabled feature compile_flags)
++function(add_source_if_enabled feature compile_flags intrinsic)
+   string(TOUPPER "have_${blake_source_type}_${feature}" have_feature)
+ 
+   # AVX512 support fails to compile with old Apple Clang versions even though
+@@ -28,7 +28,14 @@ function(add_source_if_enabled feature compile_flags)
+   elseif(${blake_source_type} STREQUAL "asm")
+     check_asm_compiler_flag(${compile_flags} ${have_feature})
+   else()
+-    check_c_compiler_flag(${compile_flags} ${have_feature})
++    set(CMAKE_REQUIRED_FLAGS ${compile_flags})
++    check_c_source_compiles(
++      [=[
++        #include <immintrin.h>
++        int main() { ${intrinsic}; return 0; }
++      ]=]
++      ${have_feature})
++    unset(CMAKE_REQUIRED_FLAGS)
+   endif()
+ 
+   if(${have_feature})
+@@ -42,10 +49,23 @@ function(add_source_if_enabled feature compile_flags)
+   endif()
+ endfunction()
+ 
+-add_source_if_enabled(sse2 "-msse2")
+-add_source_if_enabled(sse41 "-msse4.1")
+-add_source_if_enabled(avx2 "-mavx2")
+-add_source_if_enabled(avx512 "-mavx512f -mavx512vl")
++# https://software.intel.com/sites/landingpage/IntrinsicsGuide/
++add_source_if_enabled(sse2 "-msse2" "_mm_set1_epi32(42)")
++add_source_if_enabled(sse41 "-msse4.1" "_mm_test_all_ones(_mm_set1_epi32(42))")
++add_source_if_enabled(avx2 "-mavx2" "_mm256_abs_epi8(_mm256_set1_epi32(42))")
++add_source_if_enabled(avx512 "-mavx512f -mavx512vl" "_mm256_abs_epi64(_mm256_set1_epi32(42))")
+ 
+-# TODO: how to detect ARM NEON support?
+-# If NEON, define BLAKE3_USE_NEON and build blake3_neon.c
++# Neon is always available on AArch64
++if(CMAKE_SIZEOF_VOID_P EQUAL 8)
++  # https://developer.arm.com/architectures/instruction-sets/simd-isas/neon/intrinsics
++  check_c_source_compiles(
++    [=[
++      #include <arm_neon.h>
++      int main() { vdupq_n_s32(42); return 0; }
++    ]=]
++    HAVE_NEON)
++  if(HAVE_NEON)
++    target_sources(blake3 PRIVATE blake3_neon.c)
++    target_compile_definitions(blake3 PRIVATE BLAKE3_USE_NEON)
++  endif()
++endif()
+-- 
+2.30.0
+
diff --git a/poky/meta/recipes-devtools/ccache/ccache/0001-blake3-Remove-asm-checks-for-sse-avx.patch b/poky/meta/recipes-devtools/ccache/ccache/0001-blake3-Remove-asm-checks-for-sse-avx.patch
new file mode 100644
index 0000000..bdabb38
--- /dev/null
+++ b/poky/meta/recipes-devtools/ccache/ccache/0001-blake3-Remove-asm-checks-for-sse-avx.patch
@@ -0,0 +1,35 @@
+From 0448eddcf2863ebf911e7dd445bca1c7eee2a239 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Tue, 5 Jan 2021 13:55:34 -0800
+Subject: [PATCH] blake3: Remove asm checks for sse/avx
+
+This ends up passing on clang/linux wrongly when building for aarch64
+the check in else part is good to detect the feature support and this
+check can be removed, it was setting
+
+HAVE_ASM_AVX* and HAVE_ASM_SSE* macros which are not used in the build
+anyway
+
+Upstream-Status: Submitted [https://github.com/ccache/ccache/pull/768]
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/third_party/blake3/CMakeLists.txt | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/src/third_party/blake3/CMakeLists.txt b/src/third_party/blake3/CMakeLists.txt
+index cc24253c..856b5721 100644
+--- a/src/third_party/blake3/CMakeLists.txt
++++ b/src/third_party/blake3/CMakeLists.txt
+@@ -25,8 +25,6 @@ function(add_source_if_enabled feature compile_flags intrinsic)
+       AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 9.0)
+     message(STATUS "Detected unsupported compiler for ${have_feature} - disabled")
+     set(${have_feature} FALSE)
+-  elseif(${blake_source_type} STREQUAL "asm")
+-    check_asm_compiler_flag(${compile_flags} ${have_feature})
+   else()
+     set(CMAKE_REQUIRED_FLAGS ${compile_flags})
+     check_c_source_compiles(
+-- 
+2.30.0
+
diff --git a/poky/meta/recipes-devtools/ccache/ccache/0002-Always-use-64bit-to-print-time_t.patch b/poky/meta/recipes-devtools/ccache/ccache/0002-Always-use-64bit-to-print-time_t.patch
new file mode 100644
index 0000000..85ce2b7
--- /dev/null
+++ b/poky/meta/recipes-devtools/ccache/ccache/0002-Always-use-64bit-to-print-time_t.patch
@@ -0,0 +1,33 @@
+From fa360ca8a457dafcae1d22df2b342d3ee291e8af Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Thu, 31 Dec 2020 14:28:39 -0800
+Subject: [PATCH 2/2] Always use 64bit to print time_t
+
+some 32bit architectures e.g. RISCV32 use 64bit time_t from beginning
+which does not fit into long int size on LP32 systems
+
+Upstream-Status: Submitted [https://github.com/ccache/ccache/pull/762]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ src/Logging.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/Logging.cpp b/src/Logging.cpp
+index 9a5d99b7..1a6e6264 100644
+--- a/src/Logging.cpp
++++ b/src/Logging.cpp
+@@ -88,7 +88,10 @@ do_log(string_view message, bool bulk)
+     if (tm) {
+       strftime(timestamp, sizeof(timestamp), "%Y-%m-%dT%H:%M:%S", &*tm);
+     } else {
+-      snprintf(timestamp, sizeof(timestamp), "%lu", tv.tv_sec);
++      snprintf(timestamp,
++               sizeof(timestamp),
++               "%llu",
++               (long long unsigned int)tv.tv_sec);
+     }
+     snprintf(prefix,
+              sizeof(prefix),
+-- 
+2.30.0
+
diff --git a/poky/meta/recipes-devtools/ccache/ccache_3.7.11.bb b/poky/meta/recipes-devtools/ccache/ccache_3.7.11.bb
deleted file mode 100644
index fd004f4..0000000
--- a/poky/meta/recipes-devtools/ccache/ccache_3.7.11.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-SUMMARY = "a fast C/C++ compiler cache"
-DESCRIPTION = "ccache is a compiler cache. It speeds up recompilation \
-by caching the result of previous compilations and detecting when the \
-same compilation is being done again. Supported languages are C, C\+\+, \
-Objective-C and Objective-C++."
-HOMEPAGE = "http://ccache.samba.org"
-SECTION = "devel"
-
-LICENSE = "GPLv3+"
-LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=22d514dbc01fdf9a9784334b6b59417a"
-
-DEPENDS = "zlib"
-
-SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz"
-SRC_URI[sha256sum] = "34309a59d4b6b6b33756366aa9d3144a4655587be9f914476b4c0e2d36365f01"
-
-UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/"
-
-inherit autotools
-
-# Remove ccache-native's dependencies, so that it can be used widely by
-# other native recipes.
-DEPENDS_class-native = ""
-EXTRA_OECONF_class-native = "--with-bundled-zlib"
-INHIBIT_AUTOTOOLS_DEPS_class-native = "1"
-PATCHTOOL = "patch"
-
-BBCLASSEXTEND = "native"
-
-do_configure_class-native() {
-    oe_runconf
-}
diff --git a/poky/meta/recipes-devtools/ccache/ccache_4.1.bb b/poky/meta/recipes-devtools/ccache/ccache_4.1.bb
new file mode 100644
index 0000000..6bd46b1
--- /dev/null
+++ b/poky/meta/recipes-devtools/ccache/ccache_4.1.bb
@@ -0,0 +1,27 @@
+SUMMARY = "a fast C/C++ compiler cache"
+DESCRIPTION = "ccache is a compiler cache. It speeds up recompilation \
+by caching the result of previous compilations and detecting when the \
+same compilation is being done again. Supported languages are C, C\+\+, \
+Objective-C and Objective-C++."
+HOMEPAGE = "http://ccache.samba.org"
+SECTION = "devel"
+
+LICENSE = "GPLv3+"
+LIC_FILES_CHKSUM = "file://LICENSE.adoc;md5=a66c581f855c1c408730fe5d171e3013"
+
+DEPENDS = "zstd"
+
+SRC_URI = "https://github.com/ccache/ccache/releases/download/v${PV}/${BP}.tar.gz \
+           file://0001-Improve-SIMD-detection-735.patch \
+           file://0002-Always-use-64bit-to-print-time_t.patch \
+           file://0001-blake3-Remove-asm-checks-for-sse-avx.patch \
+           "
+SRC_URI[sha256sum] = "cdeefb827b3eef3b42b5454858123881a4a90abbd46cc72cf8c20b3bd039deb7"
+
+UPSTREAM_CHECK_URI = "https://github.com/ccache/ccache/releases/"
+
+inherit cmake
+
+PATCHTOOL = "patch"
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/cmake/cmake-native_3.18.4.bb b/poky/meta/recipes-devtools/cmake/cmake-native_3.19.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/cmake/cmake-native_3.18.4.bb
rename to poky/meta/recipes-devtools/cmake/cmake-native_3.19.2.bb
diff --git a/poky/meta/recipes-devtools/cmake/cmake.inc b/poky/meta/recipes-devtools/cmake/cmake.inc
index e840e88..db03819 100644
--- a/poky/meta/recipes-devtools/cmake/cmake.inc
+++ b/poky/meta/recipes-devtools/cmake/cmake.inc
@@ -11,7 +11,7 @@
 SECTION = "console/utils"
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://Copyright.txt;md5=c721f56fce89ba2eadc2fdd8ba1f4d83 \
-                    file://Source/cmake.h;beginline=1;endline=3;md5=4494dee184212fc89c469c3acd555a14 \
+                    file://Source/cmake.h;beginline=1;endline=2;md5=a5f70e1fef8614734eae0d62b4f5891b \
                     "
 
 CMAKE_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:2])}"
@@ -20,9 +20,10 @@
            file://0002-cmake-Prevent-the-detection-of-Qt5.patch \
            file://0003-cmake-support-OpenEmbedded-Qt4-tool-binary-names.patch \
            file://0004-Fail-silently-if-system-Qt-installation-is-broken.patch \
+           file://0001-cm_cxx_features.cmake-do-not-try-to-run-the-test-bin.patch \
 "
 
-SRC_URI[sha256sum] = "597c61358e6a92ecbfad42a9b5321ddd801fc7e7eca08441307c9138382d4f77"
+SRC_URI[sha256sum] = "e3e0fd3b23b7fb13e1a856581078e0776ffa2df4e9d3164039c36d3315e0c7f0"
 
 UPSTREAM_CHECK_REGEX = "cmake-(?P<pver>\d+(\.\d+)+)\.tar"
 
diff --git a/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch b/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch
index c4f81b2..8181510 100644
--- a/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch
+++ b/poky/meta/recipes-devtools/cmake/cmake/0001-CMakeDetermineSystem-use-oe-environment-vars-to-load.patch
@@ -1,4 +1,4 @@
-From dd0fe8d54def4684d360b3e9b10e963ef0208202 Mon Sep 17 00:00:00 2001
+From 66d5b27dc37ef6243f6549e16d0285ba6c064a6e Mon Sep 17 00:00:00 2001
 From: Cody P Schafer <dev@codyps.com>
 Date: Thu, 27 Apr 2017 11:35:05 -0400
 Subject: [PATCH] CMakeDetermineSystem: use oe environment vars to load default
@@ -25,10 +25,10 @@
  1 file changed, 7 insertions(+)
 
 diff --git a/Modules/CMakeDetermineSystem.cmake b/Modules/CMakeDetermineSystem.cmake
-index f3ec4da..bb05656 100644
+index bae270d..5bb6bc0 100644
 --- a/Modules/CMakeDetermineSystem.cmake
 +++ b/Modules/CMakeDetermineSystem.cmake
-@@ -81,6 +81,13 @@ else()
+@@ -111,6 +111,13 @@ else()
    endif()
  endif()
  
diff --git a/poky/meta/recipes-devtools/cmake/cmake/0001-cm_cxx_features.cmake-do-not-try-to-run-the-test-bin.patch b/poky/meta/recipes-devtools/cmake/cmake/0001-cm_cxx_features.cmake-do-not-try-to-run-the-test-bin.patch
new file mode 100644
index 0000000..4483bbc
--- /dev/null
+++ b/poky/meta/recipes-devtools/cmake/cmake/0001-cm_cxx_features.cmake-do-not-try-to-run-the-test-bin.patch
@@ -0,0 +1,26 @@
+From ca105727dc4862733c3aad09e9de819be63a7b6b Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sun, 27 Dec 2020 23:18:10 +0100
+Subject: [PATCH] cm_cxx_features.cmake: do not try to run the test binary
+
+This causes errors when cross compiling cmake.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ Source/Checks/cm_cxx_features.cmake | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Source/Checks/cm_cxx_features.cmake b/Source/Checks/cm_cxx_features.cmake
+index 663d89a..e8dca3b 100644
+--- a/Source/Checks/cm_cxx_features.cmake
++++ b/Source/Checks/cm_cxx_features.cmake
+@@ -81,7 +81,7 @@ if(CMake_HAVE_CXX_MAKE_UNIQUE)
+ endif()
+ cm_check_cxx_feature(unique_ptr)
+ if (NOT CMAKE_CXX_STANDARD LESS "17")
+-  cm_check_cxx_feature(filesystem TRY_RUN)
++  cm_check_cxx_feature(filesystem)
+ else()
+   set(CMake_HAVE_CXX_FILESYSTEM FALSE)
+ endif()
diff --git a/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch b/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch
index 162bfe5..33db07c 100644
--- a/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch
+++ b/poky/meta/recipes-devtools/cmake/cmake/0002-cmake-Prevent-the-detection-of-Qt5.patch
@@ -1,4 +1,4 @@
-From 106cf5134d22db889e4ddf2f98ec302d5f4b9ca7 Mon Sep 17 00:00:00 2001
+From 98abade8cc119e076e4c5f1461c5188f6d49c1d8 Mon Sep 17 00:00:00 2001
 From: Otavio Salvador <otavio@ossystems.com.br>
 Date: Wed, 17 Jan 2018 10:02:14 -0200
 Subject: [PATCH] cmake: Prevent the detection of Qt5
@@ -25,23 +25,23 @@
  7 files changed, 8 insertions(+), 9 deletions(-)
 
 diff --git a/Source/QtDialog/CMakeLists.txt b/Source/QtDialog/CMakeLists.txt
-index 98dd0e2..252302b 100644
+index 452a303..d0a9fb4 100644
 --- a/Source/QtDialog/CMakeLists.txt
 +++ b/Source/QtDialog/CMakeLists.txt
 @@ -3,7 +3,7 @@
  
  project(QtDialog)
  CMake_OPTIONAL_COMPONENT(cmake-gui)
--find_package(Qt5Widgets QUIET)
-+#find_package(Qt5Widgets QUIET)
- if (Qt5Widgets_FOUND)
-   include_directories(${Qt5Widgets_INCLUDE_DIRS})
-   add_definitions(${Qt5Widgets_DEFINITONS})
+-find_package(Qt5Widgets REQUIRED)
++#find_package(Qt5Widgets REQUIRED)
+ 
+ set(CMake_QT_EXTRA_LIBRARIES)
+ 
 diff --git a/Tests/CMakeLists.txt b/Tests/CMakeLists.txt
-index db6dbf3..5b26879 100644
+index 1fb47cb..e022229 100644
 --- a/Tests/CMakeLists.txt
 +++ b/Tests/CMakeLists.txt
-@@ -215,7 +215,7 @@ if(BUILD_TESTING)
+@@ -251,7 +251,7 @@ if(BUILD_TESTING)
      set(CMake_TEST_Qt5 1)
    endif()
    if(CMake_TEST_Qt5)
@@ -96,10 +96,10 @@
  set(CMAKE_CXX_STANDARD 11)
  set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/output/bin)
 diff --git a/Tests/RunCMake/CMakeLists.txt b/Tests/RunCMake/CMakeLists.txt
-index 10e66c3..ecc4eeb 100644
+index 370dd76..6bacbff 100644
 --- a/Tests/RunCMake/CMakeLists.txt
 +++ b/Tests/RunCMake/CMakeLists.txt
-@@ -440,7 +440,7 @@ if(NOT WIN32)
+@@ -473,7 +473,7 @@ if(NOT WIN32)
  endif ()
  
  find_package(Qt4 QUIET)
diff --git a/poky/meta/recipes-devtools/cmake/cmake_3.18.4.bb b/poky/meta/recipes-devtools/cmake/cmake_3.19.2.bb
similarity index 100%
rename from poky/meta/recipes-devtools/cmake/cmake_3.18.4.bb
rename to poky/meta/recipes-devtools/cmake/cmake_3.19.2.bb
diff --git a/poky/meta/recipes-devtools/diffstat/diffstat_1.63.bb b/poky/meta/recipes-devtools/diffstat/diffstat_1.63.bb
index 61b2ea5..863f924 100644
--- a/poky/meta/recipes-devtools/diffstat/diffstat_1.63.bb
+++ b/poky/meta/recipes-devtools/diffstat/diffstat_1.63.bb
@@ -5,7 +5,7 @@
 HOMEPAGE = "http://invisible-island.net/diffstat/"
 SECTION = "devel"
 LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://install-sh;endline=42;md5=b3549726c1022bee09c174c72a0ca4a5"
+LIC_FILES_CHKSUM = "file://COPYING;md5=a3d0bb117493e804b0c1a868ddf23321"
 
 SRC_URI = "http://invisible-mirror.net/archives/${BPN}/${BP}.tgz \
            file://run-ptest \
@@ -16,8 +16,6 @@
 SRC_URI[md5sum] = "b9272ec8af6257103261ec3622692991"
 SRC_URI[sha256sum] = "7eddd53401b99b90bac3f7ebf23dd583d7d99c6106e67a4f1161b7a20110dc6f"
 
-S = "${WORKDIR}/diffstat-${PV}"
-
 inherit autotools gettext ptest
 
 EXTRA_AUTORECONF += "--exclude=aclocal"
diff --git a/poky/meta/recipes-devtools/dnf/dnf_4.4.0.bb b/poky/meta/recipes-devtools/dnf/dnf_4.5.2.bb
similarity index 98%
rename from poky/meta/recipes-devtools/dnf/dnf_4.4.0.bb
rename to poky/meta/recipes-devtools/dnf/dnf_4.5.2.bb
index dff6fe6..e1b0e1a 100644
--- a/poky/meta/recipes-devtools/dnf/dnf_4.4.0.bb
+++ b/poky/meta/recipes-devtools/dnf/dnf_4.5.2.bb
@@ -17,7 +17,7 @@
            file://0001-dnf-write-the-log-lock-to-root.patch \
            "
 
-SRCREV = "b9b7623892f551da201bffd03187d703242b00e9"
+SRCREV = "36a3ffaee4db76a7efe7d40f4e42ce679b6a6920"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/gcc/gcc-10.2.inc b/poky/meta/recipes-devtools/gcc/gcc-10.2.inc
index e88f2ad..1e69c91 100644
--- a/poky/meta/recipes-devtools/gcc/gcc-10.2.inc
+++ b/poky/meta/recipes-devtools/gcc/gcc-10.2.inc
@@ -69,6 +69,7 @@
            file://0002-aarch64-Introduce-SLS-mitigation-for-RET-and-BR-inst.patch \
            file://0003-aarch64-Mitigate-SLS-for-BLR-instruction.patch \
            file://0001-aarch64-Fix-up-__aarch64_cas16_acq_rel-fallback.patch \
+           file://0001-lib-Remove-i-86-march-overrides.patch \
 "
 SRC_URI[sha256sum] = "b8dd4368bb9c7f0b98188317ee0254dd8cc99d1e3a18d0ff146c855fe16c1d8c"
 
diff --git a/poky/meta/recipes-devtools/gcc/gcc/0001-lib-Remove-i-86-march-overrides.patch b/poky/meta/recipes-devtools/gcc/gcc/0001-lib-Remove-i-86-march-overrides.patch
new file mode 100644
index 0000000..3f04e12
--- /dev/null
+++ b/poky/meta/recipes-devtools/gcc/gcc/0001-lib-Remove-i-86-march-overrides.patch
@@ -0,0 +1,113 @@
+From 3776789cde95916f95deef48acf9532b0ebf91ae Mon Sep 17 00:00:00 2001
+From: Nathan Rossi <nathan@nathanrossi.com>
+Date: Tue, 15 Dec 2020 11:43:36 +1000
+Subject: [PATCH] lib*: Remove i*86 march overrides
+
+OE does not pass the '--with-arch' option to gccs configure, as such
+some gcc-runtime libraries try to override the value of '-march' and
+'-mtune' which OE already provides. This causes conflicts with other
+i*86 instruction/architecture flags (e.g. -msse* and -mfpmath=*).
+Additionally this caused the following libraries to be built with less
+optimized tune configurations.
+
+Upstream suggests that this should be detecting or otherwise checking if
+the target supports the desired functionality before overriding.
+
+    https://gcc.gnu.org/legacy-ml/gcc-patches/2016-04/msg01344.html
+
+libatomic also overrides the '-march' specifically for IFUNC objects.
+OE already supplies the correct march flag, so remove setting.
+
+Upstream-Status: Inappropriate [OE Specific]
+Signed-off-by: Nathan Rossi <nathan@nathanrossi.com>
+---
+ libatomic/Makefile.am   | 1 -
+ libatomic/Makefile.in   | 1 -
+ libatomic/configure.tgt | 9 ---------
+ libgomp/configure.tgt   | 8 --------
+ libitm/configure.tgt    | 9 ---------
+ 5 files changed, 28 deletions(-)
+
+diff --git a/libatomic/Makefile.am b/libatomic/Makefile.am
+index ac1ca64587..5aa16e0699 100644
+--- a/libatomic/Makefile.am
++++ b/libatomic/Makefile.am
+@@ -133,7 +133,6 @@ libatomic_la_LIBADD += $(foreach s,$(SIZES),$(addsuffix _$(s)_1_.lo,$(SIZEOBJS))
+ libatomic_la_LIBADD += $(addsuffix _8_2_.lo,$(SIZEOBJS))
+ endif
+ if ARCH_I386
+-IFUNC_OPTIONS	     = -march=i586
+ libatomic_la_LIBADD += $(addsuffix _8_1_.lo,$(SIZEOBJS))
+ endif
+ if ARCH_X86_64
+diff --git a/libatomic/Makefile.in b/libatomic/Makefile.in
+index 97df2d7ff0..82c511d420 100644
+--- a/libatomic/Makefile.in
++++ b/libatomic/Makefile.in
+@@ -432,7 +432,6 @@ libatomic_la_LIBADD = $(foreach s,$(SIZES),$(addsuffix \
+ 	_$(s)_.lo,$(SIZEOBJS))) $(am__append_1) $(am__append_2) \
+ 	$(am__append_3) $(am__append_4)
+ @ARCH_ARM_LINUX_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=armv7-a+fp -DHAVE_KERNEL64
+-@ARCH_I386_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -march=i586
+ @ARCH_X86_64_TRUE@@HAVE_IFUNC_TRUE@IFUNC_OPTIONS = -mcx16
+ libatomic_convenience_la_SOURCES = $(libatomic_la_SOURCES)
+ libatomic_convenience_la_LIBADD = $(libatomic_la_LIBADD)
+diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
+index 5dd0926d20..3cc41773c3 100644
+--- a/libatomic/configure.tgt
++++ b/libatomic/configure.tgt
+@@ -82,15 +82,6 @@ case "${target_cpu}" in
+ 	;;
+ 
+   i[3456]86)
+-	case " ${CC} ${CFLAGS} " in
+-	  *" -m64 "*|*" -mx32 "*)
+-	    ;;
+-	  *)
+-	    if test -z "$with_arch"; then
+-	      XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
+-	      XCFLAGS="${XCFLAGS} -fomit-frame-pointer"
+-	    fi
+-	esac
+ 	ARCH=x86
+ 	# ??? Detect when -march=i686 is already enabled.
+ 	try_ifunc=yes
+diff --git a/libgomp/configure.tgt b/libgomp/configure.tgt
+index 4790a31e39..46c4c958e6 100644
+--- a/libgomp/configure.tgt
++++ b/libgomp/configure.tgt
+@@ -72,14 +72,6 @@ if test x$enable_linux_futex = xyes; then
+     # Note that bare i386 is not included here.  We need cmpxchg.
+     i[456]86-*-linux*)
+ 	config_path="linux/x86 linux posix"
+-	case " ${CC} ${CFLAGS} " in
+-	  *" -m64 "*|*" -mx32 "*)
+-	    ;;
+-	  *)
+-	    if test -z "$with_arch"; then
+-	      XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
+-	    fi
+-	esac
+ 	;;
+ 
+     # Similar jiggery-pokery for x86_64 multilibs, except here we
+diff --git a/libitm/configure.tgt b/libitm/configure.tgt
+index 04109160e9..3d78ea609d 100644
+--- a/libitm/configure.tgt
++++ b/libitm/configure.tgt
+@@ -59,15 +59,6 @@ case "${target_cpu}" in
+   arm*)		ARCH=arm ;;
+ 
+   i[3456]86)
+-	case " ${CC} ${CFLAGS} " in
+-	  *" -m64 "*|*" -mx32 "*)
+-	    ;;
+-	  *)
+-	    if test -z "$with_arch"; then
+-	      XCFLAGS="${XCFLAGS} -march=i486 -mtune=${target_cpu}"
+-	      XCFLAGS="${XCFLAGS} -fomit-frame-pointer"
+-	    fi
+-	esac
+ 	XCFLAGS="${XCFLAGS} -mrtm"
+ 	ARCH=x86
+ 	;;
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 980ed63..32c1499 100644
--- a/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
+++ b/poky/meta/recipes-devtools/gnu-config/gnu-config_git.bb
@@ -8,8 +8,8 @@
 
 INHIBIT_DEFAULT_DEPS = "1"
 
-SRCREV = "664b772118739dac69ef8c39abea7e02973ff316"
-PV = "20201018+git${SRCPV}"
+SRCREV = "c8ddc8472f8efcadafc1ef53ca1d863415fddd5f"
+PV = "20201227+git${SRCPV}"
 
 SRC_URI = "git://git.savannah.gnu.org/config.git \
            file://gnu-configize.in"
diff --git a/poky/meta/recipes-devtools/go/go-1.15.inc b/poky/meta/recipes-devtools/go/go-1.15.inc
index ccfb0c5..abe74e5 100644
--- a/poky/meta/recipes-devtools/go/go-1.15.inc
+++ b/poky/meta/recipes-devtools/go/go-1.15.inc
@@ -1,7 +1,7 @@
 require go-common.inc
 
 GO_BASEVERSION = "1.15"
-PV = "1.15.5"
+PV = "1.15.6"
 FILESEXTRAPATHS_prepend := "${FILE_DIRNAME}/go-${GO_BASEVERSION}:"
 
 LIC_FILES_CHKSUM = "file://LICENSE;md5=5d4950ecb7b26d2c5e4e7b4e0dd74707"
@@ -15,6 +15,5 @@
     file://0006-cmd-dist-separate-host-and-target-builds.patch \
     file://0007-cmd-go-make-GOROOT-precious-by-default.patch \
     file://0008-use-GOBUILDMODE-to-set-buildmode.patch \
-    file://0009-cmd-go-permit-CGO_LDFLAGS-to-appear-in-go-ldflag.patch \
 "
-SRC_URI[main.sha256sum] = "c1076b90cf94b73ebed62a81d802cd84d43d02dea8c07abdc922c57a071c84f1"
+SRC_URI[main.sha256sum] = "890bba73c5e2b19ffb1180e385ea225059eb008eb91b694875dd86ea48675817"
diff --git a/poky/meta/recipes-devtools/go/go-1.15/0009-cmd-go-permit-CGO_LDFLAGS-to-appear-in-go-ldflag.patch b/poky/meta/recipes-devtools/go/go-1.15/0009-cmd-go-permit-CGO_LDFLAGS-to-appear-in-go-ldflag.patch
deleted file mode 100644
index b57041f..0000000
--- a/poky/meta/recipes-devtools/go/go-1.15/0009-cmd-go-permit-CGO_LDFLAGS-to-appear-in-go-ldflag.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 4759221d46b1666de96b8047cec3160bfe4d3d5d Mon Sep 17 00:00:00 2001
-From: Ian Lance Taylor <iant@golang.org>
-Date: Fri, 13 Nov 2020 11:05:37 -0800
-Subject: [PATCH] cmd/go: permit CGO_LDFLAGS to appear in //go:ldflag
-
-Fixes #42565
-
-Upstream-Status: Backport [https://github.com/golang/go/commit/782cf560db4c919790fdb476d1bbe18e5ddf5ffd]
-Change-Id: If7cf39905d124dbd54dfac6a53ee38270498efed
-Reviewed-on: https://go-review.googlesource.com/c/go/+/269818
-Trust: Ian Lance Taylor <iant@golang.org>
-Run-TryBot: Ian Lance Taylor <iant@golang.org>
-TryBot-Result: Go Bot <gobot@golang.org>
-Reviewed-by: Jay Conrod <jayconrod@google.com>
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- src/cmd/go/internal/work/exec.go      | 15 +++++++++
- src/cmd/go/testdata/script/ldflag.txt | 44 +++++++++++++++++++++++++++
- 2 files changed, 59 insertions(+)
- create mode 100644 src/cmd/go/testdata/script/ldflag.txt
-
-diff --git a/src/cmd/go/internal/work/exec.go b/src/cmd/go/internal/work/exec.go
-index 575a2df..9209e3d 100644
---- a/src/cmd/go/internal/work/exec.go
-+++ b/src/cmd/go/internal/work/exec.go
-@@ -2821,6 +2821,21 @@ func (b *Builder) cgo(a *Action, cgoExe, objdir string, pcCFLAGS, pcLDFLAGS, cgo
- 				idx = bytes.Index(src, []byte(cgoLdflag))
- 			}
- 		}
-+
-+		// We expect to find the contents of cgoLDFLAGS in flags.
-+		if len(cgoLDFLAGS) > 0 {
-+		outer:
-+			for i := range flags {
-+				for j, f := range cgoLDFLAGS {
-+					if f != flags[i+j] {
-+						continue outer
-+					}
-+				}
-+				flags = append(flags[:i], flags[i+len(cgoLDFLAGS):]...)
-+				break
-+			}
-+		}
-+
- 		if err := checkLinkerFlags("LDFLAGS", "go:cgo_ldflag", flags); err != nil {
- 			return nil, nil, err
- 		}
-diff --git a/src/cmd/go/testdata/script/ldflag.txt b/src/cmd/go/testdata/script/ldflag.txt
-new file mode 100644
-index 0000000..6ceb33b
---- /dev/null
-+++ b/src/cmd/go/testdata/script/ldflag.txt
-@@ -0,0 +1,44 @@
-+# Issue #42565
-+
-+[!cgo] skip
-+
-+# We can't build package bad, which uses #cgo LDFLAGS.
-+cd bad
-+! go build
-+stderr no-such-warning
-+
-+# We can build package ok with the same flags in CGO_LDFLAGS.
-+env CGO_LDFLAGS=-Wno-such-warning -Wno-unknown-warning-option
-+cd ../ok
-+go build
-+
-+# Build a main program that actually uses LDFLAGS.
-+cd ..
-+go build -ldflags=-v
-+
-+# Because we passed -v the Go linker should print the external linker
-+# command which should include the flag we passed in CGO_LDFLAGS.
-+stderr no-such-warning
-+
-+-- go.mod --
-+module ldflag
-+
-+-- bad/bad.go --
-+package bad
-+
-+// #cgo LDFLAGS: -Wno-such-warning -Wno-unknown-warning
-+import "C"
-+
-+func F() {}
-+-- ok/ok.go --
-+package ok
-+
-+import "C"
-+
-+func F() {}
-+-- main.go --
-+package main
-+
-+import _ "ldflag/ok"
-+
-+func main() {}
--- 
-2.29.2
-
diff --git a/poky/meta/recipes-devtools/go/go-binary-native_1.15.5.bb b/poky/meta/recipes-devtools/go/go-binary-native_1.15.6.bb
similarity index 83%
rename from poky/meta/recipes-devtools/go/go-binary-native_1.15.5.bb
rename to poky/meta/recipes-devtools/go/go-binary-native_1.15.6.bb
index 1fb11b0..622557a 100644
--- a/poky/meta/recipes-devtools/go/go-binary-native_1.15.5.bb
+++ b/poky/meta/recipes-devtools/go/go-binary-native_1.15.6.bb
@@ -8,8 +8,8 @@
 PROVIDES = "go-native"
 
 SRC_URI = "https://dl.google.com/go/go${PV}.${BUILD_GOOS}-${BUILD_GOARCH}.tar.gz;name=go_${BUILD_GOTUPLE}"
-SRC_URI[go_linux_amd64.sha256sum] = "9a58494e8da722c3aef248c9227b0e9c528c7318309827780f16220998180a0d"
-SRC_URI[go_linux_arm64.sha256sum] = "a72a0b036beb4193a0214bca3fca4c5d68a38a4ccf098c909f7ce8bf08567c48"
+SRC_URI[go_linux_amd64.sha256sum] = "3918e6cc85e7eaaa6f859f1bdbaac772e7a825b0eb423c63d3ae68b21f84b844"
+SRC_URI[go_linux_arm64.sha256sum] = "f87515b9744154ffe31182da9341d0a61eb0795551173d242c8cad209239e492"
 
 UPSTREAM_CHECK_URI = "https://golang.org/dl/"
 UPSTREAM_CHECK_REGEX = "go(?P<pver>\d+(\.\d+)+)\.linux"
diff --git a/poky/meta/recipes-devtools/libdnf/libdnf_0.55.0.bb b/poky/meta/recipes-devtools/libdnf/libdnf_0.55.2.bb
similarity index 96%
rename from poky/meta/recipes-devtools/libdnf/libdnf_0.55.0.bb
rename to poky/meta/recipes-devtools/libdnf/libdnf_0.55.2.bb
index 07b3df4..e22255f 100644
--- a/poky/meta/recipes-devtools/libdnf/libdnf_0.55.0.bb
+++ b/poky/meta/recipes-devtools/libdnf/libdnf_0.55.2.bb
@@ -11,7 +11,7 @@
            file://enable_test_data_dir_set.patch \
            "
 
-SRCREV = "3f8981c9c5066e5243b695c904031b90f8d57d4a"
+SRCREV = "d2d0ec98fd2e0a2623123fb1ddf8fdd8936c6046"
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>\d+(\.\d+)+)"
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb b/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
index 10204ac..b9a64f0 100644
--- a/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
+++ b/poky/meta/recipes-devtools/libmodulemd/libmodulemd_git.bb
@@ -6,8 +6,8 @@
            file://0001-modulemd-generate-the-manpage-only-if-the-feature-is.patch \
            "
 
-PV = "2.9.4"
-SRCREV = "c7254db07b21495fc9bd247c5b17ee20149c05e3"
+PV = "2.11.1"
+SRCREV = "0ead09d0a35b9095e1a01afd540abd7217b31fba"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch b/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch
index 4705890..f187487 100644
--- a/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch
+++ b/poky/meta/recipes-devtools/mtools/mtools/disable-hardcoded-configs.patch
@@ -1,4 +1,4 @@
-From c61a3df892ba88d9f3f84c1844481457a04b051f Mon Sep 17 00:00:00 2001
+From 9590860ba35cbd524cec51bdd009f0c63a7dd417 Mon Sep 17 00:00:00 2001
 From: Ed Bartosh <ed.bartosh@linux.intel.com>
 Date: Tue, 13 Jun 2017 14:55:52 +0300
 Subject: [PATCH] Disabled reading host configs.
@@ -12,10 +12,10 @@
  1 file changed, 8 deletions(-)
 
 diff --git a/config.c b/config.c
-index 46af755..5ed9114 100644
+index 415755f..b61a49d 100644
 --- a/config.c
 +++ b/config.c
-@@ -737,14 +737,6 @@ void read_config(void)
+@@ -774,14 +774,6 @@ void read_config(void)
  	memcpy(devices, const_devices,
  	       nr_const_devices*sizeof(struct device));
  
diff --git a/poky/meta/recipes-devtools/mtools/mtools/mtools-makeinfo.patch b/poky/meta/recipes-devtools/mtools/mtools/mtools-makeinfo.patch
index 8ceb0af..6ae91d6 100644
--- a/poky/meta/recipes-devtools/mtools/mtools/mtools-makeinfo.patch
+++ b/poky/meta/recipes-devtools/mtools/mtools/mtools-makeinfo.patch
@@ -1,9 +1,48 @@
+From 3cf56b36db78679273f61ba78fbbf7f3fab52f68 Mon Sep 17 00:00:00 2001
+From: Marcin Juszkiewicz <hrw@openedhand.com>
+Date: Fri, 8 Jun 2007 08:35:12 +0000
+Subject: [PATCH] mtools: imported from OE
+
 Upstream-Status: Inappropriate [licensing]
 
-Index: mtools-4.0.18/configure.in
-===================================================================
---- mtools-4.0.18.orig/configure.in
-+++ mtools-4.0.18/configure.in
+---
+ Makefile.in  | 11 ++++++-----
+ configure.in | 27 +++++++++++++++++++++++++++
+ 2 files changed, 33 insertions(+), 5 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 616d59f..85b5b1d 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -26,10 +26,11 @@ USERCFLAGS =
+ USERLDFLAGS =
+ USERLDLIBS =
+ 
+-MAKEINFO = makeinfo
+-TEXI2DVI = texi2dvi
+-TEXI2PDF = texi2pdf
+-TEXI2HTML = texi2html
++MAKEINFO = @MAKEINFO@
++TEXI2DVI = @TEXI2DVI@
++TEXI2PDF = @TEXI2PDF@
++TEXI2HTML = @TEXI2HTML@
++DVI2PS = @DVI2PS@
+ 
+ 
+ # do not edit below this line
+@@ -199,7 +200,7 @@ dvi: mtools.dvi
+ 
+ ps: mtools.ps
+ %.ps: %.dvi
+-	dvips -f < $< > $@
++	$(DVI2PS) -f < $< > $@
+ 
+ pdf: mtools.pdf
+ %.pdf: %.texi sysconfdir.texi
+diff --git a/configure.in b/configure.in
+index 5ff75c1..c0f7440 100644
+--- a/configure.in
++++ b/configure.in
 @@ -35,6 +35,33 @@ AC_CANONICAL_SYSTEM
  AC_C_CONST
  AC_C_INLINE
@@ -35,35 +74,6 @@
 +AC_SUBST(TEXI2HTML)
 +AC_SUBST(DVI2PS)
 +
- 
  dnl Check for configuration options
  dnl Enable OS/2 extended density format disks
-Index: mtools-4.0.18/Makefile.in
-===================================================================
---- mtools-4.0.18.orig/Makefile.in
-+++ mtools-4.0.18/Makefile.in
-@@ -26,10 +26,11 @@ USERCFLAGS =
- USERLDFLAGS =
- USERLDLIBS =
- 
--MAKEINFO = makeinfo
--TEXI2DVI = texi2dvi
--TEXI2PDF = texi2pdf
--TEXI2HTML = texi2html
-+MAKEINFO = @MAKEINFO@
-+TEXI2DVI = @TEXI2DVI@
-+TEXI2PDF = @TEXI2PDF@
-+TEXI2HTML = @TEXI2HTML@
-+DVI2PS = @DVI2PS@
- 
- 
- # do not edit below this line
-@@ -198,7 +199,7 @@ dvi: mtools.dvi
- 
- ps: mtools.ps
- %.ps: %.dvi
--	dvips -f < $< > $@
-+	$(DVI2PS) -f < $< > $@
- 
- pdf: mtools.pdf
- %.pdf: %.texi sysconfdir.texi
+ AC_ARG_ENABLE(xdf,
diff --git a/poky/meta/recipes-devtools/mtools/mtools_4.0.25.bb b/poky/meta/recipes-devtools/mtools/mtools_4.0.26.bb
similarity index 93%
rename from poky/meta/recipes-devtools/mtools/mtools_4.0.25.bb
rename to poky/meta/recipes-devtools/mtools/mtools_4.0.26.bb
index bca33a2..4938713 100644
--- a/poky/meta/recipes-devtools/mtools/mtools_4.0.25.bb
+++ b/poky/meta/recipes-devtools/mtools/mtools_4.0.26.bb
@@ -24,7 +24,7 @@
 	glibc-gconv-ibm866 \
 	glibc-gconv-ibm869 \
 	"
-SRC_URI[sha256sum] = "fd161eec3bb7a93d13936db67725ad3e17f2d5f4e6fa8f7667fbc7ac728e2c15"
+SRC_URI[sha256sum] = "539f1c8b476a16e198d8bcb10a5799e22e69de49d854f7dbd85b64c2a45dea1a"
 
 SRC_URI = "${GNU_MIRROR}/mtools/mtools-${PV}.tar.bz2 \
            file://mtools-makeinfo.patch \
diff --git a/poky/meta/recipes-devtools/ninja/ninja_1.10.1.bb b/poky/meta/recipes-devtools/ninja/ninja_1.10.2.bb
similarity index 91%
rename from poky/meta/recipes-devtools/ninja/ninja_1.10.1.bb
rename to poky/meta/recipes-devtools/ninja/ninja_1.10.2.bb
index ecb0566..88ff843 100644
--- a/poky/meta/recipes-devtools/ninja/ninja_1.10.1.bb
+++ b/poky/meta/recipes-devtools/ninja/ninja_1.10.2.bb
@@ -5,7 +5,7 @@
 
 DEPENDS = "re2c-native ninja-native"
 
-SRCREV = "a1f879b29c9aafe6a2bc0ba885701f8f4f19f772"
+SRCREV = "e72d1d581c945c158ed68d9bc48911063022a2c6"
 
 SRC_URI = "git://github.com/ninja-build/ninja.git;branch=release"
 UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>.*)"
diff --git a/poky/meta/recipes-devtools/opkg/opkg/0001-tests-let-the-OS-negotiate-relative-package-dirs.patch b/poky/meta/recipes-devtools/opkg/opkg/0001-tests-let-the-OS-negotiate-relative-package-dirs.patch
new file mode 100644
index 0000000..33b7280
--- /dev/null
+++ b/poky/meta/recipes-devtools/opkg/opkg/0001-tests-let-the-OS-negotiate-relative-package-dirs.patch
@@ -0,0 +1,43 @@
+From 4acda6d01c5abd33f1a1a3275fd695363f59473f Mon Sep 17 00:00:00 2001
+From: Alex Stewart <alex.stewart@ni.com>
+Date: Tue, 15 Dec 2020 15:17:54 -0600
+Subject: [opkg][opkg-0.4.4 PATCH] tests: let the OS negotiate relative package
+ dirs
+
+In cases where a regression test requires that a package be installed to
+a subdirectory in the test feed, the opk.py module will attempt to
+resolve the subdirectory and rebase it to the root of the test feed.
+
+This is unnecessary, since all operations which make use of the
+subdirectory path do so from the perspective of the test feed already.
+Further, the rebase implementation breaks in cases where the test feed
+is beyond a symlink.
+
+Remove the resolve-and-rebase logic, and allow the OS to negotiate the
+relative path.
+
+Upstream-Status: Submitted [https://groups.google.com/g/opkg-devel/c/dE1o7_OVQSY]
+
+Signed-off-by: Alex Stewart <alex.stewart@ni.com>
+---
+ tests/opk.py | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/tests/opk.py b/tests/opk.py
+index 692339567f72441766c8e658edc5bdf6a339f77d..711abacaeb328283e31524f6a49305fc7d39696a 100644
+--- a/tests/opk.py
++++ b/tests/opk.py
+@@ -58,9 +58,7 @@ class Opk:
+         if 'Version' not in control.keys():
+             control['Version'] = '1.0'
+         if subdirectory is not None:
+-            subdir = Path(subdirectory).resolve()
+-            opkdir = Path(cfg.opkdir)
+-            self._relative_dir = subdir.relative_to(opkdir)
++            self._relative_dir = Path(subdirectory)
+         else:
+             self._relative_dir = None
+         self.control = control
+-- 
+2.29.2
+
diff --git a/poky/meta/recipes-devtools/opkg/opkg_0.4.3.bb b/poky/meta/recipes-devtools/opkg/opkg_0.4.4.bb
similarity index 92%
rename from poky/meta/recipes-devtools/opkg/opkg_0.4.3.bb
rename to poky/meta/recipes-devtools/opkg/opkg_0.4.4.bb
index 46b7aa2..f8034ca 100644
--- a/poky/meta/recipes-devtools/opkg/opkg_0.4.3.bb
+++ b/poky/meta/recipes-devtools/opkg/opkg_0.4.4.bb
@@ -14,11 +14,12 @@
 SRC_URI = "http://downloads.yoctoproject.org/releases/${BPN}/${BPN}-${PV}.tar.gz \
            file://opkg.conf \
            file://0001-opkg_conf-create-opkg.lock-in-run-instead-of-var-run.patch \
+           file://0001-tests-let-the-OS-negotiate-relative-package-dirs.patch \
            file://run-ptest \
 "
 
-SRC_URI[md5sum] = "86ec5eee9362aca0990994a402e077e9"
-SRC_URI[sha256sum] = "dda452854bc0cd1334f7ba18a66003d1c12a98600c894111b56919b1ea434718"
+SRC_URI[md5sum] = "345900c1d4747d58455867f9fe88ca43"
+SRC_URI[sha256sum] = "2217acc58b8eb31300631ebae75e222ebc700c9c1cf6408088705d19a472c839"
 
 # This needs to be before ptest inherit, otherwise all ptest files end packaged
 # in libopkg package if OPKGLIBDIR == libdir, because default
diff --git a/poky/meta/recipes-devtools/patch/patch/CVE-2019-20633.patch b/poky/meta/recipes-devtools/patch/patch/CVE-2019-20633.patch
new file mode 100644
index 0000000..03988a1
--- /dev/null
+++ b/poky/meta/recipes-devtools/patch/patch/CVE-2019-20633.patch
@@ -0,0 +1,31 @@
+From 15b158db3ae11cb835f2eb8d2eb48e09d1a4af48 Mon Sep 17 00:00:00 2001
+From: Andreas Gruenbacher <agruen@gnu.org>
+Date: Mon, 15 Jul 2019 19:10:02 +0200
+Subject: Avoid invalid memory access in context format diffs
+
+* src/pch.c (another_hunk): Avoid invalid memory access in context format
+diffs.
+
+CVE: CVE-2019-20633
+Upstream-Status: Backport[https://git.savannah.gnu.org/cgit/patch.git/patch/?id=15b158db3ae11cb835f2eb8d2eb48e09d1a4af48]
+Signed-off-by: Scott Murray <scott.murray@konsulko.com>
+
+---
+ src/pch.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/pch.c b/src/pch.c
+index a500ad9..cb54e03 100644
+--- a/src/pch.c
++++ b/src/pch.c
+@@ -1328,6 +1328,7 @@ another_hunk (enum diff difftype, bool rev)
+ 		  ptrn_prefix_context = context;
+ 		ptrn_suffix_context = context;
+ 		if (repl_beginning
++		    || p_end <= 0
+ 		    || (p_end
+ 			!= p_ptrn_lines + 1 + (p_Char[p_end - 1] == '\n')))
+ 		  {
+-- 
+cgit v1.2.1
+
diff --git a/poky/meta/recipes-devtools/patch/patch_2.7.6.bb b/poky/meta/recipes-devtools/patch/patch_2.7.6.bb
index b5897b3..1997af0 100644
--- a/poky/meta/recipes-devtools/patch/patch_2.7.6.bb
+++ b/poky/meta/recipes-devtools/patch/patch_2.7.6.bb
@@ -10,6 +10,7 @@
             file://0001-Invoke-ed-directly-instead-of-using-the-shell.patch \
             file://0001-Don-t-leak-temporary-file-on-failed-ed-style-patch.patch \
             file://0001-Don-t-leak-temporary-file-on-failed-multi-file-ed.patch \
+            file://CVE-2019-20633.patch \
 "
 
 SRC_URI[md5sum] = "4c68cee989d83c87b00a3860bcd05600"
diff --git a/poky/meta/recipes-devtools/perl/perl_5.32.0.bb b/poky/meta/recipes-devtools/perl/perl_5.32.0.bb
index bba8263..3815dd4 100644
--- a/poky/meta/recipes-devtools/perl/perl_5.32.0.bb
+++ b/poky/meta/recipes-devtools/perl/perl_5.32.0.bb
@@ -137,8 +137,9 @@
     install lib/ExtUtils/typemap ${D}${libdir}/perl5/${PV}/ExtUtils/
 
     # Fix up shared library
-    rm ${D}/${libdir}/perl5/${PV}/*/CORE/libperl.so
-    ln -sf ../../../../libperl.so.${PERL_LIB_VER} $(echo ${D}/${libdir}/perl5/${PV}/*/CORE)/libperl.so
+    dir=$(echo ${D}/${libdir}/perl5/${PV}/*/CORE)
+    rm $dir/libperl.so
+    ln -sf ../../../../libperl.so.${PERL_LIB_VER} $dir/libperl.so
 
     # Try to catch Bug #13946
     if [ -e ${D}/${libdir}/perl5/${PV}/Storable.pm ]; then
diff --git a/poky/meta/recipes-devtools/pseudo/files/0002-pseudo_client-Lessen-indentation-of-pseudo_client_ig.patch b/poky/meta/recipes-devtools/pseudo/files/0002-pseudo_client-Lessen-indentation-of-pseudo_client_ig.patch
deleted file mode 100644
index e4a5356..0000000
--- a/poky/meta/recipes-devtools/pseudo/files/0002-pseudo_client-Lessen-indentation-of-pseudo_client_ig.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 28c760542eecd7c5b35ea88aa2b14d62afbda961 Mon Sep 17 00:00:00 2001
-From: Peter Kjellerstedt <pkj@axis.com>
-Date: Sat, 21 Nov 2020 17:22:38 +0100
-Subject: [PATCH] pseudo_client: Lessen indentation of
- pseudo_client_ignore_path_chroot()
-
-Change-Id: I739b18efb7a95ce2d2d907d0faf7df539ab9af1c
----
- pseudo_client.c | 45 +++++++++++++++++++++++++--------------------
- 1 file changed, 25 insertions(+), 20 deletions(-)
-
-diff --git a/pseudo_client.c b/pseudo_client.c
-index 116d926..a8bc3dc 100644
---- a/pseudo_client.c
-+++ b/pseudo_client.c
-@@ -1527,28 +1527,33 @@ int pseudo_client_ignore_fd(int fd) {
- 
- int pseudo_client_ignore_path_chroot(const char *path, int ignore_chroot) {
- 	char *env;
--	if (path) {
--		if (ignore_chroot && pseudo_chroot && strncmp(path, pseudo_chroot, pseudo_chroot_len) == 0)
--			return 0;
--		env = pseudo_get_value("PSEUDO_IGNORE_PATHS");
--		if (env) {
--			char *p = env;
--        	        while (*p) {
--				char *next = strchr(p, ',');
--				if (!next)
--				    next = strchr(p, '\0');
--				if ((next - p) && !strncmp(path, p, next - p)) {
--		 			pseudo_debug(PDBGF_PATH | PDBGF_VERBOSE, "ignoring path: '%s'\n", path);
--					return 1;
--				}
--				if (next && *next != '\0')
--					p = next+1;
--				else
--					break;
--			}
--			free(env);
-+
-+	if (!path)
-+		return 0;
-+
-+	if (ignore_chroot && pseudo_chroot && strncmp(path, pseudo_chroot, pseudo_chroot_len) == 0)
-+		return 0;
-+
-+	env = pseudo_get_value("PSEUDO_IGNORE_PATHS");
-+	if (!env)
-+		return 0;
-+
-+	char *p = env;
-+	while (*p) {
-+		char *next = strchr(p, ',');
-+		if (!next)
-+			next = strchr(p, '\0');
-+		if ((next - p) && !strncmp(path, p, next - p)) {
-+ 			pseudo_debug(PDBGF_PATH | PDBGF_VERBOSE, "ignoring path: '%s'\n", path);
-+			return 1;
- 		}
-+		if (next && *next != '\0')
-+			p = next+1;
-+		else
-+			break;
- 	}
-+	free(env);
-+
- 	return 0;
- }
- 
diff --git a/poky/meta/recipes-devtools/pseudo/files/0003-pseudo_client-Simplify-pseudo_client_ignore_path_chr.patch b/poky/meta/recipes-devtools/pseudo/files/0003-pseudo_client-Simplify-pseudo_client_ignore_path_chr.patch
deleted file mode 100644
index a657a27..0000000
--- a/poky/meta/recipes-devtools/pseudo/files/0003-pseudo_client-Simplify-pseudo_client_ignore_path_chr.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From a1d61d68777373a50ae23b9dd83b428abe2f748d Mon Sep 17 00:00:00 2001
-From: Peter Kjellerstedt <pkj@axis.com>
-Date: Sat, 21 Nov 2020 17:30:33 +0100
-Subject: [PATCH] pseudo_client: Simplify pseudo_client_ignore_path_chroot()
-
-This also plugs a memory leak by making sure env is freed.
-
-Change-Id: Ia8635fd2c6b1e85919e4743713a85e0b52c28fac
----
- pseudo_client.c | 21 ++++++++++-----------
- 1 file changed, 10 insertions(+), 11 deletions(-)
-
-diff --git a/pseudo_client.c b/pseudo_client.c
-index a8bc3dc..7dc0345 100644
---- a/pseudo_client.c
-+++ b/pseudo_client.c
-@@ -1538,23 +1538,22 @@ int pseudo_client_ignore_path_chroot(const char *path, int ignore_chroot) {
- 	if (!env)
- 		return 0;
- 
-+	int ret = 0;
- 	char *p = env;
--	while (*p) {
-+	while (p) {
- 		char *next = strchr(p, ',');
--		if (!next)
--			next = strchr(p, '\0');
--		if ((next - p) && !strncmp(path, p, next - p)) {
-- 			pseudo_debug(PDBGF_PATH | PDBGF_VERBOSE, "ignoring path: '%s'\n", path);
--			return 1;
--		}
--		if (next && *next != '\0')
--			p = next+1;
--		else
-+		if (next)
-+			*next++ = '\0';
-+		if (*p && !strncmp(path, p, strlen(p))) {
-+			pseudo_debug(PDBGF_PATH | PDBGF_VERBOSE, "ignoring path: '%s'\n", path);
-+			ret = 1;
- 			break;
-+		}
-+		p = next;
- 	}
- 	free(env);
- 
--	return 0;
-+	return ret;
- }
- 
- int pseudo_client_ignore_path(const char *path) {
diff --git a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
index a9f7aa9..7fa11a5 100644
--- a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -4,11 +4,9 @@
            file://0001-configure-Prune-PIE-flags.patch \
            file://fallback-passwd \
            file://fallback-group \
-           file://0002-pseudo_client-Lessen-indentation-of-pseudo_client_ig.patch \
-           file://0003-pseudo_client-Simplify-pseudo_client_ignore_path_chr.patch \
            "
 
-SRCREV = "69f205c41902e17933b81b1450636848e8da2126"
+SRCREV = "1ee9a1e05e200f189f6644411ba9304e8a479b0b"
 S = "${WORKDIR}/git"
 PV = "1.9.0+git${SRCPV}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-hypothesis_5.41.4.bb b/poky/meta/recipes-devtools/python/python3-hypothesis_5.43.3.bb
similarity index 67%
rename from poky/meta/recipes-devtools/python/python3-hypothesis_5.41.4.bb
rename to poky/meta/recipes-devtools/python/python3-hypothesis_5.43.3.bb
index 416acc8..4d93cba 100644
--- a/poky/meta/recipes-devtools/python/python3-hypothesis_5.41.4.bb
+++ b/poky/meta/recipes-devtools/python/python3-hypothesis_5.43.3.bb
@@ -7,8 +7,8 @@
 
 inherit pypi setuptools3
 
-SRC_URI[sha256sum] = "7ef22dd2ae4a906ef1e237dcd6806aa7f97e30c37f924a0e6d595f4639350b53"
+SRC_URI[sha256sum] = "d97ba7ae2cfe7096b0c045fdb611ee9850ccdd6050a9b36cb96812242062c2cc"
 
-RDEPENDS_${PN} += "python3-core"
+RDEPENDS_${PN} += "python3-attrs python3-core python3-sortedcontainers"
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-importlib-metadata_3.1.0.bb b/poky/meta/recipes-devtools/python/python3-importlib-metadata_3.3.0.bb
similarity index 68%
rename from poky/meta/recipes-devtools/python/python3-importlib-metadata_3.1.0.bb
rename to poky/meta/recipes-devtools/python/python3-importlib-metadata_3.3.0.bb
index d89621b..23f2e2d 100644
--- a/poky/meta/recipes-devtools/python/python3-importlib-metadata_3.1.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-importlib-metadata_3.3.0.bb
@@ -5,8 +5,10 @@
 
 inherit pypi setuptools3
 
-SRC_URI = "https://files.pythonhosted.org/packages/7d/d4/dbc58eed92be61bae65a7d80a7604d35bf6ded3e3c53c14f2d45b4a28831/importlib_metadata-3.1.0.tar.gz"
-SRC_URI[sha256sum] = "d9b8a46a0885337627a6430db287176970fff18ad421becec1d64cfc763c2099"
+PYPI_PACKAGE = "importlib_metadata"
+UPSTREAM_CHECK_REGEX = "/importlib-metadata/(?P<pver>(\d+[\.\-_]*)+)/"
+
+SRC_URI[sha256sum] = "5c5a2720817414a6c41f0a49993908068243ae02c1635a228126519b509c8aed"
 
 S = "${WORKDIR}/importlib_metadata-${PV}"
 
diff --git a/poky/meta/recipes-devtools/python/python3-packaging_20.4.bb b/poky/meta/recipes-devtools/python/python3-packaging_20.8.bb
similarity index 71%
rename from poky/meta/recipes-devtools/python/python3-packaging_20.4.bb
rename to poky/meta/recipes-devtools/python/python3-packaging_20.8.bb
index c75707e..658c3d1 100644
--- a/poky/meta/recipes-devtools/python/python3-packaging_20.4.bb
+++ b/poky/meta/recipes-devtools/python/python3-packaging_20.8.bb
@@ -3,8 +3,7 @@
 LICENSE = "Apache-2.0 & BSD"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=faadaedca9251a90b205c9167578ce91"
 
-SRC_URI[md5sum] = "3208229da731c5d8e29d4d8941e75005"
-SRC_URI[sha256sum] = "4357f74f47b9c12db93624a82154e9b120fa8293699949152b22065d556079f8"
+SRC_URI[sha256sum] = "78598185a7008a470d64526a8059de9aaa449238f280fc9eb6b13ba6c4109093"
 
 inherit pypi setuptools3
 
diff --git a/poky/meta/recipes-devtools/python/python3-py_1.9.0.bb b/poky/meta/recipes-devtools/python/python3-py_1.10.0.bb
similarity index 72%
rename from poky/meta/recipes-devtools/python/python3-py_1.9.0.bb
rename to poky/meta/recipes-devtools/python/python3-py_1.10.0.bb
index 794ec2a..4e16ad1 100644
--- a/poky/meta/recipes-devtools/python/python3-py_1.9.0.bb
+++ b/poky/meta/recipes-devtools/python/python3-py_1.10.0.bb
@@ -3,8 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=a6bb0320b04a0a503f12f69fea479de9"
 
-SRC_URI[md5sum] = "b80db4e61eef724f49feb4d20b649e62"
-SRC_URI[sha256sum] = "9ca6883ce56b4e8da7e79ac18787889fa5206c79dcc67fb065376cd2fe03f342"
+SRC_URI[sha256sum] = "21b81bda15b66ef5e1a777a21c4dcd9c20ad3efd0b3f817e7a809035269e1bd3"
 
 DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
 
diff --git a/poky/meta/recipes-devtools/python/python3-pygments_2.7.2.bb b/poky/meta/recipes-devtools/python/python3-pygments_2.7.3.bb
similarity index 82%
rename from poky/meta/recipes-devtools/python/python3-pygments_2.7.2.bb
rename to poky/meta/recipes-devtools/python/python3-pygments_2.7.3.bb
index 00e5dc6..379d85d 100644
--- a/poky/meta/recipes-devtools/python/python3-pygments_2.7.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-pygments_2.7.3.bb
@@ -5,7 +5,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=1f5d0c4cf38dfc8122c00d6f1a97a0cc"
 
 inherit setuptools3
-SRC_URI[sha256sum] = "381985fcc551eb9d37c52088a32914e00517e57f4a21609f48141ba08e193fa0"
+SRC_URI[sha256sum] = "ccf3acacf3782cbed4a989426012f1c535c9a90d3a7fc3f16d231b9372d2b716"
 
 DEPENDS += "\
             ${PYTHON_PN} \
diff --git a/poky/meta/recipes-devtools/python/python3-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch b/poky/meta/recipes-devtools/python/python3-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch
index 8c5c172..1abd531 100644
--- a/poky/meta/recipes-devtools/python/python3-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch
+++ b/poky/meta/recipes-devtools/python/python3-pytest/0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch
@@ -1,8 +1,7 @@
-From ff784f4803ab33f5e3389e40d038d52d1e211843 Mon Sep 17 00:00:00 2001
+From ead04f2da75efeca3369feff6161ea4a8baecbc9 Mon Sep 17 00:00:00 2001
 From: Yuan Chao <yuanc.fnst@cn.fujitsu.com>
 Date: Wed, 28 Aug 2019 16:12:27 +0900
-Subject: [PATCH] [PATCH] setup.py: remove the setup_requires for
- setuptools-scm
+Subject: [PATCH] setup.py: remove the setup_requires for setuptools-scm
 
 The setup_requires argument forces the download of the egg file for setuptools-scm
 during the do_compile phase.  This download is incompatible with the typical fetch
@@ -18,22 +17,20 @@
 Rebase for pytest 6.1.0.
 
 Signed-off-by: Kai Kang <kai.kang@windriver.com>
+
 ---
  setup.cfg | 1 -
  1 file changed, 1 deletion(-)
 
 diff --git a/setup.cfg b/setup.cfg
-index 60f6564..c4d1471 100644
+index 6ed0792..0137090 100644
 --- a/setup.cfg
 +++ b/setup.cfg
-@@ -55,7 +55,6 @@ package_dir =
+@@ -53,7 +53,6 @@ package_dir =
  	=src
  setup_requires = 
- 	setuptools>=40.0
--	setuptools-scm
+ 	setuptools>=>=42.0
+-	setuptools-scm>=3.4
  zip_safe = no
  
  [options.entry_points]
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-devtools/python/python3-pytest_6.1.2.bb b/poky/meta/recipes-devtools/python/python3-pytest_6.2.1.bb
similarity index 91%
rename from poky/meta/recipes-devtools/python/python3-pytest_6.1.2.bb
rename to poky/meta/recipes-devtools/python/python3-pytest_6.2.1.bb
index 6fc3b6f..6843b4d 100644
--- a/poky/meta/recipes-devtools/python/python3-pytest_6.1.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-pytest_6.2.1.bb
@@ -5,7 +5,7 @@
 
 SRC_URI_append = " file://0001-setup.py-remove-the-setup_requires-for-setuptools-scm.patch "
 
-SRC_URI[sha256sum] = "c0a7e94a8cdbc5422a51ccdad8e6f1024795939cc89159a0ae7f0b316ad3823e"
+SRC_URI[sha256sum] = "66e419b1899bc27346cb2c993e12c5e5e8daba9073c1fbce33b9807abc95c306"
 
 inherit update-alternatives pypi setuptools3
 
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools-scm_4.1.2.bb b/poky/meta/recipes-devtools/python/python3-setuptools-scm_5.0.1.bb
similarity index 78%
rename from poky/meta/recipes-devtools/python/python3-setuptools-scm_4.1.2.bb
rename to poky/meta/recipes-devtools/python/python3-setuptools-scm_5.0.1.bb
index 48bad2b..406404e 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools-scm_4.1.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools-scm_5.0.1.bb
@@ -2,8 +2,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://PKG-INFO;beginline=8;endline=8;md5=8227180126797a0148f94f483f3e1489"
 
-SRC_URI[md5sum] = "e6c9fad17c90516d640868eb833d5150"
-SRC_URI[sha256sum] = "a8994582e716ec690f33fec70cca0f85bd23ec974e3f783233e4879090a7faa8"
+SRC_URI[sha256sum] = "c85b6b46d0edd40d2301038cdea96bb6adc14d62ef943e75afb08b3e7bcf142a"
 
 PYPI_PACKAGE = "setuptools_scm"
 inherit pypi setuptools3
@@ -15,9 +14,11 @@
     ${PYTHON_PN}-json \
     ${PYTHON_PN}-py \
     ${PYTHON_PN}-setuptools \
+    ${PYTHON_PN}-toml \
 "
 RDEPENDS_${PN}_class-native = "\
     ${PYTHON_PN}-setuptools-native \
+    ${PYTHON_PN}-toml-native \
 "
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-devtools/python/python3-setuptools_50.3.2.bb b/poky/meta/recipes-devtools/python/python3-setuptools_51.0.0.bb
similarity index 95%
rename from poky/meta/recipes-devtools/python/python3-setuptools_50.3.2.bb
rename to poky/meta/recipes-devtools/python/python3-setuptools_51.0.0.bb
index 4480d56..6ee935f 100644
--- a/poky/meta/recipes-devtools/python/python3-setuptools_50.3.2.bb
+++ b/poky/meta/recipes-devtools/python/python3-setuptools_51.0.0.bb
@@ -12,7 +12,7 @@
 
 SRC_URI += "file://0001-change-shebang-to-python3.patch"
 
-SRC_URI[sha256sum] = "ed0519d27a243843b05d82a5e9d01b0b083d9934eaa3d02779a23da18077bd3c"
+SRC_URI[sha256sum] = "029c49fd713e9230f6a41c0298e6e1f5839f2cde7104c0ad5e053a37777e7688"
 
 DEPENDS += "${PYTHON_PN}"
 
diff --git a/poky/meta/recipes-devtools/python/python3/CVE-2020-27619.patch b/poky/meta/recipes-devtools/python/python3/CVE-2020-27619.patch
deleted file mode 100644
index b2053e7..0000000
--- a/poky/meta/recipes-devtools/python/python3/CVE-2020-27619.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From b664a1df4ee71d3760ab937653b10997081b1794 Mon Sep 17 00:00:00 2001
-From: "Miss Skeleton (bot)" <31488909+miss-islington@users.noreply.github.com>
-Date: Tue, 6 Oct 2020 05:37:36 -0700
-Subject: [PATCH] bpo-41944: No longer call eval() on content received via HTTP
- in the CJK codec tests (GH-22566)
-
-(cherry picked from commit 2ef5caa58febc8968e670e39e3d37cf8eef3cab8)
-
-Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
-
-Upstream-Status: Backport [https://github.com/python/cpython/commit/b664a1df4ee71d3760ab937653b10997081b1794]
-CVE: CVE-2020-27619
-Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
-
----
- Lib/test/multibytecodec_support.py            | 22 +++++++------------
- .../2020-10-05-17-43-46.bpo-41944.rf1dYb.rst  |  1 +
- 2 files changed, 9 insertions(+), 14 deletions(-)
- create mode 100644 Misc/NEWS.d/next/Tests/2020-10-05-17-43-46.bpo-41944.rf1dYb.rst
-
-diff --git a/Lib/test/multibytecodec_support.py b/Lib/test/multibytecodec_support.py
-index cca8af67d6d1d..f76c0153f5ecf 100644
---- a/Lib/test/multibytecodec_support.py
-+++ b/Lib/test/multibytecodec_support.py
-@@ -305,29 +305,23 @@ def test_mapping_file(self):
-             self._test_mapping_file_plain()
- 
-     def _test_mapping_file_plain(self):
--        unichrs = lambda s: ''.join(map(chr, map(eval, s.split('+'))))
-+        def unichrs(s):
-+            return ''.join(chr(int(x, 16)) for x in s.split('+'))
-+
-         urt_wa = {}
- 
-         with self.open_mapping_file() as f:
-             for line in f:
-                 if not line:
-                     break
--                data = line.split('#')[0].strip().split()
-+                data = line.split('#')[0].split()
-                 if len(data) != 2:
-                     continue
- 
--                csetval = eval(data[0])
--                if csetval <= 0x7F:
--                    csetch = bytes([csetval & 0xff])
--                elif csetval >= 0x1000000:
--                    csetch = bytes([(csetval >> 24), ((csetval >> 16) & 0xff),
--                                    ((csetval >> 8) & 0xff), (csetval & 0xff)])
--                elif csetval >= 0x10000:
--                    csetch = bytes([(csetval >> 16), ((csetval >> 8) & 0xff),
--                                    (csetval & 0xff)])
--                elif csetval >= 0x100:
--                    csetch = bytes([(csetval >> 8), (csetval & 0xff)])
--                else:
-+                if data[0][:2] != '0x':
-+                    self.fail(f"Invalid line: {line!r}")
-+                csetch = bytes.fromhex(data[0][2:])
-+                if len(csetch) == 1 and 0x80 <= csetch[0]:
-                     continue
- 
-                 unich = unichrs(data[1])
-diff --git a/Misc/NEWS.d/next/Tests/2020-10-05-17-43-46.bpo-41944.rf1dYb.rst b/Misc/NEWS.d/next/Tests/2020-10-05-17-43-46.bpo-41944.rf1dYb.rst
-new file mode 100644
-index 0000000000000..4f9782f1c85af
---- /dev/null
-+++ b/Misc/NEWS.d/next/Tests/2020-10-05-17-43-46.bpo-41944.rf1dYb.rst
-@@ -0,0 +1 @@
-+Tests for CJK codecs no longer call ``eval()`` on content received via HTTP.
diff --git a/poky/meta/recipes-devtools/python/python3_3.9.0.bb b/poky/meta/recipes-devtools/python/python3_3.9.1.bb
similarity index 98%
rename from poky/meta/recipes-devtools/python/python3_3.9.0.bb
rename to poky/meta/recipes-devtools/python/python3_3.9.1.bb
index 19a8950..17d0c03 100644
--- a/poky/meta/recipes-devtools/python/python3_3.9.0.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.9.1.bb
@@ -29,7 +29,6 @@
            file://0001-Makefile-do-not-compile-.pyc-in-parallel.patch \
            file://0020-configure.ac-setup.py-do-not-add-a-curses-include-pa.patch \
            file://0001-Lib-sysconfig.py-use-libdir-values-from-configuratio.patch \
-           file://CVE-2020-27619.patch \
            "
 
 SRC_URI_append_class-native = " \
@@ -37,8 +36,7 @@
            file://12-distutils-prefix-is-inside-staging-area.patch \
            file://0001-Don-t-search-system-for-headers-libraries.patch \
            "
-
-SRC_URI[sha256sum] = "9c73e63c99855709b9be0b3cc9e5b072cb60f37311e8c4e50f15576a0bf82854"
+SRC_URI[sha256sum] = "991c3f8ac97992f3d308fefeb03a64db462574eadbff34ce8bc5bb583d9903ff"
 
 # exclude pre-releases for both python 2.x and 3.x
 UPSTREAM_CHECK_REGEX = "[Pp]ython-(?P<pver>\d+(\.\d+)+).tar"
diff --git a/poky/meta/recipes-devtools/qemu/qemu.inc b/poky/meta/recipes-devtools/qemu/qemu.inc
index 274c855..4864d7e 100644
--- a/poky/meta/recipes-devtools/qemu/qemu.inc
+++ b/poky/meta/recipes-devtools/qemu/qemu.inc
@@ -35,6 +35,8 @@
            file://CVE-2020-24352.patch \
            file://CVE-2020-29129-CVE-2020-29130.patch \
            file://CVE-2020-25624.patch \
+           file://CVE-2020-25723.patch \
+           file://CVE-2020-28916.patch \
            "
 UPSTREAM_CHECK_REGEX = "qemu-(?P<pver>\d+(\.\d+)+)\.tar"
 
@@ -188,6 +190,7 @@
 PACKAGECONFIG[vhost] = "--enable-vhost-net,--disable-vhost-net,,"
 PACKAGECONFIG[ust] = "--enable-trace-backend=ust,--enable-trace-backend=nop,lttng-ust,"
 PACKAGECONFIG[pie] = "--enable-pie,--disable-pie,,"
+PACKAGECONFIG[seccomp] = "--enable-seccomp,--disable-seccomp,libseccomp"
 
 INSANE_SKIP_${PN} = "arch"
 
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-25723.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-25723.patch
new file mode 100644
index 0000000..90b3a2f
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-25723.patch
@@ -0,0 +1,51 @@
+From 2fdb42d840400d58f2e706ecca82c142b97bcbd6 Mon Sep 17 00:00:00 2001
+From: Li Qiang <liq3ea@163.com>
+Date: Wed, 12 Aug 2020 09:17:27 -0700
+Subject: [PATCH] hw: ehci: check return value of 'usb_packet_map'
+
+If 'usb_packet_map' fails, we should stop to process the usb
+request.
+
+Signed-off-by: Li Qiang <liq3ea@163.com>
+Message-Id: <20200812161727.29412-1-liq3ea@163.com>
+Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
+
+Upstream-Status: Backport
+CVE: CVE-2020-25723
+[https://git.qemu.org/?p=qemu.git;a=commit;h=2fdb42d840400d58f2e706ecca82c142b97bcbd6]
+Signed-off-by: Li Wang <li.wang@windriver.com>
+---
+ hw/usb/hcd-ehci.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c
+index 1495e8f..1fbb02a 100644
+--- a/hw/usb/hcd-ehci.c
++++ b/hw/usb/hcd-ehci.c
+@@ -1373,7 +1373,10 @@ static int ehci_execute(EHCIPacket *p, const char *action)
+         spd = (p->pid == USB_TOKEN_IN && NLPTR_TBIT(p->qtd.altnext) == 0);
+         usb_packet_setup(&p->packet, p->pid, ep, 0, p->qtdaddr, spd,
+                          (p->qtd.token & QTD_TOKEN_IOC) != 0);
+-        usb_packet_map(&p->packet, &p->sgl);
++        if (usb_packet_map(&p->packet, &p->sgl)) {
++            qemu_sglist_destroy(&p->sgl);
++            return -1;
++        }
+         p->async = EHCI_ASYNC_INITIALIZED;
+     }
+ 
+@@ -1452,7 +1455,10 @@ static int ehci_process_itd(EHCIState *ehci,
+             if (ep && ep->type == USB_ENDPOINT_XFER_ISOC) {
+                 usb_packet_setup(&ehci->ipacket, pid, ep, 0, addr, false,
+                                  (itd->transact[i] & ITD_XACT_IOC) != 0);
+-                usb_packet_map(&ehci->ipacket, &ehci->isgl);
++                if (usb_packet_map(&ehci->ipacket, &ehci->isgl)) {
++                    qemu_sglist_destroy(&ehci->isgl);
++                    return -1;
++                }
+                 usb_handle_packet(dev, &ehci->ipacket);
+                 usb_packet_unmap(&ehci->ipacket, &ehci->isgl);
+             } else {
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-28916.patch b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-28916.patch
new file mode 100644
index 0000000..5212196
--- /dev/null
+++ b/poky/meta/recipes-devtools/qemu/qemu/CVE-2020-28916.patch
@@ -0,0 +1,49 @@
+From c2cb511634012344e3d0fe49a037a33b12d8a98a Mon Sep 17 00:00:00 2001
+From: Prasad J Pandit <pjp@fedoraproject.org>
+Date: Wed, 11 Nov 2020 18:36:36 +0530
+Subject: [PATCH] hw/net/e1000e: advance desc_offset in case of null
+descriptor
+
+While receiving packets via e1000e_write_packet_to_guest() routine,
+'desc_offset' is advanced only when RX descriptor is processed. And
+RX descriptor is not processed if it has NULL buffer address.
+This may lead to an infinite loop condition. Increament 'desc_offset'
+to process next descriptor in the ring to avoid infinite loop.
+
+Reported-by: Cheol-woo Myung <330cjfdn@gmail.com>
+Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
+Signed-off-by: Jason Wang <jasowang@redhat.com>
+
+Upstream-Status: Backport
+CVE: CVE-2020-28916
+[https://git.qemu.org/?p=qemu.git;a=commit;h=c2cb511634012344e3d0fe49a037a33b12d8a98a]
+Signed-off-by: Li Wang <li.wang@windriver.com>
+---
+ hw/net/e1000e_core.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c
+index bcd186c..d3e3cdc 100644
+--- a/hw/net/e1000e_core.c
++++ b/hw/net/e1000e_core.c
+@@ -1596,13 +1596,13 @@ e1000e_write_packet_to_guest(E1000ECore *core, struct NetRxPkt *pkt,
+                           (const char *) &fcs_pad, e1000x_fcs_len(core->mac));
+                 }
+             }
+-            desc_offset += desc_size;
+-            if (desc_offset >= total_size) {
+-                is_last = true;
+-            }
+         } else { /* as per intel docs; skip descriptors with null buf addr */
+             trace_e1000e_rx_null_descriptor();
+         }
++        desc_offset += desc_size;
++        if (desc_offset >= total_size) {
++            is_last = true;
++        }
+ 
+         e1000e_write_rx_descr(core, desc, is_last ? core->rx_pkt : NULL,
+                            rss_info, do_ps ? ps_hdr_len : 0, &bastate.written);
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch b/poky/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch
index 30975fa..38d7552 100644
--- a/poky/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch
+++ b/poky/meta/recipes-devtools/rpm/files/0001-Do-not-hardcode-lib-rpm-as-the-installation-path-for.patch
@@ -1,4 +1,4 @@
-From 4fd37bc9d8d0777aa038777dd81a76b64f536efd Mon Sep 17 00:00:00 2001
+From 9bbe3f8564705aafcdcc5f2f033f9241a97f47c6 Mon Sep 17 00:00:00 2001
 From: Alexander Kanavin <alex.kanavin@gmail.com>
 Date: Mon, 27 Feb 2017 09:43:30 +0200
 Subject: [PATCH] Do not hardcode "lib/rpm" as the installation path for
@@ -14,10 +14,10 @@
  3 files changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/configure.ac b/configure.ac
-index 186e4aeec..5df252085 100644
+index 6c78568e4..76b1d40e4 100644
 --- a/configure.ac
 +++ b/configure.ac
-@@ -944,7 +944,7 @@ else
+@@ -966,7 +966,7 @@ else
      usrprefix=$prefix
  fi
  
@@ -40,7 +40,7 @@
  %_infodir		%{_datadir}/info
  %_mandir		%{_datadir}/man
 diff --git a/rpm.am b/rpm.am
-index b46c6b7da..02d5c7a0a 100644
+index cd40a16be..e6941e09f 100644
 --- a/rpm.am
 +++ b/rpm.am
 @@ -1,10 +1,10 @@
@@ -55,4 +55,4 @@
 +rpmconfigdir = $(libdir)/rpm
  
  # Libtool version (current-revision-age) for all our libraries
- rpm_version_info = 10:0:1
+ rpm_version_info = 10:2:1
diff --git a/poky/meta/recipes-devtools/rpm/files/0001-rpmdb.c-add-a-missing-include.patch b/poky/meta/recipes-devtools/rpm/files/0001-rpmdb.c-add-a-missing-include.patch
deleted file mode 100644
index c7ae158..0000000
--- a/poky/meta/recipes-devtools/rpm/files/0001-rpmdb.c-add-a-missing-include.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 9de15c7e1f4ca23a10edb9a3b657f06b2b13e841 Mon Sep 17 00:00:00 2001
-From: Alexander Kanavin <alex.kanavin@gmail.com>
-Date: Tue, 20 Oct 2020 22:16:39 +0200
-Subject: [PATCH] rpmdb.c: add a missing include
-
-This addressed build failures on non-glibc systems.
-
-Upstream-Status: Backport
-Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
----
- lib/rpmdb.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/lib/rpmdb.c b/lib/rpmdb.c
-index 4c101569f..73187630b 100644
---- a/lib/rpmdb.c
-+++ b/lib/rpmdb.c
-@@ -8,6 +8,7 @@
- #include <utime.h>
- #include <errno.h>
- #include <dirent.h>
-+#include <fcntl.h>
- 
- #ifndef	DYING	/* XXX already in "system.h" */
- #include <fnmatch.h>
diff --git a/poky/meta/recipes-devtools/rpm/rpm_4.16.0.bb b/poky/meta/recipes-devtools/rpm/rpm_4.16.1.2.bb
similarity index 97%
rename from poky/meta/recipes-devtools/rpm/rpm_4.16.0.bb
rename to poky/meta/recipes-devtools/rpm/rpm_4.16.1.2.bb
index 4125f3f..9195d66 100644
--- a/poky/meta/recipes-devtools/rpm/rpm_4.16.0.bb
+++ b/poky/meta/recipes-devtools/rpm/rpm_4.16.1.2.bb
@@ -39,12 +39,11 @@
            file://0001-rpm-rpmio.c-restrict-virtual-memory-usage-if-limit-s.patch \
            file://0016-rpmscript.c-change-logging-level-around-scriptlets-t.patch \
            file://0001-lib-transaction.c-fix-file-conflicts-for-MIPS64-N32.patch \
-           file://0001-rpmdb.c-add-a-missing-include.patch \
            file://0001-tools-Add-error.h-for-non-glibc-case.patch \
            "
 
 PE = "1"
-SRCREV = "cd7f9303ef1070f027493cad7d00bc66935af2a0"
+SRCREV = "278883a704ea36c97974d0f2d65d41abe78b0e2a"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-devtools/ruby/ruby.inc b/poky/meta/recipes-devtools/ruby/ruby.inc
index a38b3fe..7b6d4ed 100644
--- a/poky/meta/recipes-devtools/ruby/ruby.inc
+++ b/poky/meta/recipes-devtools/ruby/ruby.inc
@@ -14,7 +14,7 @@
     file://LEGAL;md5=2b6d62dc0d608f34d510ca3f428110ec \
 "
 
-DEPENDS = "ruby-native zlib openssl tcl libyaml gdbm readline libffi"
+DEPENDS = "ruby-native zlib openssl libyaml gdbm readline libffi"
 DEPENDS_class-native = "openssl-native libyaml-native readline-native zlib-native"
 
 SHRT_VER = "${@oe.utils.trim_version("${PV}", 2)}"
diff --git a/poky/meta/recipes-devtools/strace/strace/0001-xlat-Mark-IPPROTO_MAX-last-in-IPPROTO_-constants.patch b/poky/meta/recipes-devtools/strace/strace/0001-xlat-Mark-IPPROTO_MAX-last-in-IPPROTO_-constants.patch
deleted file mode 100644
index cd53f33..0000000
--- a/poky/meta/recipes-devtools/strace/strace/0001-xlat-Mark-IPPROTO_MAX-last-in-IPPROTO_-constants.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 387d3b6fba95cb47c4dacc6bcd330148a9168850 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Wed, 7 Oct 2020 12:54:03 -0700
-Subject: [PATCH] xlat: Mark IPPROTO_MAX last in IPPROTO_* constants
-
-* xlat/inet_protocols.in (IPPROTO_MAX): It should be the last entry
-  after adding IPPROTO_MPTCP this should have new value as
-  IPPROTO_MPTCP + 1.
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Upstream-Status: Submitted [https://lists.strace.io/pipermail/strace-devel/2020-October/010253.html]
----
- xlat/inet_protocols.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/xlat/inet_protocols.in
-+++ b/xlat/inet_protocols.in
-@@ -32,5 +32,5 @@ IPPROTO_UDPLITE		136
- IPPROTO_MPLS		137
- IPPROTO_ETHERNET	143
- IPPROTO_RAW		255
--IPPROTO_MAX		256
- IPPROTO_MPTCP		262
-+IPPROTO_MAX		263
---- a/xlat/inet_protocols.h
-+++ b/xlat/inet_protocols.h
-@@ -234,19 +234,19 @@ DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
- # define IPPROTO_RAW 255
- #endif
--#if defined(IPPROTO_MAX) || (defined(HAVE_DECL_IPPROTO_MAX) && HAVE_DECL_IPPROTO_MAX)
-+#if defined(IPPROTO_MPTCP) || (defined(HAVE_DECL_IPPROTO_MPTCP) && HAVE_DECL_IPPROTO_MPTCP)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((IPPROTO_MAX) == (256), "IPPROTO_MAX != 256");
-+static_assert((IPPROTO_MPTCP) == (262), "IPPROTO_MPTCP != 262");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define IPPROTO_MAX 256
-+# define IPPROTO_MPTCP 262
- #endif
--#if defined(IPPROTO_MPTCP) || (defined(HAVE_DECL_IPPROTO_MPTCP) && HAVE_DECL_IPPROTO_MPTCP)
-+#if defined(IPPROTO_MAX) || (defined(HAVE_DECL_IPPROTO_MAX) && HAVE_DECL_IPPROTO_MAX)
- DIAG_PUSH_IGNORE_TAUTOLOGICAL_COMPARE
--static_assert((IPPROTO_MPTCP) == (262), "IPPROTO_MPTCP != 262");
-+static_assert((IPPROTO_MAX) == (263), "IPPROTO_MAX != 263");
- DIAG_POP_IGNORE_TAUTOLOGICAL_COMPARE
- #else
--# define IPPROTO_MPTCP 262
-+# define IPPROTO_MAX 263
- #endif
- 
- #ifndef XLAT_MACROS_ONLY
-@@ -353,12 +353,12 @@ static const struct xlat_data inet_proto
-  XLAT(IPPROTO_RAW),
-  #define XLAT_VAL_32 ((unsigned) (IPPROTO_RAW))
-  #define XLAT_STR_32 STRINGIFY(IPPROTO_RAW)
-- XLAT(IPPROTO_MAX),
-- #define XLAT_VAL_33 ((unsigned) (IPPROTO_MAX))
-- #define XLAT_STR_33 STRINGIFY(IPPROTO_MAX)
-  XLAT(IPPROTO_MPTCP),
-- #define XLAT_VAL_34 ((unsigned) (IPPROTO_MPTCP))
-- #define XLAT_STR_34 STRINGIFY(IPPROTO_MPTCP)
-+ #define XLAT_VAL_33 ((unsigned) (IPPROTO_MPTCP))
-+ #define XLAT_STR_33 STRINGIFY(IPPROTO_MPTCP)
-+ XLAT(IPPROTO_MAX),
-+ #define XLAT_VAL_34 ((unsigned) (IPPROTO_MAX))
-+ #define XLAT_STR_34 STRINGIFY(IPPROTO_MAX)
- };
- const struct xlat inet_protocols[1] = { {
-  .data = inet_protocols_xdata,
diff --git a/poky/meta/recipes-devtools/strace/strace_5.9.bb b/poky/meta/recipes-devtools/strace/strace_5.10.bb
similarity index 88%
rename from poky/meta/recipes-devtools/strace/strace_5.9.bb
rename to poky/meta/recipes-devtools/strace/strace_5.10.bb
index bee2616..22572fb 100644
--- a/poky/meta/recipes-devtools/strace/strace_5.9.bb
+++ b/poky/meta/recipes-devtools/strace/strace_5.10.bb
@@ -14,9 +14,8 @@
            file://ptest-spacesave.patch \
            file://uintptr_t.patch \
            file://0001-strace-fix-reproducibilty-issues.patch \
-           file://0001-xlat-Mark-IPPROTO_MAX-last-in-IPPROTO_-constants.patch \
            "
-SRC_URI[sha256sum] = "39473eb8465546c3e940fb663cb381eba5613160c7302794699d194a4d5d66d9"
+SRC_URI[sha256sum] = "fe3982ea4cd9aeb3b4ba35f6279f0b577a37175d3282be24b9a5537b56b8f01c"
 
 inherit autotools ptest
 
@@ -47,10 +46,14 @@
 	oe_runmake -C ${TESTDIR} install-ptest BUILDDIR=${B} DESTDIR=${D}${PTEST_PATH} TESTDIR=${TESTDIR}
 	install -m 755 ${S}/test-driver ${D}${PTEST_PATH}
 	install -m 644 ${B}/config.h ${D}${PTEST_PATH}
-        sed -i -e '/^src/s/strace.*[1-9]/ptest/' ${D}/${PTEST_PATH}/${TESTDIR}/Makefile
+        sed -i -e '/^src/s/strace.*[0-9]/ptest/' ${D}/${PTEST_PATH}/${TESTDIR}/Makefile
 }
 
 RDEPENDS_${PN}-ptest += "make coreutils grep gawk sed"
 
+RDEPENDS_${PN}-ptest_append_libc-glibc = "\
+     locale-base-en-us.iso-8859-1 \
+"
+
 BBCLASSEXTEND = "native"
 TOOLCHAIN = "gcc"
diff --git a/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb b/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
index 3e7eef3..1b0b45f 100644
--- a/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
+++ b/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
@@ -4,10 +4,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
                     file://README;beginline=35;endline=41;md5=558f2c71cb1fb9ba511ccd4858e48e8a"
 
-# If you really want to run syslinux, you need mtools.  We just want the
-# ldlinux.* stuff for now, so skip mtools-native
 DEPENDS = "nasm-native util-linux e2fsprogs"
-PV = "6.04-pre2"
 
 SRC_URI = "https://www.zytor.com/pub/syslinux/Testing/6.04/syslinux-${PV}.tar.xz \
            file://syslinux-remove-clean-script.patch \
@@ -27,64 +24,77 @@
 SRC_URI[md5sum] = "2b31c78f087f99179feb357da312d7ec"
 SRC_URI[sha256sum] = "4441a5d593f85bb6e8d578cf6653fb4ec30f9e8f4a2315a3d8f2d0a8b3fadf94"
 
+RECIPE_NO_UPDATE_REASON = "6.04-pre3 is broken"
 UPSTREAM_CHECK_URI = "https://www.zytor.com/pub/syslinux/"
 UPSTREAM_CHECK_REGEX = "syslinux-(?P<pver>.+)\.tar"
 UPSTREAM_VERSION_UNKNOWN = "1"
 
-COMPATIBLE_HOST = '(x86_64|i.86).*-(linux|freebsd.*)'
+# We can build the native parts anywhere, but the target has to be x86
+COMPATIBLE_HOST_class-target = '(x86_64|i.86).*-(linux|freebsd.*)'
+
 # Don't let the sanity checker trip on the 32 bit real mode BIOS binaries
 INSANE_SKIP_${PN}-misc = "arch"
 INSANE_SKIP_${PN}-chain = "arch"
 
+# When building the installer, CC is used to link. When building the bootloader,
+# LD is used. However, these variables assume that GCC is used and break the
+# build, so unset them.
+TARGET_LDFLAGS = ""
+SECURITY_LDFLAGS = ""
+LDFLAGS_SECTION_REMOVAL = ""
+
 EXTRA_OEMAKE = " \
 	BINDIR=${bindir} SBINDIR=${sbindir} LIBDIR=${libdir} \
 	DATADIR=${datadir} MANDIR=${mandir} INCDIR=${includedir} \
+	CC="${CC} ${CFLAGS} ${LDFLAGS}" \
+	LD="${LD} ${LDFLAGS}" \
+	OBJDUMP="${OBJDUMP}" \
+	OBJCOPY="${OBJCOPY}" \
+	AR="${AR}" \
+	STRIP="${STRIP}" \
+	NM="${NM}" \
+	RANLIB="${RANLIB}" \
 "
 
+#
+# Tasks for native/nativesdk which just build the installer.
+#
 do_configure() {
-	# drop win32 targets or build fails
-	sed -e 's,win32/\S*,,g' -i Makefile
-
-	# clean installer executables included in source tarball
-	oe_runmake clean firmware="efi32" EFIINC="${includedir}"
-	# NOTE: There is a temporary work around above to specify
-	#	the efi32 as the firmware else the pre-built bios
-	#	files get erased contrary to the doc/distib.txt
-	#	In the future this should be "bios" and not "efi32".
+	oe_runmake firmware="bios" clean
 }
 
 do_compile() {
-	# Make sure the recompile is OK.
-	# Though the ${B} should always exist, still check it before find and rm.
-	[ -d "${B}" ] && find ${B} -name '.*.d' -type f -exec rm -f {} \;
-
-	# Rebuild only the installer; keep precompiled bootloaders
-	# as per author's request (doc/distrib.txt)
-	oe_runmake CC="${CC} ${CFLAGS}" \
-                   LD="${LD}" LDFLAGS="${LDFLAGS}" \
-                   OBJDUMP="${OBJDUMP}" \
-                   OBJCOPY="${OBJCOPY}" \
-                   AR="${AR}" \
-                   STRIP="${STRIP}" \
-                   NM="${NM}" \
-                   RANLIB="${RANLIB}" \
-                   firmware="bios" installer
+	oe_runmake firmware="bios" installer
 }
 
 do_install() {
-	oe_runmake CC="${CC} ${CFLAGS}" LD="${LD}" \
-                   OBJDUMP="${OBJDUMP}" \
-                   OBJCOPY="${OBJCOPY}" \
-                   AR="${AR}" \
-                   STRIP="${STRIP}" \
-                   NM="${NM}" \
-                   RANLIB="${RANLIB}" \
-                   firmware="bios" install INSTALLROOT="${D}"
+	install -d ${D}${bindir}
+	install \
+		${B}/bios/mtools/syslinux \
+		${B}/bios/extlinux/extlinux \
+		${B}/bios/utils/isohybrid \
+		${D}${bindir}
+}
+
+#
+# Tasks for target which ship the precompiled bootloader and installer
+#
+do_configure_class-target() {
+	# No need to do anything as we're mostly shipping the precompiled binaries
+	:
+}
+
+do_compile_class-target() {
+	# No need to do anything as we're mostly shipping the precompiled binaries
+	:
+}
+
+do_install_class-target() {
+	oe_runmake firmware="bios" install INSTALLROOT="${D}"
 
 	install -d ${D}${datadir}/syslinux/
 	install -m 644 ${S}/bios/core/ldlinux.sys ${D}${datadir}/syslinux/
 	install -m 644 ${S}/bios/core/ldlinux.bss ${D}${datadir}/syslinux/
-	install -m 755 ${S}/bios/linux/syslinux-nomtools ${D}${bindir}/
 }
 
 PACKAGES += "${PN}-nomtools ${PN}-extlinux ${PN}-mbr ${PN}-chain ${PN}-pxelinux ${PN}-isolinux ${PN}-misc"
diff --git a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_234.bb
similarity index 91%
rename from poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb
rename to poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_234.bb
index a7a1f0f..4c857c3 100644
--- a/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_233.bb
+++ b/poky/meta/recipes-devtools/systemd-bootchart/systemd-bootchart_234.bb
@@ -14,9 +14,7 @@
     "
 
 
-# Modify these as desired
-PV = "233+git${SRCPV}"
-SRCREV = "fe1c5e41e6bdb78043dad8fa863fc2df66d1dadf"
+SRCREV = "8183cfd9dad8beca5434d625cf6b2df87775e956"
 
 S = "${WORKDIR}/git"
 
diff --git a/poky/meta/recipes-devtools/vala/vala_0.50.1.bb b/poky/meta/recipes-devtools/vala/vala_0.50.1.bb
deleted file mode 100644
index cca7eef..0000000
--- a/poky/meta/recipes-devtools/vala/vala_0.50.1.bb
+++ /dev/null
@@ -1,5 +0,0 @@
-require ${BPN}.inc
-
-SRC_URI += " file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch"
-
-SRC_URI[sha256sum] = "958d9f06c9c3d7d1b2145512a9bc2a7c6aefbbf0416a04c7a0ecf463f7138f6c"
diff --git a/poky/meta/recipes-devtools/vala/vala_0.50.2.bb b/poky/meta/recipes-devtools/vala/vala_0.50.2.bb
new file mode 100644
index 0000000..b5913fc
--- /dev/null
+++ b/poky/meta/recipes-devtools/vala/vala_0.50.2.bb
@@ -0,0 +1,5 @@
+require ${BPN}.inc
+
+SRC_URI += " file://0001-vapigen.m4-use-PKG_CONFIG_SYSROOT_DIR.patch"
+
+SRC_URI[sha256sum] = "2c0d5dc6d65d070f724063075424c403765ab7935c9e6fbcb84981b94d07ceda"
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64 b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
index a3a0c6e..93bfd45 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-aarch64
@@ -31,8 +31,6 @@
 drd/tests/annotate_trace_memory
 drd/tests/annotate_trace_memory_xml
 drd/tests/atomic_var
-drd/tests/bar_bad
-drd/tests/bar_bad_xml
 drd/tests/bar_trivial
 drd/tests/bug-235681
 drd/tests/bug322621
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-all b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-all
new file mode 100644
index 0000000..d6a85c4
--- /dev/null
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/remove-for-all
@@ -0,0 +1,2 @@
+drd/tests/bar_bad
+drd/tests/bar_bad_xml
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest b/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest
index 97b0a85..7217dfc 100755
--- a/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest
+++ b/poky/meta/recipes-devtools/valgrind/valgrind/run-ptest
@@ -17,6 +17,12 @@
 GDB_BIN=@bindir@/gdb
 cd ${VALGRIND_LIB}/ptest && ./gdbserver_tests/make_local_links ${GDB_BIN}
 
+echo "Hide valgrind tests that are non-deterministic"
+echo "Reported at https://bugs.kde.org/show_bug.cgi?id=430321"
+for i in `cat remove-for-all`; do
+   mv $i.vgtest $i.IGNORE;
+done
+
 arch=`arch`
 if [ "$arch" = "aarch64" ]; then
    echo "Aarch64: Hide valgrind tests that result in defunct process and then out of memory"
@@ -44,6 +50,10 @@
    done
 fi
 
+echo "Restore valgrind tests that are non-deterministc"
+for i in `cat remove-for-all`; do
+   mv $i.IGNORE $i.vgtest;
+done
 
 passed=`grep PASS: ${LOG}|wc -l`
 failed=`grep FAIL: ${LOG}|wc -l`
diff --git a/poky/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb b/poky/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb
index 5db181a..25fa582 100644
--- a/poky/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb
+++ b/poky/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb
@@ -16,6 +16,7 @@
            file://Added-support-for-PPC-instructions-mfatbu-mfatbl.patch \
            file://run-ptest \
            file://remove-for-aarch64 \
+           file://remove-for-all \
            file://0004-Fix-out-of-tree-builds.patch \
            file://0005-Modify-vg_test-wrapper-to-support-PTEST-formats.patch \
            file://0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch \
@@ -186,6 +187,7 @@
     # The scripts reference config.h so add it to the top ptest dir.
     cp ${B}/config.h ${D}${PTEST_PATH}
     install -D ${WORKDIR}/remove-for-aarch64 ${D}${PTEST_PATH}
+    install -D ${WORKDIR}/remove-for-all ${D}${PTEST_PATH}
 
     # Add an executable need by none/tests/bigcode
     mkdir ${D}${PTEST_PATH}/perf
diff --git a/poky/meta/recipes-extended/acpica/acpica_20201113.bb b/poky/meta/recipes-extended/acpica/acpica_20201217.bb
similarity index 94%
rename from poky/meta/recipes-extended/acpica/acpica_20201113.bb
rename to poky/meta/recipes-extended/acpica/acpica_20201217.bb
index f2d17ca..91bcd8a 100644
--- a/poky/meta/recipes-extended/acpica/acpica_20201113.bb
+++ b/poky/meta/recipes-extended/acpica/acpica_20201217.bb
@@ -17,7 +17,7 @@
 DEPENDS = "m4-native flex-native bison-native"
 
 SRC_URI = "https://acpica.org/sites/acpica/files/acpica-unix-${PV}.tar.gz"
-SRC_URI[sha256sum] = "48c4e0c07b42581d017487cc9264470e6420605ddd24cbb5d16410d02a771461"
+SRC_URI[sha256sum] = "df6bb667c60577c89df5abe3270539c1b9716b69409d1074d6a7fc5c2fea087b"
 
 UPSTREAM_CHECK_URI = "https://acpica.org/downloads"
 
diff --git a/poky/meta/recipes-extended/bash/bash/bash-CVE-2019-18276.patch b/poky/meta/recipes-extended/bash/bash/CVE-2019-18276.patch
similarity index 100%
rename from poky/meta/recipes-extended/bash/bash/bash-CVE-2019-18276.patch
rename to poky/meta/recipes-extended/bash/bash/CVE-2019-18276.patch
diff --git a/poky/meta/recipes-extended/bash/bash_5.0.bb b/poky/meta/recipes-extended/bash/bash_5.0.bb
index 257a03b..53e0586 100644
--- a/poky/meta/recipes-extended/bash/bash_5.0.bb
+++ b/poky/meta/recipes-extended/bash/bash_5.0.bb
@@ -30,7 +30,7 @@
            file://run-ptest \
            file://run-bash-ptests \
            file://fix-run-builtins.patch \
-           file://bash-CVE-2019-18276.patch \
+           file://CVE-2019-18276.patch \
            "
 
 SRC_URI[tarball.md5sum] = "2b44b47b905be16f45709648f671820b"
diff --git a/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am b/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am
index d449894..7338df0 100644
--- a/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am
+++ b/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am
@@ -46,7 +46,7 @@
 	else echo "FAIL: sample2 decompress"; fi
 	@if cmp sample3.tst sample3.ref; then echo "PASS: sample3 decompress";\
 	else echo "FAIL: sample3 decompress"; fi
-	./bzip2-tests/run-tests.sh --tests-dir="$(PWD)/bzip2-tests"
+	./bzip2-tests/run-tests.sh --without-valgrind --tests-dir="$(PWD)/bzip2-tests"
 
 install-ptest:
 	sed  -n '/^runtest:/,/^install-ptest:/{/^install-ptest:/!p}' \
diff --git a/poky/meta/recipes-extended/cups/cups.inc b/poky/meta/recipes-extended/cups/cups.inc
index df8d4d2..e7a7041 100644
--- a/poky/meta/recipes-extended/cups/cups.inc
+++ b/poky/meta/recipes-extended/cups/cups.inc
@@ -20,6 +20,10 @@
 UPSTREAM_CHECK_URI = "https://github.com/apple/cups/releases"
 UPSTREAM_CHECK_REGEX = "cups-(?P<pver>\d+\.\d+(\.\d+)?)-source.tar"
 
+# Issue only applies to MacOS
+CVE_CHECK_WHITELIST += "CVE-2008-1033"
+# Issue affects pdfdistiller plugin used with but not part of cups
+CVE_CHECK_WHITELIST += "CVE-2009-0032"
 # This is an Ubuntu only issue.
 CVE_CHECK_WHITELIST += "CVE-2018-6553"
 
diff --git a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
index 673b350..54aec01 100644
--- a/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
+++ b/poky/meta/recipes-extended/ethtool/ethtool/avoid_parallel_tests.patch
@@ -1,4 +1,4 @@
-From 538bd5ec36d88f17803cb848cbbfe62ad51fc2f4 Mon Sep 17 00:00:00 2001
+From b493e2fb472307997576eef33cce784594070f44 Mon Sep 17 00:00:00 2001
 From: Tudor Florea <tudor.florea@enea.com>
 Date: Wed, 28 May 2014 18:59:54 +0200
 Subject: [PATCH] ethtool: use serial-tests config needed by ptest.
@@ -15,11 +15,11 @@
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/configure.ac b/configure.ac
-index 0162155..6866e72 100644
+index 13c2bc0..0b6ca1d 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -2,7 +2,7 @@ dnl Process this file with autoconf to produce a configure script.
- AC_INIT(ethtool, 5.9, netdev@vger.kernel.org)
+ AC_INIT(ethtool, 5.10, netdev@vger.kernel.org)
  AC_PREREQ(2.52)
  AC_CONFIG_SRCDIR([ethtool.c])
 -AM_INIT_AUTOMAKE([gnu subdir-objects])
diff --git a/poky/meta/recipes-extended/ethtool/ethtool_5.9.bb b/poky/meta/recipes-extended/ethtool/ethtool_5.10.bb
similarity index 93%
rename from poky/meta/recipes-extended/ethtool/ethtool_5.9.bb
rename to poky/meta/recipes-extended/ethtool/ethtool_5.10.bb
index 2d2f9b7..5c0df3a 100644
--- a/poky/meta/recipes-extended/ethtool/ethtool_5.9.bb
+++ b/poky/meta/recipes-extended/ethtool/ethtool_5.10.bb
@@ -11,7 +11,7 @@
            file://avoid_parallel_tests.patch \
            "
 
-SRC_URI[sha256sum] = "f934a830554c46d7d60b1a9147f4cab15589b7e09344c4b79b1948b740f0a725"
+SRC_URI[sha256sum] = "4b86adb3ed913c1ef14a276301981f696ab4ec360c19f0a5b68235c4756abae5"
 
 UPSTREAM_CHECK_URI = "https://www.kernel.org/pub/software/network/ethtool/"
 
diff --git a/poky/meta/recipes-extended/gawk/gawk_5.1.0.bb b/poky/meta/recipes-extended/gawk/gawk_5.1.0.bb
index 8c6411c..ae897be 100644
--- a/poky/meta/recipes-extended/gawk/gawk_5.1.0.bb
+++ b/poky/meta/recipes-extended/gawk/gawk_5.1.0.bb
@@ -53,4 +53,8 @@
 
 RDEPENDS_${PN}-ptest += "make"
 
+RDEPENDS_${PN}-ptest_append_libc-glibc = "\
+     locale-base-en-us.iso-8859-1 \
+"
+
 BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-extended/grep/grep_3.6.bb b/poky/meta/recipes-extended/grep/grep_3.6.bb
index edf9b29..cb009b9 100644
--- a/poky/meta/recipes-extended/grep/grep_3.6.bb
+++ b/poky/meta/recipes-extended/grep/grep_3.6.bb
@@ -41,3 +41,5 @@
 ALTERNATIVE_LINK_NAME[grep] = "${base_bindir}/grep"
 ALTERNATIVE_LINK_NAME[egrep] = "${base_bindir}/egrep"
 ALTERNATIVE_LINK_NAME[fgrep] = "${base_bindir}/fgrep"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-extended/groff/groff_1.22.4.bb b/poky/meta/recipes-extended/groff/groff_1.22.4.bb
index e398478..0867452 100644
--- a/poky/meta/recipes-extended/groff/groff_1.22.4.bb
+++ b/poky/meta/recipes-extended/groff/groff_1.22.4.bb
@@ -28,7 +28,7 @@
 EXTRA_OECONF = "--without-x --without-doc"
 PARALLEL_MAKE = ""
 
-CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl' ac_cv_path_BASH_PROG='no'"
+CACHED_CONFIGUREVARS += "ac_cv_path_PERL='/usr/bin/env perl' ac_cv_path_BASH_PROG='no' PAGE=A4"
 
 do_install_append() {
 	# Some distros have both /bin/perl and /usr/bin/perl, but we set perl location
diff --git a/poky/meta/recipes-extended/libaio/libaio/destdir.patch b/poky/meta/recipes-extended/libaio/libaio/destdir.patch
deleted file mode 100644
index 0f90406..0000000
--- a/poky/meta/recipes-extended/libaio/libaio/destdir.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream-Status: Pending
-
-from openembedded, added by Qing He <qing.he@intel.com>
-
-Index: libaio-0.3.110/Makefile
-===================================================================
---- libaio-0.3.110.orig/Makefile
-+++ libaio-0.3.110/Makefile
-@@ -15,7 +15,7 @@ all:
- 	@$(MAKE) -C src
- 
- install:
--	@$(MAKE) -C src install prefix=$(prefix) includedir=$(includedir) libdir=$(libdir)
-+	@$(MAKE) -C src install prefix=$(DESTDIR)$(prefix) includedir=$(DESTDIR)$(includedir) libdir=$(DESTDIR)$(libdir)
- 
- check:
- 	@$(MAKE) -C harness check
diff --git a/poky/meta/recipes-extended/libaio/libaio/system-linkage.patch b/poky/meta/recipes-extended/libaio/libaio/system-linkage.patch
index 0b1f475..cc91ea9 100644
--- a/poky/meta/recipes-extended/libaio/libaio/system-linkage.patch
+++ b/poky/meta/recipes-extended/libaio/libaio/system-linkage.patch
@@ -12,26 +12,22 @@
 Upstream-Status: Pending
 Signed-off-by: Ross Burton <ross.burton@intel.com>
 ---
- src/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+ src/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/src/Makefile b/src/Makefile
-index eadb336..56ab701 100644
+index 37ae219..22e0c9a 100644
 --- a/src/Makefile
 +++ b/src/Makefile
-@@ -3,10 +3,10 @@ includedir=$(prefix)/include
- libdir=$(prefix)/lib
- 
- CFLAGS ?= -g -fomit-frame-pointer -O2
--CFLAGS += -nostdlib -nostartfiles -Wall -I. -fPIC
-+CFLAGS += -Wall -I. -fPIC
+@@ -6,7 +6,7 @@ CFLAGS ?= -g -fomit-frame-pointer -O2
+ CFLAGS += -Wall -I. -fPIC
  SO_CFLAGS=-shared $(CFLAGS)
  L_CFLAGS=$(CFLAGS)
 -LINK_FLAGS=
 +LINK_FLAGS=$(LDFLAGS)
  LINK_FLAGS+=$(LDFLAGS)
+ ENABLE_SHARED ?= 1
  
- soname=libaio.so.1
 -- 
-2.1.4
+2.25.1
 
diff --git a/poky/meta/recipes-extended/libaio/libaio_0.3.111.bb b/poky/meta/recipes-extended/libaio/libaio_0.3.112.bb
similarity index 88%
rename from poky/meta/recipes-extended/libaio/libaio_0.3.111.bb
rename to poky/meta/recipes-extended/libaio/libaio_0.3.112.bb
index 8e1cd34..b360647 100644
--- a/poky/meta/recipes-extended/libaio/libaio_0.3.111.bb
+++ b/poky/meta/recipes-extended/libaio/libaio_0.3.112.bb
@@ -7,11 +7,10 @@
 
 SRC_URI = "git://pagure.io/libaio.git;protocol=https \
            file://00_arches.patch \
-           file://destdir.patch \
            file://libaio_fix_for_mips_syscalls.patch \
            file://system-linkage.patch \
            "
-SRCREV = "f66be22ab0a59a39858900ab72a8c6a6e8b0b7ec"
+SRCREV = "d025927efa75a0d1b46ca3a5ef331caa2f46ee0e"
 S = "${WORKDIR}/git"
 
 EXTRA_OEMAKE =+ "prefix=${prefix} includedir=${includedir} libdir=${libdir}"
diff --git a/poky/meta/recipes-extended/libtirpc/libtirpc_1.2.6.bb b/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.1.bb
similarity index 85%
rename from poky/meta/recipes-extended/libtirpc/libtirpc_1.2.6.bb
rename to poky/meta/recipes-extended/libtirpc/libtirpc_1.3.1.bb
index 10a324c..5792264 100644
--- a/poky/meta/recipes-extended/libtirpc/libtirpc_1.2.6.bb
+++ b/poky/meta/recipes-extended/libtirpc/libtirpc_1.3.1.bb
@@ -12,8 +12,7 @@
 SRC_URI = "${SOURCEFORGE_MIRROR}/${BPN}/${BP}.tar.bz2"
 UPSTREAM_CHECK_URI = "https://sourceforge.net/projects/libtirpc/files/libtirpc/"
 UPSTREAM_CHECK_REGEX = "(?P<pver>\d+(\.\d+)+)/"
-SRC_URI[md5sum] = "b25f9cc18bfad50f7c446c77f4ae00bb"
-SRC_URI[sha256sum] = "4278e9a5181d5af9cd7885322fdecebc444f9a3da87c526e7d47f7a12a37d1cc"
+SRC_URI[sha256sum] = "245895caf066bec5e3d4375942c8cb4366adad184c29c618d97f724ea309ee17"
 
 inherit autotools pkgconfig
 
diff --git a/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.56.bb b/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.57.bb
similarity index 95%
rename from poky/meta/recipes-extended/lighttpd/lighttpd_1.4.56.bb
rename to poky/meta/recipes-extended/lighttpd/lighttpd_1.4.57.bb
index 97d3a2a..9a9cad6 100644
--- a/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.56.bb
+++ b/poky/meta/recipes-extended/lighttpd/lighttpd_1.4.57.bb
@@ -19,8 +19,7 @@
         file://0001-Use-pkg-config-for-pcre-dependency-instead-of-config.patch \
         "
 
-SRC_URI[md5sum] = "9d94f68c8106bfcdfe7aafa0a13f45a8"
-SRC_URI[sha256sum] = "e4ce84cd79e8ae8ba193c7a7cc79c4afba9a076b443ef9f8d4bcd13a3354df77"
+SRC_URI[sha256sum] = "52ca961b89c12f7ecbb2e4e0c5a9e79b2863c64e33c42832a165e7f894d6217f"
 
 PACKAGECONFIG ??= "openssl pcre zlib \
     ${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)} \
diff --git a/poky/meta/recipes-extended/ltp/ltp/0001-ltp-pan-Use-long-long-int-to-print-time_t.patch b/poky/meta/recipes-extended/ltp/ltp/0001-ltp-pan-Use-long-long-int-to-print-time_t.patch
new file mode 100644
index 0000000..381ac41
--- /dev/null
+++ b/poky/meta/recipes-extended/ltp/ltp/0001-ltp-pan-Use-long-long-int-to-print-time_t.patch
@@ -0,0 +1,33 @@
+From 6c2085badea7b461245837c452a0d3d8a8c2afff Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sun, 20 Dec 2020 22:09:28 -0800
+Subject: [PATCH] ltp-pan: Use long long int to print time_t
+
+Some newer 32bit architectures ( e.g. riscv32 ) uses 64bit time_t so
+using %ld is not sufficient to print time_t, this also fixes a crash in
+ltp-pan on riscv32
+
+Upstream-Status: Submitted [https://patchwork.ozlabs.org/project/ltp/patch/20201221061415.2540216-1-raj.khem@gmail.com/]
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ pan/ltp-pan.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/pan/ltp-pan.c b/pan/ltp-pan.c
+index 8b9fbe5594..54b7cb8f26 100644
+--- a/pan/ltp-pan.c
++++ b/pan/ltp-pan.c
+@@ -1389,8 +1389,8 @@ static void write_test_start(struct tag_pgrp *running, int no_kmsg)
+ 	if (!strcmp(reporttype, "rts")) {
+ 
+ 		printf
+-		    ("%s\ntag=%s stime=%ld\ncmdline=\"%s\"\ncontacts=\"%s\"\nanalysis=%s\n%s\n",
+-		     "<<<test_start>>>", running->cmd->name, running->mystime,
++		    ("%s\ntag=%s stime=%lld\ncmdline=\"%s\"\ncontacts=\"%s\"\nanalysis=%s\n%s\n",
++		     "<<<test_start>>>", running->cmd->name, (long long)running->mystime,
+ 		     running->cmd->cmdline, "", "exit", "<<<test_output>>>");
+ 	}
+ 	fflush(stdout);
+-- 
+2.29.2
+
diff --git a/poky/meta/recipes-extended/ltp/ltp_20200930.bb b/poky/meta/recipes-extended/ltp/ltp_20200930.bb
index 7acf15b..e3c49fb 100644
--- a/poky/meta/recipes-extended/ltp/ltp_20200930.bb
+++ b/poky/meta/recipes-extended/ltp/ltp_20200930.bb
@@ -34,6 +34,7 @@
            file://0007-Fix-test_proc_kill-hanging.patch \
            file://0001-Add-more-musl-exclusions.patch \
            file://0001-Remove-OOM-tests-from-runtest-mm.patch \
+           file://0001-ltp-pan-Use-long-long-int-to-print-time_t.patch \
            "
 
 S = "${WORKDIR}/git"
diff --git a/poky/meta/recipes-extended/man-db/man-db_2.9.3.bb b/poky/meta/recipes-extended/man-db/man-db_2.9.3.bb
index 0e6016a..e8da92b 100644
--- a/poky/meta/recipes-extended/man-db/man-db_2.9.3.bb
+++ b/poky/meta/recipes-extended/man-db/man-db_2.9.3.bb
@@ -11,6 +11,7 @@
 
 DEPENDS = "libpipeline gdbm groff-native base-passwd"
 RDEPENDS_${PN} += "base-passwd"
+PACKAGE_WRITE_DEPS += "base-passwd"
 
 # | /usr/src/debug/man-db/2.8.0-r0/man-db-2.8.0/src/whatis.c:939: undefined reference to `_nl_msg_cat_cntr'
 USE_NLS_libc-musl = "no"
@@ -20,6 +21,11 @@
 EXTRA_OECONF = "--with-pager=less --with-systemdsystemunitdir=${systemd_unitdir}/system"
 EXTRA_AUTORECONF += "-I ${S}/gl/m4"
 
+# Can be dropped when the output next changes, avoids failures after
+# reproducibility issues
+PR = "r1"
+HASHEQUIV_HASH_VERSION .= ".1"
+
 do_install() {
 	autotools_do_install
 
diff --git a/poky/meta/recipes-extended/man-pages/man-pages_5.09.bb b/poky/meta/recipes-extended/man-pages/man-pages_5.10.bb
similarity index 91%
rename from poky/meta/recipes-extended/man-pages/man-pages_5.09.bb
rename to poky/meta/recipes-extended/man-pages/man-pages_5.10.bb
index 00d6eb5..8874516 100644
--- a/poky/meta/recipes-extended/man-pages/man-pages_5.09.bb
+++ b/poky/meta/recipes-extended/man-pages/man-pages_5.10.bb
@@ -7,7 +7,7 @@
 LIC_FILES_CHKSUM = "file://README;md5=207f70f56526417514ac46b6680e314f"
 SRC_URI = "${KERNELORG_MIRROR}/linux/docs/${BPN}/${BP}.tar.gz"
 
-SRC_URI[sha256sum] = "3bd9029b94520c730fe1a1fb78ed7d8d878236da0f725ca86ee71c1969de6c4f"
+SRC_URI[sha256sum] = "f2ce94a7250c49910db91806996699e1deac656097d4d53bdf56bdab4b61f228"
 
 inherit manpages
 
diff --git a/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb b/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb
index c584b75..12003ff 100644
--- a/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb
+++ b/poky/meta/recipes-extended/minicom/minicom_2.7.1.bb
@@ -29,3 +29,5 @@
 }
 
 RRECOMMENDS_${PN} += "lrzsz"
+
+RDEPENDS_${PN} += "ncurses-terminfo-base"
diff --git a/poky/meta/recipes-extended/msmtp/msmtp_1.8.13.bb b/poky/meta/recipes-extended/msmtp/msmtp_1.8.14.bb
similarity index 91%
rename from poky/meta/recipes-extended/msmtp/msmtp_1.8.13.bb
rename to poky/meta/recipes-extended/msmtp/msmtp_1.8.14.bb
index 994f1c5..3bd5f9e 100644
--- a/poky/meta/recipes-extended/msmtp/msmtp_1.8.13.bb
+++ b/poky/meta/recipes-extended/msmtp/msmtp_1.8.14.bb
@@ -11,7 +11,7 @@
 UPSTREAM_CHECK_URI = "https://marlam.de/msmtp/download/"
 
 SRC_URI = "https://marlam.de/${BPN}/releases/${BP}.tar.xz"
-SRC_URI[sha256sum] = "ada945ab8d519102bb632f197273b3326ded25b38c003b0cf3861d1d6d4a9bb9"
+SRC_URI[sha256sum] = "d56f065d711486e9c234618515a02a48a48dab4051b34f3e108fbecb6fb773b4"
 
 inherit gettext autotools update-alternatives pkgconfig
 
diff --git a/poky/meta/recipes-extended/pam/libpam/0001-Add-support-for-defining-missing-funcitonality.patch b/poky/meta/recipes-extended/pam/libpam/0001-Add-support-for-defining-missing-funcitonality.patch
deleted file mode 100644
index c55b648..0000000
--- a/poky/meta/recipes-extended/pam/libpam/0001-Add-support-for-defining-missing-funcitonality.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 45d1ed58927593968faead7dbb295f3922f41a2f Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Sat, 8 Aug 2015 14:16:43 -0700
-Subject: [PATCH] Add support for defining missing funcitonality
-
-In order to support alternative libc on linux ( musl, bioninc ) etc we
-need to check for glibc-only features and provide alternatives, in this
-list strndupa is first one, when configure detects that its not included
-in system C library then the altrnative implementation from missing.h is
-used
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
-Upstream-Status: Pending
-
- configure.ac                |  3 +++
- libpam/include/missing.h    | 12 ++++++++++++
- modules/pam_exec/pam_exec.c |  1 +
- 3 files changed, 16 insertions(+)
- create mode 100644 libpam/include/missing.h
-
-diff --git a/configure.ac b/configure.ac
-index 9e1257f..cbed979 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -599,6 +599,9 @@ dnl
- AC_CHECK_DECL(__NR_keyctl, [have_key_syscalls=1],[have_key_syscalls=0],[#include <sys/syscall.h>])
- AC_CHECK_DECL(ENOKEY, [have_key_errors=1],[have_key_errors=0],[#include <errno.h>])
- 
-+# musl and bionic don't have strndupa
-+AC_CHECK_DECLS_ONCE([strndupa])
-+
- HAVE_KEY_MANAGEMENT=0
- if test $have_key_syscalls$have_key_errors = 11
- then
-diff --git a/libpam/include/missing.h b/libpam/include/missing.h
-new file mode 100644
-index 0000000..3cf011c
---- /dev/null
-+++ b/libpam/include/missing.h
-@@ -0,0 +1,12 @@
-+#pragma once
-+
-+#if !HAVE_DECL_STRNDUPA
-+#define strndupa(s, n)                                                  \
-+        ({                                                              \
-+                const char *__old = (s);                                \
-+                size_t __len = strnlen(__old, (n));                     \
-+                char *__new = alloca(__len + 1);                        \
-+                __new[__len] = '\0';                                    \
-+                memcpy(__new, __old, __len);                            \
-+         })
-+#endif
-diff --git a/modules/pam_exec/pam_exec.c b/modules/pam_exec/pam_exec.c
-index 17ba6ca..3aa2694 100644
---- a/modules/pam_exec/pam_exec.c
-+++ b/modules/pam_exec/pam_exec.c
-@@ -59,6 +59,7 @@
- #include <security/pam_modutil.h>
- #include <security/pam_ext.h>
- #include <security/_pam_macros.h>
-+#include <missing.h>
- 
- #define ENV_ITEM(n) { (n), #n }
- static struct {
--- 
-2.1.4
-
diff --git a/poky/meta/recipes-extended/pam/libpam/0001-Makefile.am-support-usrmage.patch b/poky/meta/recipes-extended/pam/libpam/0001-Makefile.am-support-usrmage.patch
new file mode 100644
index 0000000..5c6bc92
--- /dev/null
+++ b/poky/meta/recipes-extended/pam/libpam/0001-Makefile.am-support-usrmage.patch
@@ -0,0 +1,28 @@
+From c09e012590c1ec2d3b622b64f1bfc10a2286c9ea Mon Sep 17 00:00:00 2001
+From: Changqing Li <changqing.li@windriver.com>
+Date: Wed, 6 Jan 2021 12:08:20 +0800
+Subject: [PATCH] Makefile.am: support usrmage
+
+Upstream-Status: Inappropriate [oe-specific]
+
+Signed-off-by: Changqing Li <changqing.li@windriver.com>
+---
+ modules/pam_namespace/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/pam_namespace/Makefile.am b/modules/pam_namespace/Makefile.am
+index ddd5fc0..a1f1bec 100644
+--- a/modules/pam_namespace/Makefile.am
++++ b/modules/pam_namespace/Makefile.am
+@@ -18,7 +18,7 @@ TESTS = $(dist_check_SCRIPTS)
+ securelibdir = $(SECUREDIR)
+ secureconfdir = $(SCONFIGDIR)
+ namespaceddir = $(SCONFIGDIR)/namespace.d
+-servicedir = /lib/systemd/system
++servicedir = $(systemd_system_unitdir)
+ 
+ AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \
+         -DSECURECONF_DIR=\"$(SCONFIGDIR)/\" $(WARN_CFLAGS)
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-extended/pam/libpam/0001-modules-pam_namespace-Makefile.am-correctly-install-.patch b/poky/meta/recipes-extended/pam/libpam/0001-modules-pam_namespace-Makefile.am-correctly-install-.patch
new file mode 100644
index 0000000..b41d1e5
--- /dev/null
+++ b/poky/meta/recipes-extended/pam/libpam/0001-modules-pam_namespace-Makefile.am-correctly-install-.patch
@@ -0,0 +1,28 @@
+From e2db4082f6b988f1d5803028e9e47aee5f3519ac Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Sun, 27 Dec 2020 00:30:45 +0100
+Subject: [PATCH] modules/pam_namespace/Makefile.am: correctly install systemd
+ unit file
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ modules/pam_namespace/Makefile.am | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/modules/pam_namespace/Makefile.am b/modules/pam_namespace/Makefile.am
+index 21e1b33..ddd5fc0 100644
+--- a/modules/pam_namespace/Makefile.am
++++ b/modules/pam_namespace/Makefile.am
+@@ -18,7 +18,7 @@ TESTS = $(dist_check_SCRIPTS)
+ securelibdir = $(SECUREDIR)
+ secureconfdir = $(SCONFIGDIR)
+ namespaceddir = $(SCONFIGDIR)/namespace.d
+-servicedir = $(prefix)/lib/systemd/system
++servicedir = /lib/systemd/system
+ 
+ AM_CFLAGS = -I$(top_srcdir)/libpam/include -I$(top_srcdir)/libpamc/include \
+         -DSECURECONF_DIR=\"$(SCONFIGDIR)/\" $(WARN_CFLAGS)
+-- 
+2.24.0
+
diff --git a/poky/meta/recipes-extended/pam/libpam/crypt_configure.patch b/poky/meta/recipes-extended/pam/libpam/crypt_configure.patch
deleted file mode 100644
index 917a8af..0000000
--- a/poky/meta/recipes-extended/pam/libpam/crypt_configure.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From b86575ab4a0df07da160283459da270e1c0372a0 Mon Sep 17 00:00:00 2001
-From: "Maxin B. John" <maxin.john@intel.com>
-Date: Tue, 24 May 2016 14:11:09 +0300
-Subject: [PATCH] crypt_configure
-
-This patch fixes a case where it find crypt defined in libc (musl) but
-not in specified libraries then it ends up assigning
-LIBCRYPT="-l" which then goes into makefile cause all sort of problems
-e.g.
-
-ld: cannot find -l-m32
-| collect2: error: ld returned 1 exit status
-The reason is that -l appears on commandline with
-out any library and compiler treats the next argument as library name
-whatever it is.
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index df39d07..e68d856 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -401,7 +401,7 @@ AS_IF([test "x$ac_cv_header_xcrypt_h" = "xyes"],
-   [crypt_libs="crypt"])
- 
- BACKUP_LIBS=$LIBS
--AC_SEARCH_LIBS([crypt],[$crypt_libs], LIBCRYPT="${ac_lib:+-l$ac_lib}", LIBCRYPT="")
-+AC_SEARCH_LIBS([crypt],[$crypt_libs], [test "$ac_cv_search_crypt" = "none required" || LIBCRYPT="$ac_cv_search_crypt"])
- AC_CHECK_FUNCS(crypt_r crypt_gensalt_r)
- LIBS=$BACKUP_LIBS
- AC_SUBST(LIBCRYPT)
--- 
-2.4.0
-
diff --git a/poky/meta/recipes-extended/pam/libpam/include_paths_header.patch b/poky/meta/recipes-extended/pam/libpam/include_paths_header.patch
deleted file mode 100644
index e4eb956..0000000
--- a/poky/meta/recipes-extended/pam/libpam/include_paths_header.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-This patch adds missing include for paths.h which should provide
-_PATH_LASTLOG definition
-
-Upstream-Status: Pending
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
-Index: Linux-PAM-1.1.6/modules/pam_lastlog/pam_lastlog.c
-===================================================================
---- Linux-PAM-1.1.6.orig/modules/pam_lastlog/pam_lastlog.c
-+++ Linux-PAM-1.1.6/modules/pam_lastlog/pam_lastlog.c
-@@ -23,9 +23,11 @@
- #include <stdarg.h>
- #include <stdio.h>
- #include <string.h>
-+#include <sys/file.h>
- #include <sys/types.h>
- #include <syslog.h>
- #include <unistd.h>
-+#include <paths.h>
- 
- #if defined(hpux) || defined(sunos) || defined(solaris)
- # ifndef _PATH_LASTLOG
-@@ -332,6 +334,23 @@ last_login_read(pam_handle_t *pamh, int
-     return retval;
- }
- 
-+#ifndef __GLIBC__
-+static void logwtmp(const char * line, const char * name, const char * host)
-+{
-+    struct utmp u;
-+    memset(&u, 0, sizeof(u));
-+
-+    u.ut_pid = getpid();
-+    u.ut_type = name[0] ? USER_PROCESS : DEAD_PROCESS;
-+    strncpy(u.ut_line, line, sizeof(u.ut_line));
-+    strncpy(u.ut_name, name, sizeof(u.ut_name));
-+    strncpy(u.ut_host, host, sizeof(u.ut_host));
-+    gettimeofday(&(u.ut_tv), NULL);
-+
-+    updwtmp(_PATH_WTMP, &u);
-+}
-+#endif /* __GLIBC__ */
-+
- static int
- last_login_write(pam_handle_t *pamh, int announce, int last_fd,
- 		 uid_t uid, const char *user)
-Index: Linux-PAM-1.1.6/modules/Makefile.am
-===================================================================
---- Linux-PAM-1.1.6.orig/modules/Makefile.am
-+++ Linux-PAM-1.1.6/modules/Makefile.am
-@@ -7,7 +7,7 @@ SUBDIRS = pam_access pam_cracklib pam_de
- 	pam_group pam_issue pam_keyinit pam_lastlog pam_limits \
- 	pam_listfile pam_localuser pam_loginuid pam_mail \
- 	pam_mkhomedir pam_motd pam_namespace pam_nologin \
--	pam_permit pam_pwhistory pam_rhosts pam_rootok pam_securetty \
-+	pam_permit pam_pwhistory pam_rootok pam_securetty \
- 	pam_selinux pam_sepermit pam_shells pam_stress \
- 	pam_succeed_if pam_tally pam_tally2 pam_time pam_timestamp \
- 	pam_tty_audit pam_umask \
diff --git a/poky/meta/recipes-extended/pam/libpam/pam-security-abstract-securetty-handling.patch b/poky/meta/recipes-extended/pam/libpam/pam-security-abstract-securetty-handling.patch
deleted file mode 100644
index 9b8d4c2..0000000
--- a/poky/meta/recipes-extended/pam/libpam/pam-security-abstract-securetty-handling.patch
+++ /dev/null
@@ -1,203 +0,0 @@
-Description: extract the securetty logic for use with the "nullok_secure" option
- introduced in the "055_pam_unix_nullok_secure" patch.
-
-Upstream-Status: Pending
-
-Signed-off-by: Ming Liu <ming.liu@windriver.com>
-===================================================================
-Index: Linux-PAM-1.3.0/modules/pam_securetty/Makefile.am
-===================================================================
---- Linux-PAM-1.3.0.orig/modules/pam_securetty/Makefile.am
-+++ Linux-PAM-1.3.0/modules/pam_securetty/Makefile.am
-@@ -24,6 +24,10 @@ endif
- securelib_LTLIBRARIES = pam_securetty.la
- pam_securetty_la_LIBADD = $(top_builddir)/libpam/libpam.la
- 
-+pam_securetty_la_SOURCES =	\
-+	pam_securetty.c		\
-+	tty_secure.c
-+
- if ENABLE_REGENERATE_MAN
- noinst_DATA = README
- README: pam_securetty.8.xml
-Index: Linux-PAM-1.3.0/modules/pam_securetty/pam_securetty.c
-===================================================================
---- Linux-PAM-1.3.0.orig/modules/pam_securetty/pam_securetty.c
-+++ Linux-PAM-1.3.0/modules/pam_securetty/pam_securetty.c
-@@ -1,7 +1,5 @@
- /* pam_securetty module */
- 
--#define SECURETTY_FILE "/etc/securetty"
--#define TTY_PREFIX     "/dev/"
- #define CMDLINE_FILE   "/proc/cmdline"
- #define CONSOLEACTIVE_FILE	"/sys/class/tty/console/active"
- 
-@@ -40,6 +38,9 @@
- #include <security/pam_modutil.h>
- #include <security/pam_ext.h>
- 
-+extern int _pammodutil_tty_secure(const pam_handle_t *pamh,
-+                                  const char *uttyname);
-+
- #define PAM_DEBUG_ARG       0x0001
- #define PAM_NOCONSOLE_ARG   0x0002
- 
-@@ -73,11 +74,7 @@ securetty_perform_check (pam_handle_t *p
-     const char *username;
-     const char *uttyname;
-     const void *void_uttyname;
--    char ttyfileline[256];
--    char ptname[256];
--    struct stat ttyfileinfo;
-     struct passwd *user_pwd;
--    FILE *ttyfile;
- 
-     /* log a trail for debugging */
-     if (ctrl & PAM_DEBUG_ARG) {
-@@ -105,50 +102,7 @@ securetty_perform_check (pam_handle_t *p
- 	return PAM_SERVICE_ERR;
-     }
- 
--    /* The PAM_TTY item may be prefixed with "/dev/" - skip that */
--    if (strncmp(TTY_PREFIX, uttyname, sizeof(TTY_PREFIX)-1) == 0) {
--	uttyname += sizeof(TTY_PREFIX)-1;
--    }
--
--    if (stat(SECURETTY_FILE, &ttyfileinfo)) {
--	pam_syslog(pamh, LOG_NOTICE, "Couldn't open %s: %m", SECURETTY_FILE);
--	return PAM_SUCCESS; /* for compatibility with old securetty handling,
--			       this needs to succeed.  But we still log the
--			       error. */
--    }
--
--    if ((ttyfileinfo.st_mode & S_IWOTH) || !S_ISREG(ttyfileinfo.st_mode)) {
--	/* If the file is world writable or is not a
--	   normal file, return error */
--	pam_syslog(pamh, LOG_ERR,
--		   "%s is either world writable or not a normal file",
--		   SECURETTY_FILE);
--	return PAM_AUTH_ERR;
--    }
--
--    ttyfile = fopen(SECURETTY_FILE,"r");
--    if (ttyfile == NULL) { /* Check that we opened it successfully */
--	pam_syslog(pamh, LOG_ERR, "Error opening %s: %m", SECURETTY_FILE);
--	return PAM_SERVICE_ERR;
--    }
--
--    if (isdigit(uttyname[0])) {
--	snprintf(ptname, sizeof(ptname), "pts/%s", uttyname);
--    } else {
--	ptname[0] = '\0';
--    }
--
--    retval = 1;
--
--    while ((fgets(ttyfileline, sizeof(ttyfileline)-1, ttyfile) != NULL)
--	   && retval) {
--	if (ttyfileline[strlen(ttyfileline) - 1] == '\n')
--	    ttyfileline[strlen(ttyfileline) - 1] = '\0';
--
--	retval = ( strcmp(ttyfileline, uttyname)
--		   && (!ptname[0] || strcmp(ptname, uttyname)) );
--    }
--    fclose(ttyfile);
-+    retval = _pammodutil_tty_secure(pamh, uttyname);
- 
-     if (retval && !(ctrl & PAM_NOCONSOLE_ARG)) {
-         FILE *cmdlinefile;
-Index: Linux-PAM-1.3.0/modules/pam_securetty/tty_secure.c
-===================================================================
---- /dev/null
-+++ Linux-PAM-1.3.0/modules/pam_securetty/tty_secure.c
-@@ -0,0 +1,90 @@
-+/*
-+ * A function to determine if a particular line is in /etc/securetty
-+ */
-+
-+
-+#define SECURETTY_FILE "/etc/securetty"
-+#define TTY_PREFIX     "/dev/"
-+
-+/* This function taken out of pam_securetty by Sam Hartman
-+ * <hartmans@debian.org>*/
-+/*
-+ * by Elliot Lee <sopwith@redhat.com>, Red Hat Software.
-+ * July 25, 1996.
-+ * Slight modifications AGM. 1996/12/3
-+ */
-+
-+#include <unistd.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
-+#include <security/pam_modules.h>
-+#include <stdarg.h>
-+#include <syslog.h>
-+#include <sys/syslog.h>
-+#include <stdio.h>
-+#include <string.h>
-+#include <stdlib.h>
-+#include <ctype.h>
-+#include <security/pam_modutil.h>
-+#include <security/pam_ext.h>
-+
-+extern int _pammodutil_tty_secure(const pam_handle_t *pamh,
-+                                  const char *uttyname);
-+
-+int _pammodutil_tty_secure(const pam_handle_t *pamh, const char *uttyname)
-+{
-+    int retval = PAM_AUTH_ERR;
-+    char ttyfileline[256];
-+    char ptname[256];
-+    struct stat ttyfileinfo;
-+    FILE *ttyfile;
-+    /* The PAM_TTY item may be prefixed with "/dev/" - skip that */
-+    if (strncmp(TTY_PREFIX, uttyname, sizeof(TTY_PREFIX)-1) == 0)
-+	uttyname += sizeof(TTY_PREFIX)-1;
-+
-+    if (stat(SECURETTY_FILE, &ttyfileinfo)) {
-+	pam_syslog(pamh, LOG_NOTICE, "Couldn't open %s: %m",
-+	           SECURETTY_FILE);
-+	return PAM_SUCCESS; /* for compatibility with old securetty handling,
-+			       this needs to succeed.  But we still log the
-+			       error. */
-+    }
-+
-+    if ((ttyfileinfo.st_mode & S_IWOTH) || !S_ISREG(ttyfileinfo.st_mode)) {
-+	/* If the file is world writable or is not a
-+	   normal file, return error */
-+	pam_syslog(pamh, LOG_ERR,
-+	           "%s is either world writable or not a normal file",
-+	           SECURETTY_FILE);
-+	return PAM_AUTH_ERR;
-+    }
-+
-+    ttyfile = fopen(SECURETTY_FILE,"r");
-+    if(ttyfile == NULL) { /* Check that we opened it successfully */
-+	pam_syslog(pamh, LOG_ERR, "Error opening %s: %m", SECURETTY_FILE);
-+	return PAM_SERVICE_ERR;
-+    }
-+
-+    if (isdigit(uttyname[0])) {
-+	snprintf(ptname, sizeof(ptname), "pts/%s", uttyname);
-+    } else {
-+	ptname[0] = '\0';
-+    }
-+
-+    retval = 1;
-+
-+    while ((fgets(ttyfileline,sizeof(ttyfileline)-1, ttyfile) != NULL) 
-+	   && retval) {
-+	if(ttyfileline[strlen(ttyfileline) - 1] == '\n')
-+	    ttyfileline[strlen(ttyfileline) - 1] = '\0';
-+	retval = ( strcmp(ttyfileline,uttyname)
-+	           && (!ptname[0] || strcmp(ptname, uttyname)) );
-+    }
-+    fclose(ttyfile);
-+
-+    if(retval) {
-+	retval = PAM_AUTH_ERR;
-+    }
-+
-+    return retval;
-+}
diff --git a/poky/meta/recipes-extended/pam/libpam/pam-unix-nullok-secure.patch b/poky/meta/recipes-extended/pam/libpam/pam-unix-nullok-secure.patch
deleted file mode 100644
index d2cc668..0000000
--- a/poky/meta/recipes-extended/pam/libpam/pam-unix-nullok-secure.patch
+++ /dev/null
@@ -1,195 +0,0 @@
-From b6545b83f94c5fb7aec1478b8d458a1393f479c8 Mon Sep 17 00:00:00 2001
-From: "Maxin B. John" <maxin.john@intel.com>
-Date: Wed, 25 May 2016 14:12:25 +0300
-Subject: [PATCH] pam_unix: support 'nullok_secure' option
-
-Debian patch to add a new 'nullok_secure' option to pam_unix,
-which accepts users with null passwords only when the applicant is
-connected from a tty listed in /etc/securetty.
-
-Authors: Sam Hartman <hartmans@debian.org>,
-         Steve Langasek <vorlon@debian.org>
-
-Upstream-Status: Pending
-
-Signed-off-by: Ming Liu <ming.liu@windriver.com>
-Signed-off-by: Amarnath Valluri <amarnath.valluri@intel.com>
-Signed-off-by: Maxin B. John <maxin.john@intel.com>
----
- modules/pam_unix/Makefile.am    |  3 ++-
- modules/pam_unix/pam_unix.8.xml | 19 ++++++++++++++++++-
- modules/pam_unix/support.c      | 40 +++++++++++++++++++++++++++++++++++-----
- modules/pam_unix/support.h      |  8 ++++++--
- 4 files changed, 61 insertions(+), 9 deletions(-)
-
-diff --git a/modules/pam_unix/Makefile.am b/modules/pam_unix/Makefile.am
-index 56df178..2bba460 100644
---- a/modules/pam_unix/Makefile.am
-+++ b/modules/pam_unix/Makefile.am
-@@ -30,7 +30,8 @@ if HAVE_VERSIONING
-   pam_unix_la_LDFLAGS += -Wl,--version-script=$(srcdir)/../modules.map
- endif
- pam_unix_la_LIBADD = $(top_builddir)/libpam/libpam.la \
--	@LIBCRYPT@ @LIBSELINUX@ @TIRPC_LIBS@ @NSL_LIBS@
-+	@LIBCRYPT@ @LIBSELINUX@ @TIRPC_LIBS@ @NSL_LIBS@ \
-+	../pam_securetty/tty_secure.lo
- 
- securelib_LTLIBRARIES = pam_unix.la
- 
-diff --git a/modules/pam_unix/pam_unix.8.xml b/modules/pam_unix/pam_unix.8.xml
-index 1b318f1..be0330e 100644
---- a/modules/pam_unix/pam_unix.8.xml
-+++ b/modules/pam_unix/pam_unix.8.xml
-@@ -159,7 +159,24 @@
-           <para>
-             The default action of this module is to not permit the
-             user access to a service if their official password is blank.
--            The <option>nullok</option> argument overrides this default.
-+            The <option>nullok</option> argument overrides this default
-+            and allows any user with a blank password to access the
-+            service.
-+          </para>
-+        </listitem>
-+      </varlistentry>
-+      <varlistentry>
-+        <term>
-+          <option>nullok_secure</option>
-+        </term>
-+        <listitem>
-+          <para>
-+            The default action of this module is to not permit the
-+            user access to a service if their official password is blank.
-+            The <option>nullok_secure</option> argument overrides this
-+            default and allows any user with a blank password to access
-+            the service as long as the value of PAM_TTY is set to one of
-+            the values found in /etc/securetty.
-           </para>
-         </listitem>
-       </varlistentry>
-diff --git a/modules/pam_unix/support.c b/modules/pam_unix/support.c
-index fc8595e..29e3341 100644
---- a/modules/pam_unix/support.c
-+++ b/modules/pam_unix/support.c
-@@ -183,13 +183,22 @@ int _set_ctrl(pam_handle_t *pamh, int flags, int *remember, int *rounds,
- 	/* now parse the arguments to this module */
- 
- 	for (; argc-- > 0; ++argv) {
-+		int sl;
- 
- 		D(("pam_unix arg: %s", *argv));
- 
- 		for (j = 0; j < UNIX_CTRLS_; ++j) {
--			if (unix_args[j].token
--			    && !strncmp(*argv, unix_args[j].token, strlen(unix_args[j].token))) {
--				break;
-+			if (unix_args[j].token) {
-+				sl = strlen(unix_args[j].token);
-+				if (unix_args[j].token[sl-1] == '=') {
-+					/* exclude argument from comparison */
-+					if (!strncmp(*argv, unix_args[j].token, sl))
-+						break;
-+				} else {
-+				/* compare full strings */
-+					if (!strcmp(*argv, unix_args[j].token))
-+						break;
-+				}
- 			}
- 		}
- 
-@@ -560,6 +569,7 @@ static int _unix_run_helper_binary(pam_handle_t *pamh, const char *passwd,
-     if (child == 0) {
- 	static char *envp[] = { NULL };
- 	const char *args[] = { NULL, NULL, NULL, NULL };
-+	int nullok = off(UNIX__NONULL, ctrl);
- 
- 	/* XXX - should really tidy up PAM here too */
- 
-@@ -587,7 +597,16 @@ static int _unix_run_helper_binary(pam_handle_t *pamh, const char *passwd,
- 	/* exec binary helper */
- 	args[0] = CHKPWD_HELPER;
- 	args[1] = user;
--	if (off(UNIX__NONULL, ctrl)) {	/* this means we've succeeded */
-+	if (on(UNIX_NULLOK_SECURE, ctrl)) {
-+		const void *uttyname;
-+		retval = pam_get_item(pamh, PAM_TTY, &uttyname);
-+		if (retval != PAM_SUCCESS || uttyname == NULL
-+			|| _pammodutil_tty_secure(pamh, (const char *)uttyname) != PAM_SUCCESS) {
-+			nullok = 0;
-+		}
-+	}
-+
-+	if (nullok) {
- 	  args[2]="nullok";
- 	} else {
- 	  args[2]="nonull";
-@@ -672,6 +691,17 @@ _unix_blankpasswd (pam_handle_t *pamh, unsigned int ctrl, const char *name)
- 	if (on(UNIX__NONULL, ctrl))
- 		return 0;	/* will fail but don't let on yet */
- 
-+	if (on(UNIX_NULLOK_SECURE, ctrl)) {
-+		int retval2;
-+		const void *uttyname;
-+		retval2 = pam_get_item(pamh, PAM_TTY, &uttyname);
-+		if (retval2 != PAM_SUCCESS || uttyname == NULL)
-+			return 0;
-+
-+		if (_pammodutil_tty_secure(pamh, (const char *)uttyname) != PAM_SUCCESS)
-+			return 0;
-+	}
-+
- 	/* UNIX passwords area */
- 
- 	retval = get_pwd_hash(pamh, name, &pwd, &salt);
-@@ -758,7 +788,7 @@ int _unix_verify_password(pam_handle_t * pamh, const char *name
- 			}
- 		}
- 	} else {
--		retval = verify_pwd_hash(p, salt, off(UNIX__NONULL, ctrl));
-+		retval = verify_pwd_hash(p, salt, _unix_blankpasswd(pamh, ctrl, name));
- 	}
- 
- 	if (retval == PAM_SUCCESS) {
-diff --git a/modules/pam_unix/support.h b/modules/pam_unix/support.h
-index b4c279c..8da4a8e 100644
---- a/modules/pam_unix/support.h
-+++ b/modules/pam_unix/support.h
-@@ -98,8 +98,9 @@ typedef struct {
- #define UNIX_QUIET		 28	/* Don't print informational messages */
- #define UNIX_NO_PASS_EXPIRY      29     /* Don't check for password expiration if not used for authentication */
- #define UNIX_DES                 30     /* DES, default */
-+#define UNIX_NULLOK_SECURE       31     /* NULL passwords allowed only on secure ttys */
- /* -------------- */
--#define UNIX_CTRLS_              31	/* number of ctrl arguments defined */
-+#define UNIX_CTRLS_              32	/* number of ctrl arguments defined */
- 
- #define UNIX_DES_CRYPT(ctrl)	(off(UNIX_MD5_PASS,ctrl)&&off(UNIX_BIGCRYPT,ctrl)&&off(UNIX_SHA256_PASS,ctrl)&&off(UNIX_SHA512_PASS,ctrl)&&off(UNIX_BLOWFISH_PASS,ctrl))
- 
-@@ -117,7 +118,7 @@ static const UNIX_Ctrls unix_args[UNIX_CTRLS_] =
- /* UNIX_AUTHTOK_TYPE */    {"authtok_type=",   _ALL_ON_,                0100, 0},
- /* UNIX__PRELIM */         {NULL,              _ALL_ON_^(0600),         0200, 0},
- /* UNIX__UPDATE */         {NULL,              _ALL_ON_^(0600),         0400, 0},
--/* UNIX__NONULL */         {NULL,              _ALL_ON_,               01000, 0},
-+/* UNIX__NONULL */         {NULL,              _ALL_ON_^(02000000000), 01000, 0},
- /* UNIX__QUIET */          {NULL,              _ALL_ON_,               02000, 0},
- /* UNIX_USE_AUTHTOK */     {"use_authtok",     _ALL_ON_,               04000, 0},
- /* UNIX_SHADOW */          {"shadow",          _ALL_ON_,              010000, 0},
-@@ -139,6 +140,7 @@ static const UNIX_Ctrls unix_args[UNIX_CTRLS_] =
- /* UNIX_QUIET */           {"quiet",           _ALL_ON_,         01000000000, 0},
- /* UNIX_NO_PASS_EXPIRY */  {"no_pass_expiry",  _ALL_ON_,         02000000000, 0},
- /* UNIX_DES */             {"des",             _ALL_ON_^(0260420000),      0, 1},
-+/* UNIX_NULLOK_SECURE */   {"nullok_secure",   _ALL_ON_^(01000), 02000000000, 0},
- };
- 
- #define UNIX_DEFAULTS  (unix_args[UNIX__NONULL].flag)
-@@ -172,6 +174,8 @@ extern int _unix_read_password(pam_handle_t * pamh
- 			,const char *data_name
- 			,const void **pass);
- 
-+extern int _pammodutil_tty_secure(const pam_handle_t *pamh, const char *uttyname);
-+
- extern int _unix_run_verify_binary(pam_handle_t *pamh,
- 			unsigned int ctrl, const char *user, int *daysleft);
- #endif /* _PAM_UNIX_SUPPORT_H */
--- 
-2.4.0
-
diff --git a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb b/poky/meta/recipes-extended/pam/libpam_1.5.1.bb
similarity index 90%
rename from poky/meta/recipes-extended/pam/libpam_1.3.1.bb
rename to poky/meta/recipes-extended/pam/libpam_1.5.1.bb
index bc72afe..8c008a9 100644
--- a/poky/meta/recipes-extended/pam/libpam_1.3.1.bb
+++ b/poky/meta/recipes-extended/pam/libpam_1.5.1.bb
@@ -21,17 +21,11 @@
            file://pam.d/common-session-noninteractive \
            file://pam.d/other \
            file://libpam-xtests.patch \
-           file://pam-security-abstract-securetty-handling.patch \
-           file://pam-unix-nullok-secure.patch \
-           file://crypt_configure.patch \
-          "
+           file://0001-modules-pam_namespace-Makefile.am-correctly-install-.patch \
+           file://0001-Makefile.am-support-usrmage.patch \
+           "
 
-SRC_URI[md5sum] = "558ff53b0fc0563ca97f79e911822165"
-SRC_URI[sha256sum] = "eff47a4ecd833fbf18de9686632a70ee8d0794b79aecb217ebd0ce11db4cd0db"
-
-SRC_URI_append_libc-musl = " file://0001-Add-support-for-defining-missing-funcitonality.patch \
-                             file://include_paths_header.patch \
-                           "
+SRC_URI[sha256sum] = "201d40730b1135b1b3cdea09f2c28ac634d73181ccd0172ceddee3649c5792fc"
 
 DEPENDS = "bison-native flex flex-native cracklib libxml2-native virtual/crypt"
 
@@ -39,13 +33,14 @@
                 --libdir=${base_libdir} \
                 --disable-nis \
                 --disable-regenerate-docu \
+                --disable-doc \
 		--disable-prelude"
 
 CFLAGS_append = " -fPIC "
 
 S = "${WORKDIR}/Linux-PAM-${PV}"
 
-inherit autotools gettext pkgconfig
+inherit autotools gettext pkgconfig systemd
 
 PACKAGECONFIG ??= ""
 PACKAGECONFIG[audit] = "--enable-audit,--disable-audit,audit,"
@@ -54,7 +49,7 @@
 PACKAGES += "${PN}-runtime ${PN}-xtests"
 FILES_${PN} = "${base_libdir}/lib*${SOLIBS}"
 FILES_${PN}-dev += "${base_libdir}/security/*.la ${base_libdir}/*.la ${base_libdir}/lib*${SOLIBSDEV}"
-FILES_${PN}-runtime = "${sysconfdir}"
+FILES_${PN}-runtime = "${sysconfdir} ${sbindir} ${systemd_system_unitdir}"
 FILES_${PN}-xtests = "${datadir}/Linux-PAM/xtests"
 
 PACKAGES_DYNAMIC += "^${MLPREFIX}pam-plugin-.*"
@@ -77,11 +72,10 @@
 RDEPENDS_${PN}-xtests = "${PN}-${libpam_suffix} \
     ${MLPREFIX}pam-plugin-access-${libpam_suffix} \
     ${MLPREFIX}pam-plugin-debug-${libpam_suffix} \
-    ${MLPREFIX}pam-plugin-cracklib-${libpam_suffix} \
     ${MLPREFIX}pam-plugin-pwhistory-${libpam_suffix} \
     ${MLPREFIX}pam-plugin-succeed-if-${libpam_suffix} \
     ${MLPREFIX}pam-plugin-time-${libpam_suffix} \
-    coreutils"
+    bash coreutils"
 
 # FIXME: Native suffix breaks here, disable it for now
 RRECOMMENDS_${PN} = "${PN}-runtime-${libpam_suffix}"
diff --git a/poky/meta/recipes-extended/parted/parted_3.3.bb b/poky/meta/recipes-extended/parted/parted_3.3.bb
index a1fd3ef..ce40c04 100644
--- a/poky/meta/recipes-extended/parted/parted_3.3.bb
+++ b/poky/meta/recipes-extended/parted/parted_3.3.bb
@@ -3,7 +3,7 @@
 LICENSE = "GPLv3+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=2f31b266d3440dd7ee50f92cf67d8e6c"
 SECTION = "console/tools"
-DEPENDS = "ncurses readline util-linux virtual/libiconv"
+DEPENDS = "ncurses util-linux virtual/libiconv"
 
 SRC_URI = "${GNU_MIRROR}/parted/parted-${PV}.tar.xz \
            file://no_check.patch \
@@ -22,6 +22,9 @@
 
 inherit autotools pkgconfig gettext texinfo ptest
 
+PACKAGECONFIG ?= "readline"
+PACKAGECONFIG[readline] = "--with-readline,--without-readline,readline"
+
 BBCLASSEXTEND = "native nativesdk"
 
 do_compile_ptest() {
diff --git a/poky/meta/recipes-extended/sed/sed_4.8.bb b/poky/meta/recipes-extended/sed/sed_4.8.bb
index 39e3a61..048db47 100644
--- a/poky/meta/recipes-extended/sed/sed_4.8.bb
+++ b/poky/meta/recipes-extended/sed/sed_4.8.bb
@@ -63,3 +63,5 @@
 }
 
 RPROVIDES_${PN} += "${@bb.utils.contains('DISTRO_FEATURES', 'usrmerge', '/bin/sed', '', d)}"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-extended/shadow/shadow.inc b/poky/meta/recipes-extended/shadow/shadow.inc
index f86e5e0..4ae7a78 100644
--- a/poky/meta/recipes-extended/shadow/shadow.inc
+++ b/poky/meta/recipes-extended/shadow/shadow.inc
@@ -71,6 +71,8 @@
                pam-plugin-shells \
                pam-plugin-rootok"
 
+PAM_PLUGINS_remove_libc-musl = "pam-plugin-lastlog"
+
 PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pam', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)}"
 PACKAGECONFIG_class-native ??= "${@bb.utils.contains('DISTRO_FEATURES', 'xattr', 'attr', '', d)}"
diff --git a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.24.bb b/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.00.bb
similarity index 89%
rename from poky/meta/recipes-extended/stress-ng/stress-ng_0.11.24.bb
rename to poky/meta/recipes-extended/stress-ng/stress-ng_0.12.00.bb
index 3516c15..3b38b39 100644
--- a/poky/meta/recipes-extended/stress-ng/stress-ng_0.11.24.bb
+++ b/poky/meta/recipes-extended/stress-ng/stress-ng_0.12.00.bb
@@ -9,7 +9,7 @@
            file://0001-Do-not-preserve-ownership-when-installing-example-jo.patch \
            file://no_daddr_t.patch \
            "
-SRC_URI[sha256sum] = "5b3a724a85eed48743dedf37eab851b617ecf921b7fff427c6d0bbf405534671"
+SRC_URI[sha256sum] = "b2b738f574671926654b1623103a7aa58ee6911894ac78760ee188c4bfa96fe2"
 
 DEPENDS = "coreutils-native"
 
diff --git a/poky/meta/recipes-extended/sudo/sudo_1.9.3p1.bb b/poky/meta/recipes-extended/sudo/sudo_1.9.4p1.bb
similarity index 95%
rename from poky/meta/recipes-extended/sudo/sudo_1.9.3p1.bb
rename to poky/meta/recipes-extended/sudo/sudo_1.9.4p1.bb
index ba61a7f..040130b 100644
--- a/poky/meta/recipes-extended/sudo/sudo_1.9.3p1.bb
+++ b/poky/meta/recipes-extended/sudo/sudo_1.9.4p1.bb
@@ -7,7 +7,7 @@
 
 PAM_SRC_URI = "file://sudo.pam"
 
-SRC_URI[sha256sum] = "dcb9de53e45e1c39042074b847f5e0d8ae1890725dd6a9d9101a81569e6eb49e"
+SRC_URI[sha256sum] = "1172099dfcdd2fa497e13a3c274a9f5920abd36ae7d2f7aaacd6bc6bc92fd677"
 
 DEPENDS += " virtual/crypt ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'libpam', '', d)}"
 RDEPENDS_${PN} += " ${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam-plugin-limits pam-plugin-keyinit', '', d)}"
diff --git a/poky/meta/recipes-extended/timezone/timezone.inc b/poky/meta/recipes-extended/timezone/timezone.inc
index 5368464..9a19093 100644
--- a/poky/meta/recipes-extended/timezone/timezone.inc
+++ b/poky/meta/recipes-extended/timezone/timezone.inc
@@ -6,7 +6,7 @@
 LICENSE = "PD & BSD & BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=c679c9d6b02bc2757b3eaf8f53c43fba"
 
-PV = "2020d"
+PV = "2020f"
 
 SRC_URI =" http://www.iana.org/time-zones/repository/releases/tzcode${PV}.tar.gz;name=tzcode \
            http://www.iana.org/time-zones/repository/releases/tzdata${PV}.tar.gz;name=tzdata \
@@ -14,5 +14,5 @@
 
 UPSTREAM_CHECK_URI = "http://www.iana.org/time-zones"
 
-SRC_URI[tzcode.sha256sum] = "6cf050ba28e8053029d3f32d71341d11a794c6b5dd51a77fc769d6dae364fad5"
-SRC_URI[tzdata.sha256sum] = "8d813957de363387696f05af8a8889afa282ab5016a764c701a20758d39cbaf3"
+SRC_URI[tzcode.sha256sum] = "cfeeea2a7745164f64bd9f6d76e47916f4ac820c4434493674adbbd4324329c5"
+SRC_URI[tzdata.sha256sum] = "121131918c3ae6dc5d40f0eb87563a2be920b71a76e2392c09519a5e4a666881"
diff --git a/poky/meta/recipes-extended/which/which_2.21.bb b/poky/meta/recipes-extended/which/which_2.21.bb
index fc91850..1da69c5 100644
--- a/poky/meta/recipes-extended/which/which_2.21.bb
+++ b/poky/meta/recipes-extended/which/which_2.21.bb
@@ -33,3 +33,5 @@
 
 ALTERNATIVE_${PN}-doc = "which.1"
 ALTERNATIVE_LINK_NAME[which.1] = "${mandir}/man1/which.1"
+
+BBCLASSEXTEND = "nativesdk"
diff --git a/poky/meta/recipes-extended/zstd/zstd/0001-Makefile-sort-all-wildcard-file-list-expansions.patch b/poky/meta/recipes-extended/zstd/zstd/0001-Makefile-sort-all-wildcard-file-list-expansions.patch
new file mode 100644
index 0000000..178124a
--- /dev/null
+++ b/poky/meta/recipes-extended/zstd/zstd/0001-Makefile-sort-all-wildcard-file-list-expansions.patch
@@ -0,0 +1,80 @@
+From 8d01b0753162681dcdbb7cf56f1e393c261e3eb0 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex.kanavin@gmail.com>
+Date: Wed, 23 Dec 2020 19:14:32 +0100
+Subject: [PATCH] Makefile: sort all wildcard file list expansions
+
+Otherwise the order is non-deterministic and breaks
+reproducible builds.
+
+Upstream-Status: Pending
+Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
+---
+ programs/Makefile   | 10 +++++-----
+ tests/Makefile      |  4 ++--
+ tests/fuzz/Makefile |  2 +-
+ 3 files changed, 8 insertions(+), 8 deletions(-)
+
+diff --git a/programs/Makefile b/programs/Makefile
+index 8641d0ee..26fee45f 100644
+--- a/programs/Makefile
++++ b/programs/Makefile
+@@ -72,11 +72,11 @@ ZSTDLEGACY_DIR := $(ZSTDDIR)/legacy
+ 
+ vpath %.c $(ZSTDLIB_COMMON) $(ZSTDLIB_COMPRESS) $(ZSTDLIB_DECOMPRESS) $(ZDICT_DIR) $(ZSTDLEGACY_DIR)
+ 
+-ZSTDLIB_COMMON_C := $(wildcard $(ZSTDLIB_COMMON)/*.c)
+-ZSTDLIB_COMPRESS_C := $(wildcard $(ZSTDLIB_COMPRESS)/*.c)
+-ZSTDLIB_DECOMPRESS_C := $(wildcard $(ZSTDLIB_DECOMPRESS)/*.c)
++ZSTDLIB_COMMON_C := $(sort $(wildcard $(ZSTDLIB_COMMON)/*.c))
++ZSTDLIB_COMPRESS_C := $(sort $(wildcard $(ZSTDLIB_COMPRESS)/*.c))
++ZSTDLIB_DECOMPRESS_C := $(sort $(wildcard $(ZSTDLIB_DECOMPRESS)/*.c))
+ ZSTDLIB_CORE_SRC := $(ZSTDLIB_DECOMPRESS_C) $(ZSTDLIB_COMMON_C) $(ZSTDLIB_COMPRESS_C)
+-ZDICT_SRC := $(wildcard $(ZDICT_DIR)/*.c)
++ZDICT_SRC := $(sort $(wildcard $(ZDICT_DIR)/*.c))
+ 
+ ZSTD_LEGACY_SUPPORT ?= 5
+ ZSTDLEGACY_SRC :=
+@@ -91,7 +91,7 @@ ZSTDLIB_FULL_SRC = $(sort $(ZSTDLIB_CORE_SRC) $(ZSTDLEGACY_SRC) $(ZDICT_SRC))
+ ZSTDLIB_LOCAL_SRC := $(notdir $(ZSTDLIB_FULL_SRC))
+ ZSTDLIB_LOCAL_OBJ := $(ZSTDLIB_LOCAL_SRC:.c=.o)
+ 
+-ZSTD_CLI_SRC := $(wildcard *.c)
++ZSTD_CLI_SRC := $(sort $(wildcard *.c))
+ ZSTD_CLI_OBJ := $(ZSTD_CLI_SRC:.c=.o)
+ 
+ ZSTD_ALL_SRC := $(ZSTDLIB_LOCAL_SRC) $(ZSTD_CLI_SRC)
+diff --git a/tests/Makefile b/tests/Makefile
+index 42bc353c..5f5654f0 100644
+--- a/tests/Makefile
++++ b/tests/Makefile
+@@ -49,7 +49,7 @@ ZSTD_FILES  := $(ZSTDDECOMP_FILES) $(ZSTDCOMMON_FILES) $(ZSTDCOMP_FILES)
+ ZBUFF_FILES := $(ZSTDDIR)/deprecated/*.c
+ ZDICT_FILES := $(ZSTDDIR)/dictBuilder/*.c
+ 
+-ZSTD_F1 := $(wildcard $(ZSTD_FILES))
++ZSTD_F1 := $(sort $(wildcard $(ZSTD_FILES)))
+ ZSTD_OBJ1 := $(subst $(ZSTDDIR)/common/,zstdm_,$(ZSTD_F1))
+ ZSTD_OBJ2 := $(subst $(ZSTDDIR)/compress/,zstdc_,$(ZSTD_OBJ1))
+ ZSTD_OBJ3 := $(subst $(ZSTDDIR)/decompress/,zstdd_,$(ZSTD_OBJ2))
+@@ -212,7 +212,7 @@ bigdict: $(ZSTDMT_OBJECTS) $(PRGDIR)/datagen.c bigdict.c
+ invalidDictionaries : $(ZSTD_OBJECTS) invalidDictionaries.c
+ 
+ legacy : CPPFLAGS += -I$(ZSTDDIR)/legacy -DZSTD_LEGACY_SUPPORT=4
+-legacy : $(ZSTD_FILES) $(wildcard $(ZSTDDIR)/legacy/*.c) legacy.c
++legacy : $(ZSTD_FILES) $(sort $(wildcard $(ZSTDDIR)/legacy/*.c)) legacy.c
+ 
+ decodecorpus : LDLIBS += -lm
+ decodecorpus : $(filter-out zstdc_zstd_compress.o, $(ZSTD_OBJECTS)) $(ZDICT_FILES) $(PRGDIR)/util.c $(PRGDIR)/timefn.c decodecorpus.c
+diff --git a/tests/fuzz/Makefile b/tests/fuzz/Makefile
+index 36232a8c..574fe877 100644
+--- a/tests/fuzz/Makefile
++++ b/tests/fuzz/Makefile
+@@ -58,7 +58,7 @@ FUZZ_SRC       := \
+ 	$(ZSTDCOMP_SRC) \
+ 	$(ZSTDDICT_SRC) \
+ 	$(ZSTDLEGACY_SRC)
+-FUZZ_SRC := $(wildcard $(FUZZ_SRC))
++FUZZ_SRC := $(sort $(wildcard $(FUZZ_SRC)))
+ 
+ FUZZ_D_OBJ1 := $(subst $(ZSTDDIR)/common/,d_lib_common_,$(FUZZ_SRC))
+ FUZZ_D_OBJ2 := $(subst $(ZSTDDIR)/compress/,d_lib_compress_,$(FUZZ_D_OBJ1))
diff --git a/poky/meta/recipes-extended/zstd/zstd_1.4.8.bb b/poky/meta/recipes-extended/zstd/zstd_1.4.8.bb
new file mode 100644
index 0000000..10a6334
--- /dev/null
+++ b/poky/meta/recipes-extended/zstd/zstd_1.4.8.bb
@@ -0,0 +1,37 @@
+SUMMARY = "Zstandard - Fast real-time compression algorithm"
+DESCRIPTION = "Zstandard is a fast lossless compression algorithm, targeting \
+real-time compression scenarios at zlib-level and better compression ratios. \
+It's backed by a very fast entropy stage, provided by Huff0 and FSE library."
+HOMEPAGE = "http://www.zstd.net/"
+SECTION = "console/utils"
+
+LICENSE = "BSD-3-Clause & GPLv2"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=c7f0b161edbe52f5f345a3d1311d0b32 \
+                    file://COPYING;md5=39bba7d2cf0ba1036f2a6e2be52fe3f0"
+
+SRC_URI = "git://github.com/facebook/zstd.git;branch=release \
+           file://0001-Makefile-sort-all-wildcard-file-list-expansions.patch \
+           "
+
+SRCREV = "97a3da1df009d4dc67251de0c4b1c9d7fe286fc1"
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/git"
+
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[lz4] = "HAVE_LZ4=1,HAVE_LZ4=0,lz4"
+PACKAGECONFIG[lzma] = "HAVE_LZMA=1,HAVE_LZMA=0,xz"
+PACKAGECONFIG[zlib] = "HAVE_ZLIB=1,HAVE_ZLIB=0,zlib"
+
+# See programs/README.md for how to use this
+ZSTD_LEGACY_SUPPORT ??= "4"
+
+do_compile () {
+    oe_runmake ${PACKAGECONFIG_CONFARGS} ZSTD_LEGACY_SUPPORT=${ZSTD_LEGACY_SUPPORT}
+}
+
+do_install () {
+    oe_runmake install 'DESTDIR=${D}'
+}
+
+BBCLASSEXTEND = "native nativesdk"
diff --git a/poky/meta/recipes-gnome/epiphany/epiphany_3.38.1.bb b/poky/meta/recipes-gnome/epiphany/epiphany_3.38.2.bb
similarity index 90%
rename from poky/meta/recipes-gnome/epiphany/epiphany_3.38.1.bb
rename to poky/meta/recipes-gnome/epiphany/epiphany_3.38.2.bb
index f9daa8b..70148c9 100644
--- a/poky/meta/recipes-gnome/epiphany/epiphany_3.38.1.bb
+++ b/poky/meta/recipes-gnome/epiphany/epiphany_3.38.2.bb
@@ -14,7 +14,7 @@
 SRC_URI = "${GNOME_MIRROR}/${GNOMEBN}/${@gnome_verdir("${PV}")}/${GNOMEBN}-${PV}.tar.${GNOME_COMPRESS_TYPE};name=archive \
            file://0002-help-meson.build-disable-the-use-of-yelp.patch \
            "
-SRC_URI[archive.sha256sum] = "59b7576acb11fbb52eaca6dbf6fce28664de5c915ca2580c47f0b08ba83d2843"
+SRC_URI[archive.sha256sum] = "8b05f2bcc1e80ecf4a10f6f01b3285087eb4cbdf5741dffb8c0355715ef5116d"
 
 FILES_${PN} += "${datadir}/dbus-1 ${datadir}/gnome-shell/search-providers ${datadir}/metainfo"
 RDEPENDS_${PN} = "iso-codes adwaita-icon-theme gsettings-desktop-schemas"
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2020-29385.patch b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2020-29385.patch
new file mode 100644
index 0000000..3fef2bc
--- /dev/null
+++ b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf/CVE-2020-29385.patch
@@ -0,0 +1,55 @@
+From bdd3acbd48a575d418ba6bf1b32d7bda2fae1c81 Mon Sep 17 00:00:00 2001
+From: Robert Ancell <robert.ancell@canonical.com>
+Date: Mon, 30 Nov 2020 12:26:12 +1300
+Subject: [PATCH 02/13] gif: Fix LZW decoder accepting invalid LZW code.
+
+The code value after a reset wasn't being validated, which means we would
+accept invalid codes. This could cause an infinite loop in the decoder.
+
+Fixes CVE-2020-29385
+
+Fixes https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/issues/164
+
+Upstream-Status: Backport [https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/commit/bdd3acbd48a575d418ba6bf1b32d7bda2fae1c81]
+CVE: CVE-2020-29385
+Signed-off-by: Chee Yang Lee <chee.yang.lee@intel.com>
+
+---
+ gdk-pixbuf/lzw.c                    |  13 +++++++------
+ 1 files changed, 7 insertions(+), 6 deletions(-)
+ create mode 100644 tests/test-images/fail/hang_114.gif
+
+diff --git a/gdk-pixbuf/lzw.c b/gdk-pixbuf/lzw.c
+index 9e052a6f7..105daf2b1 100644
+--- a/gdk-pixbuf/lzw.c
++++ b/gdk-pixbuf/lzw.c
+@@ -195,19 +195,20 @@ lzw_decoder_feed (LZWDecoder *self,
+                                 if (self->last_code != self->clear_code && self->code_table_size < MAX_CODES) {
+                                         if (self->code < self->code_table_size)
+                                                 add_code (self, self->code);
+-                                        else if (self->code == self->code_table_size)
++                                        else
+                                                 add_code (self, self->last_code);
+-                                        else {
+-                                                /* Invalid code received - just stop here */
+-                                                self->last_code = self->eoi_code;
+-                                                return output_length;
+-                                        }
+ 
+                                         /* When table is full increase code size */
+                                         if (self->code_table_size == (1 << self->code_size) && self->code_size < LZW_CODE_MAX)
+                                                 self->code_size++;
+                                 }
+ 
++                                /* Invalid code received - just stop here */
++                                if (self->code >= self->code_table_size) {
++                                        self->last_code = self->eoi_code;
++                                        return output_length;
++                                }
++
+                                 /* Convert codeword into indexes */
+                                 n_written += write_indexes (self, output + n_written, output_length - n_written);
+                         }
+-- 
+2.25.1
+
diff --git a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb
index 3dec5ed..16708fd 100644
--- a/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb
+++ b/poky/meta/recipes-gnome/gdk-pixbuf/gdk-pixbuf_2.40.0.bb
@@ -24,6 +24,7 @@
            file://0004-Do-not-run-tests-when-building.patch \
            file://0006-Build-thumbnailer-and-tests-also-in-cross-builds.patch \
            file://missing-test-data.patch \
+           file://CVE-2020-29385.patch \
            "
 
 SRC_URI_append_class-target = " \
diff --git a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.23.bb b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.24.bb
similarity index 89%
rename from poky/meta/recipes-gnome/gtk+/gtk+3_3.24.23.bb
rename to poky/meta/recipes-gnome/gtk+/gtk+3_3.24.24.bb
index 338b703..01a2a94 100644
--- a/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.23.bb
+++ b/poky/meta/recipes-gnome/gtk+/gtk+3_3.24.24.bb
@@ -8,7 +8,7 @@
            file://0003-Add-disable-opengl-configure-option.patch \
            file://link_fribidi.patch \
            "
-SRC_URI[sha256sum] = "5d864d248357a2251545b3387b35942de5f66e4c66013f0962eb5cb6f8dae2b1"
+SRC_URI[sha256sum] = "cc9d4367c55b724832f6b09ab85481738ea456871f0381768a6a99335a98378a"
 
 S = "${WORKDIR}/gtk+-${PV}"
 
diff --git a/poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.201.bb b/poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.301.bb
similarity index 87%
rename from poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.201.bb
rename to poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.301.bb
index 29e839b..890c08b 100644
--- a/poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.201.bb
+++ b/poky/meta/recipes-graphics/cantarell-fonts/cantarell-fonts_0.301.bb
@@ -11,7 +11,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=fb1ef92b6909969a472a6ea3c4e99cb7"
 
 inherit gnomebase meson allarch fontcache pkgconfig
-SRC_URI[archive.sha256sum] = "b61f64e5f6a48aa0abc7a53cdcbce60de81908ca36048a64730978fcd9ac9863"
+SRC_URI[archive.sha256sum] = "3d35db0ac03f9e6b0d5a53577591b714238985f4cfc31a0aa17f26cd74675e83"
 
 EXTRA_OEMESON += "-Duseprebuilt=true -Dbuildappstream=false"
 
diff --git a/poky/meta/recipes-graphics/libva/libva-initial_2.9.0.bb b/poky/meta/recipes-graphics/libva/libva-initial_2.10.0.bb
similarity index 100%
rename from poky/meta/recipes-graphics/libva/libva-initial_2.9.0.bb
rename to poky/meta/recipes-graphics/libva/libva-initial_2.10.0.bb
diff --git a/poky/meta/recipes-graphics/libva/libva-utils_2.9.1.bb b/poky/meta/recipes-graphics/libva/libva-utils_2.10.0.bb
similarity index 89%
rename from poky/meta/recipes-graphics/libva/libva-utils_2.9.1.bb
rename to poky/meta/recipes-graphics/libva/libva-utils_2.10.0.bb
index feb9ce1..828f4fb 100644
--- a/poky/meta/recipes-graphics/libva/libva-utils_2.9.1.bb
+++ b/poky/meta/recipes-graphics/libva/libva-utils_2.10.0.bb
@@ -14,8 +14,8 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://COPYING;md5=b148fc8adf19dc9aec17cf9cd29a9a5e"
 
-SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.9-branch"
-SRCREV = "50c7f19d65e2535940e31c6711352b36d6d64fd7"
+SRC_URI = "git://github.com/intel/libva-utils.git;branch=v2.10-branch"
+SRCREV = "f112ee75fcd1472131b20f901b93f6ac1d293fad"
 S = "${WORKDIR}/git"
 
 UPSTREAM_CHECK_GITTAGREGEX = "(?P<pver>(\d+(\.\d+)+))$"
diff --git a/poky/meta/recipes-graphics/libva/libva.inc b/poky/meta/recipes-graphics/libva/libva.inc
index 7b6f116..d251afa 100644
--- a/poky/meta/recipes-graphics/libva/libva.inc
+++ b/poky/meta/recipes-graphics/libva/libva.inc
@@ -18,7 +18,7 @@
 
 SRC_URI = "https://github.com/intel/libva/releases/download/${PV}/libva-${PV}.tar.bz2"
 LIC_FILES_CHKSUM = "file://COPYING;md5=2e48940f94acb0af582e5ef03537800f"
-SRC_URI[sha256sum] = "e344c1392dde92696c9ffd9cb3c7277d0a3b912236eb4e0fdedf7f375434584b"
+SRC_URI[sha256sum] = "fa81e35b50d9818fce5ec9eeeeff08a24a8864ceeb9a5c8e7ae4446eacfc0236"
 
 S = "${WORKDIR}/libva-${PV}"
 
diff --git a/poky/meta/recipes-graphics/libva/libva_2.9.0.bb b/poky/meta/recipes-graphics/libva/libva_2.10.0.bb
similarity index 100%
rename from poky/meta/recipes-graphics/libva/libva_2.9.0.bb
rename to poky/meta/recipes-graphics/libva/libva_2.10.0.bb
diff --git a/poky/meta/recipes-graphics/mesa/files/0001-meson-Add-xcb-fixes-to-loader-when-using-x11-and-dri.patch b/poky/meta/recipes-graphics/mesa/files/0001-meson-Add-xcb-fixes-to-loader-when-using-x11-and-dri.patch
deleted file mode 100644
index 9ee7288..0000000
--- a/poky/meta/recipes-graphics/mesa/files/0001-meson-Add-xcb-fixes-to-loader-when-using-x11-and-dri.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From cf17d6251653f4a98e7c4f904ea2f0bc0ecedd5c Mon Sep 17 00:00:00 2001
-From: Duncan Hopkins <duncan@duncanhopkins.me.uk>
-Date: Thu, 15 Oct 2020 12:14:57 +0100
-Subject: [PATCH] meson: Add xcb-fixes to loader when using x11 and dri3. Fixes
- undefined symbol for xcb_xfixes_create_region in loader_dri3_helper.c
-
-loader_dr3_helper.c uses xcb_xfixes_create_region() that requires dep_xcb_xfixes to link. This is dependent on with_platform_x11 and with_dri3.
-But the source meson file does not set this up dependent on with_dri3.
-The build was initialsed using platforms=x11 and gallium-drivers=zink,swrast.
-
-Reviewed-by: Eric Anholt <eric@anholt.net>
-Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7164>
-
-Upstream-Status: Backport [cf17d6251653f4a98e7c4f904ea2f0bc0ecedd5c]
-
----
- meson.build | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/meson.build b/meson.build
-index cfe02fa6373..3cb3c904927 100644
---- a/meson.build
-+++ b/meson.build
-@@ -1782,7 +1782,8 @@ if with_platform_x11
-       dep_xxf86vm = dependency('xxf86vm')
-     endif
-   endif
--  if (with_egl or (
-+  if (with_egl or 
-+      with_dri3 or (
-       with_gallium_vdpau or with_gallium_xvmc or with_gallium_xa or
-       with_gallium_omx != 'disabled'))
-     dep_xcb_xfixes = dependency('xcb-xfixes')
--- 
-2.17.1
-
diff --git a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
index 74f7fe5..89c0d15 100644
--- a/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
+++ b/poky/meta/recipes-graphics/mesa/files/0002-meson.build-make-TLS-ELF-optional.patch
@@ -6,6 +6,21 @@
 USE_ELF_TLS has replaced GLX_USE_TLS so this patch is the original "make
 TLS GLX optional again" patch updated to the latest mesa.
 
+For details, see:
+https://gitlab.freedesktop.org/mesa/mesa/-/issues/966
+
+This prevents runtime segfault on musl:
+
+Traceback (most recent call last):
+  File "/home/pokybuild/yocto-worker/musl-qemux86/build/meta/lib/oeqa/core/decorator/__init__.py", line 36, in wrapped_f
+    return func(*args, **kwargs)
+  File "/home/pokybuild/yocto-worker/musl-qemux86/build/meta/lib/oeqa/runtime/cases/parselogs.py", line 378, in test_parselogs
+    self.assertEqual(errcount, 0, msg=self.msg)
+AssertionError: 1 != 0 : Log: /home/pokybuild/yocto-worker/musl-qemux86/build/build/tmp/work/qemux86-poky-linux-musl/core-image-sato-sdk/1.0-r0/target_logs/Xorg.0.log
+-----------------------
+Central error: [    10.477] (EE) Failed to load /usr/lib/xorg/modules/extensions/libglx.so: Error relocating /usr/lib/libGL.so.1: alphasort: initial-exec TLS resolves to dynamic definition in /usr/lib/libGL.so.1
+***********************
+
 Upstream-Status: Inappropriate [configuration]
 Signed-off-by: Alistair Francis <alistair@alistair23.me>
 
diff --git a/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch b/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch
deleted file mode 100644
index 8337423..0000000
--- a/poky/meta/recipes-graphics/mesa/files/0004-Revert-mesa-Enable-asm-unconditionally-now-that-gen_.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 43d9e40db7357f27e91002b2bb7688b6775ebb43 Mon Sep 17 00:00:00 2001
-From: Alistair Francis <alistair@alistair23.me>
-Date: Thu, 14 Nov 2019 09:06:02 -0800
-Subject: [PATCH] Revert "mesa: Enable asm unconditionally, now that
- gen_matypes is gone."
-
-This reverts commit 20294dceebc23236e33b22578245f7e6f41b6997.
-
-Upstream-Status: Inappropriate [configuration]
-Signed-off-by: Alistair Francis <alistair@alistair23.me>
-
----
- meson.build       | 94 ++++++++++++++++++++++++++++++-----------------
- meson_options.txt |  6 +++
- 2 files changed, 67 insertions(+), 33 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index e7dc599..e2fc934 100644
---- a/meson.build
-+++ b/meson.build
-@@ -52,6 +52,7 @@ pre_args = [
- with_vulkan_icd_dir = get_option('vulkan-icd-dir')
- with_tests = get_option('build-tests')
- with_aco_tests = get_option('build-aco-tests')
-+with_asm = get_option('asm')
- with_glx_read_only_text = get_option('glx-read-only-text')
- with_glx_direct = get_option('glx-direct')
- with_osmesa = get_option('osmesa')
-@@ -1154,41 +1155,68 @@ dep_ws2_32 = cc.find_library('ws2_32', required : with_platform_windows)
- 
- # TODO: shared/static? Is this even worth doing?
- 
-+# When cross compiling we generally need to turn off the use of assembly,
-+# because mesa's assembly relie