subtree updates

meta-security: de6712a806..a85fbe980e:
  Anton Antonov (1):
        Upgrade parsec-service 0.8.1 and parsec-tool 0.4.0

  Armin Kuster (1):
        chkrootkit: update to 0.55

  Bhupesh Sharma (1):
        recipes-security/fscrypt: Add fscrypt .bb file

  Christer Fletcher (1):
        dmverity: Make use of DATA_BLOCK_SIZE variable in initrdscript.

  Kristian Klausen (1):
        libtpm: update to 0.8.7

  Zoltán Böszörményi (1):
        clamav: Set clamav:clamav ownership on /var/lib/clamav in do_install

poky: 06dcace68b..80f2b56ad8:
  Anibal Limon (1):
        recipes-support/ptest-runner: Bump to v2.4.2

  Bruce Ashfield (5):
        linux-yocto-dev: update to v5.15-rcX
        lttng-modules/dev-upstream: update to 2.13-latest
        lttng-modules: fix build against 5.15+
        linux-yocto/5.13: drop recipes
        yocto-bsp/5.13: drop recipes

  Chandana kalluri (1):
        scriptutils.py: Add check before deleting path

  Daniel Wagenknecht (2):
        common-tasks: add note about license implications of bundled initramfs
        ref-manual: add note about license implications of bundled initramfs

  Joshua Watt (2):
        lib/oe/spdx.py: Add comments
        python3: Fix sysroot reproducibility

  Kenfe-Mickael Laventure (1):
        package_ipk: Use localdata store when signing packages

  Kiran Surendran (1):
        ffmpeg: fix CVE-2021-38171

  Kristian Klausen (2):
        ovmf: add TPM PACKAGECONFIG and enable if tpm is in MACHINE_FEATURES
        wic/bootimg-efi: Add Unified Kernel Image option

  Markus Volk (1):
        wic:direct.py: ignore invalid mountpoints during fstab update

  Matt Madison (1):
        autotools.bbclass: use ordinary append for file-checksums update

  Michael Halstead (1):
        releases: update to include 3.1.11

  Minjae Kim (1):
        vim: fix CVE-2021-3778

  Quentin Schulz (1):
        ref-manual: fix missed override syntax change

  Rasmus Villemoes (1):
        kernel.bbclass: remove unnecessary dead code

  Richard Purdie (29):
        oeqa/qemurunner: Use oe._exit(), not sys.exit()
        pseudo: Add in ability to flush database with shutdown request
        packagegroup-core-tools-profile: Exclude systemtap from riscv32 as well
        bitbake: bitbake-worker: Allow shutdown/database flush of pseudo server at task exit
        bitbake: siggen: Fix sorting in diff output
        bitbake: cooker/command: Add a dummy event for tinfoil testing
        oeqa/selftest/gotoolchain: Fix temp file cleanup
        oeqa/buildproject: Ensure temp directories are cleaned up
        libc_package/buildstats: Fix python regex quoting warnings
        oeqa/selftest/tinfoil: Update to use test command
        glew: Stop polluting /tmp during builds
        rpm: Ensure compression parallelism isn't coded into rpms
        package: Ensure pclist files are deterministic and don't use full paths
        gnupg: Be deterministic about sendmail
        mesa: Ensure megadrivers runtime mappings are deterministic
        util-linux: Fix reproducibility
        libtool: Allow libtool-cross to reproduce
        gobject-introspection: Don't write $HOME into scripts
        oeqa/selftest/bbtests: Add uuid to force build test
        image: Exclude IMAGE_VERSION_SUFFIX from expansion in image tasks
        sstatesig: Revert "Test cross/native hashserv method extension"
        bitbake: data: Ensure functions are defined in a deterministic order
        bitbake.conf: Set vardepvalue for PARALLEL_MAKEINST
        externalsrc: Fix a source date epoch race in reproducible builds
        sstatesig: Add processing for full build paths in sysroot files
        python3: Drop broken pyc files
        image-artifact-names: Use SOURCE_DATE_EPOCH when making reproducible builds for deploy
        abi_version/sstate: Bump HASH_VERSION and SSTATE_VERSION
        reproducible_build: Work around caching issues

  Robert P. J. Day (3):
        ref-manual: extend explanation of PACKAGE_DEBUG_SPLIT_STYLE
        ref-manual: mention INHIBIT_PACKAGE_DEBUG_SPLIT variable
        overview-manual: delete bad backslashes in SSTATE_MIRRORS example

  Saul Wold (3):
        spdx-licenses.json: Use 3.14 tagged version
        spdx.py: Add SPDXAnnotation Object
        create-spdx: Use SPDXAnnotation to track native recipes

  Thomas Perrot (2):
        libevent: mark util/monotonic_prc_fallback as retriable
        ruby: fix the reproducibility issue

  Tom Pollard (2):
        bzip2: Update soname for libbz2 1.0.8
        libsamplerate0: Set correct soname for 0.1.9

  Trevor Woerner (1):
        hello-mod/hello.c: convert printk to pr_xxx

  William A. Kennington III (1):
        rm_work.bbclass: Fix for files starting with -

  Yi Zhao (1):
        inetutils: fix CVE-2021-40491

  wangmy (1):
        strace: upgrade 5.13 -> 5.14

meta-openembedded: cff8331f96..23dc4f060f:
  Armin Kuster (1):
        README: update to main repo

  Chandana kalluri (1):
        python3-humanfriendly: Add nativesdk to BBCLASSEXTEND

  Changqing Li (1):
        layer.conf: add openembedded-layer as LAYERDEPENDS

  Khem Raj (3):
        smcroute: Add missing pkgconfig inherit
        packagegroup-meta-oe: Add new packages smarty and libjs-jquery-icheck
        gattlib: Upgrade to latest

  LiweiSong (1):
        chipsec: platform security assessment framework

  Martin Jansa (5):
        opencv: fix build with protobuf-3.18 when dnn PACKAGECONFIG is enabled
        libeigen: backport fix for -Werror=class-memaccess issues when NEON is enabled
        README: mention linux-libc-dev:i386 for luajit on ubuntu-21.10
        gpsd: inherit pkgconfig
        pahole: use MACHINE_ARCH

  Matteo Croce (1):
        pahole: don't download vendored libbpf

  Mingli Yu (1):
        libqb: Upgrade to 2.0.3

  Nandor Han (1):
        libiio: depend on avahi only when network backed is used

  Peter Kjellerstedt (1):
        netdata: Move the version to the file name and correct the SRC_URI

  Richard Purdie (1):
        gattlib: Place pkgconfig file in correct package

  Yi Zhao (1):
        phpmyadmin: upgrade 5.1.0 -> 5.1.1

  wangmy (7):
        unionfs-fuse: upgrade 2.1 -> 2.2
        smcroute: upgrade 2.4.4 -> 2.5.3
        snort: upgrade 2.9.18 -> 2.9.18.1
        libsass: upgrade 3.6.4 -> 3.6.5
        sanlock: upgrade 3.8.3 -> 3.8.4
        sassc: upgrade 3.6.1 -> 3.6.2
        valijson: upgrade 0.5 -> 0.6

  zangrc (8):
        python3-pychromecast: upgrade 9.2.0 -> 9.2.1
        python3-pyro4: upgrade 4.80 -> 4.81
        python3-pyzmq: upgrade 22.2.1 -> 22.3.0
        python3-robotframework: upgrade 4.1 -> 4.1.1
        python3-sqlparse: upgrade 0.4.1 -> 0.4.2
        python3-tqdm: upgrade 4.62.2 -> 4.62.3
        libjs-jquery-icheck: Add recipe
        smarty: Add recipe

  zhengruoqin (6):
        python3-cmd2: upgrade 2.1.2 -> 2.2.0
        python3-huey: upgrade 2.4.0 -> 2.4.1
        python3-humanfriendly: upgrade 9.2 -> 10.0
        cifs-utils: upgrade 6.13 -> 6.14
        cmark: upgrade 0.30.1 -> 0.30.2
        gpsd: upgrade 3.23 -> 3.23.1

Signed-off-by: Patrick Williams <patrick@stwcx.xyz>
Change-Id: Ie782ff5d7f3004fb1f1ac9a4c8644a178bae46ad
diff --git a/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.1.bb b/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.2.bb
similarity index 90%
rename from meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.1.bb
rename to meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.2.bb
index 3dd5c82..0cc0298 100644
--- a/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.1.bb
+++ b/meta-openembedded/meta-filesystems/recipes-filesystems/unionfs-fuse/unionfs-fuse_2.2.bb
@@ -9,7 +9,7 @@
 SRC_URI = "git://github.com/rpodgorny/${BPN}.git;branch=master \
            file://0001-support-cross-compiling.patch \
            "
-SRCREV = "8d732962423c3ca5be1f14b7ec139ff464e10a51"
+SRCREV = "b0e3805d3d84d44ddf3e4e5238ae0332145d8157"
 
 DEPENDS = "fuse"
 
diff --git a/meta-openembedded/meta-gnome/README b/meta-openembedded/meta-gnome/README
index 1a91050..fbb0d72 100644
--- a/meta-openembedded/meta-gnome/README
+++ b/meta-openembedded/meta-gnome/README
@@ -2,13 +2,11 @@
 ------------
 This layer depends on:
 
-URI: git://github.com/openembedded/oe-core.git
+URI: git://git.openembedded.org/openembedded-core
 branch: master
-revision: HEAD
 
-URI: git://github.com/openembedded/meta-oe.git
+URI: git://git.openembedded.org/meta-openembedded
 branch: master
-revision: HEAD
 
 Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-gnome]' in the subject'
 
diff --git a/meta-openembedded/meta-initramfs/README b/meta-openembedded/meta-initramfs/README
index a8f17ba..119293a 100644
--- a/meta-openembedded/meta-initramfs/README
+++ b/meta-openembedded/meta-initramfs/README
@@ -11,9 +11,8 @@
 
 This layer depends on:
 
-URI: git://github.com/openembedded/oe-core.git
+URI: git://git.openembedded.org/meta-openembedded
 branch: master
-revision: HEAD
 
 
 Maintenance
diff --git a/meta-openembedded/meta-multimedia/README b/meta-openembedded/meta-multimedia/README
index 9c649ff..235c343 100644
--- a/meta-openembedded/meta-multimedia/README
+++ b/meta-openembedded/meta-multimedia/README
@@ -1,13 +1,11 @@
 This layer depends on:
 
-URI: git://github.com/openembedded/oe-core.git
+URI: git://git.openembedded.org/openembedded-core
 branch: master
-revision: HEAD
 
-URI: git://github.com/openembedded/meta-oe.git
+URI: git://git.openembedded.org/meta-openembedded
 layers: meta-oe
 branch: master
-revision: HEAD
 
 Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-multimedia]' in the subject
 
diff --git a/meta-openembedded/meta-multimedia/conf/layer.conf b/meta-openembedded/meta-multimedia/conf/layer.conf
index 5a17a50..56c3569 100644
--- a/meta-openembedded/meta-multimedia/conf/layer.conf
+++ b/meta-openembedded/meta-multimedia/conf/layer.conf
@@ -29,6 +29,6 @@
 # cause compatibility issues with other layers
 LAYERVERSION_multimedia-layer = "1"
 
-LAYERDEPENDS_multimedia-layer = "core meta-python"
+LAYERDEPENDS_multimedia-layer = "core openembedded-layer meta-python"
 
 LAYERSERIES_COMPAT_multimedia-layer = "honister"
diff --git a/meta-openembedded/meta-networking/README b/meta-openembedded/meta-networking/README
index e1ba27d..1aea8a6 100644
--- a/meta-openembedded/meta-networking/README
+++ b/meta-openembedded/meta-networking/README
@@ -17,21 +17,18 @@
 
 This layer depends on:
 
-URI: git://github.com/openembedded/openembedded-core.git
+URI: git://git.openembedded.org/openembedded-core
 branch: master
-revision: HEAD
 
 For some recipes, the meta-oe layer is required:
 
-URI: git://github.com/openembedded/meta-openembedded.git
+URI: git://git.openembedded.org/meta-openembedded
 subdirectory: meta-oe
 branch: master
-revision: HEAD
 
-URI: git://github.com/openembedded/meta-openembedded.git
+URI: git://git.openembedded.org/meta-openembedded
 subdirectory: meta-python
 branch: master
-revision: HEAD
 
 Maintenance
 -----------
diff --git a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.18.bb b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.18.1.bb
similarity index 97%
rename from meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.18.bb
rename to meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.18.1.bb
index 47c201f..1e24954 100644
--- a/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.18.bb
+++ b/meta-openembedded/meta-networking/recipes-connectivity/snort/snort_2.9.18.1.bb
@@ -14,7 +14,7 @@
     file://disable-run-test-program-while-cross-compiling.patch \
     file://configure.in-disable-tirpc-checking-for-fedora.patch \
 "
-SRC_URI[sha256sum] = "d0308642f69e0d36f70db9703e5766afce2f44ff05b7d2c9cc8e3ac8323b2c77"
+SRC_URI[sha256sum] = "da8af0f1b2e4f247d970c6a3c0e83fb6dcd5c84faa21aea49f306f269e8e28aa"
 
 UPSTREAM_CHECK_URI = "https://www.snort.org/downloads"
 UPSTREAM_CHECK_REGEX = "snort-(?P<pver>\d+(\.\d+)+)\.tar"
diff --git a/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.13.bb b/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.14.bb
similarity index 96%
rename from meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.13.bb
rename to meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.14.bb
index a8d3e91..5fafb4e 100644
--- a/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.13.bb
+++ b/meta-openembedded/meta-networking/recipes-support/cifs/cifs-utils_6.14.bb
@@ -4,7 +4,7 @@
 LICENSE = "GPLv3 & LGPLv3"
 LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
 
-SRCREV = "464a60344a324311a6f5bb326fdf5f422a3c9005"
+SRCREV = "8c06dce7d596e478c20bc54bdcec87ad97f80a1b"
 SRC_URI = "git://git.samba.org/cifs-utils.git"
 
 S = "${WORKDIR}/git"
diff --git a/meta-openembedded/meta-networking/recipes-support/smcroute/smcroute_2.4.4.bb b/meta-openembedded/meta-networking/recipes-support/smcroute/smcroute_2.5.3.bb
similarity index 84%
rename from meta-openembedded/meta-networking/recipes-support/smcroute/smcroute_2.4.4.bb
rename to meta-openembedded/meta-networking/recipes-support/smcroute/smcroute_2.5.3.bb
index 0b63f79..8e62f58 100644
--- a/meta-openembedded/meta-networking/recipes-support/smcroute/smcroute_2.4.4.bb
+++ b/meta-openembedded/meta-networking/recipes-support/smcroute/smcroute_2.5.3.bb
@@ -5,9 +5,9 @@
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://COPYING;md5=751419260aa954499f7abaabaa882bbe"
 
-SRCREV = "a8e5847e5f7e411be424f9b52a6cdf9d2ed4aeb5"
+SRCREV = "d998043dc39cb763c9adec3eda3cc8b1d79f444c"
 SRC_URI = "git://github.com/troglobit/smcroute.git;branch=master;protocol=git"
 
 S = "${WORKDIR}/git"
 
-inherit autotools
+inherit autotools pkgconfig
diff --git a/meta-openembedded/meta-oe/README b/meta-openembedded/meta-oe/README
index 98f671d..676a2c8 100644
--- a/meta-openembedded/meta-oe/README
+++ b/meta-openembedded/meta-oe/README
@@ -5,7 +5,6 @@
 
 URI: git://github.com/openembedded/openembedded-core.git
 branch: master
-revision: HEAD
 
 luajit recipe requires host compiler to be able to generate 32bit code when target is 32bit
 e.g. arm, so ensure that $CC -m32 is functional on build host, if building this recipe, needed
@@ -15,7 +14,7 @@
 pacman -S lib32-gcc-libs lib32-glibc
 
 Ubuntu
-sudo apt-get install gcc-multilib
+sudo apt-get install gcc-multilib linux-libc-dev:i386
 
 Send pull requests to openembedded-devel@lists.openembedded.org with '[meta-oe]' in the subject'
 
diff --git a/meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-devtools/valijson/valijson_0.5.bb b/meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-devtools/valijson/valijson_0.6.bb
similarity index 95%
rename from meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-devtools/valijson/valijson_0.5.bb
rename to meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-devtools/valijson/valijson_0.6.bb
index 9b6f19f..a57aaf0 100644
--- a/meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-devtools/valijson/valijson_0.5.bb
+++ b/meta-openembedded/meta-oe/dynamic-layers/networking-layer/recipes-devtools/valijson/valijson_0.6.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://LICENSE;md5=015106c62262b2383f6c72063f0998f2"
 
 SRC_URI = "git://github.com/tristanpenman/valijson.git"
-SRCREV = "c5487c39eb900b97535f8b3a38a17af098c784e3"
+SRCREV = "2dfc7499a31b84edef71189f4247919268ebc74e"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-bsp/chipsec/chipsec_git.bb b/meta-openembedded/meta-oe/recipes-bsp/chipsec/chipsec_git.bb
new file mode 100644
index 0000000..3339dc1
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-bsp/chipsec/chipsec_git.bb
@@ -0,0 +1,35 @@
+SUMMARY = "CHIPSEC: Platform Security Assessment Framework"
+
+DESCRIPTION = "CHIPSEC is a framework for analyzing the security \
+               of PC platforms including hardware, system firmware \
+               (BIOS/UEFI), and platform components."
+
+LICENSE = "GPLv2"
+LIC_FILES_CHKSUM = "file://COPYING;md5=bc2d1f9b427be5fb63f6af9da56f7c5d"
+
+SRC_URI = "git://github.com/chipsec/chipsec.git;branch=master \
+          "
+
+SRCREV = "b2a61684826dc8b9f622a844a40efea579cd7e7d"
+
+COMPATIBLE_HOST = "(i.86|x86_64).*-linux"
+
+S = "${WORKDIR}/git"
+EXTRA_OEMAKE = "CC='${CC}' LDFLAGS='${LDFLAGS}' CFLAGS='${CFLAGS}'"
+
+DEPENDS = "virtual/kernel nasm-native python3-setuptools-native"
+RDEPENDS:${PN} += "python3 python3-modules"
+
+inherit module distutils3
+
+do_compile:append() {
+	cd ${S}/drivers/linux
+	oe_runmake  KSRC=${STAGING_KERNEL_BUILDDIR}
+}
+
+do_install:append() {
+	install -m 0644 ${S}/drivers/linux/chipsec.ko ${D}${PYTHON_SITEPACKAGES_DIR}/chipsec/helper/linux
+}
+
+FILES:${PN} += "${exec_prefix} \
+"
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gattlib/files/0001-cmake-Use-GNUInstallDirs.patch b/meta-openembedded/meta-oe/recipes-connectivity/gattlib/files/0001-cmake-Use-GNUInstallDirs.patch
deleted file mode 100644
index ffe0a00..0000000
--- a/meta-openembedded/meta-oe/recipes-connectivity/gattlib/files/0001-cmake-Use-GNUInstallDirs.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 63dc2d0c9384d85482dc4cbb3c179b4b0bb18d4e Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Thu, 19 Dec 2019 22:32:01 -0800
-Subject: [PATCH] cmake: Use GNUInstallDirs
-
-Helps install cmakefiles in right libdir
-
-Upstream-Status: Submitted [https://github.com/labapart/gattlib/pull/139]
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- CMakeLists.txt      |  5 +++--
- dbus/CMakeLists.txt | 18 ++++++++++--------
- 2 files changed, 13 insertions(+), 10 deletions(-)
-
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 12d8d71..ded7239 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -152,7 +152,8 @@ endif()
- #
- # List of file to install
- #
--install(FILES include/gattlib.h DESTINATION include)
--install(FILES ${PROJECT_BINARY_DIR}/gattlib.pc DESTINATION lib/pkgconfig)
-+include(GNUInstallDirs)
-+install(FILES include/gattlib.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
-+install(FILES ${PROJECT_BINARY_DIR}/gattlib.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
- 
- include(CPack)
-diff --git a/dbus/CMakeLists.txt b/dbus/CMakeLists.txt
-index f5096ce..cef031f 100644
---- a/dbus/CMakeLists.txt
-+++ b/dbus/CMakeLists.txt
-@@ -19,7 +19,7 @@
- #  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
- #
- 
--cmake_minimum_required(VERSION 2.6)
-+cmake_minimum_required(VERSION 3.0)
- 
- find_package(PkgConfig REQUIRED)
- 
-@@ -119,4 +119,6 @@ endif()
- add_library(gattlib SHARED ${gattlib_SRCS})
- target_link_libraries(gattlib ${gattlib_LIBS})
- 
--install(TARGETS gattlib LIBRARY DESTINATION lib)
-+include(GNUInstallDirs)
-+
-+install(TARGETS gattlib LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
--- 
-2.24.1
-
diff --git a/meta-openembedded/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb b/meta-openembedded/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb
index 234f840..ea4f4d5 100644
--- a/meta-openembedded/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb
+++ b/meta-openembedded/meta-oe/recipes-connectivity/gattlib/gattlib_git.bb
@@ -1,8 +1,8 @@
 DESCRIPTION = "Bluetooth library with attribute support"
 SECTION = "libs/network"
 
-LICENSE = "GPLv2+"
-LIC_FILES_CHKSUM = "file://CMakeLists.txt;beginline=1;endline=20;md5=8d5efeb9189b60866baff80ff791bf00"
+LICENSE = "GPL-2.0+ | BSD-3-Clause"
+LIC_FILES_CHKSUM = "file://CMakeLists.txt;beginline=1;endline=6;md5=71fdd2be76b4e95fe28324a70d4981c5"
 
 DEPENDS = "bluez5 glib-2.0"
 DEPENDS += "glib-2.0-native"
@@ -11,11 +11,10 @@
 
 SRC_URI = "git://github.com/labapart/gattlib.git \
            file://dbus-avoid-strange-chars-from-the-build-dir.patch \
-           file://0001-cmake-Use-GNUInstallDirs.patch \
            "
 
 SRCBRANCH = "master"
-SRCREV = "5c7ee43bd70ee09a7170ddd55b9fdbdef69e9080"
+SRCREV = "fa54ae42ccb3d8f911e00b02ed1e581537e47f79"
 
 S = "${WORKDIR}/git"
 
@@ -29,4 +28,4 @@
 inherit pkgconfig cmake
 
 FILES:${PN} = "${libdir}/*"
-FILES:${PN}-dev = "${includedir}/*"
+FILES:${PN}-dev = "${includedir}/* ${libdir}/pkgconfig"
diff --git a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
index efa7b7a..dab983b 100644
--- a/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
+++ b/meta-openembedded/meta-oe/recipes-core/packagegroups/packagegroup-meta-oe.bb
@@ -823,6 +823,7 @@
     remmina \
     neon \
     nmon \
+    libjs-jquery-icheck \
     libtinyxml \
     libusbg \
     libutempter \
@@ -874,6 +875,7 @@
     spitools \
     libsass \
     sassc \
+    smarty \
     ${@bb.utils.contains("DISTRO_FEATURES", "x11", "synergy", "", d)} \
     syslog-ng \
     system-config-keyboard \
diff --git a/meta-openembedded/meta-oe/recipes-devtools/pahole/files/0003-CMakeList.txt-don-t-download-libbpf-source-when-syst.patch b/meta-openembedded/meta-oe/recipes-devtools/pahole/files/0003-CMakeList.txt-don-t-download-libbpf-source-when-syst.patch
new file mode 100644
index 0000000..3d491e2
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/pahole/files/0003-CMakeList.txt-don-t-download-libbpf-source-when-syst.patch
@@ -0,0 +1,34 @@
+From 3d20210d84f61ee2189927e2d9de9ce3e5a0a9c5 Mon Sep 17 00:00:00 2001
+From: Matteo Croce <mcroce@microsoft.com>
+Date: Mon, 20 Sep 2021 18:44:52 +0200
+Subject: [PATCH] CMakeList.txt: Don't download libbpf source when system
+ library is used
+
+Upstream-Status: Backport [https://git.kernel.org/pub/scm/devel/pahole/pahole.git/commit/?id=3d20210d84f61ee2189927e2d9de9ce3e5a0a9c5]
+
+The build system always download the libbpf submodule, regardless if
+we're using the embedded or the system version.
+Download the libbpf source only if we're using the embedded one.
+
+Signed-off-by: Matteo Croce <mcroce@microsoft.com>
+Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 8523bce..2ab66e4 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -65,7 +65,7 @@ find_package(Python3 QUIET)
+ 
+ # make sure git submodule(s) are checked out
+ find_package(Git QUIET)
+-if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
++if(LIBBPF_EMBEDDED AND GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
+ 	# Update submodules as needed
+ 	option(GIT_SUBMODULE "Check submodules during build" ON)
+ 	if(GIT_SUBMODULE)
+-- 
+2.31.1
+
diff --git a/meta-openembedded/meta-oe/recipes-devtools/pahole/pahole_1.22.bb b/meta-openembedded/meta-oe/recipes-devtools/pahole/pahole_1.22.bb
index 0fdde93..66f7761 100644
--- a/meta-openembedded/meta-oe/recipes-devtools/pahole/pahole_1.22.bb
+++ b/meta-openembedded/meta-oe/recipes-devtools/pahole/pahole_1.22.bb
@@ -5,12 +5,15 @@
 
 DEPENDS = "elfutils zlib libbpf"
 
+# Depends on MACHINE_ARCH libbpf
+PACKAGE_ARCH = "${MACHINE_ARCH}"
 COMPATIBLE_HOST = "(x86_64|i.86|aarch64).*-linux"
 
 SRCREV = "f02af2553ea58ae1186226af0d0ec835a248358f"
 SRC_URI = "git://git.kernel.org/pub/scm/devel/pahole/pahole.git \
            file://0001-CMakeList.txt-make-python-optional.patch \
-           file://0002-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch"
+           file://0002-Use-usr-bin-env-python3-instead-of-just-usr-bin-pyth.patch \
+           file://0003-CMakeList.txt-don-t-download-libbpf-source-when-syst.patch"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb/0001-build-fix-configure-script-neglecting-re-enable-out-.patch b/meta-openembedded/meta-oe/recipes-extended/libqb/libqb/0001-build-fix-configure-script-neglecting-re-enable-out-.patch
deleted file mode 100644
index c82f3bf..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb/0001-build-fix-configure-script-neglecting-re-enable-out-.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 73d2aea33e32272bac693550e8a3b0e3ad89707f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jan=20Pokorn=C3=BD?= <jpokorny@redhat.com>
-Date: Tue, 26 Dec 2017 00:02:26 +0100
-Subject: [PATCH] build: fix configure script neglecting, re-enable out-of-tree
- builds
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-For the former, a prototype and the final code got (hm, mysteriously)
-intertwisted.  For the latter, I am clearly guilty of (rare, anyway)
-testing of the out-of-tree builds only with libqb-already-system-wide
-scenario, which is rather shortsighted.
-
-Thanks Fabio and his ci.kronosnet.org project for spotting that.
-
-X-mas-present-for: Fabio M. Di Nitto <fdinitto@redhat.com>
-Signed-off-by: Jan Pokorný <jpokorny@redhat.com>
----
-Upstream-Status: Backport
-
- configure.ac    | 2 +-
- lib/Makefile.am | 4 +++-
- 2 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 9900310..f9761cc 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -710,7 +710,7 @@ if test "x${GCC}" = xyes; then
- 			                      | grep __stop___verbose | cut -d" " -f 3)
- 			 test "${verbose_start_addr}" = "${verbose_stop_addr}" \
- 			   && gcc_has_attribute_section_visible=no \
--			   || { verbose_start_type=$(${READELF} -s backup \
-+			   || { verbose_start_type=$(${READELF} -s "conftest${shrext_cmds}" \
- 			                             | sed -n '/__start___verbose/{s/^\s*//p;q}' \
- 			                             | tr -s ' ' \
- 			                             | cut -d" " -f6)
-diff --git a/lib/Makefile.am b/lib/Makefile.am
-index 6ca6b15..b035f0b 100644
---- a/lib/Makefile.am
-+++ b/lib/Makefile.am
-@@ -101,7 +101,9 @@ endif
- endif
- 
- qblog_script.ld: %.ld: %.ld.in
--	$(AM_V_GEN)$(CPP) -xc -I$(top_srcdir)/include -D_GNU_SOURCE -C -P $< \
-+	$(AM_V_GEN)$(CPP) -C -D_GNU_SOURCE -P \
-+	  -I$(top_srcdir)/include -I$(top_builddir)/include \
-+	  -xc $< \
- 	  | sed -n "/$$(sed -n '/^[^#]/{s/[*\/]/\\&/g;p;q;}' $<)/,$$ p" \
- 	  > $@
- 
--- 
-2.16.2
-
diff --git a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.5.bb b/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.5.bb
deleted file mode 100644
index d14fbae..0000000
--- a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_1.0.5.bb
+++ /dev/null
@@ -1,37 +0,0 @@
-SUMMARY = "An IPC library for high performance servers"
-DESCRIPTION = "libqb is a library with the primary purpose of providing high performance client server reusable features. \
-It provides high performance logging, tracing, ipc, and poll."
-
-HOMEPAGE = "https://github.com/clusterlabs/libqb/wiki"
-SECTION = "libs"
-LICENSE = "LGPL-2.1"
-LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785"
-
-inherit autotools pkgconfig
-
-# v1.0.5
-SRCREV = "d08dbcf08b0da418bce9b5427dfd89522916322a"
-SRC_URI = "git://github.com/ClusterLabs/${BPN}.git;branch=version_1 \
-           file://0001-build-fix-configure-script-neglecting-re-enable-out-.patch \
-          "
-S = "${WORKDIR}/git"
-
-# otherwise do_configure fails
-# configure:21609: checking whether linker workaround for orphan sections usable
-# configure:21639: i586-oe-linux-gcc  -m32 -march=i586 --sysroot=WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot -o conftest  -O -fno-omit-frame-pointer -g -feliminate-unused-debug-types -fdebug-prefix-map=WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0=/usr/src/debug/libqb/1.0.3+gitAUTOINC+c235284b5f-r0 -fdebug-prefix-map=WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot= -fdebug-prefix-map=WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot-native=  -pipe  -pthread -D_REENTRANT  -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -Wl,conftest.ld conftest.c  >&5
-# WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot-native/usr/bin/i586-oe-linux/../../libexec/i586-oe-linux/gcc/i586-oe-linux/8.1.0/ld: error: conftest.ld: SECTIONS seen after other input files; try -T/--script
-# WORKDIR/libqb/1.0.3+gitAUTOINC+c235284b5f-r0/recipe-sysroot-native/usr/bin/i586-oe-linux/../../libexec/i586-oe-linux/gcc/i586-oe-linux/8.1.0/ld: internal error in write_sections, at ../../gold/reloc.cc:791
-# collect2: error: ld returned 1 exit status
-NOSECTION_FALLBACK = "${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', '--enable-nosection-fallback', '', d)}"
-NOSECTION_FALLBACK:toolchain-clang:mips64 = "--enable-nosection-fallback"
-
-EXTRA_OECONF += "${NOSECTION_FALLBACK}"
-
-CFLAGS += "-pthread -D_REENTRANT"
-
-do_configure:prepend() {
-    ( cd ${S}
-    ${S}/autogen.sh )
-}
-
-BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.3.bb b/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.3.bb
new file mode 100644
index 0000000..18d6a4f
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-extended/libqb/libqb_2.0.3.bb
@@ -0,0 +1,26 @@
+SUMMARY = "An IPC library for high performance servers"
+DESCRIPTION = "libqb is a library with the primary purpose of providing high performance client server reusable features. \
+It provides high performance logging, tracing, ipc, and poll."
+
+HOMEPAGE = "https://github.com/clusterlabs/libqb/wiki"
+SECTION = "libs"
+LICENSE = "LGPL-2.1"
+LIC_FILES_CHKSUM = "file://COPYING;md5=321bf41f280cf805086dd5a720b37785"
+
+inherit autotools pkgconfig
+
+SRCREV = "404adbcd998ec83643e47d92b3ea8d9c3970e68b"
+SRC_URI = "git://github.com/ClusterLabs/${BPN}.git \
+          "
+S = "${WORKDIR}/git"
+
+DEPENDS += "libxml2"
+
+CFLAGS += "-pthread -D_REENTRANT"
+
+do_configure:prepend() {
+    ( cd ${S}
+    ${S}/autogen.sh )
+}
+
+BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.3.bb b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb
similarity index 96%
rename from meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.3.bb
rename to meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb
index 11a165e..fa08d0f 100644
--- a/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.3.bb
+++ b/meta-openembedded/meta-oe/recipes-extended/sanlock/sanlock_3.8.4.bb
@@ -16,7 +16,7 @@
 SRC_URI = "git://pagure.io/sanlock.git;protocol=http \
            file://0001-sanlock-Replace-cp-a-with-cp-R-no-dereference-preser.patch;patchdir=../ \
           "
-SRCREV = "3a750fed849405c745dcb7b4ceb85f662c53d8d0"
+SRCREV = "a181e951376d49a82eef17920c8ebedec80b4823"
 
 S = "${WORKDIR}/git/python"
 
diff --git a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/0001-SConscript-Correct-the-installation-of-gpsd.hotplug.patch b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/0001-SConscript-Correct-the-installation-of-gpsd.hotplug.patch
deleted file mode 100644
index 172f478..0000000
--- a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd/0001-SConscript-Correct-the-installation-of-gpsd.hotplug.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From c7183b2cc4a42f6ca7c2dc687ee7881efe9aeb73 Mon Sep 17 00:00:00 2001
-From: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
-Date: Sat, 28 Aug 2021 14:22:02 +0200
-Subject: [PATCH] SConscript: Correct the installation of gpsd.hotplug
-
-Without this, `scons systemd=false && scons udev-install` fails with:
-
-  cp .../gpsd/gpsd-3.23.1~dev/gpsd.hotplug /home/pkj/gpsd/foobar/lib/udev
-  cp: cannot stat '.../gpsd/gpsd-3.23.1~dev/gpsd.hotplug': No such file or directory
-
-Upstream-Status: Submitted [https://gitlab.com/gpsd/gpsd/-/merge_requests/277]
-Signed-off-by: Peter Kjellerstedt <peter.kjellerstedt@axis.com>
----
- SConscript | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/SConscript b/SConscript
-index 1cd3354e1..e578012f5 100644
---- a/SConscript
-+++ b/SConscript
-@@ -3060,7 +3060,7 @@ if env['systemd']:
-     hotplug_wrapper_install = []
- else:
-     hotplug_wrapper_install = [
--        'cp $SRCDIR/gpsd.hotplug ' + DESTDIR + env['udevdir'],
-+        'cp $SRCDIR/../gpsd.hotplug ' + DESTDIR + env['udevdir'],
-         'chmod a+x ' + DESTDIR + env['udevdir'] + '/gpsd.hotplug'
-     ]
- 
diff --git a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.23.bb b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.23.1.bb
similarity index 94%
rename from meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.23.bb
rename to meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.23.1.bb
index aaf7429..4740e0c 100644
--- a/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.23.bb
+++ b/meta-openembedded/meta-oe/recipes-navigation/gpsd/gpsd_3.23.1.bb
@@ -6,13 +6,11 @@
 PROVIDES = "virtual/gpsd"
 
 SRC_URI = "${SAVANNAH_GNU_MIRROR}/${BPN}/${BP}.tar.gz \
-    file://0001-SConscript-Correct-the-installation-of-gpsd.hotplug.patch \
-    file://gpsd.init \
-"
-SRC_URI[md5sum] = "b4f96cb01cbc06542b1cb66b3296078d"
-SRC_URI[sha256sum] = "522c2362a7eb2d7ac37eaa1504f12aded1c373479a87ba06cc6795974b567bbc"
+           file://gpsd.init \
+           "
+SRC_URI[sha256sum] = "0b991ce9a46538c4ea450f7a8ee428ff44fb4f8d665fddf2ffe40fe0ae9a6c09"
 
-inherit scons update-rc.d python3-dir python3native systemd update-alternatives
+inherit scons update-rc.d python3-dir python3native systemd update-alternatives pkgconfig
 
 INITSCRIPT_PACKAGES = "gpsd-conf"
 INITSCRIPT_NAME = "gpsd"
diff --git a/meta-openembedded/meta-oe/recipes-support/cmark/cmark_0.30.1.bb b/meta-openembedded/meta-oe/recipes-support/cmark/cmark_0.30.2.bb
similarity index 88%
rename from meta-openembedded/meta-oe/recipes-support/cmark/cmark_0.30.1.bb
rename to meta-openembedded/meta-oe/recipes-support/cmark/cmark_0.30.2.bb
index e2db8aa..6669c6e 100644
--- a/meta-openembedded/meta-oe/recipes-support/cmark/cmark_0.30.1.bb
+++ b/meta-openembedded/meta-oe/recipes-support/cmark/cmark_0.30.2.bb
@@ -4,7 +4,7 @@
 LIC_FILES_CHKSUM = "file://COPYING;md5=81f9cae6293cc0345a9144b78152ab62"
 
 SRC_URI = "git://github.com/commonmark/cmark.git"
-SRCREV = "977b128291c0cf6c5053cdcf2ac72e627f09c105"
+SRCREV = "a8da5a2f252b96eca60ae8bada1a9ba059a38401"
 S = "${WORKDIR}/git"
 
 inherit cmake lib_package
diff --git a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen/0001-Default-eigen_packet_wrapper-constructor.patch b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen/0001-Default-eigen_packet_wrapper-constructor.patch
new file mode 100644
index 0000000..84b5a4d
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen/0001-Default-eigen_packet_wrapper-constructor.patch
@@ -0,0 +1,72 @@
+From cb507309937958c632147de87e8f1231d6698847 Mon Sep 17 00:00:00 2001
+From: Antonio Sanchez <cantonios@google.com>
+Date: Tue, 14 Sep 2021 10:57:22 -0700
+Subject: [PATCH] Default eigen_packet_wrapper constructor.
+
+This makes it trivial, allowing use of `memcpy`.
+
+Fixes #2326
+
+Upstream-Status: Backport [https://gitlab.com/libeigen/eigen/-/merge_requests/645/diffs?commit_id=cb507309937958c632147de87e8f1231d6698847]
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+
+* fixes build failures for arm targets with NEON enabled (e.g. -mfpu=neon-vfpv4)
+  for recipes with -Werror enabled and gcc-11, e.g. fuse-core, robot-localization,
+  prbt-ikfast-manipulator-plugin, rm-chassis-controllers in meta-ros1-noetic:
+
+In file included from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/Core:214,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/macros.h:63,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/loss.h:37,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/constraint.h:37,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/src/constraint.cpp:34:
+/jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h: In function 'Packet Eigen::internal::pload(const typename Eigen::internal::unpacket_traits<T>::type*) [with Packet = Eigen::internal::eigen_packet_wrapper<int, 2>; typename Eigen::internal::unpacket_traits<T>::type = signed char]':
+/jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h:1671:9: error: 'void* memcpy(void*, const void*, size_t)' copying an object of non-trivial type 'Eigen::internal::Packet4c' {aka 'struct Eigen::internal::eigen_packet_wrapper<int, 2>'} from an array of 'const int8_t' {aka 'const signed char'} [-Werror=class-memaccess]
+ 1671 |   memcpy(&res, from, sizeof(Packet4c));
+      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In file included from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/Core:172,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/macros.h:63,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/loss.h:37,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/constraint.h:37,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/src/constraint.cpp:34:
+/jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h:159:8: note: 'Eigen::internal::Packet4c' {aka 'struct Eigen::internal::eigen_packet_wrapper<int, 2>'} declared here
+  159 | struct eigen_packet_wrapper
+      |        ^~~~~~~~~~~~~~~~~~~~
+In file included from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/Core:214,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/macros.h:63,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/loss.h:37,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/constraint.h:37,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/src/constraint.cpp:34:
+/jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h: In function 'Packet Eigen::internal::ploadu(const typename Eigen::internal::unpacket_traits<T>::type*) [with Packet = Eigen::internal::eigen_packet_wrapper<int, 2>; typename Eigen::internal::unpacket_traits<T>::type = signed char]':
+/jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h:1716:9: error: 'void* memcpy(void*, const void*, size_t)' copying an object of non-trivial type 'Eigen::internal::Packet4c' {aka 'struct Eigen::internal::eigen_packet_wrapper<int, 2>'} from an array of 'const int8_t' {aka 'const signed char'} [-Werror=class-memaccess]
+ 1716 |   memcpy(&res, from, sizeof(Packet4c));
+      |   ~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In file included from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/Core:172,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/macros.h:63,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/loss.h:37,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/include/fuse_core/constraint.h:37,
+                 from /jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/git/src/constraint.cpp:34:
+/jenkins/mjansa/build/ros/webos-noetic-honister/tmp-glibc/work/raspberrypi4-webos-linux-gnueabi/fuse-core/0.4.2-1-r0/recipe-sysroot/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h:159:8: note: 'Eigen::internal::Packet4c' {aka 'struct Eigen::internal::eigen_packet_wrapper<int, 2>'} declared here
+  159 | struct eigen_packet_wrapper
+      |        ^~~~~~~~~~~~~~~~~~~~
+cc1plus: all warnings being treated as errors
+
+---
+ Eigen/src/Core/GenericPacketMath.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Eigen/src/Core/GenericPacketMath.h b/Eigen/src/Core/GenericPacketMath.h
+index 8f8f64f15..72234288e 100644
+--- a/Eigen/src/Core/GenericPacketMath.h
++++ b/Eigen/src/Core/GenericPacketMath.h
+@@ -162,7 +162,7 @@ struct eigen_packet_wrapper
+ {
+   EIGEN_ALWAYS_INLINE operator T&() { return m_val; }
+   EIGEN_ALWAYS_INLINE operator const T&() const { return m_val; }
+-  EIGEN_ALWAYS_INLINE eigen_packet_wrapper() {}
++  EIGEN_ALWAYS_INLINE eigen_packet_wrapper() = default;
+   EIGEN_ALWAYS_INLINE eigen_packet_wrapper(const T &v) : m_val(v) {}
+   EIGEN_ALWAYS_INLINE eigen_packet_wrapper& operator=(const T &v) {
+     m_val = v;
+-- 
+2.17.1
+
diff --git a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb
index 54b6f74..9682f7a 100644
--- a/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libeigen/libeigen_3.4.0.bb
@@ -9,7 +9,9 @@
                     file://COPYING.MINPACK;md5=71d91b0f75ce79a75d3108a72bef8116 \
 "
 
-SRC_URI = "git://gitlab.com/libeigen/eigen.git;protocol=http;nobranch=1"
+SRC_URI = "git://gitlab.com/libeigen/eigen.git;protocol=http;branch=3.4 \
+    file://0001-Default-eigen_packet_wrapper-constructor.patch \
+"
 
 SRCREV = "3147391d946bb4b6c68edd901f2add6ac1f31f8c"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
index 6ac534a..488d4e3 100644
--- a/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/libiio/libiio_git.bb
@@ -18,7 +18,6 @@
 
 DEPENDS = " \
     flex-native bison-native libaio \
-    ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
 "
 
 inherit cmake python3native systemd setuptools3
@@ -31,8 +30,13 @@
 
 PACKAGECONFIG ??= "usb_backend network_backend serial_backend"
 
+NETWORK_BACKEND_DEPENDENCIES = "\
+    libxml2 \
+    ${@bb.utils.contains('DISTRO_FEATURES', 'zeroconf', 'avahi', '', d)} \
+"
+
 PACKAGECONFIG[usb_backend] = "-DWITH_USB_BACKEND=ON,-DWITH_USB_BACKEND=OFF,libusb1 libxml2"
-PACKAGECONFIG[network_backend] = "-DWITH_NETWORK_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF,libxml2"
+PACKAGECONFIG[network_backend] = "-DWITH_NETWORK_BACKEND=ON,-DWITH_NETWORK_BACKEND=OFF, ${NETWORK_BACKEND_DEPENDENCIES}"
 PACKAGECONFIG[serial_backend] = "-DWITH_SERIAL_BACKEND=ON,-DWITH_SERIAL_BACKEND=off,libserialport libxml2"
 PACKAGECONFIG[libiio-python3] = "-DPYTHON_BINDINGS=ON,-DPYTHON_BINDINGS=OFF"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-icheck_1.0.3.bb b/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-icheck_1.0.3.bb
new file mode 100644
index 0000000..f14b619
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/libjs/libjs-jquery-icheck_1.0.3.bb
@@ -0,0 +1,42 @@
+DESCRIPTION = "Highly customizable checkboxes and radio buttons (jQuery & Zepto)"
+SECTION = "console/network"
+HOMEPAGE = "http://fronteed.com/iCheck"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://icheck.js;start_line=1;end_line=8;md5=404078d7de9f05ed64d364274f790055"
+
+DEPENDS = "virtual/libc"
+
+SRC_URI = "git://github.com/fronteed/icheck.git;protocol=https;branch=${PV};tag=${PV}"
+
+FILES:${PN} += "${datadir}/javascript/jquery-icheck"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+        install -d ${D}${datadir}/javascript/jquery-icheck/
+        install -m 0644 ${S}/icheck.js ${D}${datadir}/javascript/jquery-icheck/
+        install -m 0644 ${S}/icheck.min.js ${D}${datadir}/javascript/jquery-icheck/
+
+        install -d ${D}${datadir}/javascript/jquery-icheck/skins/
+        install -m 0644 ${S}/skins/all.css ${D}${datadir}/javascript/jquery-icheck/skins/
+
+        install -d ${D}${datadir}/javascript/jquery-icheck/skins/flat/
+        install -m 0644 ${S}/skins/flat/* ${D}${datadir}/javascript/jquery-icheck/skins/flat/
+
+        install -d ${D}${datadir}/javascript/jquery-icheck/skins/futurico/
+        install -m 0644 ${S}/skins/futurico/* ${D}${datadir}/javascript/jquery-icheck/skins/futurico/
+
+        install -d ${D}${datadir}/javascript/jquery-icheck/skins/line/
+        install -m 0644 ${S}/skins/line/* ${D}${datadir}/javascript/jquery-icheck/skins/line/
+
+        install -d ${D}${datadir}/javascript/jquery-icheck/skins/minimal/
+        install -m 0644 ${S}/skins/minimal/* ${D}${datadir}/javascript/jquery-icheck/skins/minimal/
+
+        install -d ${D}${datadir}/javascript/jquery-icheck/skins/polaris/
+        install -m 0644 ${S}/skins/polaris/* ${D}${datadir}/javascript/jquery-icheck/skins/polaris/
+
+        install -d ${D}${datadir}/javascript/jquery-icheck/skins/square/
+        install -m 0644 ${S}/skins/square/* ${D}${datadir}/javascript/jquery-icheck/skins/square/
+}
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-the-one-argument-version-of-SetTotalBytesLimit.patch b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-the-one-argument-version-of-SetTotalBytesLimit.patch
new file mode 100644
index 0000000..5d88d1a
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv/0001-Use-the-one-argument-version-of-SetTotalBytesLimit.patch
@@ -0,0 +1,41 @@
+From 9cfa84313c5833d7295fcf57be93d5d2aaadfd88 Mon Sep 17 00:00:00 2001
+From: Vincent Rabaud <vrabaud@google.com>
+Date: Sat, 10 Jul 2021 00:21:52 +0200
+Subject: [PATCH] Use the one argument version of SetTotalBytesLimit.
+
+The two argument versions has been deprecated, cf
+https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.io.coded_stream
+
+Upstream-Status: Backport [9cfa84313c5833d7295fcf57be93d5d2aaadfd88 - from master after 4.5.3 tag]
+Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
+---
+ modules/dnn/src/caffe/caffe_io.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/modules/dnn/src/caffe/caffe_io.cpp b/modules/dnn/src/caffe/caffe_io.cpp
+index 2fc4d84f46..ebecf95eea 100644
+--- a/modules/dnn/src/caffe/caffe_io.cpp
++++ b/modules/dnn/src/caffe/caffe_io.cpp
+@@ -92,6 +92,7 @@
+ #ifdef HAVE_PROTOBUF
+ #include <google/protobuf/io/coded_stream.h>
+ #include <google/protobuf/io/zero_copy_stream_impl.h>
++#include <google/protobuf/stubs/common.h>
+ #include <google/protobuf/text_format.h>
+ 
+ #include <opencv2/core.hpp>
+@@ -1111,7 +1112,11 @@ static const int kProtoReadBytesLimit = INT_MAX;  // Max size of 2 GB minus 1 by
+ 
+ bool ReadProtoFromBinary(ZeroCopyInputStream* input, Message *proto) {
+     CodedInputStream coded_input(input);
++#if GOOGLE_PROTOBUF_VERSION >= 3006000
++    coded_input.SetTotalBytesLimit(kProtoReadBytesLimit);
++#else
+     coded_input.SetTotalBytesLimit(kProtoReadBytesLimit, 536870912);
++#endif
+ 
+     return proto->ParseFromCodedStream(&coded_input);
+ }
+-- 
+2.32.0
+
diff --git a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.5.2.bb b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.5.2.bb
index 7eefbcc..361ac0c 100644
--- a/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.5.2.bb
+++ b/meta-openembedded/meta-oe/recipes-support/opencv/opencv_4.5.2.bb
@@ -52,6 +52,7 @@
            file://download.patch \
            file://0001-Make-ts-module-external.patch \
            file://0001-sfm-link-with-Glog_LIBS.patch;patchdir=../contrib \
+           file://0001-Use-the-one-argument-version-of-SetTotalBytesLimit.patch \
            "
 SRC_URI:append:riscv64 = " file://0001-Use-Os-to-compile-tinyxml2.cpp.patch;patchdir=../contrib"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb b/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb
index 9cba3a8..bc2ec80 100644
--- a/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sass/libsass_git.bb
@@ -6,8 +6,8 @@
 inherit autotools
 
 SRC_URI = "git://github.com/sass/libsass.git;branch=master"
-SRCREV = "8d312a1c91bb7dd22883ebdfc829003f75a82396"
-PV = "3.6.4"
+SRCREV = "f6afdbb9288d20d1257122e71d88e53348a53af3"
+PV = "3.6.5"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb b/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb
index 3c7a55c..407cbbd 100644
--- a/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb
+++ b/meta-openembedded/meta-oe/recipes-support/sass/sassc_git.bb
@@ -7,8 +7,8 @@
 inherit autotools pkgconfig
 
 SRC_URI = "git://github.com/sass/sassc.git"
-SRCREV = "46748216ba0b60545e814c07846ca10c9fefc5b6"
+SRCREV = "66f0ef37e7f0ad3a65d2f481eff09d09408f42d0"
 S = "${WORKDIR}/git"
-PV = "3.6.1"
+PV = "3.6.2"
 
 BBCLASSEXTEND = "native"
diff --git a/meta-openembedded/meta-oe/recipes-support/smarty/smarty_3.1.39.bb b/meta-openembedded/meta-oe/recipes-support/smarty/smarty_3.1.39.bb
new file mode 100644
index 0000000..50d9958
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-support/smarty/smarty_3.1.39.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "the compiling PHP template engine"
+SECTION = "console/network"
+HOMEPAGE = "https://www.smarty.net/"
+
+LICENSE = "GPLv3"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=2c0f216b2120ffc367e20f2b56df51b3"
+
+DEPENDS = "php"
+
+SRC_URI = "git://github.com/smarty-php/smarty.git;protocol=https;tag=v${PV}"
+
+FILES:${PN} = "${datadir}/php/smarty3/"
+
+S = "${WORKDIR}/git"
+
+do_install() {
+        install -d ${D}${datadir}/php/smarty3/libs/
+        install -m 0644 ${S}/libs/*.php ${D}${datadir}/php/smarty3/libs/
+
+        install -d ${D}${datadir}/php/smarty3/libs/plugins
+        install -m 0644 ${S}/libs/plugins/*.php ${D}${datadir}/php/smarty3/libs/plugins/
+
+        install -d ${D}${datadir}/php/smarty3/libs/sysplugins
+        install -m 0644 ${S}/libs/sysplugins/*.php ${D}${datadir}/php/smarty3/libs/sysplugins/
+}
diff --git a/meta-openembedded/meta-perl/README b/meta-openembedded/meta-perl/README
index c519dff..13014b0 100644
--- a/meta-openembedded/meta-perl/README
+++ b/meta-openembedded/meta-perl/README
@@ -53,8 +53,6 @@
 
   URI: git://git.openembedded.org/openembedded-core
   branch: master
-  revision: HEAD
-  prio: default
 
 Adding the meta-perl layer to your build
 ---------------------------------------
diff --git a/meta-openembedded/meta-python/README b/meta-openembedded/meta-python/README
index df6abe0..194bac3 100644
--- a/meta-openembedded/meta-python/README
+++ b/meta-openembedded/meta-python/README
@@ -14,12 +14,10 @@
 	URI: git://git.openembedded.org/openembedded-core
 	layers: meta
 	branch: master
-	revision: HEAD
 
 	URI: git://git.openembedded.org/meta-openembedded
 	layers: meta-oe
 	branch: master
-	revision: HEAD
 
 Please follow the recommended setup procedures of your OE distribution.
 For Angstrom that is:
diff --git a/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.80.bb b/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.81.bb
similarity index 66%
rename from meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.80.bb
rename to meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.81.bb
index ba331ee..b05ce34 100644
--- a/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.80.bb
+++ b/meta-openembedded/meta-python/recipes-connectivity/python-pyro4/python3-pyro4_4.81.bb
@@ -2,8 +2,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=cd13dafd4eeb0802bb6efea6b4a4bdbc"
 
-SRC_URI[md5sum] = "e31fc077e06de9fc0bb061e357401954"
-SRC_URI[sha256sum] = "46847ca703de3f483fbd0b2d22622f36eff03e6ef7ec7704d4ecaa3964cb2220"
+SRC_URI[sha256sum] = "e130da06478b813173b959f7013d134865e07fbf58cc5f1a2598f99479cdac5f"
 
 PYPI_PACKAGE = "Pyro4"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.1.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.2.0.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.1.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.2.0.bb
index 874e7cf..2632ce1 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.1.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-cmd2_2.2.0.bb
@@ -5,7 +5,7 @@
 
 DEPENDS += "${PYTHON_PN}-setuptools-scm-native"
 
-SRC_URI[sha256sum] = "25dbb2e9847aaa686a8a21e84e3d101db8b79f5cb992e044fc54210ab8c0ad41"
+SRC_URI[sha256sum] = "34cd12424d9e2835eff125146af3d9f4a4c2931c6bc5a3cea9790bd4f55756d9"
 
 inherit pypi setuptools3
 
@@ -17,6 +17,7 @@
     ${PYTHON_PN}-compression \
     ${PYTHON_PN}-pydoc \
     ${PYTHON_PN}-json \
+    ${PYTHON_PN}-numbers \
 "
 
 BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-huey_2.4.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-huey_2.4.0.bb
deleted file mode 100644
index afdc65b..0000000
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-huey_2.4.0.bb
+++ /dev/null
@@ -1,11 +0,0 @@
-SUMMARY = "a little task queue for python"
-SECTION = "devel/python"
-LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://LICENSE;md5=5cac039fcc82f01141cc170b48f315d4"
-
-PYPI_PACKAGE = "huey"
-
-SRC_URI[sha256sum] = "82981fb8f1964e8c9ee8f4ebcd5a2ebad561dd93ce8b454bf4f4ecfb54bd1411"
-
-inherit pypi setuptools3
-
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-huey_2.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-huey_2.4.1.bb
new file mode 100644
index 0000000..64bd888
--- /dev/null
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-huey_2.4.1.bb
@@ -0,0 +1,18 @@
+SUMMARY = "a little task queue for python"
+SECTION = "devel/python"
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=5cac039fcc82f01141cc170b48f315d4"
+
+PYPI_PACKAGE = "huey"
+
+SRC_URI[sha256sum] = "bd55e90746cec16e7a61d6dc60d4591c74cba59000dca96c387a4d4eee1395f6"
+
+RDEPENDS:${PN} += " \
+	python3-datetime \
+	python3-logging \
+	python3-multiprocessing \
+	python3-json \
+"
+
+inherit pypi setuptools3
+
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_9.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_10.0.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_9.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_10.0.bb
index d87ed4d..7d18598 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_9.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-humanfriendly_10.0.bb
@@ -6,7 +6,7 @@
 
 PYPI_PACKAGE = "humanfriendly"
 
-SRC_URI[sha256sum] = "f7dba53ac7935fd0b4a2fc9a29e316ddd9ea135fb3052d3d0279d10c18ff9c48"
+SRC_URI[sha256sum] = "6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc"
 
 inherit pypi setuptools3
 
@@ -21,4 +21,4 @@
     ${PYTHON_PN}-stringold \
 "
 
-BBCLASSEXTEND = "native"
+BBCLASSEXTEND = "native nativesdk"
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.2.0.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.2.1.bb
similarity index 83%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.2.0.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.2.1.bb
index c1f5288..1fd76ed 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.2.0.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pychromecast_9.2.1.bb
@@ -3,7 +3,7 @@
 LICENSE = "MIT"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=b1dbd4e85f47b389bdadee9c694669f5"
 
-SRC_URI[sha256sum] = "6d34593575cf77565df47af4c75dd47c6a65831ec18a8c10b5367b2f1c172f0a"
+SRC_URI[sha256sum] = "883d6e836ff5f1068a8bd00364a15b4c9854293086495e9fd9cacd9b4d54c0bf"
 
 PYPI_PACKAGE = "PyChromecast"
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.2.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.2.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb
index f58074a..3c91eee 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.2.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-pyzmq_22.3.0.bb
@@ -8,7 +8,7 @@
 FILESEXTRAPATHS:prepend := "${THISDIR}/python-pyzmq:"
 
 SRC_URI += "file://club-rpath-out.patch"
-SRC_URI[sha256sum] = "6d18c76676771fd891ca8e0e68da0bbfb88e30129835c0ade748016adb3b6242"
+SRC_URI[sha256sum] = "8eddc033e716f8c91c6a2112f0a8ebc5e00532b4a6ae1eb0ccc48e027f9c671c"
 
 inherit pypi pkgconfig setuptools3
 
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.1.bb
similarity index 91%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.1.bb
index 7c6c41a..d715f35 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-robotframework_4.1.1.bb
@@ -13,7 +13,7 @@
 
 PYPI_PACKAGE_EXT = "zip"
 
-SRC_URI[sha256sum] = "567f2a21f0906635e21d45fe3cb84a4809a12980c9f2706a8a5f65f40f6b4ccd"
+SRC_URI[sha256sum] = "663f84c177b2fa9b3b782939e31637a057a33f3a4b29067812f1259b7f4bad35"
 
 RDEPENDS:${PN} += " \
     ${PYTHON_PN}-shell \
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.4.1.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.4.2.bb
similarity index 81%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.4.1.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.4.2.bb
index 3565da7..0980ff9 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.4.1.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-sqlparse_0.4.2.bb
@@ -8,8 +8,7 @@
             file://run-ptest \
 	    "
 
-SRC_URI[md5sum] = "eebbc6b5f1033054873033e54b0c1266"
-SRC_URI[sha256sum] = "0f91fd2e829c44362cbcfab3e9ae12e22badaa8a29ad5ff599f9ec109f0454e8"
+SRC_URI[sha256sum] = "0c00730c74263a94e5a9919ade150dfc3b19c574389985446148402998287dae"
 
 export BUILD_SYS
 export HOST_SYS
diff --git a/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.62.2.bb b/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.62.3.bb
similarity index 65%
rename from meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.62.2.bb
rename to meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.62.3.bb
index bbdd795..148431d 100644
--- a/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.62.2.bb
+++ b/meta-openembedded/meta-python/recipes-devtools/python/python3-tqdm_4.62.3.bb
@@ -3,9 +3,9 @@
 SECTION = "devel/python"
 
 LICENSE = "MIT & MPL-2.0"
-LIC_FILES_CHKSUM = "file://LICENCE;md5=59e4271a933d33edfe60237db377a14b"
+LIC_FILES_CHKSUM = "file://LICENCE;md5=1672e2674934fd93a31c09cf17f34100"
 
-SRC_URI[sha256sum] = "a4d6d112e507ef98513ac119ead1159d286deab17dffedd96921412c2d236ff5"
+SRC_URI[sha256sum] = "d359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d"
 
 inherit pypi setuptools3
 
diff --git a/meta-openembedded/meta-webserver/README b/meta-openembedded/meta-webserver/README
index 7b60630..d23f6cc 100644
--- a/meta-openembedded/meta-webserver/README
+++ b/meta-openembedded/meta-webserver/README
@@ -11,17 +11,15 @@
 
 This layer depends on:
 
-URI: git://github.com/openembedded/oe-core.git
+URI: git://git.openembedded.org/openembedded-core
 subdirectory: meta
 branch: master
-revision: HEAD
 
 For some recipes, the meta-oe layer is required:
 
-URI: git://github.com/openembedded/meta-oe.git
+URI: git://git.openembedded.org/meta-openembedded
 subdirectory: meta-oe
 branch: master
-revision: HEAD
 
 
 
diff --git a/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.1.0.bb b/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.1.1.bb
similarity index 90%
rename from meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.1.0.bb
rename to meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.1.1.bb
index 84e1da6..b64824c 100644
--- a/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.1.0.bb
+++ b/meta-openembedded/meta-webserver/recipes-php/phpmyadmin/phpmyadmin_5.1.1.bb
@@ -11,8 +11,8 @@
            file://apache.conf \
 "
 
-SRC_URI[md5sum] = "4587343e706c5434adf91c396b418731"
-SRC_URI[sha256sum] = "aa8ccf357f672012384df34e1c2bc70147476761c8458a0dad6233497e142c68"
+SRC_URI[md5sum] = "e73377b11b7d38fa3f3014f2799c5252"
+SRC_URI[sha256sum] = "1964d7190223c11e89fa1b7970c618e3a3bae2e859f5f60383f64c3848ef6921"
 
 UPSTREAM_CHECK_URI = "https://www.phpmyadmin.net/downloads/"
 UPSTREAM_CHECK_REGEX = "phpMyAdmin-(?P<pver>\d+(\.\d+)+)-all-languages.tar.xz"
diff --git a/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_git.bb b/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_1.22.1.bb
similarity index 92%
rename from meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_git.bb
rename to meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_1.22.1.bb
index 7ec9898..fb4d272 100644
--- a/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_git.bb
+++ b/meta-openembedded/meta-webserver/recipes-webadmin/netdata/netdata_1.22.1.bb
@@ -5,15 +5,14 @@
 LICENSE = "GPLv3"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=fc9b848046ef54b5eaee6071947abd24"
 
-SRC_URI:append = " git://github.com/firehol/netdata.git;protocol=https"
+SRC_URI = "git://github.com/netdata/netdata.git;protocol=https"
 SRCREV = "1be9200ba8e11dc81a2101d85a2725137d43f766"
-PV = "1.22.1"
 
 # default netdata.conf for netdata configuration
-SRC_URI += " file://netdata.conf"
+SRC_URI += "file://netdata.conf"
 
 # file for providing systemd service support
-SRC_URI += " file://netdata.service"
+SRC_URI += "file://netdata.service"
 
 S = "${WORKDIR}/git"
 
diff --git a/meta-openembedded/meta-xfce/README b/meta-openembedded/meta-xfce/README
index bbf4b2e..1e9acc4 100644
--- a/meta-openembedded/meta-xfce/README
+++ b/meta-openembedded/meta-xfce/README
@@ -1,12 +1,11 @@
 This layer depends on:
 
-URI: git://github.com/openembedded/oe-core.git
+URI: git://git.openembedded.org/openembedded-core
 branch: master
-revision: HEAD
 
-URI: git://github.com/openembedded/meta-oe.git
+URI: git://git.openembedded.org/meta-openembedded
 branch: master
-revision: HEAD
+
 meta-xfce depends on meta-oe, meta-gnome and meta-multimedia in this repository.
 
 To avoid dependencies on meta-multimedia you need to mask recipes by adding
diff --git a/meta-security/meta-parsec/recipes-parsec/parsec-service/files/cryptoki.patch b/meta-security/meta-parsec/recipes-parsec/parsec-service/files/cryptoki.patch
deleted file mode 100644
index c234479..0000000
--- a/meta-security/meta-parsec/recipes-parsec/parsec-service/files/cryptoki.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-
-Use cryptoki v0.1.1 which supports the "generate-bindings" feature
-required for building Parsec service 0.7.0 in Yocto.
-
-Signed-off-by: Anton Antonov <Anton.Antonov@arm.com>
-Upstream-Status: Submitted
-
---- a/Cargo.toml	2021-04-01 10:29:50.333687763 +0100
-+++ b/Cargo.toml	2021-04-01 10:27:13.051860002 +0100
-@@ -37,7 +37,7 @@
- version = "1.3.1"
- 
- [dependencies.cryptoki]
--version = "0.1.0"
-+version = "0.1.1"
- features = ["psa-crypto-conversions"]
- optional = true
- 
diff --git a/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.inc b/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.inc
deleted file mode 100644
index 59a47f9..0000000
--- a/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.inc
+++ /dev/null
@@ -1,147 +0,0 @@
-# This file is created from parsec-service repository Cargo.lock using cargo-bitbake tool
-
-SRC_URI += " \
-    crate://crates.io/aho-corasick/0.7.15 \
-    crate://crates.io/ansi_term/0.11.0 \
-    crate://crates.io/anyhow/1.0.38 \
-    crate://crates.io/atty/0.2.14 \
-    crate://crates.io/autocfg/1.0.1 \
-    crate://crates.io/base64/0.12.3 \
-    crate://crates.io/base64/0.13.0 \
-    crate://crates.io/bincode/1.3.2 \
-    crate://crates.io/bindgen/0.56.0 \
-    crate://crates.io/bindgen/0.57.0 \
-    crate://crates.io/bitfield/0.13.2 \
-    crate://crates.io/bitflags/1.2.1 \
-    crate://crates.io/byteorder/1.3.4 \
-    crate://crates.io/bytes/0.5.6 \
-    crate://crates.io/bytes/1.0.1 \
-    crate://crates.io/cc/1.0.67 \
-    crate://crates.io/cexpr/0.4.0 \
-    crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/clang-sys/1.1.1 \
-    crate://crates.io/clap/2.33.3 \
-    crate://crates.io/cmake/0.1.45 \
-    crate://crates.io/cryptoauthlib-sys/0.1.0 \
-    crate://crates.io/cryptoki-sys/0.1.1 \
-    crate://crates.io/cryptoki/0.1.1 \
-    crate://crates.io/derivative/2.2.0 \
-    crate://crates.io/either/1.6.1 \
-    crate://crates.io/enumflags2/0.6.4 \
-    crate://crates.io/enumflags2_derive/0.6.4 \
-    crate://crates.io/env_logger/0.8.3 \
-    crate://crates.io/fixedbitset/0.2.0 \
-    crate://crates.io/getrandom/0.2.2 \
-    crate://crates.io/glob/0.3.0 \
-    crate://crates.io/hashbrown/0.9.1 \
-    crate://crates.io/heck/0.3.2 \
-    crate://crates.io/hermit-abi/0.1.18 \
-    crate://crates.io/hex/0.4.3 \
-    crate://crates.io/hostname-validator/1.0.0 \
-    crate://crates.io/humantime/2.1.0 \
-    crate://crates.io/indexmap/1.6.2 \
-    crate://crates.io/itertools/0.8.2 \
-    crate://crates.io/itertools/0.9.0 \
-    crate://crates.io/lazy_static/1.4.0 \
-    crate://crates.io/lazycell/1.3.0 \
-    crate://crates.io/libc/0.2.89 \
-    crate://crates.io/libloading/0.7.0 \
-    crate://crates.io/log/0.4.14 \
-    crate://crates.io/mbox/0.5.0 \
-    crate://crates.io/memchr/2.3.4 \
-    crate://crates.io/multimap/0.8.3 \
-    crate://crates.io/nom/5.1.2 \
-    crate://crates.io/num-bigint/0.3.2 \
-    crate://crates.io/num-complex/0.3.1 \
-    crate://crates.io/num-derive/0.3.3 \
-    crate://crates.io/num-integer/0.1.44 \
-    crate://crates.io/num-iter/0.1.42 \
-    crate://crates.io/num-rational/0.3.2 \
-    crate://crates.io/num-traits/0.2.14 \
-    crate://crates.io/num/0.3.1 \
-    crate://crates.io/num_cpus/1.13.0 \
-    crate://crates.io/oid/0.1.1 \
-    crate://crates.io/parsec-interface/0.24.0 \
-    crate://crates.io/peeking_take_while/0.1.2 \
-    crate://crates.io/petgraph/0.5.1 \
-    crate://crates.io/picky-asn1-der/0.2.4 \
-    crate://crates.io/picky-asn1-x509/0.4.0 \
-    crate://crates.io/picky-asn1/0.3.1 \
-    crate://crates.io/pkg-config/0.3.19 \
-    crate://crates.io/ppv-lite86/0.2.10 \
-    crate://crates.io/proc-macro-error-attr/1.0.4 \
-    crate://crates.io/proc-macro-error/1.0.4 \
-    crate://crates.io/proc-macro2/1.0.24 \
-    crate://crates.io/prost-build/0.6.1 \
-    crate://crates.io/prost-build/0.7.0 \
-    crate://crates.io/prost-derive/0.6.1 \
-    crate://crates.io/prost-derive/0.7.0 \
-    crate://crates.io/prost-types/0.6.1 \
-    crate://crates.io/prost-types/0.7.0 \
-    crate://crates.io/prost/0.6.1 \
-    crate://crates.io/prost/0.7.0 \
-    crate://crates.io/psa-crypto-sys/0.8.0 \
-    crate://crates.io/psa-crypto/0.8.0 \
-    crate://crates.io/quote/1.0.9 \
-    crate://crates.io/rand/0.8.3 \
-    crate://crates.io/rand_chacha/0.3.0 \
-    crate://crates.io/rand_core/0.6.2 \
-    crate://crates.io/rand_hc/0.3.0 \
-    crate://crates.io/redox_syscall/0.2.5 \
-    crate://crates.io/regex-syntax/0.6.23 \
-    crate://crates.io/regex/1.4.5 \
-    crate://crates.io/remove_dir_all/0.5.3 \
-    crate://crates.io/rust-cryptoauthlib/0.1.0 \
-    crate://crates.io/rustc-hash/1.1.0 \
-    crate://crates.io/rustc_version/0.2.3 \
-    crate://crates.io/same-file/1.0.6 \
-    crate://crates.io/sd-notify/0.2.0 \
-    crate://crates.io/secrecy/0.7.0 \
-    crate://crates.io/semver-parser/0.7.0 \
-    crate://crates.io/semver/0.9.0 \
-    crate://crates.io/serde/1.0.124 \
-    crate://crates.io/serde_bytes/0.11.5 \
-    crate://crates.io/serde_derive/1.0.124 \
-    crate://crates.io/shlex/0.1.1 \
-    crate://crates.io/signal-hook-registry/1.3.0 \
-    crate://crates.io/signal-hook/0.3.7 \
-    crate://crates.io/stable_deref_trait/1.2.0 \
-    crate://crates.io/strsim/0.8.0 \
-    crate://crates.io/structopt-derive/0.4.14 \
-    crate://crates.io/structopt/0.3.21 \
-    crate://crates.io/strum_macros/0.19.4 \
-    crate://crates.io/syn/1.0.64 \
-    crate://crates.io/synstructure/0.12.4 \
-    crate://crates.io/tempfile/3.2.0 \
-    crate://crates.io/termcolor/1.1.2 \
-    crate://crates.io/textwrap/0.11.0 \
-    crate://crates.io/thiserror-impl/1.0.24 \
-    crate://crates.io/thiserror/1.0.24 \
-    crate://crates.io/threadpool/1.8.1 \
-    crate://crates.io/toml/0.5.8 \
-    crate://crates.io/tss-esapi-sys/0.1.0 \
-    crate://crates.io/tss-esapi/5.0.0 \
-    crate://crates.io/unicode-segmentation/1.7.1 \
-    crate://crates.io/unicode-width/0.1.8 \
-    crate://crates.io/unicode-xid/0.2.1 \
-    crate://crates.io/users/0.11.0 \
-    crate://crates.io/uuid/0.8.2 \
-    crate://crates.io/vec_map/0.8.2 \
-    crate://crates.io/version/3.0.0 \
-    crate://crates.io/version_check/0.9.3 \
-    crate://crates.io/walkdir/2.3.1 \
-    crate://crates.io/wasi/0.10.2+wasi-snapshot-preview1 \
-    crate://crates.io/which/3.1.1 \
-    crate://crates.io/which/4.0.2 \
-    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi-util/0.1.5 \
-    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi/0.3.9 \
-    crate://crates.io/zeroize/1.2.0 \
-    crate://crates.io/zeroize_derive/1.0.1 \
-    file://cryptoki.patch \
-"
-
-LIC_FILES_CHKSUM = " \
-    file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
-"
diff --git a/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.bb b/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.8.1.bb
similarity index 77%
rename from meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.bb
rename to meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.8.1.bb
index 5f7a99b..b8bfa98 100644
--- a/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.7.0.bb
+++ b/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.8.1.bb
@@ -10,9 +10,18 @@
             file://parsec-tmpfiles.conf \
 "
 
-DEPENDS = "tpm2-tss clang-native"
+DEPENDS = "clang-native"
 
-CARGO_BUILD_FLAGS += " --features all-providers,cryptoki/generate-bindings,tss-esapi/generate-bindings"
+PACKAGECONFIG ??= "TPM PKCS11 MBED-CRYPTO CRYPTOAUTHLIB"
+PACKAGECONFIG[ALL] = "all-providers,,tpm2-tss libts,libts"
+PACKAGECONFIG[TPM] = "tpm-provider,,tpm2-tss"
+PACKAGECONFIG[PKCS11] = "pkcs11-provider,"
+PACKAGECONFIG[MBED-CRYPTO] = "mbed-crypto-provider,"
+PACKAGECONFIG[CRYPTOAUTHLIB] = "cryptoauthlib-provider,"
+PACKAGECONFIG[TS] = "trusted-service-provider,,libts,libts"
+
+PARSEC_PROVIDERS = "${@d.getVar('PACKAGECONFIG_CONFARGS',True).replace(' ', ',')}"
+CARGO_BUILD_FLAGS += " --features ${PARSEC_PROVIDERS},cryptoki/generate-bindings,tss-esapi/generate-bindings"
 
 inherit systemd
 SYSTEMD_SERVICE:${PN} = "parsec.service"
diff --git a/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.8.1.inc b/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.8.1.inc
new file mode 100644
index 0000000..fd88e87
--- /dev/null
+++ b/meta-security/meta-parsec/recipes-parsec/parsec-service/parsec-service_0.8.1.inc
@@ -0,0 +1,246 @@
+# This file is created from parsec-service repository Cargo.lock using cargo-bitbake tool
+
+SRC_URI += " \
+    crate://crates.io/addr2line/0.15.2 \
+    crate://crates.io/adler/1.0.2 \
+    crate://crates.io/aho-corasick/0.7.15 \
+    crate://crates.io/ansi_term/0.11.0 \
+    crate://crates.io/anyhow/1.0.41 \
+    crate://crates.io/arrayvec/0.5.2 \
+    crate://crates.io/atty/0.2.14 \
+    crate://crates.io/autocfg/1.0.1 \
+    crate://crates.io/backtrace/0.3.59 \
+    crate://crates.io/base64/0.12.3 \
+    crate://crates.io/base64/0.13.0 \
+    crate://crates.io/bincode/1.3.3 \
+    crate://crates.io/bindgen/0.56.0 \
+    crate://crates.io/bindgen/0.57.0 \
+    crate://crates.io/bitfield/0.13.2 \
+    crate://crates.io/bitflags/1.2.1 \
+    crate://crates.io/bitvec/0.19.5 \
+    crate://crates.io/boringssl-src/0.3.0+688fc5c \
+    crate://crates.io/bumpalo/3.7.0 \
+    crate://crates.io/bytes/0.5.6 \
+    crate://crates.io/bytes/1.0.1 \
+    crate://crates.io/cc/1.0.68 \
+    crate://crates.io/cexpr/0.4.0 \
+    crate://crates.io/cfg-if/1.0.0 \
+    crate://crates.io/chrono/0.4.19 \
+    crate://crates.io/clang-sys/1.2.0 \
+    crate://crates.io/clap/2.33.3 \
+    crate://crates.io/cmake/0.1.45 \
+    crate://crates.io/const-oid/0.6.0 \
+    crate://crates.io/cryptoauthlib-sys/0.2.0 \
+    crate://crates.io/cryptoki-sys/0.1.2 \
+    crate://crates.io/cryptoki/0.2.0 \
+    crate://crates.io/data-encoding/2.3.2 \
+    crate://crates.io/der-oid-macro/0.4.0 \
+    crate://crates.io/der-parser/5.1.0 \
+    crate://crates.io/der/0.4.0 \
+    crate://crates.io/derivative/2.2.0 \
+    crate://crates.io/either/1.6.1 \
+    crate://crates.io/enumflags2/0.6.4 \
+    crate://crates.io/enumflags2_derive/0.6.4 \
+    crate://crates.io/env_logger/0.8.4 \
+    crate://crates.io/failure/0.1.8 \
+    crate://crates.io/failure_derive/0.1.8 \
+    crate://crates.io/fixedbitset/0.2.0 \
+    crate://crates.io/form_urlencoded/1.0.1 \
+    crate://crates.io/funty/1.1.0 \
+    crate://crates.io/futures-channel/0.3.15 \
+    crate://crates.io/futures-core/0.3.15 \
+    crate://crates.io/futures-executor/0.3.15 \
+    crate://crates.io/futures-io/0.3.15 \
+    crate://crates.io/futures-macro/0.3.15 \
+    crate://crates.io/futures-sink/0.3.15 \
+    crate://crates.io/futures-task/0.3.15 \
+    crate://crates.io/futures-util/0.3.15 \
+    crate://crates.io/futures/0.3.15 \
+    crate://crates.io/generic-array/0.14.4 \
+    crate://crates.io/getrandom/0.2.3 \
+    crate://crates.io/gimli/0.24.0 \
+    crate://crates.io/glob/0.3.0 \
+    crate://crates.io/grpcio-compiler/0.7.0 \
+    crate://crates.io/grpcio-sys/0.9.0+1.38.0 \
+    crate://crates.io/grpcio/0.9.0 \
+    crate://crates.io/hamming/0.1.3 \
+    crate://crates.io/hashbrown/0.9.1 \
+    crate://crates.io/heck/0.3.3 \
+    crate://crates.io/hermit-abi/0.1.18 \
+    crate://crates.io/hex/0.4.3 \
+    crate://crates.io/hostname-validator/1.1.0 \
+    crate://crates.io/humantime/2.1.0 \
+    crate://crates.io/idna/0.2.3 \
+    crate://crates.io/indexmap/1.6.2 \
+    crate://crates.io/instant/0.1.9 \
+    crate://crates.io/itertools/0.8.2 \
+    crate://crates.io/itertools/0.9.0 \
+    crate://crates.io/itoa/0.4.7 \
+    crate://crates.io/js-sys/0.3.51 \
+    crate://crates.io/jsonwebkey/0.3.2 \
+    crate://crates.io/jsonwebtoken/7.2.0 \
+    crate://crates.io/lazy_static/1.4.0 \
+    crate://crates.io/lazycell/1.3.0 \
+    crate://crates.io/lexical-core/0.7.6 \
+    crate://crates.io/libc/0.2.97 \
+    crate://crates.io/libloading/0.7.0 \
+    crate://crates.io/libz-sys/1.1.3 \
+    crate://crates.io/lock_api/0.4.4 \
+    crate://crates.io/log/0.4.14 \
+    crate://crates.io/matches/0.1.8 \
+    crate://crates.io/mbox/0.5.0 \
+    crate://crates.io/memchr/2.3.4 \
+    crate://crates.io/miniz_oxide/0.4.4 \
+    crate://crates.io/multimap/0.8.3 \
+    crate://crates.io/nom/5.1.2 \
+    crate://crates.io/nom/6.2.0 \
+    crate://crates.io/num-bigint/0.2.6 \
+    crate://crates.io/num-bigint/0.3.2 \
+    crate://crates.io/num-bigint/0.4.0 \
+    crate://crates.io/num-complex/0.3.1 \
+    crate://crates.io/num-derive/0.3.3 \
+    crate://crates.io/num-integer/0.1.44 \
+    crate://crates.io/num-iter/0.1.42 \
+    crate://crates.io/num-rational/0.3.2 \
+    crate://crates.io/num-traits/0.2.14 \
+    crate://crates.io/num/0.3.1 \
+    crate://crates.io/num_cpus/1.13.0 \
+    crate://crates.io/object/0.24.0 \
+    crate://crates.io/oid-registry/0.1.3 \
+    crate://crates.io/oid/0.1.1 \
+    crate://crates.io/once_cell/1.8.0 \
+    crate://crates.io/parking_lot/0.11.1 \
+    crate://crates.io/parking_lot_core/0.8.3 \
+    crate://crates.io/parsec-interface/0.25.0 \
+    crate://crates.io/peeking_take_while/0.1.2 \
+    crate://crates.io/pem/0.8.3 \
+    crate://crates.io/percent-encoding/2.1.0 \
+    crate://crates.io/petgraph/0.5.1 \
+    crate://crates.io/picky-asn1-der/0.2.4 \
+    crate://crates.io/picky-asn1-x509/0.4.0 \
+    crate://crates.io/picky-asn1/0.3.1 \
+    crate://crates.io/pin-project-lite/0.2.6 \
+    crate://crates.io/pin-utils/0.1.0 \
+    crate://crates.io/pkcs8/0.7.0 \
+    crate://crates.io/pkg-config/0.3.19 \
+    crate://crates.io/ppv-lite86/0.2.10 \
+    crate://crates.io/primal-bit/0.3.0 \
+    crate://crates.io/primal-check/0.3.1 \
+    crate://crates.io/primal-estimate/0.3.1 \
+    crate://crates.io/primal-sieve/0.3.1 \
+    crate://crates.io/primal/0.3.0 \
+    crate://crates.io/proc-macro-error-attr/1.0.4 \
+    crate://crates.io/proc-macro-error/1.0.4 \
+    crate://crates.io/proc-macro-hack/0.5.19 \
+    crate://crates.io/proc-macro-nested/0.1.7 \
+    crate://crates.io/proc-macro2/1.0.27 \
+    crate://crates.io/prost-build/0.7.0 \
+    crate://crates.io/prost-derive/0.6.1 \
+    crate://crates.io/prost-derive/0.7.0 \
+    crate://crates.io/prost-types/0.7.0 \
+    crate://crates.io/prost/0.6.1 \
+    crate://crates.io/prost/0.7.0 \
+    crate://crates.io/protobuf-codegen/2.24.1 \
+    crate://crates.io/protobuf/2.24.1 \
+    crate://crates.io/protoc-grpcio/3.0.0 \
+    crate://crates.io/protoc/2.24.1 \
+    crate://crates.io/psa-crypto-sys/0.9.0 \
+    crate://crates.io/psa-crypto/0.9.0 \
+    crate://crates.io/quote/1.0.9 \
+    crate://crates.io/radium/0.5.3 \
+    crate://crates.io/rand/0.8.4 \
+    crate://crates.io/rand_chacha/0.3.1 \
+    crate://crates.io/rand_core/0.6.3 \
+    crate://crates.io/rand_hc/0.3.1 \
+    crate://crates.io/redox_syscall/0.2.9 \
+    crate://crates.io/regex-syntax/0.6.25 \
+    crate://crates.io/regex/1.4.6 \
+    crate://crates.io/remove_dir_all/0.5.3 \
+    crate://crates.io/ring/0.16.20 \
+    crate://crates.io/rust-cryptoauthlib/0.4.0 \
+    crate://crates.io/rustc-demangle/0.1.20 \
+    crate://crates.io/rustc-hash/1.1.0 \
+    crate://crates.io/rustc_version/0.2.3 \
+    crate://crates.io/rusticata-macros/3.0.1 \
+    crate://crates.io/rustversion/1.0.5 \
+    crate://crates.io/ryu/1.0.5 \
+    crate://crates.io/same-file/1.0.6 \
+    crate://crates.io/scopeguard/1.1.0 \
+    crate://crates.io/sd-notify/0.2.0 \
+    crate://crates.io/secrecy/0.7.0 \
+    crate://crates.io/semver-parser/0.7.0 \
+    crate://crates.io/semver/0.9.0 \
+    crate://crates.io/serde/1.0.126 \
+    crate://crates.io/serde_bytes/0.11.5 \
+    crate://crates.io/serde_derive/1.0.126 \
+    crate://crates.io/serde_json/1.0.64 \
+    crate://crates.io/shlex/0.1.1 \
+    crate://crates.io/signal-hook-registry/1.4.0 \
+    crate://crates.io/signal-hook/0.3.9 \
+    crate://crates.io/simple_asn1/0.4.1 \
+    crate://crates.io/simple_asn1/0.5.3 \
+    crate://crates.io/slab/0.4.3 \
+    crate://crates.io/smallvec/1.6.1 \
+    crate://crates.io/spiffe/0.1.1 \
+    crate://crates.io/spin/0.5.2 \
+    crate://crates.io/spki/0.4.0 \
+    crate://crates.io/stable_deref_trait/1.2.0 \
+    crate://crates.io/static_assertions/1.1.0 \
+    crate://crates.io/strsim/0.8.0 \
+    crate://crates.io/structopt-derive/0.4.14 \
+    crate://crates.io/structopt/0.3.21 \
+    crate://crates.io/strum_macros/0.19.4 \
+    crate://crates.io/syn/1.0.73 \
+    crate://crates.io/synstructure/0.12.4 \
+    crate://crates.io/tap/1.0.1 \
+    crate://crates.io/target-lexicon/0.12.0 \
+    crate://crates.io/tempfile/3.2.0 \
+    crate://crates.io/termcolor/1.1.2 \
+    crate://crates.io/textwrap/0.11.0 \
+    crate://crates.io/thiserror-impl/1.0.25 \
+    crate://crates.io/thiserror/1.0.25 \
+    crate://crates.io/threadpool/1.8.1 \
+    crate://crates.io/time/0.1.44 \
+    crate://crates.io/tinyvec/1.2.0 \
+    crate://crates.io/tinyvec_macros/0.1.0 \
+    crate://crates.io/toml/0.5.8 \
+    crate://crates.io/tss-esapi-sys/0.2.0 \
+    crate://crates.io/tss-esapi/7.0.0-alpha.1 \
+    crate://crates.io/typenum/1.13.0 \
+    crate://crates.io/unicode-bidi/0.3.5 \
+    crate://crates.io/unicode-normalization/0.1.19 \
+    crate://crates.io/unicode-segmentation/1.7.1 \
+    crate://crates.io/unicode-width/0.1.8 \
+    crate://crates.io/unicode-xid/0.2.2 \
+    crate://crates.io/untrusted/0.7.1 \
+    crate://crates.io/url/2.2.2 \
+    crate://crates.io/users/0.11.0 \
+    crate://crates.io/uuid/0.8.2 \
+    crate://crates.io/vcpkg/0.2.15 \
+    crate://crates.io/vec_map/0.8.2 \
+    crate://crates.io/version/3.0.0 \
+    crate://crates.io/version_check/0.9.3 \
+    crate://crates.io/walkdir/2.3.2 \
+    crate://crates.io/wasi/0.10.0+wasi-snapshot-preview1 \
+    crate://crates.io/wasm-bindgen-backend/0.2.74 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.74 \
+    crate://crates.io/wasm-bindgen-macro/0.2.74 \
+    crate://crates.io/wasm-bindgen-shared/0.2.74 \
+    crate://crates.io/wasm-bindgen/0.2.74 \
+    crate://crates.io/web-sys/0.3.51 \
+    crate://crates.io/which/3.1.1 \
+    crate://crates.io/which/4.1.0 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+    crate://crates.io/winapi-util/0.1.5 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+    crate://crates.io/winapi/0.3.9 \
+    crate://crates.io/wyz/0.2.0 \
+    crate://crates.io/x509-parser/0.9.2 \
+    crate://crates.io/yasna/0.3.2 \
+    crate://crates.io/zeroize/1.3.0 \
+    crate://crates.io/zeroize_derive/1.1.0 \
+"
+
+LIC_FILES_CHKSUM = " \
+    file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+"
diff --git a/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.inc b/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.inc
deleted file mode 100644
index 9560dcf..0000000
--- a/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.inc
+++ /dev/null
@@ -1,127 +0,0 @@
-# This file is created from parsec-tool repository Cargo.lock using cargo-bitbake tool
-
-SRC_URI += " \
-    crate://crates.io/aho-corasick/0.7.15 \
-    crate://crates.io/ansi_term/0.11.0 \
-    crate://crates.io/ansi_term/0.12.1 \
-    crate://crates.io/anyhow/1.0.38 \
-    crate://crates.io/atty/0.2.14 \
-    crate://crates.io/autocfg/1.0.1 \
-    crate://crates.io/base64/0.13.0 \
-    crate://crates.io/bincode/1.3.1 \
-    crate://crates.io/bitflags/1.2.1 \
-    crate://crates.io/block-buffer/0.9.0 \
-    crate://crates.io/byteorder/1.4.2 \
-    crate://crates.io/bytes/0.5.6 \
-    crate://crates.io/cc/1.0.66 \
-    crate://crates.io/cfg-if/1.0.0 \
-    crate://crates.io/clap/2.33.3 \
-    crate://crates.io/clap/3.0.0-beta.2 \
-    crate://crates.io/clap_derive/3.0.0-beta.2 \
-    crate://crates.io/cmake/0.1.45 \
-    crate://crates.io/cpuid-bool/0.1.2 \
-    crate://crates.io/derivative/2.2.0 \
-    crate://crates.io/digest/0.9.0 \
-    crate://crates.io/either/1.6.1 \
-    crate://crates.io/env_logger/0.8.3 \
-    crate://crates.io/fixedbitset/0.2.0 \
-    crate://crates.io/form_urlencoded/1.0.0 \
-    crate://crates.io/generic-array/0.14.4 \
-    crate://crates.io/getrandom/0.2.2 \
-    crate://crates.io/hashbrown/0.9.1 \
-    crate://crates.io/heck/0.3.2 \
-    crate://crates.io/hermit-abi/0.1.18 \
-    crate://crates.io/humantime/2.1.0 \
-    crate://crates.io/idna/0.2.1 \
-    crate://crates.io/indexmap/1.6.1 \
-    crate://crates.io/itertools/0.8.2 \
-    crate://crates.io/lazy_static/1.4.0 \
-    crate://crates.io/libc/0.2.86 \
-    crate://crates.io/log/0.4.14 \
-    crate://crates.io/matches/0.1.8 \
-    crate://crates.io/memchr/2.3.4 \
-    crate://crates.io/multimap/0.8.2 \
-    crate://crates.io/num-bigint/0.3.1 \
-    crate://crates.io/num-complex/0.3.1 \
-    crate://crates.io/num-derive/0.3.3 \
-    crate://crates.io/num-integer/0.1.44 \
-    crate://crates.io/num-iter/0.1.42 \
-    crate://crates.io/num-rational/0.3.2 \
-    crate://crates.io/num-traits/0.2.14 \
-    crate://crates.io/num/0.3.1 \
-    crate://crates.io/oid/0.1.1 \
-    crate://crates.io/once_cell/1.5.2 \
-    crate://crates.io/opaque-debug/0.3.0 \
-    crate://crates.io/os_str_bytes/2.4.0 \
-    crate://crates.io/parsec-client/0.12.0 \
-    crate://crates.io/parsec-interface/0.24.0 \
-    crate://crates.io/pem/0.8.3 \
-    crate://crates.io/percent-encoding/2.1.0 \
-    crate://crates.io/petgraph/0.5.1 \
-    crate://crates.io/picky-asn1-der/0.2.4 \
-    crate://crates.io/picky-asn1/0.3.1 \
-    crate://crates.io/ppv-lite86/0.2.10 \
-    crate://crates.io/proc-macro-error-attr/1.0.4 \
-    crate://crates.io/proc-macro-error/1.0.4 \
-    crate://crates.io/proc-macro2/1.0.24 \
-    crate://crates.io/prost-build/0.6.1 \
-    crate://crates.io/prost-derive/0.6.1 \
-    crate://crates.io/prost-types/0.6.1 \
-    crate://crates.io/prost/0.6.1 \
-    crate://crates.io/psa-crypto-sys/0.8.0 \
-    crate://crates.io/psa-crypto/0.8.0 \
-    crate://crates.io/quote/1.0.9 \
-    crate://crates.io/rand/0.8.3 \
-    crate://crates.io/rand_chacha/0.3.0 \
-    crate://crates.io/rand_core/0.6.2 \
-    crate://crates.io/rand_hc/0.3.0 \
-    crate://crates.io/redox_syscall/0.2.5 \
-    crate://crates.io/regex-syntax/0.6.22 \
-    crate://crates.io/regex/1.4.3 \
-    crate://crates.io/remove_dir_all/0.5.3 \
-    crate://crates.io/same-file/1.0.6 \
-    crate://crates.io/secrecy/0.7.0 \
-    crate://crates.io/serde/1.0.123 \
-    crate://crates.io/serde_bytes/0.11.5 \
-    crate://crates.io/serde_derive/1.0.123 \
-    crate://crates.io/sha2/0.9.3 \
-    crate://crates.io/strsim/0.10.0 \
-    crate://crates.io/strsim/0.8.0 \
-    crate://crates.io/structopt-derive/0.4.14 \
-    crate://crates.io/structopt/0.3.21 \
-    crate://crates.io/syn/1.0.60 \
-    crate://crates.io/synstructure/0.12.4 \
-    crate://crates.io/tempfile/3.2.0 \
-    crate://crates.io/termcolor/1.1.2 \
-    crate://crates.io/textwrap/0.11.0 \
-    crate://crates.io/textwrap/0.12.1 \
-    crate://crates.io/thiserror-impl/1.0.23 \
-    crate://crates.io/thiserror/1.0.23 \
-    crate://crates.io/thread_local/1.1.3 \
-    crate://crates.io/tinyvec/1.1.1 \
-    crate://crates.io/tinyvec_macros/0.1.0 \
-    crate://crates.io/typenum/1.12.0 \
-    crate://crates.io/unicode-bidi/0.3.4 \
-    crate://crates.io/unicode-normalization/0.1.17 \
-    crate://crates.io/unicode-segmentation/1.7.1 \
-    crate://crates.io/unicode-width/0.1.8 \
-    crate://crates.io/unicode-xid/0.2.1 \
-    crate://crates.io/url/2.2.0 \
-    crate://crates.io/users/0.10.0 \
-    crate://crates.io/uuid/0.8.2 \
-    crate://crates.io/vec_map/0.8.2 \
-    crate://crates.io/version_check/0.9.2 \
-    crate://crates.io/walkdir/2.3.1 \
-    crate://crates.io/wasi/0.10.2+wasi-snapshot-preview1 \
-    crate://crates.io/which/3.1.1 \
-    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi-util/0.1.5 \
-    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
-    crate://crates.io/winapi/0.3.9 \
-    crate://crates.io/zeroize/1.2.0 \
-    crate://crates.io/zeroize_derive/1.0.1 \
-"
-
-LIC_FILES_CHKSUM = " \
-    file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
-"
diff --git a/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.bb b/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.4.0.bb
similarity index 75%
rename from meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.bb
rename to meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.4.0.bb
index 881f8d8..4b053b9 100644
--- a/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.3.0.bb
+++ b/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.4.0.bb
@@ -7,9 +7,12 @@
 SRC_URI += "crate://crates.io/parsec-tool/${PV} \
 "
 
+RDEPENDS:${PN} = "openssl-bin"
+
 do_install() {
   install -d ${D}/${bindir}
   install -m 755 "${B}/target/${TARGET_SYS}/release/parsec-tool" "${D}${bindir}/parsec-tool"
+  install -m 755 "${S}/tests/parsec-cli-tests.sh" "${D}${bindir}/parsec-cli-tests.sh"
 }
 
 require parsec-tool_${PV}.inc
diff --git a/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.4.0.inc b/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.4.0.inc
new file mode 100644
index 0000000..e706112
--- /dev/null
+++ b/meta-security/meta-parsec/recipes-parsec/parsec-tool/parsec-tool_0.4.0.inc
@@ -0,0 +1,216 @@
+# This file is created from parsec-tool repository Cargo.lock using cargo-bitbake tool
+
+SRC_URI += " \
+    crate://crates.io/addr2line/0.15.2 \
+    crate://crates.io/adler/1.0.2 \
+    crate://crates.io/aho-corasick/0.7.15 \
+    crate://crates.io/ansi_term/0.11.0 \
+    crate://crates.io/ansi_term/0.12.1 \
+    crate://crates.io/anyhow/1.0.42 \
+    crate://crates.io/arrayvec/0.5.2 \
+    crate://crates.io/atty/0.2.14 \
+    crate://crates.io/autocfg/1.0.1 \
+    crate://crates.io/backtrace/0.3.59 \
+    crate://crates.io/base64/0.12.3 \
+    crate://crates.io/base64/0.13.0 \
+    crate://crates.io/bincode/1.3.3 \
+    crate://crates.io/bindgen/0.57.0 \
+    crate://crates.io/bitflags/1.2.1 \
+    crate://crates.io/bitvec/0.19.5 \
+    crate://crates.io/block-buffer/0.9.0 \
+    crate://crates.io/boringssl-src/0.3.0+688fc5c \
+    crate://crates.io/bumpalo/3.7.0 \
+    crate://crates.io/bytes/0.5.6 \
+    crate://crates.io/cc/1.0.69 \
+    crate://crates.io/cexpr/0.4.0 \
+    crate://crates.io/cfg-if/1.0.0 \
+    crate://crates.io/chrono/0.4.19 \
+    crate://crates.io/clang-sys/1.2.0 \
+    crate://crates.io/clap/2.33.3 \
+    crate://crates.io/clap/3.0.0-beta.2 \
+    crate://crates.io/clap_derive/3.0.0-beta.2 \
+    crate://crates.io/cmake/0.1.45 \
+    crate://crates.io/const-oid/0.6.0 \
+    crate://crates.io/cpufeatures/0.1.5 \
+    crate://crates.io/data-encoding/2.3.2 \
+    crate://crates.io/der-oid-macro/0.4.0 \
+    crate://crates.io/der-parser/5.1.2 \
+    crate://crates.io/der/0.4.0 \
+    crate://crates.io/derivative/2.2.0 \
+    crate://crates.io/digest/0.9.0 \
+    crate://crates.io/either/1.6.1 \
+    crate://crates.io/env_logger/0.8.4 \
+    crate://crates.io/failure/0.1.8 \
+    crate://crates.io/failure_derive/0.1.8 \
+    crate://crates.io/form_urlencoded/1.0.1 \
+    crate://crates.io/funty/1.1.0 \
+    crate://crates.io/futures-channel/0.3.16 \
+    crate://crates.io/futures-core/0.3.16 \
+    crate://crates.io/futures-executor/0.3.16 \
+    crate://crates.io/futures-io/0.3.16 \
+    crate://crates.io/futures-macro/0.3.16 \
+    crate://crates.io/futures-sink/0.3.16 \
+    crate://crates.io/futures-task/0.3.16 \
+    crate://crates.io/futures-util/0.3.16 \
+    crate://crates.io/futures/0.3.16 \
+    crate://crates.io/generic-array/0.14.4 \
+    crate://crates.io/getrandom/0.2.3 \
+    crate://crates.io/gimli/0.24.0 \
+    crate://crates.io/glob/0.3.0 \
+    crate://crates.io/grpcio-compiler/0.7.0 \
+    crate://crates.io/grpcio-sys/0.9.0+1.38.0 \
+    crate://crates.io/grpcio/0.9.0 \
+    crate://crates.io/hashbrown/0.11.2 \
+    crate://crates.io/heck/0.3.3 \
+    crate://crates.io/hermit-abi/0.1.19 \
+    crate://crates.io/humantime/2.1.0 \
+    crate://crates.io/idna/0.2.3 \
+    crate://crates.io/indexmap/1.7.0 \
+    crate://crates.io/instant/0.1.10 \
+    crate://crates.io/itertools/0.8.2 \
+    crate://crates.io/itoa/0.4.7 \
+    crate://crates.io/js-sys/0.3.52 \
+    crate://crates.io/jsonwebkey/0.3.2 \
+    crate://crates.io/jsonwebtoken/7.2.0 \
+    crate://crates.io/lazy_static/1.4.0 \
+    crate://crates.io/lazycell/1.3.0 \
+    crate://crates.io/lexical-core/0.7.6 \
+    crate://crates.io/libc/0.2.102 \
+    crate://crates.io/libloading/0.7.0 \
+    crate://crates.io/libz-sys/1.1.3 \
+    crate://crates.io/lock_api/0.4.4 \
+    crate://crates.io/log/0.4.14 \
+    crate://crates.io/matches/0.1.8 \
+    crate://crates.io/memchr/2.3.4 \
+    crate://crates.io/miniz_oxide/0.4.4 \
+    crate://crates.io/nom/5.1.2 \
+    crate://crates.io/nom/6.2.1 \
+    crate://crates.io/num-bigint/0.2.6 \
+    crate://crates.io/num-bigint/0.3.2 \
+    crate://crates.io/num-bigint/0.4.0 \
+    crate://crates.io/num-complex/0.3.1 \
+    crate://crates.io/num-derive/0.3.3 \
+    crate://crates.io/num-integer/0.1.44 \
+    crate://crates.io/num-iter/0.1.42 \
+    crate://crates.io/num-rational/0.3.2 \
+    crate://crates.io/num-traits/0.2.14 \
+    crate://crates.io/num/0.3.1 \
+    crate://crates.io/object/0.24.0 \
+    crate://crates.io/oid-registry/0.1.5 \
+    crate://crates.io/oid/0.2.1 \
+    crate://crates.io/once_cell/1.8.0 \
+    crate://crates.io/opaque-debug/0.3.0 \
+    crate://crates.io/os_str_bytes/2.4.0 \
+    crate://crates.io/parking_lot/0.11.1 \
+    crate://crates.io/parking_lot_core/0.8.3 \
+    crate://crates.io/parsec-client/0.13.0 \
+    crate://crates.io/parsec-interface/0.25.0 \
+    crate://crates.io/peeking_take_while/0.1.2 \
+    crate://crates.io/pem/0.8.3 \
+    crate://crates.io/percent-encoding/2.1.0 \
+    crate://crates.io/picky-asn1-der/0.2.5 \
+    crate://crates.io/picky-asn1-x509/0.6.1 \
+    crate://crates.io/picky-asn1/0.3.3 \
+    crate://crates.io/pin-project-lite/0.2.7 \
+    crate://crates.io/pin-utils/0.1.0 \
+    crate://crates.io/pkcs8/0.7.5 \
+    crate://crates.io/pkg-config/0.3.19 \
+    crate://crates.io/ppv-lite86/0.2.10 \
+    crate://crates.io/proc-macro-error-attr/1.0.4 \
+    crate://crates.io/proc-macro-error/1.0.4 \
+    crate://crates.io/proc-macro-hack/0.5.19 \
+    crate://crates.io/proc-macro-nested/0.1.7 \
+    crate://crates.io/proc-macro2/1.0.28 \
+    crate://crates.io/prost-derive/0.6.1 \
+    crate://crates.io/prost/0.6.1 \
+    crate://crates.io/protobuf-codegen/2.24.1 \
+    crate://crates.io/protobuf/2.24.1 \
+    crate://crates.io/protoc-grpcio/3.0.0 \
+    crate://crates.io/protoc/2.24.1 \
+    crate://crates.io/psa-crypto-sys/0.9.0 \
+    crate://crates.io/psa-crypto/0.9.0 \
+    crate://crates.io/quote/1.0.9 \
+    crate://crates.io/radium/0.5.3 \
+    crate://crates.io/rand/0.8.4 \
+    crate://crates.io/rand_chacha/0.3.1 \
+    crate://crates.io/rand_core/0.6.3 \
+    crate://crates.io/rand_hc/0.3.1 \
+    crate://crates.io/redox_syscall/0.2.9 \
+    crate://crates.io/regex-syntax/0.6.25 \
+    crate://crates.io/regex/1.4.6 \
+    crate://crates.io/remove_dir_all/0.5.3 \
+    crate://crates.io/ring/0.16.20 \
+    crate://crates.io/rustc-demangle/0.1.20 \
+    crate://crates.io/rustc-hash/1.1.0 \
+    crate://crates.io/rusticata-macros/3.1.0 \
+    crate://crates.io/rustversion/1.0.5 \
+    crate://crates.io/ryu/1.0.5 \
+    crate://crates.io/same-file/1.0.6 \
+    crate://crates.io/scopeguard/1.1.0 \
+    crate://crates.io/secrecy/0.7.0 \
+    crate://crates.io/serde/1.0.127 \
+    crate://crates.io/serde_bytes/0.11.5 \
+    crate://crates.io/serde_derive/1.0.127 \
+    crate://crates.io/serde_json/1.0.66 \
+    crate://crates.io/sha2/0.9.5 \
+    crate://crates.io/shlex/0.1.1 \
+    crate://crates.io/simple_asn1/0.4.1 \
+    crate://crates.io/simple_asn1/0.5.4 \
+    crate://crates.io/slab/0.4.3 \
+    crate://crates.io/smallvec/1.6.1 \
+    crate://crates.io/spiffe/0.1.1 \
+    crate://crates.io/spin/0.5.2 \
+    crate://crates.io/spki/0.4.0 \
+    crate://crates.io/static_assertions/1.1.0 \
+    crate://crates.io/strsim/0.10.0 \
+    crate://crates.io/strsim/0.8.0 \
+    crate://crates.io/structopt-derive/0.4.15 \
+    crate://crates.io/structopt/0.3.22 \
+    crate://crates.io/syn/1.0.74 \
+    crate://crates.io/synstructure/0.12.5 \
+    crate://crates.io/tap/1.0.1 \
+    crate://crates.io/tempfile/3.2.0 \
+    crate://crates.io/termcolor/1.1.2 \
+    crate://crates.io/textwrap/0.11.0 \
+    crate://crates.io/textwrap/0.12.1 \
+    crate://crates.io/thiserror-impl/1.0.26 \
+    crate://crates.io/thiserror/1.0.26 \
+    crate://crates.io/time/0.1.44 \
+    crate://crates.io/tinyvec/1.3.1 \
+    crate://crates.io/tinyvec_macros/0.1.0 \
+    crate://crates.io/typenum/1.13.0 \
+    crate://crates.io/unicode-bidi/0.3.5 \
+    crate://crates.io/unicode-normalization/0.1.19 \
+    crate://crates.io/unicode-segmentation/1.8.0 \
+    crate://crates.io/unicode-width/0.1.8 \
+    crate://crates.io/unicode-xid/0.2.2 \
+    crate://crates.io/untrusted/0.7.1 \
+    crate://crates.io/url/2.2.2 \
+    crate://crates.io/users/0.10.0 \
+    crate://crates.io/uuid/0.8.2 \
+    crate://crates.io/vcpkg/0.2.15 \
+    crate://crates.io/vec_map/0.8.2 \
+    crate://crates.io/version_check/0.9.3 \
+    crate://crates.io/walkdir/2.3.2 \
+    crate://crates.io/wasi/0.10.0+wasi-snapshot-preview1 \
+    crate://crates.io/wasm-bindgen-backend/0.2.75 \
+    crate://crates.io/wasm-bindgen-macro-support/0.2.75 \
+    crate://crates.io/wasm-bindgen-macro/0.2.75 \
+    crate://crates.io/wasm-bindgen-shared/0.2.75 \
+    crate://crates.io/wasm-bindgen/0.2.75 \
+    crate://crates.io/web-sys/0.3.52 \
+    crate://crates.io/which/4.2.2 \
+    crate://crates.io/winapi-i686-pc-windows-gnu/0.4.0 \
+    crate://crates.io/winapi-util/0.1.5 \
+    crate://crates.io/winapi-x86_64-pc-windows-gnu/0.4.0 \
+    crate://crates.io/winapi/0.3.9 \
+    crate://crates.io/wyz/0.2.0 \
+    crate://crates.io/x509-parser/0.9.2 \
+    crate://crates.io/yasna/0.3.2 \
+    crate://crates.io/zeroize/1.3.0 \
+    crate://crates.io/zeroize_derive/1.1.0 \
+"
+
+LIC_FILES_CHKSUM = " \
+    file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57 \
+"
diff --git a/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.8.2.bb b/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.8.7.bb
similarity index 88%
rename from meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.8.2.bb
rename to meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.8.7.bb
index 9784aa1..95ba5c5 100644
--- a/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.8.2.bb
+++ b/meta-security/meta-tpm/recipes-tpm/libtpm/libtpm_0.8.7.bb
@@ -2,7 +2,7 @@
 LICENSE = "BSD-3-Clause"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=e73f0786a936da3814896df06ad225a9"
 
-SRCREV = "f66a719eda0b492ea3ec7852421a9d98db0a0621"
+SRCREV = "f6dd8f55eab4910131ec6a6a570dcd7951bd10e4"
 SRC_URI = "git://github.com/stefanberger/libtpms.git;branch=stable-0.8"
 
 PE = "1"
diff --git a/meta-security/recipes-core/initrdscripts/initramfs-framework-dm/dmverity b/meta-security/recipes-core/initrdscripts/initramfs-framework-dm/dmverity
index 888052c..c815940 100644
--- a/meta-security/recipes-core/initrdscripts/initramfs-framework-dm/dmverity
+++ b/meta-security/recipes-core/initrdscripts/initramfs-framework-dm/dmverity
@@ -6,6 +6,7 @@
 
 dmverity_run() {
     DATA_SIZE="__not_set__"
+    DATA_BLOCK_SIZE="__not_set__"
     ROOT_HASH="__not_set__"
 
     . /usr/share/misc/dm-verity.env
@@ -49,7 +50,7 @@
     done
 
     veritysetup \
-        --data-block-size=1024 \
+        --data-block-size=${DATA_BLOCK_SIZE} \
         --hash-offset=${DATA_SIZE} \
         create rootfs \
         ${RDEV} \
diff --git a/meta-security/recipes-scanners/clamav/clamav_0.104.0.bb b/meta-security/recipes-scanners/clamav/clamav_0.104.0.bb
index 0d3a678..25123dc 100644
--- a/meta-security/recipes-scanners/clamav/clamav_0.104.0.bb
+++ b/meta-security/recipes-scanners/clamav/clamav_0.104.0.bb
@@ -54,7 +54,7 @@
 
 do_install:append () {
     install -d ${D}/${sysconfdir}
-    install -d ${D}/${localstatedir}/lib/clamav
+    install -d -o ${CLAMAV_UID} -g ${CLAMAV_GID} ${D}/${localstatedir}/lib/clamav
     install -d ${D}${sysconfdir}/clamav ${D}${sysconfdir}/default/volatiles
 
     install -m 644 ${WORKDIR}/clamd.conf ${D}/${prefix}/${sysconfdir}
@@ -83,7 +83,6 @@
         elif [ -e ${sysconfdir}/init.d/populate-volatile.sh ]; then
             ${sysconfdir}/init.d/populate-volatile.sh update
         fi
-        chown -R ${CLAMAV_UID}:${CLAMAV_GID} ${localstatedir}/lib/clamav
     fi
 }
 
@@ -149,5 +148,7 @@
 SYSTEMD_SERVICE:${PN}-daemon = "clamav-daemon.service"
 SYSTEMD_SERVICE:${PN}-freshclam = "clamav-freshclam.service"
 
-RDEPENDS:${PN} = "openssl ncurses-libncurses libxml2 libbz2 ncurses-libtinfo curl libpcre2 clamav-freshclam clamav-libclamav"
-RDEPENDS:${PN}-daemon = "clamav"
+RDEPENDS:${PN} = "openssl ncurses-libncurses libxml2 libbz2 ncurses-libtinfo curl libpcre2 clamav-libclamav"
+RRECOMMENDS:${PN} = "clamav-freshclam"
+RDEPENDS:${PN}-freshclam = "clamav"
+RDEPENDS:${PN}-daemon = "clamav clamav-freshclam"
diff --git a/meta-security/recipes-scanners/rootkits/chkrootkit_0.53.bb b/meta-security/recipes-scanners/rootkits/chkrootkit_0.55.bb
similarity index 94%
rename from meta-security/recipes-scanners/rootkits/chkrootkit_0.53.bb
rename to meta-security/recipes-scanners/rootkits/chkrootkit_0.55.bb
index 4536be3..20015a1 100644
--- a/meta-security/recipes-scanners/rootkits/chkrootkit_0.53.bb
+++ b/meta-security/recipes-scanners/rootkits/chkrootkit_0.55.bb
@@ -6,8 +6,7 @@
 LIC_FILES_CHKSUM = "file://COPYRIGHT;md5=fdbe53788f7081c63387d8087273f5ff"
 
 SRC_URI = "ftp://ftp.pangeia.com.br/pub/seg/pac/${BPN}.tar.gz"
-SRC_URI[sha256sum] = "7262dae33b338976828b5d156b70d159e0043c0db43ada8dee66c97387cf45b5"
-
+SRC_URI[sha256sum] = "a81c0286ec449313f953701202a00e81b204fc2cf43e278585a11c12a5e0258b"
 
 inherit autotools-brokensep
 
diff --git a/meta-security/recipes-security/fscrypt/fscrypt_1.0.0.bb b/meta-security/recipes-security/fscrypt/fscrypt_1.0.0.bb
new file mode 100644
index 0000000..a70d310
--- /dev/null
+++ b/meta-security/recipes-security/fscrypt/fscrypt_1.0.0.bb
@@ -0,0 +1,49 @@
+SUMMARY = "fscrypt is a high-level tool for the management of Linux filesystem encryption"
+DESCIPTION = "fscrypt manages metadata, key generation, key wrapping, PAM integration, \
+and provides a uniform interface for creating and modifying encrypted directories. For \
+a small, low-level tool that directly sets policies, see fscryptctl \
+(https://github.com/google/fscryptcl)."
+HOMEPAGE = "https://github.com/google/fscrypt"
+SECTION = "base"
+LICENSE = "Apache-2.0"
+LIC_FILES_CHKSUM = "file://src/${GO_IMPORT}/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
+
+BBCLASSEXTEND = "native nativesdk"
+
+# fscrypt depends on go and libpam
+DEPENDS += "go-dep-native libpam"
+
+SRCREV = "92b1e9a8670ccd3916a7d24a06cab1e4c9815bc4"
+SRC_URI = "git://github.com/google/fscrypt.git"
+GO_IMPORT = "import"
+
+S = "${WORKDIR}/git"
+
+inherit go
+inherit goarch
+
+do_compile() {
+	export GOARCH=${TARGET_GOARCH}
+	export GOROOT="${STAGING_LIBDIR_NATIVE}/${TARGET_SYS}/go"
+	export GOPATH="${WORKDIR}/git"
+
+	# Pass the needed cflags/ldflags so that cgo
+	# can find the needed headers files and libraries
+	export CGO_ENABLED="1"
+	export CGO_CFLAGS="${CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+	export CGO_LDFLAGS="${LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
+
+	cd ${S}/src/${GO_IMPORT}
+	oe_runmake
+
+	# Golang forces permissions to 0500 on directories and 0400 on files in
+	# the module cache which prevents us from easily cleaning up the build
+	# directory. Let's just fix the permissions here so we don't have to
+	# hack the clean tasks.
+	chmod -R u+w ${S}/pkg/mod
+}
+
+do_install() {
+	install -d ${D}/${bindir}
+	install ${S}/src/${GO_IMPORT}/bin/fscrypt ${D}/${bindir}/fscrypt
+}
diff --git a/poky/bitbake/bin/bitbake-worker b/poky/bitbake/bin/bitbake-worker
index 6ead2da..115bc1d 100755
--- a/poky/bitbake/bin/bitbake-worker
+++ b/poky/bitbake/bin/bitbake-worker
@@ -17,6 +17,8 @@
 import pickle
 import traceback
 import queue
+import shlex
+import subprocess
 from multiprocessing import Lock
 from threading import Thread
 
@@ -146,6 +148,7 @@
     # a fork() or exec*() activates PSEUDO...
 
     envbackup = {}
+    fakeroot = False
     fakeenv = {}
     umask = None
 
@@ -165,6 +168,7 @@
 
     # We can't use the fakeroot environment in a dry run as it possibly hasn't been built
     if 'fakeroot' in taskdep and taskname in taskdep['fakeroot'] and not dry_run:
+        fakeroot = True
         envvars = (workerdata["fakerootenv"][fn] or "").split()
         for key, value in (var.split('=') for var in envvars):
             envbackup[key] = os.environ.get(key)
@@ -283,7 +287,11 @@
             try:
                 if dry_run:
                     return 0
-                return bb.build.exec_task(fn, taskname, the_data, cfg.profile)
+                ret = bb.build.exec_task(fn, taskname, the_data, cfg.profile)
+                if fakeroot:
+                    fakerootcmd = shlex.split(the_data.getVar("FAKEROOTCMD"))
+                    subprocess.run(fakerootcmd + ['-S'], check=True, stdout=subprocess.PIPE)
+                return ret
             except:
                 os._exit(1)
         if not profiling:
diff --git a/poky/bitbake/lib/bb/command.py b/poky/bitbake/lib/bb/command.py
index a81dcb1..ec86885 100644
--- a/poky/bitbake/lib/bb/command.py
+++ b/poky/bitbake/lib/bb/command.py
@@ -667,6 +667,16 @@
         command.finishAsyncCommand()
     findFilesMatchingInDir.needcache = False
 
+    def testCookerCommandEvent(self, command, params):
+        """
+        Dummy command used by OEQA selftest to test tinfoil without IO
+        """
+        pattern = params[0]
+
+        command.cooker.testCookerCommandEvent(pattern)
+        command.finishAsyncCommand()
+    testCookerCommandEvent.needcache = False
+
     def findConfigFilePath(self, command, params):
         """
         Find the path of the requested configuration file
diff --git a/poky/bitbake/lib/bb/cooker.py b/poky/bitbake/lib/bb/cooker.py
index 1f55d9a..af794b4 100644
--- a/poky/bitbake/lib/bb/cooker.py
+++ b/poky/bitbake/lib/bb/cooker.py
@@ -1068,6 +1068,11 @@
         if matches:
             bb.event.fire(bb.event.FilesMatchingFound(filepattern, matches), self.data)
 
+    def testCookerCommandEvent(self, filepattern):
+        # Dummy command used by OEQA selftest to test tinfoil without IO
+        matches = ["A", "B"]
+        bb.event.fire(bb.event.FilesMatchingFound(filepattern, matches), self.data)
+
     def findProviders(self, mc=''):
         return bb.providers.findProviders(self.databuilder.mcdata[mc], self.recipecaches[mc], self.recipecaches[mc].pkg_pn)
 
diff --git a/poky/bitbake/lib/bb/data.py b/poky/bitbake/lib/bb/data.py
index 9702285..9d18b1e 100644
--- a/poky/bitbake/lib/bb/data.py
+++ b/poky/bitbake/lib/bb/data.py
@@ -226,7 +226,7 @@
         deps = newdeps
         seen |= deps
         newdeps = set()
-        for dep in deps:
+        for dep in sorted(deps):
             if d.getVarFlag(dep, "func", False) and not d.getVarFlag(dep, "python", False):
                emit_var(dep, o, d, False) and o.write('\n')
                newdeps |=  bb.codeparser.ShellParser(dep, logger).parse_shell(d.getVar(dep))
diff --git a/poky/bitbake/lib/bb/siggen.py b/poky/bitbake/lib/bb/siggen.py
index 3f9fe50..625a9cf 100644
--- a/poky/bitbake/lib/bb/siggen.py
+++ b/poky/bitbake/lib/bb/siggen.py
@@ -864,21 +864,21 @@
 
     changed, added, removed = dict_diff(a_data['gendeps'], b_data['gendeps'], a_data['basewhitelist'] & b_data['basewhitelist'])
     if changed:
-        for dep in changed:
+        for dep in sorted(changed):
             output.append(color_format("{color_title}List of dependencies for variable %s changed from '{color_default}%s{color_title}' to '{color_default}%s{color_title}'") % (dep, a_data['gendeps'][dep], b_data['gendeps'][dep]))
             if a_data['gendeps'][dep] and b_data['gendeps'][dep]:
                 output.append("changed items: %s" % a_data['gendeps'][dep].symmetric_difference(b_data['gendeps'][dep]))
     if added:
-        for dep in added:
+        for dep in sorted(added):
             output.append(color_format("{color_title}Dependency on variable %s was added") % (dep))
     if removed:
-        for dep in removed:
+        for dep in sorted(removed):
             output.append(color_format("{color_title}Dependency on Variable %s was removed") % (dep))
 
 
     changed, added, removed = dict_diff(a_data['varvals'], b_data['varvals'])
     if changed:
-        for dep in changed:
+        for dep in sorted(changed):
             oldval = a_data['varvals'][dep]
             newval = b_data['varvals'][dep]
             if newval and oldval and ('\n' in oldval or '\n' in newval):
@@ -948,7 +948,7 @@
         b = b_data['runtaskhashes']
         changed, added, removed = dict_diff(a, b)
         if added:
-            for dep in added:
+            for dep in sorted(added):
                 bdep_found = False
                 if removed:
                     for bdep in removed:
@@ -958,7 +958,7 @@
                 if not bdep_found:
                     output.append(color_format("{color_title}Dependency on task %s was added{color_default} with hash %s") % (clean_basepath(dep), b[dep]))
         if removed:
-            for dep in removed:
+            for dep in sorted(removed):
                 adep_found = False
                 if added:
                     for adep in added:
@@ -968,7 +968,7 @@
                 if not adep_found:
                     output.append(color_format("{color_title}Dependency on task %s was removed{color_default} with hash %s") % (clean_basepath(dep), a[dep]))
         if changed:
-            for dep in changed:
+            for dep in sorted(changed):
                 if not collapsed:
                     output.append(color_format("{color_title}Hash for dependent task %s changed{color_default} from %s to %s") % (clean_basepath(dep), a[dep], b[dep]))
                 if callable(recursecb):
diff --git a/poky/documentation/dev-manual/common-tasks.rst b/poky/documentation/dev-manual/common-tasks.rst
index bd8bbec..b81f51b 100644
--- a/poky/documentation/dev-manual/common-tasks.rst
+++ b/poky/documentation/dev-manual/common-tasks.rst
@@ -3888,6 +3888,12 @@
 
    .. note::
 
+      Bundling the initramfs with the kernel conflates the code in the initramfs
+      with the GPLv2 licensed Linux kernel binary. Thus only GPLv2 compatible
+      software may be part of a bundled initramfs.
+
+   .. note::
+
       If you choose to not bundle the initramfs image with the kernel
       image, you are essentially using an
       `Initial RAM Disk (initrd) <https://en.wikipedia.org/wiki/Initrd>`__.
diff --git a/poky/documentation/overview-manual/concepts.rst b/poky/documentation/overview-manual/concepts.rst
index c8b8988..3017637 100644
--- a/poky/documentation/overview-manual/concepts.rst
+++ b/poky/documentation/overview-manual/concepts.rst
@@ -1908,8 +1908,8 @@
 shared state files. Here is an example::
 
    SSTATE_MIRRORS ?= "\
-       file://.\* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
-       file://.\* file:///some/local/dir/sstate/PATH"
+       file://.* http://someserver.tld/share/sstate/PATH;downloadfilename=PATH \n \
+       file://.* file:///some/local/dir/sstate/PATH"
 
 .. note::
 
diff --git a/poky/documentation/ref-manual/qa-checks.rst b/poky/documentation/ref-manual/qa-checks.rst
index c3e40db..792c099 100644
--- a/poky/documentation/ref-manual/qa-checks.rst
+++ b/poky/documentation/ref-manual/qa-checks.rst
@@ -151,7 +151,7 @@
    occur if you add a path which contains a ``.debug`` directory and do
    not explicitly add the ``.debug`` directory to the ``-dbg`` package.
    If this is the case, add the ``.debug`` directory explicitly to
-   ``FILES_${PN}-dbg``. See :term:`FILES` for additional
+   ``FILES:${PN}-dbg``. See :term:`FILES` for additional
    information on :term:`FILES`.
 
     
@@ -435,7 +435,7 @@
    (e.g. :term:`PN` happens to be the same as :term:`MACHINE`
    or :term:`DISTRO`), it can have unexpected
    consequences. For example, assignments such as
-   ``FILES_${PN} = "xyz"`` effectively turn into ``FILES = "xyz"``.
+   ``FILES:${PN} = "xyz"`` effectively turn into ``FILES = "xyz"``.
    Rename your recipe (or if :term:`PN` is being set explicitly, change the
    :term:`PN` value) so that the conflict does not occur. See
    :term:`FILES` for additional information.
diff --git a/poky/documentation/ref-manual/variables.rst b/poky/documentation/ref-manual/variables.rst
index dbe02ab..5f6f911 100644
--- a/poky/documentation/ref-manual/variables.rst
+++ b/poky/documentation/ref-manual/variables.rst
@@ -3589,6 +3589,12 @@
 
       .. note::
 
+         Bundling the initramfs with the kernel conflates the code in the
+         initramfs with the GPLv2 licensed Linux kernel binary. Thus only GPLv2
+         compatible software may be part of a bundled initramfs.
+
+      .. note::
+
          Using an extra compilation pass to bundle the initramfs avoids a
          circular dependency between the kernel recipe and the initramfs
          recipe should the initramfs include kernel modules. Should that be
@@ -5064,33 +5070,44 @@
       ":ref:`package.bbclass <ref-classes-package>`" section.
 
    :term:`PACKAGE_DEBUG_SPLIT_STYLE`
-      Determines how to split up the binary and debug information when
-      creating ``*-dbg`` packages to be used with the GNU Project Debugger
-      (GDB).
+      Determines how to split up and package debug and source information
+      when creating debugging packages to be used with the GNU Project
+      Debugger (GDB). In general, based on the value of this variable,
+      you can combine the source and debug info in a single package,
+      you can break out the source into a separate package that can be
+      installed independently, or you can choose to not have the source
+      packaged at all.
 
-      With the :term:`PACKAGE_DEBUG_SPLIT_STYLE` variable, you can control
-      where debug information, which can include or exclude source files,
-      is stored:
+      The possible values of :term:`PACKAGE_DEBUG_SPLIT_STYLE` variable:
 
-      -  ".debug": Debug symbol files are placed next to the binary in a
-         ``.debug`` directory on the target. For example, if a binary is
-         installed into ``/bin``, the corresponding debug symbol files are
-         installed in ``/bin/.debug``. Source files are placed in
-         ``/usr/src/debug``.
+      -  "``.debug``": All debugging and source info is placed in a single
+         ``*-dbg`` package; debug symbol files are placed next to the
+         binary in a ``.debug`` directory so that, if a binary is installed
+         into ``/bin``, the corresponding debug symbol file is installed
+         in ``/bin/.debug``. Source files are installed in the same ``*-dbg``
+         package under ``/usr/src/debug``.
 
-      -  "debug-file-directory": Debug symbol files are placed under
-         ``/usr/lib/debug`` on the target, and separated by the path from
-         where the binary is installed. For example, if a binary is
-         installed in ``/bin``, the corresponding debug symbols are
-         installed in ``/usr/lib/debug/bin``. Source files are placed in
-         ``/usr/src/debug``.
+      -  "``debug-file-directory``": As above, all debugging and source info
+         is placed in a single ``*-dbg`` package; debug symbol files are
+         placed entirely under the directory ``/usr/lib/debug`` and separated
+         by the path from where the binary is installed, so that if a binary
+         is installed in ``/bin``, the corresponding debug symbols are installed
+         in ``/usr/lib/debug/bin``, and so on. As above, source is installed
+         in the same package under ``/usr/src/debug``.
 
-      -  "debug-without-src": The same behavior as ".debug" previously
-         described with the exception that no source files are installed.
+      -  "``debug-with-srcpkg``": Debugging info is placed in the standard
+         ``*-dbg`` package as with the ``.debug`` value, while source is
+         placed in a separate ``*-src`` package, which can be installed
+         independently.  This is the default setting for this variable,
+         as defined in Poky's ``bitbake.conf`` file.
 
-      -  "debug-with-srcpkg": The same behavior as ".debug" previously
-         described with the exception that all source files are placed in a
-         separate ``*-src`` pkg. This is the default behavior.
+      -  "``debug-without-src``": The same behavior as with the ``.debug``
+         setting, but no source is packaged at all.
+
+      .. note::
+
+         Much of the above package splitting can be overridden via
+         use of the :term:`INHIBIT_PACKAGE_DEBUG_SPLIT` variable.
 
       You can find out more about debugging using GDB by reading the
       ":ref:`dev-manual/common-tasks:debugging with the gnu project debugger (gdb) remotely`" section
diff --git a/poky/documentation/releases.rst b/poky/documentation/releases.rst
index 436f20a..bb881a2 100644
--- a/poky/documentation/releases.rst
+++ b/poky/documentation/releases.rst
@@ -38,6 +38,7 @@
 - :yocto_docs:`3.1.8 Documentation </3.1.8>`
 - :yocto_docs:`3.1.9 Documentation </3.1.9>`
 - :yocto_docs:`3.1.10 Documentation </3.1.10>`
+- :yocto_docs:`3.1.11 Documentation </3.1.11>`
 
 ==========================
  Outdated Release Manuals
diff --git a/poky/documentation/sphinx-static/switchers.js b/poky/documentation/sphinx-static/switchers.js
index a693fefb..1e37b62 100644
--- a/poky/documentation/sphinx-static/switchers.js
+++ b/poky/documentation/sphinx-static/switchers.js
@@ -5,7 +5,7 @@
     'dev': 'dev (3.4)',
     '3.3.3': '3.3.3',
     '3.2.4': '3.2.4',
-    '3.1.10': '3.1.10',
+    '3.1.11': '3.1.11',
     '3.0.4': '3.0.4',
     '2.7.4': '2.7.4',
   };
diff --git a/poky/meta-selftest/wic/test_efi_plugin.wks b/poky/meta-selftest/wic/test_efi_plugin.wks
new file mode 100644
index 0000000..1603d6c
--- /dev/null
+++ b/poky/meta-selftest/wic/test_efi_plugin.wks
@@ -0,0 +1,6 @@
+# short-description: This file is used in oe-selftest wic module to test efi plugin
+
+part /boot --source bootimg-efi --sourceparams="loader=systemd-boot,create-unified-kernel-image=true,initrd=${INITRAMFS_IMAGE}-${MACHINE}.${INITRAMFS_FSTYPES}" --active --align 1024 --use-uuid
+part / --source rootfs --fstype=ext4 --align 1024 --use-uuid
+
+bootloader  --timeout=0 --append="console=ttyS0,115200n8"
diff --git a/poky/meta-skeleton/recipes-kernel/hello-mod/files/hello.c b/poky/meta-skeleton/recipes-kernel/hello-mod/files/hello.c
index b68b0c3..6b73a79 100644
--- a/poky/meta-skeleton/recipes-kernel/hello-mod/files/hello.c
+++ b/poky/meta-skeleton/recipes-kernel/hello-mod/files/hello.c
@@ -21,13 +21,13 @@
 
 static int __init hello_init(void)
 {
-	printk("Hello World!\n");
+	pr_info("Hello World!\n");
 	return 0;
 }
 
 static void __exit hello_exit(void)
 {
-	printk("Goodbye Cruel World!\n");
+	pr_info("Goodbye Cruel World!\n");
 }
 
 module_init(hello_init);
diff --git a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.13.bbappend b/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.13.bbappend
deleted file mode 100644
index daf5fd2..0000000
--- a/poky/meta-yocto-bsp/recipes-kernel/linux/linux-yocto_5.13.bbappend
+++ /dev/null
@@ -1,23 +0,0 @@
-KBRANCH:genericx86  = "v5.13/standard/base"
-KBRANCH:genericx86-64  = "v5.13/standard/base"
-KBRANCH:edgerouter = "v5.13/standard/edgerouter"
-KBRANCH:beaglebone-yocto = "v5.13/standard/beaglebone"
-
-KMACHINE:genericx86 ?= "common-pc"
-KMACHINE:genericx86-64 ?= "common-pc-64"
-KMACHINE:beaglebone-yocto ?= "beaglebone"
-
-SRCREV_machine:genericx86 ?= "7280c93f5599946db3add473eeb05b34c364938d"
-SRCREV_machine:genericx86-64 ?= "7280c93f5599946db3add473eeb05b34c364938d"
-SRCREV_machine:edgerouter ?= "a832a0390e96c4f014d7b2bf9f161ac9477140f7"
-SRCREV_machine:beaglebone-yocto ?= "dbdc921374c057a75b2df92302124994e241ca51"
-
-COMPATIBLE_MACHINE:genericx86 = "genericx86"
-COMPATIBLE_MACHINE:genericx86-64 = "genericx86-64"
-COMPATIBLE_MACHINE:edgerouter = "edgerouter"
-COMPATIBLE_MACHINE:beaglebone-yocto = "beaglebone-yocto"
-
-LINUX_VERSION:genericx86 = "5.13.15"
-LINUX_VERSION:genericx86-64 = "5.13.15"
-LINUX_VERSION:edgerouter = "5.13.15"
-LINUX_VERSION:beaglebone-yocto = "5.13.15"
diff --git a/poky/meta/classes/autotools.bbclass b/poky/meta/classes/autotools.bbclass
index bc0c2ea..4ab2460 100644
--- a/poky/meta/classes/autotools.bbclass
+++ b/poky/meta/classes/autotools.bbclass
@@ -149,10 +149,7 @@
     d.setVar("CONFIG_SITE", " ".join(sitefiles))
 }
 
-python () {
-    sitefiles, searched = siteinfo_get_files(d, sysrootcache=False)
-    d.appendVarFlag("do_configure", "file-checksums", " " + " ".join(searched))
-}
+do_configure[file-checksums] += "${@' '.join(siteinfo_get_files(d, sysrootcache=False)[1])}"
 
 CONFIGURE_FILES = "${S}/configure.in ${S}/configure.ac ${S}/config.h.in ${S}/acinclude.m4 Makefile.am"
 
diff --git a/poky/meta/classes/create-spdx.bbclass b/poky/meta/classes/create-spdx.bbclass
index 3c73c21..739b46e 100644
--- a/poky/meta/classes/create-spdx.bbclass
+++ b/poky/meta/classes/create-spdx.bbclass
@@ -13,6 +13,9 @@
 SPDXDEPLOY = "${SPDXDIR}/deploy"
 SPDXWORK = "${SPDXDIR}/work"
 
+SPDX_TOOL_NAME ??= "oe-spdx-creator"
+SPDX_TOOL_VERSION ??= "1.0"
+
 SPDXRUNTIMEDEPLOY = "${SPDXDIR}/runtime-deploy"
 
 SPDX_INCLUDE_SOURCES ??= "0"
@@ -32,6 +35,10 @@
     namespace_uuid = uuid.uuid5(uuid.NAMESPACE_DNS, d.getVar("SPDX_UUID_NAMESPACE"))
     return "%s/%s-%s" % (d.getVar("SPDX_NAMESPACE_PREFIX"), doc.name, str(uuid.uuid5(namespace_uuid, doc.name)))
 
+def recipe_spdx_is_native(d, recipe):
+    return any(a.annotationType == "OTHER" and
+      a.annotator == "Tool: %s - %s" % (d.getVar("SPDX_TOOL_NAME"), d.getVar("SPDX_TOOL_VERSION")) and
+      a.comment == "isNative" for a in recipe.annotations)
 
 def is_work_shared(d):
     pn = d.getVar('PN')
@@ -336,6 +343,10 @@
 
     sources = {}
     for dep in dep_recipes:
+        # Don't collect sources from native recipes as they
+        # match non-native sources also.
+        if recipe_spdx_is_native(d, dep.recipe):
+            continue
         recipe_files = set(dep.recipe.hasFiles)
 
         for spdx_file in dep.doc.files:
@@ -382,7 +393,6 @@
     include_sources = d.getVar("SPDX_INCLUDE_SOURCES") == "1"
     archive_sources = d.getVar("SPDX_ARCHIVE_SOURCES") == "1"
     archive_packaged = d.getVar("SPDX_ARCHIVE_PACKAGED") == "1"
-    is_native = bb.data.inherits_class("native", d)
 
     creation_time = datetime.now(tz=timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
 
@@ -401,6 +411,13 @@
     recipe.name = d.getVar("PN")
     recipe.versionInfo = d.getVar("PV")
     recipe.SPDXID = oe.sbom.get_recipe_spdxid(d)
+    if bb.data.inherits_class("native", d):
+        annotation = oe.spdx.SPDXAnnotation()
+        annotation.annotationDate = creation_time
+        annotation.annotationType = "OTHER"
+        annotation.annotator = "Tool: %s - %s" % (d.getVar("SPDX_TOOL_NAME"), d.getVar("SPDX_TOOL_VERSION"))
+        annotation.comment = "isNative"
+        recipe.annotations.append(annotation)
 
     for s in d.getVar('SRC_URI').split():
         if not s.startswith("file://"):
@@ -480,7 +497,7 @@
     sources = collect_dep_sources(d, dep_recipes)
     found_licenses = {license.name:recipe_ref.externalDocumentId + ":" + license.licenseId for license in doc.hasExtractedLicensingInfos}
 
-    if not is_native:
+    if not recipe_spdx_is_native(d, recipe):
         bb.build.exec_func("read_subpackage_metadata", d)
 
         pkgdest = Path(d.getVar("PKGDEST"))
diff --git a/poky/meta/classes/externalsrc.bbclass b/poky/meta/classes/externalsrc.bbclass
index 7f1a760..ad93b2d 100644
--- a/poky/meta/classes/externalsrc.bbclass
+++ b/poky/meta/classes/externalsrc.bbclass
@@ -109,16 +109,15 @@
             if local_srcuri and task in fetch_tasks:
                 continue
             bb.build.deltask(task, d)
-
-        if bb.data.inherits_class('reproducible_build', d) and 'do_unpack' in d.getVar("SRCTREECOVEREDTASKS").split():
-            # The reproducible_build's create_source_date_epoch_stamp function must
-            # be run after the source is available and before the
-            # do_deploy_source_date_epoch task.  In the normal case, it's attached
-            # to do_unpack as a postfuncs, but since we removed do_unpack (above)
-            # we need to move the function elsewhere.  The easiest thing to do is
-            # move it into the prefuncs of the do_deploy_source_date_epoch task.
-            # This is safe, as externalsrc runs with the source already unpacked.
-            d.prependVarFlag('do_deploy_source_date_epoch', 'prefuncs', 'create_source_date_epoch_stamp ')
+            if bb.data.inherits_class('reproducible_build', d) and task == 'do_unpack':
+                # The reproducible_build's create_source_date_epoch_stamp function must
+                # be run after the source is available and before the
+                # do_deploy_source_date_epoch task.  In the normal case, it's attached
+                # to do_unpack as a postfuncs, but since we removed do_unpack (above)
+                # we need to move the function elsewhere.  The easiest thing to do is
+                # move it into the prefuncs of the do_deploy_source_date_epoch task.
+                # This is safe, as externalsrc runs with the source already unpacked.
+                d.prependVarFlag('do_deploy_source_date_epoch', 'prefuncs', 'create_source_date_epoch_stamp ')
 
         d.prependVarFlag('do_compile', 'prefuncs', "externalsrc_compile_prefunc ")
         d.prependVarFlag('do_configure', 'prefuncs', "externalsrc_configure_prefunc ")
diff --git a/poky/meta/classes/image-artifact-names.bbclass b/poky/meta/classes/image-artifact-names.bbclass
index 3ac8dd7..67f04e8 100644
--- a/poky/meta/classes/image-artifact-names.bbclass
+++ b/poky/meta/classes/image-artifact-names.bbclass
@@ -4,7 +4,7 @@
 
 IMAGE_BASENAME ?= "${PN}"
 IMAGE_VERSION_SUFFIX ?= "-${DATETIME}"
-IMAGE_VERSION_SUFFIX[vardepsexclude] += "DATETIME"
+IMAGE_VERSION_SUFFIX[vardepsexclude] += "DATETIME SOURCE_DATE_EPOCH"
 IMAGE_NAME ?= "${IMAGE_BASENAME}-${MACHINE}${IMAGE_VERSION_SUFFIX}"
 IMAGE_LINK_NAME ?= "${IMAGE_BASENAME}-${MACHINE}"
 
@@ -13,3 +13,10 @@
 # by default) followed by additional suffices which describe the format (.ext4,
 # .ext4.xz, etc.).
 IMAGE_NAME_SUFFIX ??= ".rootfs"
+
+python () {
+    if bb.data.inherits_class('reproducible_build', d) and bb.data.inherits_class('deploy', d) and d.getVar("IMAGE_VERSION_SUFFIX") == "-${DATETIME}":
+        import datetime
+        d.setVar("IMAGE_VERSION_SUFFIX", "-" + datetime.datetime.fromtimestamp(int(d.getVar("SOURCE_DATE_EPOCH")), datetime.timezone.utc).strftime('%Y%m%d%H%M%S'))
+        d.setVarFlag("IMAGE_VERSION_SUFFIX", "vardepvalue", "")
+}
diff --git a/poky/meta/classes/image.bbclass b/poky/meta/classes/image.bbclass
index 1d88ccd..c2f3232 100644
--- a/poky/meta/classes/image.bbclass
+++ b/poky/meta/classes/image.bbclass
@@ -434,6 +434,7 @@
         localdata.delVar('DATETIME')
         localdata.delVar('DATE')
         localdata.delVar('TMPDIR')
+        localdata.delVar('IMAGE_VERSION_SUFFIX')
         vardepsexclude = (d.getVarFlag('IMAGE_CMD:' + realt, 'vardepsexclude', True) or '').split()
         for dep in vardepsexclude:
             localdata.delVar(dep)
diff --git a/poky/meta/classes/image_types_wic.bbclass b/poky/meta/classes/image_types_wic.bbclass
index d561fb2..e3863c8 100644
--- a/poky/meta/classes/image_types_wic.bbclass
+++ b/poky/meta/classes/image_types_wic.bbclass
@@ -27,6 +27,7 @@
 	ROOTFS_SIZE \
 	STAGING_DATADIR \
 	STAGING_DIR \
+	STAGING_DIR_HOST \
 	STAGING_LIBDIR \
 	TARGET_SYS \
 "
@@ -84,8 +85,8 @@
 WKS_FILE_DEPENDS_DEFAULT = '${@bb.utils.contains_any("BUILD_ARCH", [ 'x86_64', 'i686' ], "syslinux-native", "",d)}'
 WKS_FILE_DEPENDS_DEFAULT += "bmap-tools-native cdrtools-native btrfs-tools-native squashfs-tools-native e2fsprogs-native"
 WKS_FILE_DEPENDS_BOOTLOADERS = ""
-WKS_FILE_DEPENDS_BOOTLOADERS:x86 = "syslinux grub-efi systemd-boot"
-WKS_FILE_DEPENDS_BOOTLOADERS:x86-64 = "syslinux grub-efi systemd-boot"
+WKS_FILE_DEPENDS_BOOTLOADERS:x86 = "syslinux grub-efi systemd-boot os-release"
+WKS_FILE_DEPENDS_BOOTLOADERS:x86-64 = "syslinux grub-efi systemd-boot os-release"
 WKS_FILE_DEPENDS_BOOTLOADERS:x86-x32 = "syslinux grub-efi"
 
 WKS_FILE_DEPENDS ??= "${WKS_FILE_DEPENDS_DEFAULT} ${WKS_FILE_DEPENDS_BOOTLOADERS}"
diff --git a/poky/meta/classes/kernel.bbclass b/poky/meta/classes/kernel.bbclass
index d13c38f..4acec18 100644
--- a/poky/meta/classes/kernel.bbclass
+++ b/poky/meta/classes/kernel.bbclass
@@ -322,15 +322,6 @@
 
 addtask bundle_initramfs after do_install before do_deploy
 
-get_cc_option () {
-		# Check if KERNEL_CC supports the option "file-prefix-map".
-		# This option allows us to build images with __FILE__ values that do not
-		# contain the host build path.
-		if ${KERNEL_CC} -Q --help=joined | grep -q "\-ffile-prefix-map=<old=new>"; then
-			echo "-ffile-prefix-map=${S}=/kernel-source/"
-		fi
-}
-
 kernel_do_compile() {
 	unset CFLAGS CPPFLAGS CXXFLAGS LDFLAGS MACHINE
 	if [ "${BUILD_REPRODUCIBLE_BINARIES}" = "1" ]; then
@@ -361,9 +352,8 @@
 		copy_initramfs
 		use_alternate_initrd=CONFIG_INITRAMFS_SOURCE=${B}/usr/${INITRAMFS_IMAGE_NAME}.cpio
 	fi
-	cc_extra=$(get_cc_option)
 	for typeformake in ${KERNEL_IMAGETYPE_FOR_MAKE} ; do
-		oe_runmake ${typeformake} CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd
+		oe_runmake ${typeformake} CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS} $use_alternate_initrd
 	done
 	# vmlinux.gz is not built by kernel
 	if (echo "${KERNEL_IMAGETYPES}" | grep -wq "vmlinux\.gz"); then
@@ -390,8 +380,7 @@
 		bbnote "KBUILD_BUILD_TIMESTAMP: $ts"
 	fi
 	if (grep -q -i -e '^CONFIG_MODULES=y$' ${B}/.config); then
-		cc_extra=$(get_cc_option)
-		oe_runmake -C ${B} ${PARALLEL_MAKE} modules CC="${KERNEL_CC} $cc_extra " LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
+		oe_runmake -C ${B} ${PARALLEL_MAKE} modules CC="${KERNEL_CC}" LD="${KERNEL_LD}" ${KERNEL_EXTRA_ARGS}
 
 		# Module.symvers gets updated during the 
 		# building of the kernel modules. We need to
diff --git a/poky/meta/classes/libc-package.bbclass b/poky/meta/classes/libc-package.bbclass
index 7a661d4..13ef8cd 100644
--- a/poky/meta/classes/libc-package.bbclass
+++ b/poky/meta/classes/libc-package.bbclass
@@ -355,7 +355,7 @@
                 m.write("\t@echo 'Progress %d/%d'\n" % (i, total))
                 m.write("\t" + makerecipe + "\n\n")
         d.setVar("EXTRA_OEMAKE", "-C %s ${PARALLEL_MAKE}" % (os.path.dirname(makefile)))
-        d.setVarFlag("oe_runmake", "progress", "outof:Progress\s(\d+)/(\d+)")
+        d.setVarFlag("oe_runmake", "progress", r"outof:Progress\s(\d+)/(\d+)")
         bb.note("Executing binary locale generation makefile")
         bb.build.exec_func("oe_runmake", d)
         bb.note("collecting binary locales from locale tree")
diff --git a/poky/meta/classes/package.bbclass b/poky/meta/classes/package.bbclass
index 460997a..985dfac 100644
--- a/poky/meta/classes/package.bbclass
+++ b/poky/meta/classes/package.bbclass
@@ -2112,12 +2112,12 @@
     for pkg in packages.split():
         pkgconfig_provided[pkg] = []
         pkgconfig_needed[pkg] = []
-        for file in pkgfiles[pkg]:
+        for file in sorted(pkgfiles[pkg]):
                 m = pc_re.match(file)
                 if m:
                     pd = bb.data.init()
                     name = m.group(1)
-                    pkgconfig_provided[pkg].append(name)
+                    pkgconfig_provided[pkg].append(os.path.basename(name))
                     if not os.access(file, os.R_OK):
                         continue
                     with open(file, 'r') as f:
@@ -2140,7 +2140,7 @@
         pkgs_file = os.path.join(shlibswork_dir, pkg + ".pclist")
         if pkgconfig_provided[pkg] != []:
             with open(pkgs_file, 'w') as f:
-                for p in pkgconfig_provided[pkg]:
+                for p in sorted(pkgconfig_provided[pkg]):
                     f.write('%s\n' % p)
 
     # Go from least to most specific since the last one found wins
diff --git a/poky/meta/classes/package_ipk.bbclass b/poky/meta/classes/package_ipk.bbclass
index 4fcb25c..776fe8e 100644
--- a/poky/meta/classes/package_ipk.bbclass
+++ b/poky/meta/classes/package_ipk.bbclass
@@ -230,8 +230,8 @@
                                 shell=True)
 
         if d.getVar('IPK_SIGN_PACKAGES') == '1':
-            ipkver = "%s-%s" % (d.getVar('PKGV'), d.getVar('PKGR'))
-            ipk_to_sign = "%s/%s_%s_%s.ipk" % (pkgoutdir, pkgname, ipkver, d.getVar('PACKAGE_ARCH'))
+            ipkver = "%s-%s" % (localdata.getVar('PKGV'), localdata.getVar('PKGR'))
+            ipk_to_sign = "%s/%s_%s_%s.ipk" % (pkgoutdir, pkgname, ipkver, localdata.getVar('PACKAGE_ARCH'))
             sign_ipk(d, ipk_to_sign)
 
     finally:
diff --git a/poky/meta/classes/reproducible_build.bbclass b/poky/meta/classes/reproducible_build.bbclass
index 89f645b..7571c11 100644
--- a/poky/meta/classes/reproducible_build.bbclass
+++ b/poky/meta/classes/reproducible_build.bbclass
@@ -115,11 +115,14 @@
 do_unpack[postfuncs] += "create_source_date_epoch_stamp"
 
 def get_source_date_epoch_value(d):
-    cached = d.getVar('__CACHED_SOURCE_DATE_EPOCH')
-    if cached:
+    epochfile = d.getVar('SDE_FILE')
+    cached, efile = d.getVar('__CACHED_SOURCE_DATE_EPOCH') or (None, None)
+    if cached and efile == epochfile:
         return cached
 
-    epochfile = d.getVar('SDE_FILE')
+    if cached and epochfile != efile:
+        bb.debug(1, "Epoch file changed from %s to %s" % (efile, epochfile))
+
     source_date_epoch = int(d.getVar('SOURCE_DATE_EPOCH_FALLBACK'))
     try:
         with open(epochfile, 'r') as f:
@@ -137,7 +140,7 @@
     except FileNotFoundError:
         bb.debug(1, "Cannot find %s. SOURCE_DATE_EPOCH will default to %d" % (epochfile, source_date_epoch))
 
-    d.setVar('__CACHED_SOURCE_DATE_EPOCH', str(source_date_epoch))
+    d.setVar('__CACHED_SOURCE_DATE_EPOCH', (str(source_date_epoch), epochfile))
     return str(source_date_epoch)
 
 export SOURCE_DATE_EPOCH ?= "${@get_source_date_epoch_value(d)}"
diff --git a/poky/meta/classes/rm_work.bbclass b/poky/meta/classes/rm_work.bbclass
index 07901d7..5f12d5a 100644
--- a/poky/meta/classes/rm_work.bbclass
+++ b/poky/meta/classes/rm_work.bbclass
@@ -73,7 +73,7 @@
             # sstate version since otherwise we'd need to leave 'plaindirs' around
             # such as 'packages' and 'packages-split' and these can be large. No end
             # of chain tasks depend directly on do_package anymore.
-            rm -f $i;
+            rm -f -- $i;
             ;;
         *_setscene*)
             # Skip stamps which are already setscene versions
@@ -90,7 +90,7 @@
                     ;;
                 esac
             done
-            rm -f $i
+            rm -f -- $i
         esac
     done
 
@@ -100,9 +100,9 @@
         # Retain only logs and other files in temp, safely ignore
         # failures of removing pseudo folers on NFS2/3 server.
         if [ $dir = 'pseudo' ]; then
-            rm -rf $dir 2> /dev/null || true
+            rm -rf -- $dir 2> /dev/null || true
         elif ! echo "$excludes" | grep -q -w "$dir"; then
-            rm -rf $dir
+            rm -rf -- $dir
         fi
     done
 }
diff --git a/poky/meta/classes/sstate.bbclass b/poky/meta/classes/sstate.bbclass
index 92a7311..7f4b1f6 100644
--- a/poky/meta/classes/sstate.bbclass
+++ b/poky/meta/classes/sstate.bbclass
@@ -1,4 +1,4 @@
-SSTATE_VERSION = "3"
+SSTATE_VERSION = "5"
 
 SSTATE_MANIFESTS ?= "${TMPDIR}/sstate-control"
 SSTATE_MANFILEPREFIX = "${SSTATE_MANIFESTS}/manifest-${SSTATE_MANMACH}-${PN}"
@@ -67,6 +67,13 @@
 SSTATE_SCAN_FILES ?= "*.la *-config *_config postinst-*"
 SSTATE_SCAN_CMD ??= 'find ${SSTATE_BUILDDIR} \( -name "${@"\" -o -name \"".join(d.getVar("SSTATE_SCAN_FILES").split())}" \) -type f'
 SSTATE_SCAN_CMD_NATIVE ??= 'grep -Irl -e ${RECIPE_SYSROOT} -e ${RECIPE_SYSROOT_NATIVE} -e ${HOSTTOOLS_DIR} ${SSTATE_BUILDDIR}'
+SSTATE_HASHEQUIV_FILEMAP ?= " \
+    populate_sysroot:*/postinst-useradd-*:${TMPDIR} \
+    populate_sysroot:*/postinst-useradd-*:${COREBASE} \
+    populate_sysroot:*/postinst-useradd-*:regex-\s(PATH|PSEUDO_IGNORE_PATHS|HOME|LOGNAME|OMP_NUM_THREADS|USER)=.*\s \
+    populate_sysroot:*/crossscripts/*:${TMPDIR} \
+    populate_sysroot:*/crossscripts/*:${COREBASE} \
+    "
 
 BB_HASHFILENAME = "False ${SSTATE_PKGSPEC} ${SSTATE_SWSPEC}"
 
diff --git a/poky/meta/conf/abi_version.conf b/poky/meta/conf/abi_version.conf
index 35faef9..e84cad1 100644
--- a/poky/meta/conf/abi_version.conf
+++ b/poky/meta/conf/abi_version.conf
@@ -12,4 +12,4 @@
 # a reset of the equivalence, for example when reproducibility issues break the
 # existing match data. Distros can also append to this value for the same effect.
 #
-HASHEQUIV_HASH_VERSION  = "5"
+HASHEQUIV_HASH_VERSION  = "8"
diff --git a/poky/meta/conf/bitbake.conf b/poky/meta/conf/bitbake.conf
index e25d632..f3ff5b7 100644
--- a/poky/meta/conf/bitbake.conf
+++ b/poky/meta/conf/bitbake.conf
@@ -604,6 +604,7 @@
 # Pass parallel make options to the compile task
 EXTRA_OEMAKE:prepend:task-compile = "${PARALLEL_MAKE} "
 PARALLEL_MAKEINST ??= "${PARALLEL_MAKE}"
+PARALLEL_MAKEINST[vardepvalue] = "1"
 # Pass parallel make options to the install task
 EXTRA_OEMAKE:prepend:task-install = "${PARALLEL_MAKEINST} "
 
diff --git a/poky/meta/files/spdx-licenses.json b/poky/meta/files/spdx-licenses.json
index 582c73c..ef92616 100644
--- a/poky/meta/files/spdx-licenses.json
+++ b/poky/meta/files/spdx-licenses.json
@@ -1,5 +1,5 @@
 {
-  "licenseListVersion": "7bcf79d",
+  "licenseListVersion": "3.14",
   "licenses": [
     {
       "reference": "https://spdx.org/licenses/GPL-1.0.html",
@@ -14,10 +14,23 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/bzip2-1.0.6.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/bzip2-1.0.6.json",
+      "referenceNumber": 1,
+      "name": "bzip2 and libbzip2 License v1.0.6",
+      "licenseId": "bzip2-1.0.6",
+      "seeAlso": [
+        "https://sourceware.org/git/?p\u003dbzip2.git;a\u003dblob;f\u003dLICENSE;hb\u003dbzip2-1.0.6",
+        "http://bzip.org/1.0.5/bzip2-manual-1.0.5.html"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/Intel-ACPI.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Intel-ACPI.json",
-      "referenceNumber": 1,
+      "referenceNumber": 2,
       "name": "Intel ACPI Software License Agreement",
       "licenseId": "Intel-ACPI",
       "seeAlso": [
@@ -29,7 +42,7 @@
       "reference": "https://spdx.org/licenses/XSkat.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/XSkat.json",
-      "referenceNumber": 2,
+      "referenceNumber": 3,
       "name": "XSkat License",
       "licenseId": "XSkat",
       "seeAlso": [
@@ -41,7 +54,7 @@
       "reference": "https://spdx.org/licenses/CC-BY-NC-SA-2.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC-BY-NC-SA-2.0.json",
-      "referenceNumber": 3,
+      "referenceNumber": 4,
       "name": "Creative Commons Attribution Non Commercial Share Alike 2.0 Generic",
       "licenseId": "CC-BY-NC-SA-2.0",
       "seeAlso": [
@@ -50,15 +63,14 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/bzip2-1.0.6.html",
+      "reference": "https://spdx.org/licenses/Plexus.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/bzip2-1.0.6.json",
-      "referenceNumber": 4,
-      "name": "bzip2 and libbzip2 License v1.0.6",
-      "licenseId": "bzip2-1.0.6",
+      "detailsUrl": "https://spdx.org/licenses/Plexus.json",
+      "referenceNumber": 5,
+      "name": "Plexus Classworlds License",
+      "licenseId": "Plexus",
       "seeAlso": [
-        "https://sourceware.org/git/?p\u003dbzip2.git;a\u003dblob;f\u003dLICENSE;hb\u003dbzip2-1.0.6",
-        "http://bzip.org/1.0.5/bzip2-manual-1.0.5.html"
+        "https://fedoraproject.org/wiki/Licensing/Plexus_Classworlds_License"
       ],
       "isOsiApproved": false
     },
@@ -66,7 +78,7 @@
       "reference": "https://spdx.org/licenses/Giftware.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Giftware.json",
-      "referenceNumber": 5,
+      "referenceNumber": 6,
       "name": "Giftware License",
       "licenseId": "Giftware",
       "seeAlso": [
@@ -75,18 +87,6 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Plexus.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Plexus.json",
-      "referenceNumber": 6,
-      "name": "Plexus Classworlds License",
-      "licenseId": "Plexus",
-      "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/Plexus_Classworlds_License"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/BitTorrent-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/BitTorrent-1.0.json",
@@ -185,24 +185,10 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/W3C.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/W3C.json",
-      "referenceNumber": 15,
-      "name": "W3C Software Notice and License (2002-12-31)",
-      "licenseId": "W3C",
-      "seeAlso": [
-        "http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.html",
-        "https://opensource.org/licenses/W3C"
-      ],
-      "isOsiApproved": true,
-      "isFsfLibre": true
-    },
-    {
       "reference": "https://spdx.org/licenses/JPNIC.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/JPNIC.json",
-      "referenceNumber": 16,
+      "referenceNumber": 15,
       "name": "Japan Network Information Center License",
       "licenseId": "JPNIC",
       "seeAlso": [
@@ -214,7 +200,7 @@
       "reference": "https://spdx.org/licenses/SAX-PD.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/SAX-PD.json",
-      "referenceNumber": 17,
+      "referenceNumber": 16,
       "name": "Sax Public Domain Notice",
       "licenseId": "SAX-PD",
       "seeAlso": [
@@ -226,7 +212,7 @@
       "reference": "https://spdx.org/licenses/CC-BY-ND-2.5.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC-BY-ND-2.5.json",
-      "referenceNumber": 18,
+      "referenceNumber": 17,
       "name": "Creative Commons Attribution No Derivatives 2.5 Generic",
       "licenseId": "CC-BY-ND-2.5",
       "seeAlso": [
@@ -235,6 +221,19 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/eGenix.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/eGenix.json",
+      "referenceNumber": 18,
+      "name": "eGenix.com Public License 1.1.0",
+      "licenseId": "eGenix",
+      "seeAlso": [
+        "http://www.egenix.com/products/eGenix.com-Public-License-1.1.0.pdf",
+        "https://fedoraproject.org/wiki/Licensing/eGenix.com_Public_License_1.1.0"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/LGPLLR.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/LGPLLR.json",
@@ -247,23 +246,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/eGenix.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/eGenix.json",
-      "referenceNumber": 20,
-      "name": "eGenix.com Public License 1.1.0",
-      "licenseId": "eGenix",
-      "seeAlso": [
-        "http://www.egenix.com/products/eGenix.com-Public-License-1.1.0.pdf",
-        "https://fedoraproject.org/wiki/Licensing/eGenix.com_Public_License_1.1.0"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/OLDAP-2.2.2.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/OLDAP-2.2.2.json",
-      "referenceNumber": 21,
+      "referenceNumber": 20,
       "name": "Open LDAP Public License 2.2.2",
       "licenseId": "OLDAP-2.2.2",
       "seeAlso": [
@@ -272,6 +258,18 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/CC-BY-ND-3.0-DE.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-ND-3.0-DE.json",
+      "referenceNumber": 21,
+      "name": "Creative Commons Attribution No Derivatives 3.0 Germany",
+      "licenseId": "CC-BY-ND-3.0-DE",
+      "seeAlso": [
+        "https://creativecommons.org/licenses/by-nd/3.0/de/legalcode"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/IPA.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/IPA.json",
@@ -285,22 +283,10 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/CC-BY-ND-3.0-DE.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-ND-3.0-DE.json",
-      "referenceNumber": 23,
-      "name": "Creative Commons Attribution No Derivatives 3.0 Germany",
-      "licenseId": "CC-BY-ND-3.0-DE",
-      "seeAlso": [
-        "https://creativecommons.org/licenses/by-nd/3.0/de/legalcode"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/NCSA.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/NCSA.json",
-      "referenceNumber": 24,
+      "referenceNumber": 23,
       "name": "University of Illinois/NCSA Open Source License",
       "licenseId": "NCSA",
       "seeAlso": [
@@ -311,27 +297,28 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/PHP-3.01.html",
+      "reference": "https://spdx.org/licenses/W3C.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/PHP-3.01.json",
-      "referenceNumber": 25,
-      "name": "PHP License v3.01",
-      "licenseId": "PHP-3.01",
+      "detailsUrl": "https://spdx.org/licenses/W3C.json",
+      "referenceNumber": 24,
+      "name": "W3C Software Notice and License (2002-12-31)",
+      "licenseId": "W3C",
       "seeAlso": [
-        "http://www.php.net/license/3_01.txt"
+        "http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231.html",
+        "https://opensource.org/licenses/W3C"
       ],
       "isOsiApproved": true,
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/CC-PDDC.html",
+      "reference": "https://spdx.org/licenses/Adobe-2006.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-PDDC.json",
-      "referenceNumber": 26,
-      "name": "Creative Commons Public Domain Dedication and Certification",
-      "licenseId": "CC-PDDC",
+      "detailsUrl": "https://spdx.org/licenses/Adobe-2006.json",
+      "referenceNumber": 25,
+      "name": "Adobe Systems Incorporated Source Code License Agreement",
+      "licenseId": "Adobe-2006",
       "seeAlso": [
-        "https://creativecommons.org/licenses/publicdomain/"
+        "https://fedoraproject.org/wiki/Licensing/AdobeLicense"
       ],
       "isOsiApproved": false
     },
@@ -339,7 +326,7 @@
       "reference": "https://spdx.org/licenses/Net-SNMP.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Net-SNMP.json",
-      "referenceNumber": 27,
+      "referenceNumber": 26,
       "name": "Net-SNMP License",
       "licenseId": "Net-SNMP",
       "seeAlso": [
@@ -348,6 +335,19 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/CC-BY-SA-4.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-SA-4.0.json",
+      "referenceNumber": 27,
+      "name": "Creative Commons Attribution Share Alike 4.0 International",
+      "licenseId": "CC-BY-SA-4.0",
+      "seeAlso": [
+        "https://creativecommons.org/licenses/by-sa/4.0/legalcode"
+      ],
+      "isOsiApproved": false,
+      "isFsfLibre": true
+    },
+    {
       "reference": "https://spdx.org/licenses/YPL-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/YPL-1.0.json",
@@ -360,22 +360,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Adobe-2006.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Adobe-2006.json",
-      "referenceNumber": 29,
-      "name": "Adobe Systems Incorporated Source Code License Agreement",
-      "licenseId": "Adobe-2006",
-      "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/AdobeLicense"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/Nunit.html",
       "isDeprecatedLicenseId": true,
       "detailsUrl": "https://spdx.org/licenses/Nunit.json",
-      "referenceNumber": 30,
+      "referenceNumber": 29,
       "name": "Nunit License",
       "licenseId": "Nunit",
       "seeAlso": [
@@ -387,7 +375,7 @@
       "reference": "https://spdx.org/licenses/MITNFA.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/MITNFA.json",
-      "referenceNumber": 31,
+      "referenceNumber": 30,
       "name": "MIT +no-false-attribs license",
       "licenseId": "MITNFA",
       "seeAlso": [
@@ -396,6 +384,19 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/PHP-3.01.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/PHP-3.01.json",
+      "referenceNumber": 31,
+      "name": "PHP License v3.01",
+      "licenseId": "PHP-3.01",
+      "seeAlso": [
+        "http://www.php.net/license/3_01.txt"
+      ],
+      "isOsiApproved": true,
+      "isFsfLibre": true
+    },
+    {
       "reference": "https://spdx.org/licenses/BSD-Source-Code.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/BSD-Source-Code.json",
@@ -420,18 +421,16 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/OPUBL-1.0.html",
+      "reference": "https://spdx.org/licenses/Motosoto.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/OPUBL-1.0.json",
+      "detailsUrl": "https://spdx.org/licenses/Motosoto.json",
       "referenceNumber": 34,
-      "name": "Open Publication License v1.0",
-      "licenseId": "OPUBL-1.0",
+      "name": "Motosoto License",
+      "licenseId": "Motosoto",
       "seeAlso": [
-        "http://opencontent.org/openpub/",
-        "https://www.debian.org/opl",
-        "https://www.ctan.org/license/opl"
+        "https://opensource.org/licenses/Motosoto"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": true
     },
     {
       "reference": "https://spdx.org/licenses/OSL-1.1.html",
@@ -447,35 +446,10 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/CC-BY-SA-4.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-SA-4.0.json",
-      "referenceNumber": 36,
-      "name": "Creative Commons Attribution Share Alike 4.0 International",
-      "licenseId": "CC-BY-SA-4.0",
-      "seeAlso": [
-        "https://creativecommons.org/licenses/by-sa/4.0/legalcode"
-      ],
-      "isOsiApproved": false,
-      "isFsfLibre": true
-    },
-    {
-      "reference": "https://spdx.org/licenses/Unicode-TOU.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Unicode-TOU.json",
-      "referenceNumber": 37,
-      "name": "Unicode Terms of Use",
-      "licenseId": "Unicode-TOU",
-      "seeAlso": [
-        "http://www.unicode.org/copyright.html"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/NGPL.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/NGPL.json",
-      "referenceNumber": 38,
+      "referenceNumber": 36,
       "name": "Nethack General Public License",
       "licenseId": "NGPL",
       "seeAlso": [
@@ -484,6 +458,30 @@
       "isOsiApproved": true
     },
     {
+      "reference": "https://spdx.org/licenses/CC-BY-2.5-AU.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-2.5-AU.json",
+      "referenceNumber": 37,
+      "name": "Creative Commons Attribution 2.5 Australia",
+      "licenseId": "CC-BY-2.5-AU",
+      "seeAlso": [
+        "https://creativecommons.org/licenses/by/2.5/au/legalcode"
+      ],
+      "isOsiApproved": false
+    },
+    {
+      "reference": "https://spdx.org/licenses/Unicode-TOU.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/Unicode-TOU.json",
+      "referenceNumber": 38,
+      "name": "Unicode Terms of Use",
+      "licenseId": "Unicode-TOU",
+      "seeAlso": [
+        "http://www.unicode.org/copyright.html"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-License.json",
@@ -496,16 +494,18 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Motosoto.html",
+      "reference": "https://spdx.org/licenses/OPUBL-1.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Motosoto.json",
+      "detailsUrl": "https://spdx.org/licenses/OPUBL-1.0.json",
       "referenceNumber": 40,
-      "name": "Motosoto License",
-      "licenseId": "Motosoto",
+      "name": "Open Publication License v1.0",
+      "licenseId": "OPUBL-1.0",
       "seeAlso": [
-        "https://opensource.org/licenses/Motosoto"
+        "http://opencontent.org/openpub/",
+        "https://www.debian.org/opl",
+        "https://www.ctan.org/license/opl"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": false
     },
     {
       "reference": "https://spdx.org/licenses/CC-BY-NC-SA-2.0-UK.html",
@@ -520,10 +520,22 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/NLOD-2.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/NLOD-2.0.json",
+      "referenceNumber": 42,
+      "name": "Norwegian Licence for Open Government Data (NLOD) 2.0",
+      "licenseId": "NLOD-2.0",
+      "seeAlso": [
+        "http://data.norge.no/nlod/en/2.0"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/gnuplot.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/gnuplot.json",
-      "referenceNumber": 42,
+      "referenceNumber": 43,
       "name": "gnuplot License",
       "licenseId": "gnuplot",
       "seeAlso": [
@@ -533,34 +545,10 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/Eurosym.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Eurosym.json",
-      "referenceNumber": 43,
-      "name": "Eurosym License",
-      "licenseId": "Eurosym",
-      "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/Eurosym"
-      ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/CC-BY-2.5-AU.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-2.5-AU.json",
-      "referenceNumber": 44,
-      "name": "Creative Commons Attribution 2.5 Australia",
-      "licenseId": "CC-BY-2.5-AU",
-      "seeAlso": [
-        "https://creativecommons.org/licenses/by/2.5/au/legalcode"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/EPICS.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/EPICS.json",
-      "referenceNumber": 45,
+      "referenceNumber": 44,
       "name": "EPICS Open License",
       "licenseId": "EPICS",
       "seeAlso": [
@@ -572,7 +560,7 @@
       "reference": "https://spdx.org/licenses/Info-ZIP.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Info-ZIP.json",
-      "referenceNumber": 46,
+      "referenceNumber": 45,
       "name": "Info-ZIP License",
       "licenseId": "Info-ZIP",
       "seeAlso": [
@@ -584,7 +572,7 @@
       "reference": "https://spdx.org/licenses/OLDAP-2.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/OLDAP-2.0.json",
-      "referenceNumber": 47,
+      "referenceNumber": 46,
       "name": "Open LDAP Public License v2.0 (or possibly 2.0A and 2.0B)",
       "licenseId": "OLDAP-2.0",
       "seeAlso": [
@@ -593,6 +581,18 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/CERN-OHL-P-2.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/CERN-OHL-P-2.0.json",
+      "referenceNumber": 47,
+      "name": "CERN Open Hardware Licence Version 2 - Permissive",
+      "licenseId": "CERN-OHL-P-2.0",
+      "seeAlso": [
+        "https://www.ohwr.org/project/cernohl/wikis/Documents/CERN-OHL-version-2"
+      ],
+      "isOsiApproved": true
+    },
+    {
       "reference": "https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-Warranty.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/BSD-3-Clause-No-Nuclear-Warranty.json",
@@ -605,22 +605,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CERN-OHL-P-2.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CERN-OHL-P-2.0.json",
-      "referenceNumber": 49,
-      "name": "CERN Open Hardware Licence Version 2 - Permissive",
-      "licenseId": "CERN-OHL-P-2.0",
-      "seeAlso": [
-        "https://www.ohwr.org/project/cernohl/wikis/Documents/CERN-OHL-version-2"
-      ],
-      "isOsiApproved": true
-    },
-    {
       "reference": "https://spdx.org/licenses/AML.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/AML.json",
-      "referenceNumber": 50,
+      "referenceNumber": 49,
       "name": "Apple MIT License",
       "licenseId": "AML",
       "seeAlso": [
@@ -632,7 +620,7 @@
       "reference": "https://spdx.org/licenses/MulanPSL-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/MulanPSL-1.0.json",
-      "referenceNumber": 51,
+      "referenceNumber": 50,
       "name": "Mulan Permissive Software License, Version 1",
       "licenseId": "MulanPSL-1.0",
       "seeAlso": [
@@ -642,6 +630,18 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/Multics.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/Multics.json",
+      "referenceNumber": 51,
+      "name": "Multics License",
+      "licenseId": "Multics",
+      "seeAlso": [
+        "https://opensource.org/licenses/Multics"
+      ],
+      "isOsiApproved": true
+    },
+    {
       "reference": "https://spdx.org/licenses/VSL-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/VSL-1.0.json",
@@ -654,22 +654,10 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/NLOD-2.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/NLOD-2.0.json",
-      "referenceNumber": 53,
-      "name": "Norwegian Licence for Open Government Data (NLOD) 2.0",
-      "licenseId": "NLOD-2.0",
-      "seeAlso": [
-        "http://data.norge.no/nlod/en/2.0"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/RSA-MD.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/RSA-MD.json",
-      "referenceNumber": 54,
+      "referenceNumber": 53,
       "name": "RSA Message-Digest License",
       "licenseId": "RSA-MD",
       "seeAlso": [
@@ -678,15 +666,26 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/O-UDA-1.0.html",
+      "reference": "https://spdx.org/licenses/CC-PDDC.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/O-UDA-1.0.json",
-      "referenceNumber": 55,
-      "name": "Open Use of Data Agreement v1.0",
-      "licenseId": "O-UDA-1.0",
+      "detailsUrl": "https://spdx.org/licenses/CC-PDDC.json",
+      "referenceNumber": 54,
+      "name": "Creative Commons Public Domain Dedication and Certification",
+      "licenseId": "CC-PDDC",
       "seeAlso": [
-        "https://github.com/microsoft/Open-Use-of-Data-Agreement/blob/v1.0/O-UDA-1.0.md",
-        "https://cdla.dev/open-use-of-data-agreement-v1-0/"
+        "https://creativecommons.org/licenses/publicdomain/"
+      ],
+      "isOsiApproved": false
+    },
+    {
+      "reference": "https://spdx.org/licenses/CC-BY-SA-2.1-JP.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-SA-2.1-JP.json",
+      "referenceNumber": 55,
+      "name": "Creative Commons Attribution Share Alike 2.1 Japan",
+      "licenseId": "CC-BY-SA-2.1-JP",
+      "seeAlso": [
+        "https://creativecommons.org/licenses/by-sa/2.1/jp/legalcode"
       ],
       "isOsiApproved": false
     },
@@ -704,22 +703,10 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/CC-BY-SA-2.1-JP.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-SA-2.1-JP.json",
-      "referenceNumber": 57,
-      "name": "Creative Commons Attribution Share Alike 2.1 Japan",
-      "licenseId": "CC-BY-SA-2.1-JP",
-      "seeAlso": [
-        "https://creativecommons.org/licenses/by-sa/2.1/jp/legalcode"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/Spencer-94.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Spencer-94.json",
-      "referenceNumber": 58,
+      "referenceNumber": 57,
       "name": "Spencer License 94",
       "licenseId": "Spencer-94",
       "seeAlso": [
@@ -731,7 +718,7 @@
       "reference": "https://spdx.org/licenses/OLDAP-1.2.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/OLDAP-1.2.json",
-      "referenceNumber": 59,
+      "referenceNumber": 58,
       "name": "Open LDAP Public License v1.2",
       "licenseId": "OLDAP-1.2",
       "seeAlso": [
@@ -740,6 +727,19 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/O-UDA-1.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/O-UDA-1.0.json",
+      "referenceNumber": 59,
+      "name": "Open Use of Data Agreement v1.0",
+      "licenseId": "O-UDA-1.0",
+      "seeAlso": [
+        "https://github.com/microsoft/Open-Use-of-Data-Agreement/blob/v1.0/O-UDA-1.0.md",
+        "https://cdla.dev/open-use-of-data-agreement-v1-0/"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/OLDAP-2.7.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/OLDAP-2.7.json",
@@ -802,22 +802,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/BSD-Protection.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/BSD-Protection.json",
-      "referenceNumber": 65,
-      "name": "BSD Protection License",
-      "licenseId": "BSD-Protection",
-      "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/BSD_Protection_License"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/LiLiQ-R-1.1.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/LiLiQ-R-1.1.json",
-      "referenceNumber": 66,
+      "referenceNumber": 65,
       "name": "Licence Libre du Québec – Réciprocité version 1.1",
       "licenseId": "LiLiQ-R-1.1",
       "seeAlso": [
@@ -830,7 +818,7 @@
       "reference": "https://spdx.org/licenses/Noweb.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Noweb.json",
-      "referenceNumber": 67,
+      "referenceNumber": 66,
       "name": "Noweb License",
       "licenseId": "Noweb",
       "seeAlso": [
@@ -839,22 +827,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/GFDL-1.3-invariants-or-later.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/GFDL-1.3-invariants-or-later.json",
-      "referenceNumber": 68,
-      "name": "GNU Free Documentation License v1.3 or later - invariants",
-      "licenseId": "GFDL-1.3-invariants-or-later",
-      "seeAlso": [
-        "https://www.gnu.org/licenses/fdl-1.3.txt"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/CC0-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC0-1.0.json",
-      "referenceNumber": 69,
+      "referenceNumber": 67,
       "name": "Creative Commons Zero v1.0 Universal",
       "licenseId": "CC0-1.0",
       "seeAlso": [
@@ -864,10 +840,22 @@
       "isFsfLibre": true
     },
     {
+      "reference": "https://spdx.org/licenses/BSD-Protection.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/BSD-Protection.json",
+      "referenceNumber": 68,
+      "name": "BSD Protection License",
+      "licenseId": "BSD-Protection",
+      "seeAlso": [
+        "https://fedoraproject.org/wiki/Licensing/BSD_Protection_License"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/CC-BY-NC-2.5.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC-BY-NC-2.5.json",
-      "referenceNumber": 70,
+      "referenceNumber": 69,
       "name": "Creative Commons Attribution Non Commercial 2.5 Generic",
       "licenseId": "CC-BY-NC-2.5",
       "seeAlso": [
@@ -879,7 +867,7 @@
       "reference": "https://spdx.org/licenses/Zlib.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Zlib.json",
-      "referenceNumber": 71,
+      "referenceNumber": 70,
       "name": "zlib License",
       "licenseId": "Zlib",
       "seeAlso": [
@@ -890,14 +878,14 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/GFDL-1.1-invariants-or-later.html",
+      "reference": "https://spdx.org/licenses/GFDL-1.3-invariants-or-later.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/GFDL-1.1-invariants-or-later.json",
-      "referenceNumber": 72,
-      "name": "GNU Free Documentation License v1.1 or later - invariants",
-      "licenseId": "GFDL-1.1-invariants-or-later",
+      "detailsUrl": "https://spdx.org/licenses/GFDL-1.3-invariants-or-later.json",
+      "referenceNumber": 71,
+      "name": "GNU Free Documentation License v1.3 or later - invariants",
+      "licenseId": "GFDL-1.3-invariants-or-later",
       "seeAlso": [
-        "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt"
+        "https://www.gnu.org/licenses/fdl-1.3.txt"
       ],
       "isOsiApproved": false
     },
@@ -905,7 +893,7 @@
       "reference": "https://spdx.org/licenses/CC-BY-3.0-AT.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC-BY-3.0-AT.json",
-      "referenceNumber": 73,
+      "referenceNumber": 72,
       "name": "Creative Commons Attribution 3.0 Austria",
       "licenseId": "CC-BY-3.0-AT",
       "seeAlso": [
@@ -917,7 +905,7 @@
       "reference": "https://spdx.org/licenses/LPPL-1.3c.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/LPPL-1.3c.json",
-      "referenceNumber": 74,
+      "referenceNumber": 73,
       "name": "LaTeX Project Public License v1.3c",
       "licenseId": "LPPL-1.3c",
       "seeAlso": [
@@ -930,7 +918,7 @@
       "reference": "https://spdx.org/licenses/EPL-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/EPL-1.0.json",
-      "referenceNumber": 75,
+      "referenceNumber": 74,
       "name": "Eclipse Public License 1.0",
       "licenseId": "EPL-1.0",
       "seeAlso": [
@@ -941,6 +929,18 @@
       "isFsfLibre": true
     },
     {
+      "reference": "https://spdx.org/licenses/GFDL-1.1-invariants-or-later.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/GFDL-1.1-invariants-or-later.json",
+      "referenceNumber": 75,
+      "name": "GNU Free Documentation License v1.1 or later - invariants",
+      "licenseId": "GFDL-1.1-invariants-or-later",
+      "seeAlso": [
+        "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/ANTLR-PD-fallback.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/ANTLR-PD-fallback.json",
@@ -965,22 +965,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Multics.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Multics.json",
-      "referenceNumber": 78,
-      "name": "Multics License",
-      "licenseId": "Multics",
-      "seeAlso": [
-        "https://opensource.org/licenses/Multics"
-      ],
-      "isOsiApproved": true
-    },
-    {
       "reference": "https://spdx.org/licenses/OLDAP-2.3.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/OLDAP-2.3.json",
-      "referenceNumber": 79,
+      "referenceNumber": 78,
       "name": "Open LDAP Public License v2.3",
       "licenseId": "OLDAP-2.3",
       "seeAlso": [
@@ -993,7 +981,7 @@
       "reference": "https://spdx.org/licenses/ZPL-2.1.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/ZPL-2.1.json",
-      "referenceNumber": 80,
+      "referenceNumber": 79,
       "name": "Zope Public License 2.1",
       "licenseId": "ZPL-2.1",
       "seeAlso": [
@@ -1003,35 +991,10 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/CC-BY-SA-3.0-DE.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-SA-3.0-DE.json",
-      "referenceNumber": 81,
-      "name": "Creative Commons Attribution Share Alike 3.0 Germany",
-      "licenseId": "CC-BY-SA-3.0-DE",
-      "seeAlso": [
-        "https://creativecommons.org/licenses/by-sa/3.0/de/legalcode"
-      ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/SGI-B-2.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/SGI-B-2.0.json",
-      "referenceNumber": 82,
-      "name": "SGI Free Software License B v2.0",
-      "licenseId": "SGI-B-2.0",
-      "seeAlso": [
-        "http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.2.0.pdf"
-      ],
-      "isOsiApproved": false,
-      "isFsfLibre": true
-    },
-    {
       "reference": "https://spdx.org/licenses/Apache-2.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Apache-2.0.json",
-      "referenceNumber": 83,
+      "referenceNumber": 80,
       "name": "Apache License 2.0",
       "licenseId": "Apache-2.0",
       "seeAlso": [
@@ -1042,10 +1005,23 @@
       "isFsfLibre": true
     },
     {
+      "reference": "https://spdx.org/licenses/SGI-B-2.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/SGI-B-2.0.json",
+      "referenceNumber": 81,
+      "name": "SGI Free Software License B v2.0",
+      "licenseId": "SGI-B-2.0",
+      "seeAlso": [
+        "http://oss.sgi.com/projects/FreeB/SGIFreeSWLicB.2.0.pdf"
+      ],
+      "isOsiApproved": false,
+      "isFsfLibre": true
+    },
+    {
       "reference": "https://spdx.org/licenses/Hippocratic-2.1.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Hippocratic-2.1.json",
-      "referenceNumber": 84,
+      "referenceNumber": 82,
       "name": "Hippocratic License 2.1",
       "licenseId": "Hippocratic-2.1",
       "seeAlso": [
@@ -1055,10 +1031,22 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/CC-BY-SA-3.0-DE.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-SA-3.0-DE.json",
+      "referenceNumber": 83,
+      "name": "Creative Commons Attribution Share Alike 3.0 Germany",
+      "licenseId": "CC-BY-SA-3.0-DE",
+      "seeAlso": [
+        "https://creativecommons.org/licenses/by-sa/3.0/de/legalcode"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/CC-BY-NC-SA-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC-BY-NC-SA-1.0.json",
-      "referenceNumber": 85,
+      "referenceNumber": 84,
       "name": "Creative Commons Attribution Non Commercial Share Alike 1.0 Generic",
       "licenseId": "CC-BY-NC-SA-1.0",
       "seeAlso": [
@@ -1067,6 +1055,20 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/LGPL-2.1-or-later.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/LGPL-2.1-or-later.json",
+      "referenceNumber": 85,
+      "name": "GNU Lesser General Public License v2.1 or later",
+      "licenseId": "LGPL-2.1-or-later",
+      "seeAlso": [
+        "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html",
+        "https://opensource.org/licenses/LGPL-2.1"
+      ],
+      "isOsiApproved": true,
+      "isFsfLibre": true
+    },
+    {
       "reference": "https://spdx.org/licenses/CC-BY-3.0-US.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC-BY-3.0-US.json",
@@ -1103,18 +1105,16 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/LGPL-2.1-or-later.html",
+      "reference": "https://spdx.org/licenses/Eurosym.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/LGPL-2.1-or-later.json",
+      "detailsUrl": "https://spdx.org/licenses/Eurosym.json",
       "referenceNumber": 89,
-      "name": "GNU Lesser General Public License v2.1 or later",
-      "licenseId": "LGPL-2.1-or-later",
+      "name": "Eurosym License",
+      "licenseId": "Eurosym",
       "seeAlso": [
-        "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html",
-        "https://opensource.org/licenses/LGPL-2.1"
+        "https://fedoraproject.org/wiki/Licensing/Eurosym"
       ],
-      "isOsiApproved": true,
-      "isFsfLibre": true
+      "isOsiApproved": false
     },
     {
       "reference": "https://spdx.org/licenses/GFDL-1.1.html",
@@ -1178,14 +1178,14 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/Unicode-DFS-2015.html",
+      "reference": "https://spdx.org/licenses/libtiff.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Unicode-DFS-2015.json",
+      "detailsUrl": "https://spdx.org/licenses/libtiff.json",
       "referenceNumber": 95,
-      "name": "Unicode License Agreement - Data Files and Software (2015)",
-      "licenseId": "Unicode-DFS-2015",
+      "name": "libtiff License",
+      "licenseId": "libtiff",
       "seeAlso": [
-        "https://web.archive.org/web/20151224134844/http://unicode.org/copyright.html"
+        "https://fedoraproject.org/wiki/Licensing/libtiff"
       ],
       "isOsiApproved": false
     },
@@ -1253,18 +1253,16 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/MPL-1.1.html",
+      "reference": "https://spdx.org/licenses/Unicode-DFS-2015.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/MPL-1.1.json",
+      "detailsUrl": "https://spdx.org/licenses/Unicode-DFS-2015.json",
       "referenceNumber": 101,
-      "name": "Mozilla Public License 1.1",
-      "licenseId": "MPL-1.1",
+      "name": "Unicode License Agreement - Data Files and Software (2015)",
+      "licenseId": "Unicode-DFS-2015",
       "seeAlso": [
-        "http://www.mozilla.org/MPL/MPL-1.1.html",
-        "https://opensource.org/licenses/MPL-1.1"
+        "https://web.archive.org/web/20151224134844/http://unicode.org/copyright.html"
       ],
-      "isOsiApproved": true,
-      "isFsfLibre": true
+      "isOsiApproved": false
     },
     {
       "reference": "https://spdx.org/licenses/GFDL-1.2-only.html",
@@ -1280,34 +1278,24 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/CNRI-Jython.html",
+      "reference": "https://spdx.org/licenses/MPL-1.1.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CNRI-Jython.json",
+      "detailsUrl": "https://spdx.org/licenses/MPL-1.1.json",
       "referenceNumber": 103,
-      "name": "CNRI Jython License",
-      "licenseId": "CNRI-Jython",
+      "name": "Mozilla Public License 1.1",
+      "licenseId": "MPL-1.1",
       "seeAlso": [
-        "http://www.jython.org/license.html"
+        "http://www.mozilla.org/MPL/MPL-1.1.html",
+        "https://opensource.org/licenses/MPL-1.1"
       ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/ZPL-1.1.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/ZPL-1.1.json",
-      "referenceNumber": 104,
-      "name": "Zope Public License 1.1",
-      "licenseId": "ZPL-1.1",
-      "seeAlso": [
-        "http://old.zope.org/Resources/License/ZPL-1.1"
-      ],
-      "isOsiApproved": false
+      "isOsiApproved": true,
+      "isFsfLibre": true
     },
     {
       "reference": "https://spdx.org/licenses/GPL-2.0-only.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/GPL-2.0-only.json",
-      "referenceNumber": 105,
+      "referenceNumber": 104,
       "name": "GNU General Public License v2.0 only",
       "licenseId": "GPL-2.0-only",
       "seeAlso": [
@@ -1318,6 +1306,18 @@
       "isFsfLibre": true
     },
     {
+      "reference": "https://spdx.org/licenses/CC-BY-NC-4.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-NC-4.0.json",
+      "referenceNumber": 105,
+      "name": "Creative Commons Attribution Non Commercial 4.0 International",
+      "licenseId": "CC-BY-NC-4.0",
+      "seeAlso": [
+        "https://creativecommons.org/licenses/by-nc/4.0/legalcode"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/FreeImage.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/FreeImage.json",
@@ -1342,41 +1342,40 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CC-BY-NC-4.0.html",
+      "reference": "https://spdx.org/licenses/CNRI-Jython.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-NC-4.0.json",
+      "detailsUrl": "https://spdx.org/licenses/CNRI-Jython.json",
       "referenceNumber": 108,
-      "name": "Creative Commons Attribution Non Commercial 4.0 International",
-      "licenseId": "CC-BY-NC-4.0",
+      "name": "CNRI Jython License",
+      "licenseId": "CNRI-Jython",
       "seeAlso": [
-        "https://creativecommons.org/licenses/by-nc/4.0/legalcode"
+        "http://www.jython.org/license.html"
       ],
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Rdisc.html",
+      "reference": "https://spdx.org/licenses/ZPL-1.1.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Rdisc.json",
+      "detailsUrl": "https://spdx.org/licenses/ZPL-1.1.json",
       "referenceNumber": 109,
-      "name": "Rdisc License",
-      "licenseId": "Rdisc",
+      "name": "Zope Public License 1.1",
+      "licenseId": "ZPL-1.1",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/Rdisc_License"
+        "http://old.zope.org/Resources/License/ZPL-1.1"
       ],
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/MPL-2.0-no-copyleft-exception.html",
+      "reference": "https://spdx.org/licenses/Afmparse.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/MPL-2.0-no-copyleft-exception.json",
+      "detailsUrl": "https://spdx.org/licenses/Afmparse.json",
       "referenceNumber": 110,
-      "name": "Mozilla Public License 2.0 (no copyleft exception)",
-      "licenseId": "MPL-2.0-no-copyleft-exception",
+      "name": "Afmparse License",
+      "licenseId": "Afmparse",
       "seeAlso": [
-        "http://www.mozilla.org/MPL/2.0/",
-        "https://opensource.org/licenses/MPL-2.0"
+        "https://fedoraproject.org/wiki/Licensing/Afmparse"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": false
     },
     {
       "reference": "https://spdx.org/licenses/OLDAP-2.1.html",
@@ -1391,14 +1390,14 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/libtiff.html",
+      "reference": "https://spdx.org/licenses/Rdisc.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/libtiff.json",
+      "detailsUrl": "https://spdx.org/licenses/Rdisc.json",
       "referenceNumber": 112,
-      "name": "libtiff License",
-      "licenseId": "libtiff",
+      "name": "Rdisc License",
+      "licenseId": "Rdisc",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/libtiff"
+        "https://fedoraproject.org/wiki/Licensing/Rdisc_License"
       ],
       "isOsiApproved": false
     },
@@ -1429,16 +1428,17 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/AAL.html",
+      "reference": "https://spdx.org/licenses/Sendmail.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/AAL.json",
+      "detailsUrl": "https://spdx.org/licenses/Sendmail.json",
       "referenceNumber": 115,
-      "name": "Attribution Assurance License",
-      "licenseId": "AAL",
+      "name": "Sendmail License",
+      "licenseId": "Sendmail",
       "seeAlso": [
-        "https://opensource.org/licenses/attribution"
+        "http://www.sendmail.com/pdfs/open_source/sendmail_license.pdf",
+        "https://web.archive.org/web/20160322142305/https://www.sendmail.com/pdfs/open_source/sendmail_license.pdf"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": false
     },
     {
       "reference": "https://spdx.org/licenses/CC-BY-2.5.html",
@@ -1453,39 +1453,39 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/APSL-1.2.html",
+      "reference": "https://spdx.org/licenses/AAL.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/APSL-1.2.json",
+      "detailsUrl": "https://spdx.org/licenses/AAL.json",
       "referenceNumber": 117,
-      "name": "Apple Public Source License 1.2",
-      "licenseId": "APSL-1.2",
+      "name": "Attribution Assurance License",
+      "licenseId": "AAL",
       "seeAlso": [
-        "http://www.samurajdata.se/opensource/mirror/licenses/apsl.php"
+        "https://opensource.org/licenses/attribution"
       ],
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/OFL-1.0-no-RFN.html",
+      "reference": "https://spdx.org/licenses/MPL-2.0-no-copyleft-exception.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/OFL-1.0-no-RFN.json",
+      "detailsUrl": "https://spdx.org/licenses/MPL-2.0-no-copyleft-exception.json",
       "referenceNumber": 118,
-      "name": "SIL Open Font License 1.0 with no Reserved Font Name",
-      "licenseId": "OFL-1.0-no-RFN",
+      "name": "Mozilla Public License 2.0 (no copyleft exception)",
+      "licenseId": "MPL-2.0-no-copyleft-exception",
       "seeAlso": [
-        "http://scripts.sil.org/cms/scripts/page.php?item_id\u003dOFL10_web"
+        "http://www.mozilla.org/MPL/2.0/",
+        "https://opensource.org/licenses/MPL-2.0"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/Sendmail.html",
+      "reference": "https://spdx.org/licenses/CC-BY-NC-ND-2.5.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Sendmail.json",
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-NC-ND-2.5.json",
       "referenceNumber": 119,
-      "name": "Sendmail License",
-      "licenseId": "Sendmail",
+      "name": "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic",
+      "licenseId": "CC-BY-NC-ND-2.5",
       "seeAlso": [
-        "http://www.sendmail.com/pdfs/open_source/sendmail_license.pdf",
-        "https://web.archive.org/web/20160322142305/https://www.sendmail.com/pdfs/open_source/sendmail_license.pdf"
+        "https://creativecommons.org/licenses/by-nc-nd/2.5/legalcode"
       ],
       "isOsiApproved": false
     },
@@ -1502,16 +1502,18 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CC-BY-NC-ND-2.5.html",
+      "reference": "https://spdx.org/licenses/LPL-1.02.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-NC-ND-2.5.json",
+      "detailsUrl": "https://spdx.org/licenses/LPL-1.02.json",
       "referenceNumber": 121,
-      "name": "Creative Commons Attribution Non Commercial No Derivatives 2.5 Generic",
-      "licenseId": "CC-BY-NC-ND-2.5",
+      "name": "Lucent Public License v1.02",
+      "licenseId": "LPL-1.02",
       "seeAlso": [
-        "https://creativecommons.org/licenses/by-nc-nd/2.5/legalcode"
+        "http://plan9.bell-labs.com/plan9/license.html",
+        "https://opensource.org/licenses/LPL-1.02"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": true,
+      "isFsfLibre": true
     },
     {
       "reference": "https://spdx.org/licenses/ECL-1.0.html",
@@ -1526,14 +1528,14 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/Afmparse.html",
+      "reference": "https://spdx.org/licenses/OFL-1.0-no-RFN.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Afmparse.json",
+      "detailsUrl": "https://spdx.org/licenses/OFL-1.0-no-RFN.json",
       "referenceNumber": 123,
-      "name": "Afmparse License",
-      "licenseId": "Afmparse",
+      "name": "SIL Open Font License 1.0 with no Reserved Font Name",
+      "licenseId": "OFL-1.0-no-RFN",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/Afmparse"
+        "http://scripts.sil.org/cms/scripts/page.php?item_id\u003dOFL10_web"
       ],
       "isOsiApproved": false
     },
@@ -1588,41 +1590,40 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/GFDL-1.3-or-later.html",
+      "reference": "https://spdx.org/licenses/APSL-1.2.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/GFDL-1.3-or-later.json",
+      "detailsUrl": "https://spdx.org/licenses/APSL-1.2.json",
       "referenceNumber": 128,
-      "name": "GNU Free Documentation License v1.3 or later",
-      "licenseId": "GFDL-1.3-or-later",
+      "name": "Apple Public Source License 1.2",
+      "licenseId": "APSL-1.2",
       "seeAlso": [
-        "https://www.gnu.org/licenses/fdl-1.3.txt"
+        "http://www.samurajdata.se/opensource/mirror/licenses/apsl.php"
       ],
-      "isOsiApproved": false,
-      "isFsfLibre": true
+      "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/LPL-1.02.html",
+      "reference": "https://spdx.org/licenses/GFDL-1.2-no-invariants-only.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/LPL-1.02.json",
+      "detailsUrl": "https://spdx.org/licenses/GFDL-1.2-no-invariants-only.json",
       "referenceNumber": 129,
-      "name": "Lucent Public License v1.02",
-      "licenseId": "LPL-1.02",
+      "name": "GNU Free Documentation License v1.2 only - no invariants",
+      "licenseId": "GFDL-1.2-no-invariants-only",
       "seeAlso": [
-        "http://plan9.bell-labs.com/plan9/license.html",
-        "https://opensource.org/licenses/LPL-1.02"
+        "https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt"
       ],
-      "isOsiApproved": true,
-      "isFsfLibre": true
+      "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/AFL-2.0.html",
+      "reference": "https://spdx.org/licenses/Artistic-2.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/AFL-2.0.json",
+      "detailsUrl": "https://spdx.org/licenses/Artistic-2.0.json",
       "referenceNumber": 130,
-      "name": "Academic Free License v2.0",
-      "licenseId": "AFL-2.0",
+      "name": "Artistic License 2.0",
+      "licenseId": "Artistic-2.0",
       "seeAlso": [
-        "http://wayback.archive.org/web/20060924134533/http://www.opensource.org/licenses/afl-2.0.txt"
+        "http://www.perlfoundation.org/artistic_license_2_0",
+        "https://www.perlfoundation.org/artistic-license-20.html",
+        "https://opensource.org/licenses/artistic-license-2.0"
       ],
       "isOsiApproved": true,
       "isFsfLibre": true
@@ -1642,30 +1643,27 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/Artistic-2.0.html",
+      "reference": "https://spdx.org/licenses/RSCPL.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Artistic-2.0.json",
+      "detailsUrl": "https://spdx.org/licenses/RSCPL.json",
       "referenceNumber": 132,
-      "name": "Artistic License 2.0",
-      "licenseId": "Artistic-2.0",
+      "name": "Ricoh Source Code Public License",
+      "licenseId": "RSCPL",
       "seeAlso": [
-        "http://www.perlfoundation.org/artistic_license_2_0",
-        "https://www.perlfoundation.org/artistic-license-20.html",
-        "https://opensource.org/licenses/artistic-license-2.0"
+        "http://wayback.archive.org/web/20060715140826/http://www.risource.org/RPL/RPL-1.0A.shtml",
+        "https://opensource.org/licenses/RSCPL"
       ],
-      "isOsiApproved": true,
-      "isFsfLibre": true
+      "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/MS-RL.html",
+      "reference": "https://spdx.org/licenses/Sleepycat.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/MS-RL.json",
+      "detailsUrl": "https://spdx.org/licenses/Sleepycat.json",
       "referenceNumber": 133,
-      "name": "Microsoft Reciprocal License",
-      "licenseId": "MS-RL",
+      "name": "Sleepycat License",
+      "licenseId": "Sleepycat",
       "seeAlso": [
-        "http://www.microsoft.com/opensource/licenses.mspx",
-        "https://opensource.org/licenses/MS-RL"
+        "https://opensource.org/licenses/Sleepycat"
       ],
       "isOsiApproved": true,
       "isFsfLibre": true
@@ -1683,14 +1681,14 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/GFDL-1.2-no-invariants-only.html",
+      "reference": "https://spdx.org/licenses/CDLA-Sharing-1.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/GFDL-1.2-no-invariants-only.json",
+      "detailsUrl": "https://spdx.org/licenses/CDLA-Sharing-1.0.json",
       "referenceNumber": 135,
-      "name": "GNU Free Documentation License v1.2 only - no invariants",
-      "licenseId": "GFDL-1.2-no-invariants-only",
+      "name": "Community Data License Agreement Sharing 1.0",
+      "licenseId": "CDLA-Sharing-1.0",
       "seeAlso": [
-        "https://www.gnu.org/licenses/old-licenses/fdl-1.2.txt"
+        "https://cdla.io/sharing-1-0"
       ],
       "isOsiApproved": false
     },
@@ -1709,14 +1707,14 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/HaskellReport.html",
+      "reference": "https://spdx.org/licenses/AGPL-1.0-only.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/HaskellReport.json",
+      "detailsUrl": "https://spdx.org/licenses/AGPL-1.0-only.json",
       "referenceNumber": 137,
-      "name": "Haskell Language Report License",
-      "licenseId": "HaskellReport",
+      "name": "Affero General Public License v1.0 only",
+      "licenseId": "AGPL-1.0-only",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/Haskell_Language_Report_License"
+        "http://www.affero.org/oagpl.html"
       ],
       "isOsiApproved": false
     },
@@ -1733,17 +1731,17 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/RSCPL.html",
+      "reference": "https://spdx.org/licenses/AFL-2.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/RSCPL.json",
+      "detailsUrl": "https://spdx.org/licenses/AFL-2.0.json",
       "referenceNumber": 139,
-      "name": "Ricoh Source Code Public License",
-      "licenseId": "RSCPL",
+      "name": "Academic Free License v2.0",
+      "licenseId": "AFL-2.0",
       "seeAlso": [
-        "http://wayback.archive.org/web/20060715140826/http://www.risource.org/RPL/RPL-1.0A.shtml",
-        "https://opensource.org/licenses/RSCPL"
+        "http://wayback.archive.org/web/20060924134533/http://www.opensource.org/licenses/afl-2.0.txt"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": true,
+      "isFsfLibre": true
     },
     {
       "reference": "https://spdx.org/licenses/Intel.html",
@@ -1810,22 +1808,10 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/HTMLTIDY.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/HTMLTIDY.json",
-      "referenceNumber": 145,
-      "name": "HTML Tidy License",
-      "licenseId": "HTMLTIDY",
-      "seeAlso": [
-        "https://github.com/htacg/tidy-html5/blob/next/README/LICENSE.md"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/Naumen.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Naumen.json",
-      "referenceNumber": 146,
+      "referenceNumber": 145,
       "name": "Naumen Public License",
       "licenseId": "Naumen",
       "seeAlso": [
@@ -1834,6 +1820,18 @@
       "isOsiApproved": true
     },
     {
+      "reference": "https://spdx.org/licenses/HTMLTIDY.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/HTMLTIDY.json",
+      "referenceNumber": 146,
+      "name": "HTML Tidy License",
+      "licenseId": "HTMLTIDY",
+      "seeAlso": [
+        "https://github.com/htacg/tidy-html5/blob/next/README/LICENSE.md"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/OLDAP-2.8.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/OLDAP-2.8.json",
@@ -1859,16 +1857,16 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/LGPL-2.0-or-later.html",
+      "reference": "https://spdx.org/licenses/CC-BY-ND-2.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/LGPL-2.0-or-later.json",
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-ND-2.0.json",
       "referenceNumber": 149,
-      "name": "GNU Library General Public License v2 or later",
-      "licenseId": "LGPL-2.0-or-later",
+      "name": "Creative Commons Attribution No Derivatives 2.0 Generic",
+      "licenseId": "CC-BY-ND-2.0",
       "seeAlso": [
-        "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html"
+        "https://creativecommons.org/licenses/by-nd/2.0/legalcode"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": false
     },
     {
       "reference": "https://spdx.org/licenses/OGTSL.html",
@@ -1884,16 +1882,16 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/CC-BY-ND-2.0.html",
+      "reference": "https://spdx.org/licenses/LGPL-2.0-or-later.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-ND-2.0.json",
+      "detailsUrl": "https://spdx.org/licenses/LGPL-2.0-or-later.json",
       "referenceNumber": 151,
-      "name": "Creative Commons Attribution No Derivatives 2.0 Generic",
-      "licenseId": "CC-BY-ND-2.0",
+      "name": "GNU Library General Public License v2 or later",
+      "licenseId": "LGPL-2.0-or-later",
       "seeAlso": [
-        "https://creativecommons.org/licenses/by-nd/2.0/legalcode"
+        "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": true
     },
     {
       "reference": "https://spdx.org/licenses/Parity-7.0.0.html",
@@ -1908,22 +1906,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CC-BY-NC-SA-4.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-NC-SA-4.0.json",
-      "referenceNumber": 153,
-      "name": "Creative Commons Attribution Non Commercial Share Alike 4.0 International",
-      "licenseId": "CC-BY-NC-SA-4.0",
-      "seeAlso": [
-        "https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/CC-BY-ND-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC-BY-ND-1.0.json",
-      "referenceNumber": 154,
+      "referenceNumber": 153,
       "name": "Creative Commons Attribution No Derivatives 1.0 Generic",
       "licenseId": "CC-BY-ND-1.0",
       "seeAlso": [
@@ -1932,6 +1918,18 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/dvipdfm.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/dvipdfm.json",
+      "referenceNumber": 154,
+      "name": "dvipdfm License",
+      "licenseId": "dvipdfm",
+      "seeAlso": [
+        "https://fedoraproject.org/wiki/Licensing/dvipdfm"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/CNRI-Python.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CNRI-Python.json",
@@ -1944,40 +1942,14 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/dvipdfm.html",
+      "reference": "https://spdx.org/licenses/BSD-4-Clause-UC.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/dvipdfm.json",
+      "detailsUrl": "https://spdx.org/licenses/BSD-4-Clause-UC.json",
       "referenceNumber": 156,
-      "name": "dvipdfm License",
-      "licenseId": "dvipdfm",
+      "name": "BSD-4-Clause (University of California-Specific)",
+      "licenseId": "BSD-4-Clause-UC",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/dvipdfm"
-      ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/LGPL-3.0.html",
-      "isDeprecatedLicenseId": true,
-      "detailsUrl": "https://spdx.org/licenses/LGPL-3.0.json",
-      "referenceNumber": 157,
-      "name": "GNU Lesser General Public License v3.0 only",
-      "licenseId": "LGPL-3.0",
-      "seeAlso": [
-        "https://www.gnu.org/licenses/lgpl-3.0-standalone.html",
-        "https://opensource.org/licenses/LGPL-3.0"
-      ],
-      "isOsiApproved": true,
-      "isFsfLibre": true
-    },
-    {
-      "reference": "https://spdx.org/licenses/OLDAP-2.5.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/OLDAP-2.5.json",
-      "referenceNumber": 158,
-      "name": "Open LDAP Public License v2.5",
-      "licenseId": "OLDAP-2.5",
-      "seeAlso": [
-        "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d6852b9d90022e8593c98205413380536b1b5a7cf"
+        "http://www.freebsd.org/copyright/license.html"
       ],
       "isOsiApproved": false
     },
@@ -1985,7 +1957,7 @@
       "reference": "https://spdx.org/licenses/NLOD-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/NLOD-1.0.json",
-      "referenceNumber": 159,
+      "referenceNumber": 157,
       "name": "Norwegian Licence for Open Government Data (NLOD) 1.0",
       "licenseId": "NLOD-1.0",
       "seeAlso": [
@@ -1994,14 +1966,40 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/SMPPL.html",
+      "reference": "https://spdx.org/licenses/MS-RL.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/SMPPL.json",
-      "referenceNumber": 160,
-      "name": "Secure Messaging Protocol Public License",
-      "licenseId": "SMPPL",
+      "detailsUrl": "https://spdx.org/licenses/MS-RL.json",
+      "referenceNumber": 158,
+      "name": "Microsoft Reciprocal License",
+      "licenseId": "MS-RL",
       "seeAlso": [
-        "https://github.com/dcblake/SMP/blob/master/Documentation/License.txt"
+        "http://www.microsoft.com/opensource/licenses.mspx",
+        "https://opensource.org/licenses/MS-RL"
+      ],
+      "isOsiApproved": true,
+      "isFsfLibre": true
+    },
+    {
+      "reference": "https://spdx.org/licenses/CC-BY-NC-SA-4.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-NC-SA-4.0.json",
+      "referenceNumber": 159,
+      "name": "Creative Commons Attribution Non Commercial Share Alike 4.0 International",
+      "licenseId": "CC-BY-NC-SA-4.0",
+      "seeAlso": [
+        "https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode"
+      ],
+      "isOsiApproved": false
+    },
+    {
+      "reference": "https://spdx.org/licenses/HaskellReport.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/HaskellReport.json",
+      "referenceNumber": 160,
+      "name": "Haskell Language Report License",
+      "licenseId": "HaskellReport",
+      "seeAlso": [
+        "https://fedoraproject.org/wiki/Licensing/Haskell_Language_Report_License"
       ],
       "isOsiApproved": false
     },
@@ -2042,28 +2040,14 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/LGPL-2.1-only.html",
+      "reference": "https://spdx.org/licenses/SMPPL.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/LGPL-2.1-only.json",
+      "detailsUrl": "https://spdx.org/licenses/SMPPL.json",
       "referenceNumber": 164,
-      "name": "GNU Lesser General Public License v2.1 only",
-      "licenseId": "LGPL-2.1-only",
+      "name": "Secure Messaging Protocol Public License",
+      "licenseId": "SMPPL",
       "seeAlso": [
-        "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html",
-        "https://opensource.org/licenses/LGPL-2.1"
-      ],
-      "isOsiApproved": true,
-      "isFsfLibre": true
-    },
-    {
-      "reference": "https://spdx.org/licenses/GL2PS.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/GL2PS.json",
-      "referenceNumber": 165,
-      "name": "GL2PS License",
-      "licenseId": "GL2PS",
-      "seeAlso": [
-        "http://www.geuz.org/gl2ps/COPYING.GL2PS"
+        "https://github.com/dcblake/SMP/blob/master/Documentation/License.txt"
       ],
       "isOsiApproved": false
     },
@@ -2071,7 +2055,7 @@
       "reference": "https://spdx.org/licenses/PHP-3.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/PHP-3.0.json",
-      "referenceNumber": 166,
+      "referenceNumber": 165,
       "name": "PHP License v3.0",
       "licenseId": "PHP-3.0",
       "seeAlso": [
@@ -2081,15 +2065,26 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/NIST-PD-fallback.html",
+      "reference": "https://spdx.org/licenses/GL2PS.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/NIST-PD-fallback.json",
-      "referenceNumber": 167,
-      "name": "NIST Public Domain Notice with license fallback",
-      "licenseId": "NIST-PD-fallback",
+      "detailsUrl": "https://spdx.org/licenses/GL2PS.json",
+      "referenceNumber": 166,
+      "name": "GL2PS License",
+      "licenseId": "GL2PS",
       "seeAlso": [
-        "https://github.com/usnistgov/jsip/blob/59700e6926cbe96c5cdae897d9a7d2656b42abe3/LICENSE",
-        "https://github.com/usnistgov/fipy/blob/86aaa5c2ba2c6f1be19593c5986071cf6568cc34/LICENSE.rst"
+        "http://www.geuz.org/gl2ps/COPYING.GL2PS"
+      ],
+      "isOsiApproved": false
+    },
+    {
+      "reference": "https://spdx.org/licenses/CrystalStacker.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/CrystalStacker.json",
+      "referenceNumber": 167,
+      "name": "CrystalStacker License",
+      "licenseId": "CrystalStacker",
+      "seeAlso": [
+        "https://fedoraproject.org/wiki/Licensing:CrystalStacker?rd\u003dLicensing/CrystalStacker"
       ],
       "isOsiApproved": false
     },
@@ -2106,17 +2101,17 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CPL-1.0.html",
+      "reference": "https://spdx.org/licenses/NIST-PD-fallback.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CPL-1.0.json",
+      "detailsUrl": "https://spdx.org/licenses/NIST-PD-fallback.json",
       "referenceNumber": 169,
-      "name": "Common Public License 1.0",
-      "licenseId": "CPL-1.0",
+      "name": "NIST Public Domain Notice with license fallback",
+      "licenseId": "NIST-PD-fallback",
       "seeAlso": [
-        "https://opensource.org/licenses/CPL-1.0"
+        "https://github.com/usnistgov/jsip/blob/59700e6926cbe96c5cdae897d9a7d2656b42abe3/LICENSE",
+        "https://github.com/usnistgov/fipy/blob/86aaa5c2ba2c6f1be19593c5986071cf6568cc34/LICENSE.rst"
       ],
-      "isOsiApproved": true,
-      "isFsfLibre": true
+      "isOsiApproved": false
     },
     {
       "reference": "https://spdx.org/licenses/OGL-UK-1.0.html",
@@ -2131,29 +2126,31 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CrystalStacker.html",
+      "reference": "https://spdx.org/licenses/CPL-1.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CrystalStacker.json",
+      "detailsUrl": "https://spdx.org/licenses/CPL-1.0.json",
       "referenceNumber": 171,
-      "name": "CrystalStacker License",
-      "licenseId": "CrystalStacker",
+      "name": "Common Public License 1.0",
+      "licenseId": "CPL-1.0",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing:CrystalStacker?rd\u003dLicensing/CrystalStacker"
+        "https://opensource.org/licenses/CPL-1.0"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": true,
+      "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/TCL.html",
+      "reference": "https://spdx.org/licenses/LGPL-2.1-only.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/TCL.json",
+      "detailsUrl": "https://spdx.org/licenses/LGPL-2.1-only.json",
       "referenceNumber": 172,
-      "name": "TCL/TK License",
-      "licenseId": "TCL",
+      "name": "GNU Lesser General Public License v2.1 only",
+      "licenseId": "LGPL-2.1-only",
       "seeAlso": [
-        "http://www.tcl.tk/software/tcltk/license.html",
-        "https://fedoraproject.org/wiki/Licensing/TCL"
+        "https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html",
+        "https://opensource.org/licenses/LGPL-2.1"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": true,
+      "isFsfLibre": true
     },
     {
       "reference": "https://spdx.org/licenses/ZPL-2.0.html",
@@ -2208,22 +2205,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/LGPL-2.0.html",
-      "isDeprecatedLicenseId": true,
-      "detailsUrl": "https://spdx.org/licenses/LGPL-2.0.json",
-      "referenceNumber": 177,
-      "name": "GNU Library General Public License v2 only",
-      "licenseId": "LGPL-2.0",
-      "seeAlso": [
-        "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html"
-      ],
-      "isOsiApproved": true
-    },
-    {
       "reference": "https://spdx.org/licenses/EFL-2.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/EFL-2.0.json",
-      "referenceNumber": 178,
+      "referenceNumber": 177,
       "name": "Eiffel Forum License v2.0",
       "licenseId": "EFL-2.0",
       "seeAlso": [
@@ -2234,6 +2219,18 @@
       "isFsfLibre": true
     },
     {
+      "reference": "https://spdx.org/licenses/Spencer-99.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/Spencer-99.json",
+      "referenceNumber": 178,
+      "name": "Spencer License 99",
+      "licenseId": "Spencer-99",
+      "seeAlso": [
+        "http://www.opensource.apple.com/source/tcl/tcl-5/tcl/generic/regfronts.c"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/CAL-1.0-Combined-Work-Exception.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CAL-1.0-Combined-Work-Exception.json",
@@ -2259,14 +2256,15 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/psutils.html",
+      "reference": "https://spdx.org/licenses/TCL.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/psutils.json",
+      "detailsUrl": "https://spdx.org/licenses/TCL.json",
       "referenceNumber": 181,
-      "name": "psutils License",
-      "licenseId": "psutils",
+      "name": "TCL/TK License",
+      "licenseId": "TCL",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/psutils"
+        "http://www.tcl.tk/software/tcltk/license.html",
+        "https://fedoraproject.org/wiki/Licensing/TCL"
       ],
       "isOsiApproved": false
     },
@@ -2295,10 +2293,22 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/LGPL-2.0.html",
+      "isDeprecatedLicenseId": true,
+      "detailsUrl": "https://spdx.org/licenses/LGPL-2.0.json",
+      "referenceNumber": 184,
+      "name": "GNU Library General Public License v2 only",
+      "licenseId": "LGPL-2.0",
+      "seeAlso": [
+        "https://www.gnu.org/licenses/old-licenses/lgpl-2.0-standalone.html"
+      ],
+      "isOsiApproved": true
+    },
+    {
       "reference": "https://spdx.org/licenses/CERN-OHL-W-2.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CERN-OHL-W-2.0.json",
-      "referenceNumber": 184,
+      "referenceNumber": 185,
       "name": "CERN Open Hardware Licence Version 2 - Weakly Reciprocal",
       "licenseId": "CERN-OHL-W-2.0",
       "seeAlso": [
@@ -2307,34 +2317,10 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/NRL.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/NRL.json",
-      "referenceNumber": 185,
-      "name": "NRL License",
-      "licenseId": "NRL",
-      "seeAlso": [
-        "http://web.mit.edu/network/isakmp/nrllicense.html"
-      ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/CECILL-2.1.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CECILL-2.1.json",
-      "referenceNumber": 186,
-      "name": "CeCILL Free Software License Agreement v2.1",
-      "licenseId": "CECILL-2.1",
-      "seeAlso": [
-        "http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.html"
-      ],
-      "isOsiApproved": true
-    },
-    {
       "reference": "https://spdx.org/licenses/Glide.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Glide.json",
-      "referenceNumber": 187,
+      "referenceNumber": 186,
       "name": "3dfx Glide License",
       "licenseId": "Glide",
       "seeAlso": [
@@ -2343,14 +2329,26 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/SCEA.html",
+      "reference": "https://spdx.org/licenses/mpich2.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/SCEA.json",
-      "referenceNumber": 188,
-      "name": "SCEA Shared Source License",
-      "licenseId": "SCEA",
+      "detailsUrl": "https://spdx.org/licenses/mpich2.json",
+      "referenceNumber": 187,
+      "name": "mpich2 License",
+      "licenseId": "mpich2",
       "seeAlso": [
-        "http://research.scea.com/scea_shared_source_license.html"
+        "https://fedoraproject.org/wiki/Licensing/MIT"
+      ],
+      "isOsiApproved": false
+    },
+    {
+      "reference": "https://spdx.org/licenses/psutils.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/psutils.json",
+      "referenceNumber": 188,
+      "name": "psutils License",
+      "licenseId": "psutils",
+      "seeAlso": [
+        "https://fedoraproject.org/wiki/Licensing/psutils"
       ],
       "isOsiApproved": false
     },
@@ -2394,38 +2392,26 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/SWL.html",
+      "reference": "https://spdx.org/licenses/FreeBSD-DOC.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/SWL.json",
+      "detailsUrl": "https://spdx.org/licenses/FreeBSD-DOC.json",
       "referenceNumber": 192,
-      "name": "Scheme Widget Library (SWL) Software License Agreement",
-      "licenseId": "SWL",
+      "name": "FreeBSD Documentation License",
+      "licenseId": "FreeBSD-DOC",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/SWL"
+        "https://www.freebsd.org/copyright/freebsd-doc-license/"
       ],
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/mpich2.html",
+      "reference": "https://spdx.org/licenses/SCEA.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/mpich2.json",
+      "detailsUrl": "https://spdx.org/licenses/SCEA.json",
       "referenceNumber": 193,
-      "name": "mpich2 License",
-      "licenseId": "mpich2",
+      "name": "SCEA Shared Source License",
+      "licenseId": "SCEA",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/MIT"
-      ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/CERN-OHL-1.1.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CERN-OHL-1.1.json",
-      "referenceNumber": 194,
-      "name": "CERN Open Hardware Licence v1.1",
-      "licenseId": "CERN-OHL-1.1",
-      "seeAlso": [
-        "https://www.ohwr.org/project/licenses/wikis/cern-ohl-v1.1"
+        "http://research.scea.com/scea_shared_source_license.html"
       ],
       "isOsiApproved": false
     },
@@ -2433,7 +2419,7 @@
       "reference": "https://spdx.org/licenses/Latex2e.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Latex2e.json",
-      "referenceNumber": 195,
+      "referenceNumber": 194,
       "name": "Latex2e License",
       "licenseId": "Latex2e",
       "seeAlso": [
@@ -2442,6 +2428,18 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/Artistic-1.0-cl8.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/Artistic-1.0-cl8.json",
+      "referenceNumber": 195,
+      "name": "Artistic License 1.0 w/clause 8",
+      "licenseId": "Artistic-1.0-cl8",
+      "seeAlso": [
+        "https://opensource.org/licenses/Artistic-1.0"
+      ],
+      "isOsiApproved": true
+    },
+    {
       "reference": "https://spdx.org/licenses/SGI-B-1.1.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/SGI-B-1.1.json",
@@ -2454,28 +2452,28 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/FreeBSD-DOC.html",
+      "reference": "https://spdx.org/licenses/NRL.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/FreeBSD-DOC.json",
+      "detailsUrl": "https://spdx.org/licenses/NRL.json",
       "referenceNumber": 197,
-      "name": "FreeBSD Documentation License",
-      "licenseId": "FreeBSD-DOC",
+      "name": "NRL License",
+      "licenseId": "NRL",
       "seeAlso": [
-        "https://www.freebsd.org/copyright/freebsd-doc-license/"
+        "http://web.mit.edu/network/isakmp/nrllicense.html"
       ],
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Artistic-1.0-cl8.html",
+      "reference": "https://spdx.org/licenses/SWL.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Artistic-1.0-cl8.json",
+      "detailsUrl": "https://spdx.org/licenses/SWL.json",
       "referenceNumber": 198,
-      "name": "Artistic License 1.0 w/clause 8",
-      "licenseId": "Artistic-1.0-cl8",
+      "name": "Scheme Widget Library (SWL) Software License Agreement",
+      "licenseId": "SWL",
       "seeAlso": [
-        "https://opensource.org/licenses/Artistic-1.0"
+        "https://fedoraproject.org/wiki/Licensing/SWL"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": false
     },
     {
       "reference": "https://spdx.org/licenses/Zed.html",
@@ -2490,26 +2488,26 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/RHeCos-1.1.html",
+      "reference": "https://spdx.org/licenses/CERN-OHL-1.1.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/RHeCos-1.1.json",
+      "detailsUrl": "https://spdx.org/licenses/CERN-OHL-1.1.json",
       "referenceNumber": 200,
-      "name": "Red Hat eCos Public License v1.1",
-      "licenseId": "RHeCos-1.1",
+      "name": "CERN Open Hardware Licence v1.1",
+      "licenseId": "CERN-OHL-1.1",
       "seeAlso": [
-        "http://ecos.sourceware.org/old-license.html"
+        "https://www.ohwr.org/project/licenses/wikis/cern-ohl-v1.1"
       ],
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/SSPL-1.0.html",
+      "reference": "https://spdx.org/licenses/RHeCos-1.1.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/SSPL-1.0.json",
+      "detailsUrl": "https://spdx.org/licenses/RHeCos-1.1.json",
       "referenceNumber": 201,
-      "name": "Server Side Public License, v 1",
-      "licenseId": "SSPL-1.0",
+      "name": "Red Hat eCos Public License v1.1",
+      "licenseId": "RHeCos-1.1",
       "seeAlso": [
-        "https://www.mongodb.com/licensing/server-side-public-license"
+        "http://ecos.sourceware.org/old-license.html"
       ],
       "isOsiApproved": false
     },
@@ -2526,10 +2524,22 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/SSPL-1.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/SSPL-1.0.json",
+      "referenceNumber": 203,
+      "name": "Server Side Public License, v 1",
+      "licenseId": "SSPL-1.0",
+      "seeAlso": [
+        "https://www.mongodb.com/licensing/server-side-public-license"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/GPL-2.0+.html",
       "isDeprecatedLicenseId": true,
       "detailsUrl": "https://spdx.org/licenses/GPL-2.0+.json",
-      "referenceNumber": 203,
+      "referenceNumber": 204,
       "name": "GNU General Public License v2.0 or later",
       "licenseId": "GPL-2.0+",
       "seeAlso": [
@@ -2542,7 +2552,7 @@
       "reference": "https://spdx.org/licenses/OLDAP-1.4.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/OLDAP-1.4.json",
-      "referenceNumber": 204,
+      "referenceNumber": 205,
       "name": "Open LDAP Public License v1.4",
       "licenseId": "OLDAP-1.4",
       "seeAlso": [
@@ -2554,7 +2564,7 @@
       "reference": "https://spdx.org/licenses/libpng-2.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/libpng-2.0.json",
-      "referenceNumber": 205,
+      "referenceNumber": 206,
       "name": "PNG Reference Library version 2",
       "licenseId": "libpng-2.0",
       "seeAlso": [
@@ -2566,7 +2576,7 @@
       "reference": "https://spdx.org/licenses/CNRI-Python-GPL-Compatible.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CNRI-Python-GPL-Compatible.json",
-      "referenceNumber": 206,
+      "referenceNumber": 207,
       "name": "CNRI Python Open Source GPL Compatible License Agreement",
       "licenseId": "CNRI-Python-GPL-Compatible",
       "seeAlso": [
@@ -2575,18 +2585,6 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CC-BY-2.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-2.0.json",
-      "referenceNumber": 207,
-      "name": "Creative Commons Attribution 2.0 Generic",
-      "licenseId": "CC-BY-2.0",
-      "seeAlso": [
-        "https://creativecommons.org/licenses/by/2.0/legalcode"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/Aladdin.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Aladdin.json",
@@ -2599,17 +2597,16 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Sleepycat.html",
+      "reference": "https://spdx.org/licenses/CECILL-1.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Sleepycat.json",
+      "detailsUrl": "https://spdx.org/licenses/CECILL-1.0.json",
       "referenceNumber": 209,
-      "name": "Sleepycat License",
-      "licenseId": "Sleepycat",
+      "name": "CeCILL Free Software License Agreement v1.0",
+      "licenseId": "CECILL-1.0",
       "seeAlso": [
-        "https://opensource.org/licenses/Sleepycat"
+        "http://www.cecill.info/licences/Licence_CeCILL_V1-fr.html"
       ],
-      "isOsiApproved": true,
-      "isFsfLibre": true
+      "isOsiApproved": false
     },
     {
       "reference": "https://spdx.org/licenses/Ruby.html",
@@ -2625,47 +2622,10 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/ImageMagick.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/ImageMagick.json",
-      "referenceNumber": 211,
-      "name": "ImageMagick License",
-      "licenseId": "ImageMagick",
-      "seeAlso": [
-        "http://www.imagemagick.org/script/license.php"
-      ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/CECILL-1.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CECILL-1.0.json",
-      "referenceNumber": 212,
-      "name": "CeCILL Free Software License Agreement v1.0",
-      "licenseId": "CECILL-1.0",
-      "seeAlso": [
-        "http://www.cecill.info/licences/Licence_CeCILL_V1-fr.html"
-      ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/GFDL-1.1-only.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/GFDL-1.1-only.json",
-      "referenceNumber": 213,
-      "name": "GNU Free Documentation License v1.1 only",
-      "licenseId": "GFDL-1.1-only",
-      "seeAlso": [
-        "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt"
-      ],
-      "isOsiApproved": false,
-      "isFsfLibre": true
-    },
-    {
       "reference": "https://spdx.org/licenses/NPL-1.1.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/NPL-1.1.json",
-      "referenceNumber": 214,
+      "referenceNumber": 211,
       "name": "Netscape Public License v1.1",
       "licenseId": "NPL-1.1",
       "seeAlso": [
@@ -2675,14 +2635,14 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/TU-Berlin-2.0.html",
+      "reference": "https://spdx.org/licenses/ImageMagick.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/TU-Berlin-2.0.json",
-      "referenceNumber": 215,
-      "name": "Technische Universitaet Berlin License 2.0",
-      "licenseId": "TU-Berlin-2.0",
+      "detailsUrl": "https://spdx.org/licenses/ImageMagick.json",
+      "referenceNumber": 212,
+      "name": "ImageMagick License",
+      "licenseId": "ImageMagick",
       "seeAlso": [
-        "https://github.com/CorsixTH/deps/blob/fd339a9f526d1d9c9f01ccf39e438a015da50035/licences/libgsm.txt"
+        "http://www.imagemagick.org/script/license.php"
       ],
       "isOsiApproved": false
     },
@@ -2690,7 +2650,7 @@
       "reference": "https://spdx.org/licenses/Cube.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Cube.json",
-      "referenceNumber": 216,
+      "referenceNumber": 213,
       "name": "Cube License",
       "licenseId": "Cube",
       "seeAlso": [
@@ -2699,6 +2659,45 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/GFDL-1.1-only.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/GFDL-1.1-only.json",
+      "referenceNumber": 214,
+      "name": "GNU Free Documentation License v1.1 only",
+      "licenseId": "GFDL-1.1-only",
+      "seeAlso": [
+        "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt"
+      ],
+      "isOsiApproved": false,
+      "isFsfLibre": true
+    },
+    {
+      "reference": "https://spdx.org/licenses/CC-BY-2.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-2.0.json",
+      "referenceNumber": 215,
+      "name": "Creative Commons Attribution 2.0 Generic",
+      "licenseId": "CC-BY-2.0",
+      "seeAlso": [
+        "https://creativecommons.org/licenses/by/2.0/legalcode"
+      ],
+      "isOsiApproved": false
+    },
+    {
+      "reference": "https://spdx.org/licenses/AFL-1.2.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/AFL-1.2.json",
+      "referenceNumber": 216,
+      "name": "Academic Free License v1.2",
+      "licenseId": "AFL-1.2",
+      "seeAlso": [
+        "http://opensource.linux-mirror.org/licenses/afl-1.2.txt",
+        "http://wayback.archive.org/web/20021204204652/http://www.opensource.org/licenses/academic.php"
+      ],
+      "isOsiApproved": true,
+      "isFsfLibre": true
+    },
+    {
       "reference": "https://spdx.org/licenses/CC-BY-SA-2.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC-BY-SA-2.0.json",
@@ -2711,22 +2710,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/MIT-advertising.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/MIT-advertising.json",
-      "referenceNumber": 218,
-      "name": "Enlightenment License (e16)",
-      "licenseId": "MIT-advertising",
-      "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/MIT_With_Advertising"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/CECILL-2.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CECILL-2.0.json",
-      "referenceNumber": 219,
+      "referenceNumber": 218,
       "name": "CeCILL Free Software License Agreement v2.0",
       "licenseId": "CECILL-2.0",
       "seeAlso": [
@@ -2736,6 +2723,18 @@
       "isFsfLibre": true
     },
     {
+      "reference": "https://spdx.org/licenses/MIT-advertising.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/MIT-advertising.json",
+      "referenceNumber": 219,
+      "name": "Enlightenment License (e16)",
+      "licenseId": "MIT-advertising",
+      "seeAlso": [
+        "https://fedoraproject.org/wiki/Licensing/MIT_With_Advertising"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/CC-BY-NC-SA-2.5.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC-BY-NC-SA-2.5.json",
@@ -2760,15 +2759,15 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/AFL-1.2.html",
+      "reference": "https://spdx.org/licenses/OSL-3.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/AFL-1.2.json",
+      "detailsUrl": "https://spdx.org/licenses/OSL-3.0.json",
       "referenceNumber": 222,
-      "name": "Academic Free License v1.2",
-      "licenseId": "AFL-1.2",
+      "name": "Open Software License 3.0",
+      "licenseId": "OSL-3.0",
       "seeAlso": [
-        "http://opensource.linux-mirror.org/licenses/afl-1.2.txt",
-        "http://wayback.archive.org/web/20021204204652/http://www.opensource.org/licenses/academic.php"
+        "https://web.archive.org/web/20120101081418/http://rosenlaw.com:80/OSL3.0.htm",
+        "https://opensource.org/licenses/OSL-3.0"
       ],
       "isOsiApproved": true,
       "isFsfLibre": true
@@ -2811,24 +2810,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/OSL-3.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/OSL-3.0.json",
-      "referenceNumber": 226,
-      "name": "Open Software License 3.0",
-      "licenseId": "OSL-3.0",
-      "seeAlso": [
-        "https://web.archive.org/web/20120101081418/http://rosenlaw.com:80/OSL3.0.htm",
-        "https://opensource.org/licenses/OSL-3.0"
-      ],
-      "isOsiApproved": true,
-      "isFsfLibre": true
-    },
-    {
       "reference": "https://spdx.org/licenses/EUDatagrid.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/EUDatagrid.json",
-      "referenceNumber": 227,
+      "referenceNumber": 226,
       "name": "EU DataGrid Software License",
       "licenseId": "EUDatagrid",
       "seeAlso": [
@@ -2842,7 +2827,7 @@
       "reference": "https://spdx.org/licenses/MTLL.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/MTLL.json",
-      "referenceNumber": 228,
+      "referenceNumber": 227,
       "name": "Matrix Template Library License",
       "licenseId": "MTLL",
       "seeAlso": [
@@ -2854,7 +2839,7 @@
       "reference": "https://spdx.org/licenses/GFDL-1.2-invariants-only.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/GFDL-1.2-invariants-only.json",
-      "referenceNumber": 229,
+      "referenceNumber": 228,
       "name": "GNU Free Documentation License v1.2 only - invariants",
       "licenseId": "GFDL-1.2-invariants-only",
       "seeAlso": [
@@ -2863,6 +2848,18 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/GFDL-1.3-no-invariants-or-later.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/GFDL-1.3-no-invariants-or-later.json",
+      "referenceNumber": 229,
+      "name": "GNU Free Documentation License v1.3 or later - no invariants",
+      "licenseId": "GFDL-1.3-no-invariants-or-later",
+      "seeAlso": [
+        "https://www.gnu.org/licenses/fdl-1.3.txt"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/curl.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/curl.json",
@@ -2875,14 +2872,14 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CC-BY-3.0.html",
+      "reference": "https://spdx.org/licenses/LAL-1.3.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-3.0.json",
+      "detailsUrl": "https://spdx.org/licenses/LAL-1.3.json",
       "referenceNumber": 231,
-      "name": "Creative Commons Attribution 3.0 Unported",
-      "licenseId": "CC-BY-3.0",
+      "name": "Licence Art Libre 1.3",
+      "licenseId": "LAL-1.3",
       "seeAlso": [
-        "https://creativecommons.org/licenses/by/3.0/legalcode"
+        "https://artlibre.org/"
       ],
       "isOsiApproved": false
     },
@@ -2899,22 +2896,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/LAL-1.3.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/LAL-1.3.json",
-      "referenceNumber": 233,
-      "name": "Licence Art Libre 1.3",
-      "licenseId": "LAL-1.3",
-      "seeAlso": [
-        "https://artlibre.org/"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/CERN-OHL-1.2.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CERN-OHL-1.2.json",
-      "referenceNumber": 234,
+      "referenceNumber": 233,
       "name": "CERN Open Hardware Licence v1.2",
       "licenseId": "CERN-OHL-1.2",
       "seeAlso": [
@@ -2923,6 +2908,18 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/TOSL.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/TOSL.json",
+      "referenceNumber": 234,
+      "name": "Trusster Open Source License",
+      "licenseId": "TOSL",
+      "seeAlso": [
+        "https://fedoraproject.org/wiki/Licensing/TOSL"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/GPL-3.0-with-autoconf-exception.html",
       "isDeprecatedLicenseId": true,
       "detailsUrl": "https://spdx.org/licenses/GPL-3.0-with-autoconf-exception.json",
@@ -2935,26 +2932,14 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/TOSL.html",
+      "reference": "https://spdx.org/licenses/CC-BY-3.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/TOSL.json",
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-3.0.json",
       "referenceNumber": 236,
-      "name": "Trusster Open Source License",
-      "licenseId": "TOSL",
+      "name": "Creative Commons Attribution 3.0 Unported",
+      "licenseId": "CC-BY-3.0",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/TOSL"
-      ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/GFDL-1.3-no-invariants-only.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/GFDL-1.3-no-invariants-only.json",
-      "referenceNumber": 237,
-      "name": "GNU Free Documentation License v1.3 only - no invariants",
-      "licenseId": "GFDL-1.3-no-invariants-only",
-      "seeAlso": [
-        "https://www.gnu.org/licenses/fdl-1.3.txt"
+        "https://creativecommons.org/licenses/by/3.0/legalcode"
       ],
       "isOsiApproved": false
     },
@@ -2962,7 +2947,7 @@
       "reference": "https://spdx.org/licenses/Qhull.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Qhull.json",
-      "referenceNumber": 238,
+      "referenceNumber": 237,
       "name": "Qhull License",
       "licenseId": "Qhull",
       "seeAlso": [
@@ -2971,6 +2956,18 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/GFDL-1.3-no-invariants-only.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/GFDL-1.3-no-invariants-only.json",
+      "referenceNumber": 238,
+      "name": "GNU Free Documentation License v1.3 only - no invariants",
+      "licenseId": "GFDL-1.3-no-invariants-only",
+      "seeAlso": [
+        "https://www.gnu.org/licenses/fdl-1.3.txt"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/TORQUE-1.1.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/TORQUE-1.1.json",
@@ -3073,28 +3070,29 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/CDLA-Sharing-1.0.html",
+      "reference": "https://spdx.org/licenses/Xerox.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CDLA-Sharing-1.0.json",
+      "detailsUrl": "https://spdx.org/licenses/Xerox.json",
       "referenceNumber": 247,
-      "name": "Community Data License Agreement Sharing 1.0",
-      "licenseId": "CDLA-Sharing-1.0",
+      "name": "Xerox License",
+      "licenseId": "Xerox",
       "seeAlso": [
-        "https://cdla.io/sharing-1-0"
+        "https://fedoraproject.org/wiki/Licensing/Xerox"
       ],
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/AGPL-1.0-only.html",
+      "reference": "https://spdx.org/licenses/CDDL-1.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/AGPL-1.0-only.json",
+      "detailsUrl": "https://spdx.org/licenses/CDDL-1.0.json",
       "referenceNumber": 248,
-      "name": "Affero General Public License v1.0 only",
-      "licenseId": "AGPL-1.0-only",
+      "name": "Common Development and Distribution License 1.0",
+      "licenseId": "CDDL-1.0",
       "seeAlso": [
-        "http://www.affero.org/oagpl.html"
+        "https://opensource.org/licenses/cddl1"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": true,
+      "isFsfLibre": true
     },
     {
       "reference": "https://spdx.org/licenses/GFDL-1.3-invariants-only.html",
@@ -3109,14 +3107,15 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/BSD-4-Clause-UC.html",
+      "reference": "https://spdx.org/licenses/etalab-2.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/BSD-4-Clause-UC.json",
+      "detailsUrl": "https://spdx.org/licenses/etalab-2.0.json",
       "referenceNumber": 250,
-      "name": "BSD-4-Clause (University of California-Specific)",
-      "licenseId": "BSD-4-Clause-UC",
+      "name": "Etalab Open License 2.0",
+      "licenseId": "etalab-2.0",
       "seeAlso": [
-        "http://www.freebsd.org/copyright/license.html"
+        "https://github.com/DISIC/politique-de-contribution-open-source/blob/master/LICENSE.pdf",
+        "https://raw.githubusercontent.com/DISIC/politique-de-contribution-open-source/master/LICENSE"
       ],
       "isOsiApproved": false
     },
@@ -3146,14 +3145,14 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Spencer-99.html",
+      "reference": "https://spdx.org/licenses/LPPL-1.1.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Spencer-99.json",
+      "detailsUrl": "https://spdx.org/licenses/LPPL-1.1.json",
       "referenceNumber": 253,
-      "name": "Spencer License 99",
-      "licenseId": "Spencer-99",
+      "name": "LaTeX Project Public License v1.1",
+      "licenseId": "LPPL-1.1",
       "seeAlso": [
-        "http://www.opensource.apple.com/source/tcl/tcl-5/tcl/generic/regfronts.c"
+        "http://www.latex-project.org/lppl/lppl-1-1.txt"
       ],
       "isOsiApproved": false
     },
@@ -3170,53 +3169,39 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/GFDL-1.3-no-invariants-or-later.html",
+      "reference": "https://spdx.org/licenses/TU-Berlin-2.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/GFDL-1.3-no-invariants-or-later.json",
+      "detailsUrl": "https://spdx.org/licenses/TU-Berlin-2.0.json",
       "referenceNumber": 255,
-      "name": "GNU Free Documentation License v1.3 or later - no invariants",
-      "licenseId": "GFDL-1.3-no-invariants-or-later",
+      "name": "Technische Universitaet Berlin License 2.0",
+      "licenseId": "TU-Berlin-2.0",
+      "seeAlso": [
+        "https://github.com/CorsixTH/deps/blob/fd339a9f526d1d9c9f01ccf39e438a015da50035/licences/libgsm.txt"
+      ],
+      "isOsiApproved": false
+    },
+    {
+      "reference": "https://spdx.org/licenses/GFDL-1.3.html",
+      "isDeprecatedLicenseId": true,
+      "detailsUrl": "https://spdx.org/licenses/GFDL-1.3.json",
+      "referenceNumber": 256,
+      "name": "GNU Free Documentation License v1.3",
+      "licenseId": "GFDL-1.3",
       "seeAlso": [
         "https://www.gnu.org/licenses/fdl-1.3.txt"
       ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/LPPL-1.1.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/LPPL-1.1.json",
-      "referenceNumber": 256,
-      "name": "LaTeX Project Public License v1.1",
-      "licenseId": "LPPL-1.1",
-      "seeAlso": [
-        "http://www.latex-project.org/lppl/lppl-1-1.txt"
-      ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/CDDL-1.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CDDL-1.0.json",
-      "referenceNumber": 257,
-      "name": "Common Development and Distribution License 1.0",
-      "licenseId": "CDDL-1.0",
-      "seeAlso": [
-        "https://opensource.org/licenses/cddl1"
-      ],
-      "isOsiApproved": true,
+      "isOsiApproved": false,
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/FTL.html",
+      "reference": "https://spdx.org/licenses/GFDL-1.3-or-later.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/FTL.json",
-      "referenceNumber": 258,
-      "name": "Freetype Project License",
-      "licenseId": "FTL",
+      "detailsUrl": "https://spdx.org/licenses/GFDL-1.3-or-later.json",
+      "referenceNumber": 257,
+      "name": "GNU Free Documentation License v1.3 or later",
+      "licenseId": "GFDL-1.3-or-later",
       "seeAlso": [
-        "http://freetype.fis.uniroma2.it/FTL.TXT",
-        "http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/FTL.TXT",
-        "http://gitlab.freedesktop.org/freetype/freetype/-/raw/master/docs/FTL.TXT"
+        "https://www.gnu.org/licenses/fdl-1.3.txt"
       ],
       "isOsiApproved": false,
       "isFsfLibre": true
@@ -3225,7 +3210,7 @@
       "reference": "https://spdx.org/licenses/LAL-1.2.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/LAL-1.2.json",
-      "referenceNumber": 259,
+      "referenceNumber": 258,
       "name": "Licence Art Libre 1.2",
       "licenseId": "LAL-1.2",
       "seeAlso": [
@@ -3237,7 +3222,7 @@
       "reference": "https://spdx.org/licenses/ICU.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/ICU.json",
-      "referenceNumber": 260,
+      "referenceNumber": 259,
       "name": "ICU License",
       "licenseId": "ICU",
       "seeAlso": [
@@ -3246,6 +3231,21 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/FTL.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/FTL.json",
+      "referenceNumber": 260,
+      "name": "Freetype Project License",
+      "licenseId": "FTL",
+      "seeAlso": [
+        "http://freetype.fis.uniroma2.it/FTL.TXT",
+        "http://git.savannah.gnu.org/cgit/freetype/freetype2.git/tree/docs/FTL.TXT",
+        "http://gitlab.freedesktop.org/freetype/freetype/-/raw/master/docs/FTL.TXT"
+      ],
+      "isOsiApproved": false,
+      "isFsfLibre": true
+    },
+    {
       "reference": "https://spdx.org/licenses/MirOS.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/MirOS.json",
@@ -3282,16 +3282,17 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Xerox.html",
+      "reference": "https://spdx.org/licenses/OSET-PL-2.1.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Xerox.json",
+      "detailsUrl": "https://spdx.org/licenses/OSET-PL-2.1.json",
       "referenceNumber": 264,
-      "name": "Xerox License",
-      "licenseId": "Xerox",
+      "name": "OSET Public License version 2.1",
+      "licenseId": "OSET-PL-2.1",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/Xerox"
+        "http://www.osetfoundation.org/public-license",
+        "https://opensource.org/licenses/OPL-2.1"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": true
     },
     {
       "reference": "https://spdx.org/licenses/CC-BY-NC-ND-2.0.html",
@@ -3306,23 +3307,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/OSET-PL-2.1.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/OSET-PL-2.1.json",
-      "referenceNumber": 266,
-      "name": "OSET Public License version 2.1",
-      "licenseId": "OSET-PL-2.1",
-      "seeAlso": [
-        "http://www.osetfoundation.org/public-license",
-        "https://opensource.org/licenses/OPL-2.1"
-      ],
-      "isOsiApproved": true
-    },
-    {
       "reference": "https://spdx.org/licenses/SISSL-1.2.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/SISSL-1.2.json",
-      "referenceNumber": 267,
+      "referenceNumber": 266,
       "name": "Sun Industry Standards Source License v1.2",
       "licenseId": "SISSL-1.2",
       "seeAlso": [
@@ -3331,14 +3319,26 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Adobe-Glyph.html",
+      "reference": "https://spdx.org/licenses/Wsuipa.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Adobe-Glyph.json",
-      "referenceNumber": 268,
-      "name": "Adobe Glyph List License",
-      "licenseId": "Adobe-Glyph",
+      "detailsUrl": "https://spdx.org/licenses/Wsuipa.json",
+      "referenceNumber": 267,
+      "name": "Wsuipa License",
+      "licenseId": "Wsuipa",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/MIT#AdobeGlyph"
+        "https://fedoraproject.org/wiki/Licensing/Wsuipa"
+      ],
+      "isOsiApproved": false
+    },
+    {
+      "reference": "https://spdx.org/licenses/Zimbra-1.4.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/Zimbra-1.4.json",
+      "referenceNumber": 268,
+      "name": "Zimbra Public License v1.4",
+      "licenseId": "Zimbra-1.4",
+      "seeAlso": [
+        "http://www.zimbra.com/legal/zimbra-public-license-1-4"
       ],
       "isOsiApproved": false
     },
@@ -3355,27 +3355,28 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/etalab-2.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/etalab-2.0.json",
+      "reference": "https://spdx.org/licenses/LGPL-3.0.html",
+      "isDeprecatedLicenseId": true,
+      "detailsUrl": "https://spdx.org/licenses/LGPL-3.0.json",
       "referenceNumber": 270,
-      "name": "Etalab Open License 2.0",
-      "licenseId": "etalab-2.0",
+      "name": "GNU Lesser General Public License v3.0 only",
+      "licenseId": "LGPL-3.0",
       "seeAlso": [
-        "https://github.com/DISIC/politique-de-contribution-open-source/blob/master/LICENSE.pdf",
-        "https://raw.githubusercontent.com/DISIC/politique-de-contribution-open-source/master/LICENSE"
+        "https://www.gnu.org/licenses/lgpl-3.0-standalone.html",
+        "https://opensource.org/licenses/LGPL-3.0"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": true,
+      "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/Wsuipa.html",
+      "reference": "https://spdx.org/licenses/OLDAP-2.5.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Wsuipa.json",
+      "detailsUrl": "https://spdx.org/licenses/OLDAP-2.5.json",
       "referenceNumber": 271,
-      "name": "Wsuipa License",
-      "licenseId": "Wsuipa",
+      "name": "Open LDAP Public License v2.5",
+      "licenseId": "OLDAP-2.5",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/Wsuipa"
+        "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d6852b9d90022e8593c98205413380536b1b5a7cf"
       ],
       "isOsiApproved": false
     },
@@ -3416,10 +3417,22 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/Adobe-Glyph.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/Adobe-Glyph.json",
+      "referenceNumber": 275,
+      "name": "Adobe Glyph List License",
+      "licenseId": "Adobe-Glyph",
+      "seeAlso": [
+        "https://fedoraproject.org/wiki/Licensing/MIT#AdobeGlyph"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/0BSD.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/0BSD.json",
-      "referenceNumber": 275,
+      "referenceNumber": 276,
       "name": "BSD Zero Clause License",
       "licenseId": "0BSD",
       "seeAlso": [
@@ -3431,7 +3444,7 @@
       "reference": "https://spdx.org/licenses/W3C-19980720.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/W3C-19980720.json",
-      "referenceNumber": 276,
+      "referenceNumber": 277,
       "name": "W3C Software Notice and License (1998-07-20)",
       "licenseId": "W3C-19980720",
       "seeAlso": [
@@ -3440,18 +3453,6 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CC-BY-NC-SA-3.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-NC-SA-3.0.json",
-      "referenceNumber": 277,
-      "name": "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported",
-      "licenseId": "CC-BY-NC-SA-3.0",
-      "seeAlso": [
-        "https://creativecommons.org/licenses/by-nc-sa/3.0/legalcode"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/FSFUL.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/FSFUL.json",
@@ -3464,26 +3465,14 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/PolyForm-Noncommercial-1.0.0.html",
+      "reference": "https://spdx.org/licenses/CC-BY-NC-SA-3.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/PolyForm-Noncommercial-1.0.0.json",
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-NC-SA-3.0.json",
       "referenceNumber": 279,
-      "name": "PolyForm Noncommercial License 1.0.0",
-      "licenseId": "PolyForm-Noncommercial-1.0.0",
+      "name": "Creative Commons Attribution Non Commercial Share Alike 3.0 Unported",
+      "licenseId": "CC-BY-NC-SA-3.0",
       "seeAlso": [
-        "https://polyformproject.org/licenses/noncommercial/1.0.0"
-      ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/Zimbra-1.4.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Zimbra-1.4.json",
-      "referenceNumber": 280,
-      "name": "Zimbra Public License v1.4",
-      "licenseId": "Zimbra-1.4",
-      "seeAlso": [
-        "http://www.zimbra.com/legal/zimbra-public-license-1-4"
+        "https://creativecommons.org/licenses/by-nc-sa/3.0/legalcode"
       ],
       "isOsiApproved": false
     },
@@ -3491,7 +3480,7 @@
       "reference": "https://spdx.org/licenses/DOC.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/DOC.json",
-      "referenceNumber": 281,
+      "referenceNumber": 280,
       "name": "DOC License",
       "licenseId": "DOC",
       "seeAlso": [
@@ -3504,7 +3493,7 @@
       "reference": "https://spdx.org/licenses/TMate.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/TMate.json",
-      "referenceNumber": 282,
+      "referenceNumber": 281,
       "name": "TMate Open Source License",
       "licenseId": "TMate",
       "seeAlso": [
@@ -3513,6 +3502,21 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/MIT-open-group.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/MIT-open-group.json",
+      "referenceNumber": 282,
+      "name": "MIT Open Group variant",
+      "licenseId": "MIT-open-group",
+      "seeAlso": [
+        "https://gitlab.freedesktop.org/xorg/app/iceauth/-/blob/master/COPYING",
+        "https://gitlab.freedesktop.org/xorg/app/xvinfo/-/blob/master/COPYING",
+        "https://gitlab.freedesktop.org/xorg/app/xsetroot/-/blob/master/COPYING",
+        "https://gitlab.freedesktop.org/xorg/app/xauth/-/blob/master/COPYING"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/AMDPLPA.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/AMDPLPA.json",
@@ -3525,34 +3529,32 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/MIT-open-group.html",
+      "reference": "https://spdx.org/licenses/Condor-1.1.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/MIT-open-group.json",
+      "detailsUrl": "https://spdx.org/licenses/Condor-1.1.json",
       "referenceNumber": 284,
-      "name": "MIT Open Group variant",
-      "licenseId": "MIT-open-group",
+      "name": "Condor Public License v1.1",
+      "licenseId": "Condor-1.1",
       "seeAlso": [
-        "https://gitlab.freedesktop.org/xorg/app/iceauth/-/blob/master/COPYING",
-        "https://gitlab.freedesktop.org/xorg/app/xvinfo/-/blob/master/COPYING",
-        "https://gitlab.freedesktop.org/xorg/app/xsetroot/-/blob/master/COPYING",
-        "https://gitlab.freedesktop.org/xorg/app/xauth/-/blob/master/COPYING"
-      ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/CC-BY-4.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-4.0.json",
-      "referenceNumber": 285,
-      "name": "Creative Commons Attribution 4.0 International",
-      "licenseId": "CC-BY-4.0",
-      "seeAlso": [
-        "https://creativecommons.org/licenses/by/4.0/legalcode"
+        "http://research.cs.wisc.edu/condor/license.html#condor",
+        "http://web.archive.org/web/20111123062036/http://research.cs.wisc.edu/condor/license.html#condor"
       ],
       "isOsiApproved": false,
       "isFsfLibre": true
     },
     {
+      "reference": "https://spdx.org/licenses/PolyForm-Noncommercial-1.0.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/PolyForm-Noncommercial-1.0.0.json",
+      "referenceNumber": 285,
+      "name": "PolyForm Noncommercial License 1.0.0",
+      "licenseId": "PolyForm-Noncommercial-1.0.0",
+      "seeAlso": [
+        "https://polyformproject.org/licenses/noncommercial/1.0.0"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/BSD-3-Clause-No-Military-License.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/BSD-3-Clause-No-Military-License.json",
@@ -3566,15 +3568,14 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Condor-1.1.html",
+      "reference": "https://spdx.org/licenses/CC-BY-4.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Condor-1.1.json",
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-4.0.json",
       "referenceNumber": 287,
-      "name": "Condor Public License v1.1",
-      "licenseId": "Condor-1.1",
+      "name": "Creative Commons Attribution 4.0 International",
+      "licenseId": "CC-BY-4.0",
       "seeAlso": [
-        "http://research.cs.wisc.edu/condor/license.html#condor",
-        "http://web.archive.org/web/20111123062036/http://research.cs.wisc.edu/condor/license.html#condor"
+        "https://creativecommons.org/licenses/by/4.0/legalcode"
       ],
       "isOsiApproved": false,
       "isFsfLibre": true
@@ -3641,23 +3642,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/GFDL-1.3.html",
-      "isDeprecatedLicenseId": true,
-      "detailsUrl": "https://spdx.org/licenses/GFDL-1.3.json",
-      "referenceNumber": 293,
-      "name": "GNU Free Documentation License v1.3",
-      "licenseId": "GFDL-1.3",
-      "seeAlso": [
-        "https://www.gnu.org/licenses/fdl-1.3.txt"
-      ],
-      "isOsiApproved": false,
-      "isFsfLibre": true
-    },
-    {
       "reference": "https://spdx.org/licenses/GPL-3.0-or-later.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/GPL-3.0-or-later.json",
-      "referenceNumber": 294,
+      "referenceNumber": 293,
       "name": "GNU General Public License v3.0 or later",
       "licenseId": "GPL-3.0-or-later",
       "seeAlso": [
@@ -3671,7 +3659,7 @@
       "reference": "https://spdx.org/licenses/CDLA-Permissive-2.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CDLA-Permissive-2.0.json",
-      "referenceNumber": 295,
+      "referenceNumber": 294,
       "name": "Community Data License Agreement Permissive 2.0",
       "licenseId": "CDLA-Permissive-2.0",
       "seeAlso": [
@@ -3683,7 +3671,7 @@
       "reference": "https://spdx.org/licenses/CC-BY-ND-3.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC-BY-ND-3.0.json",
-      "referenceNumber": 296,
+      "referenceNumber": 295,
       "name": "Creative Commons Attribution No Derivatives 3.0 Unported",
       "licenseId": "CC-BY-ND-3.0",
       "seeAlso": [
@@ -3695,7 +3683,7 @@
       "reference": "https://spdx.org/licenses/C-UDA-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/C-UDA-1.0.json",
-      "referenceNumber": 297,
+      "referenceNumber": 296,
       "name": "Computational Use of Data Agreement v1.0",
       "licenseId": "C-UDA-1.0",
       "seeAlso": [
@@ -3705,6 +3693,18 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/Barr.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/Barr.json",
+      "referenceNumber": 297,
+      "name": "Barr License",
+      "licenseId": "Barr",
+      "seeAlso": [
+        "https://fedoraproject.org/wiki/Licensing/Barr"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/Vim.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Vim.json",
@@ -3730,34 +3730,23 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Barr.html",
+      "reference": "https://spdx.org/licenses/BitTorrent-1.1.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Barr.json",
+      "detailsUrl": "https://spdx.org/licenses/BitTorrent-1.1.json",
       "referenceNumber": 300,
-      "name": "Barr License",
-      "licenseId": "Barr",
+      "name": "BitTorrent Open Source License v1.1",
+      "licenseId": "BitTorrent-1.1",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/Barr"
+        "http://directory.fsf.org/wiki/License:BitTorrentOSL1.1"
       ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/ADSL.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/ADSL.json",
-      "referenceNumber": 301,
-      "name": "Amazon Digital Services License",
-      "licenseId": "ADSL",
-      "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/AmazonDigitalServicesLicense"
-      ],
-      "isOsiApproved": false
+      "isOsiApproved": false,
+      "isFsfLibre": true
     },
     {
       "reference": "https://spdx.org/licenses/CDL-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CDL-1.0.json",
-      "referenceNumber": 302,
+      "referenceNumber": 301,
       "name": "Common Documentation License 1.0",
       "licenseId": "CDL-1.0",
       "seeAlso": [
@@ -3771,7 +3760,7 @@
       "reference": "https://spdx.org/licenses/CC-BY-SA-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC-BY-SA-1.0.json",
-      "referenceNumber": 303,
+      "referenceNumber": 302,
       "name": "Creative Commons Attribution Share Alike 1.0 Generic",
       "licenseId": "CC-BY-SA-1.0",
       "seeAlso": [
@@ -3780,10 +3769,35 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/ADSL.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/ADSL.json",
+      "referenceNumber": 303,
+      "name": "Amazon Digital Services License",
+      "licenseId": "ADSL",
+      "seeAlso": [
+        "https://fedoraproject.org/wiki/Licensing/AmazonDigitalServicesLicense"
+      ],
+      "isOsiApproved": false
+    },
+    {
+      "reference": "https://spdx.org/licenses/PostgreSQL.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/PostgreSQL.json",
+      "referenceNumber": 304,
+      "name": "PostgreSQL License",
+      "licenseId": "PostgreSQL",
+      "seeAlso": [
+        "http://www.postgresql.org/about/licence",
+        "https://opensource.org/licenses/PostgreSQL"
+      ],
+      "isOsiApproved": true
+    },
+    {
       "reference": "https://spdx.org/licenses/OFL-1.1.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/OFL-1.1.json",
-      "referenceNumber": 304,
+      "referenceNumber": 305,
       "name": "SIL Open Font License 1.1",
       "licenseId": "OFL-1.1",
       "seeAlso": [
@@ -3794,18 +3808,6 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/GLWTPL.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/GLWTPL.json",
-      "referenceNumber": 305,
-      "name": "Good Luck With That Public License",
-      "licenseId": "GLWTPL",
-      "seeAlso": [
-        "https://github.com/me-shaon/GLWTPL/commit/da5f6bc734095efbacb442c0b31e33a65b9d6e85"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/NPL-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/NPL-1.0.json",
@@ -3892,17 +3894,16 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/PostgreSQL.html",
+      "reference": "https://spdx.org/licenses/GLWTPL.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/PostgreSQL.json",
+      "detailsUrl": "https://spdx.org/licenses/GLWTPL.json",
       "referenceNumber": 313,
-      "name": "PostgreSQL License",
-      "licenseId": "PostgreSQL",
+      "name": "Good Luck With That Public License",
+      "licenseId": "GLWTPL",
       "seeAlso": [
-        "http://www.postgresql.org/about/licence",
-        "https://opensource.org/licenses/PostgreSQL"
+        "https://github.com/me-shaon/GLWTPL/commit/da5f6bc734095efbacb442c0b31e33a65b9d6e85"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": false
     },
     {
       "reference": "https://spdx.org/licenses/LGPL-3.0-only.html",
@@ -3993,36 +3994,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/AGPL-1.0-or-later.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/AGPL-1.0-or-later.json",
-      "referenceNumber": 321,
-      "name": "Affero General Public License v1.0 or later",
-      "licenseId": "AGPL-1.0-or-later",
-      "seeAlso": [
-        "http://www.affero.org/oagpl.html"
-      ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/BSL-1.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/BSL-1.0.json",
-      "referenceNumber": 322,
-      "name": "Boost Software License 1.0",
-      "licenseId": "BSL-1.0",
-      "seeAlso": [
-        "http://www.boost.org/LICENSE_1_0.txt",
-        "https://opensource.org/licenses/BSL-1.0"
-      ],
-      "isOsiApproved": true,
-      "isFsfLibre": true
-    },
-    {
       "reference": "https://spdx.org/licenses/IJG.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/IJG.json",
-      "referenceNumber": 323,
+      "referenceNumber": 321,
       "name": "Independent JPEG Group License",
       "licenseId": "IJG",
       "seeAlso": [
@@ -4032,10 +4007,22 @@
       "isFsfLibre": true
     },
     {
+      "reference": "https://spdx.org/licenses/AGPL-1.0-or-later.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/AGPL-1.0-or-later.json",
+      "referenceNumber": 322,
+      "name": "Affero General Public License v1.0 or later",
+      "licenseId": "AGPL-1.0-or-later",
+      "seeAlso": [
+        "http://www.affero.org/oagpl.html"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/OFL-1.1-no-RFN.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/OFL-1.1-no-RFN.json",
-      "referenceNumber": 324,
+      "referenceNumber": 323,
       "name": "SIL Open Font License 1.1 with no Reserved Font Name",
       "licenseId": "OFL-1.1-no-RFN",
       "seeAlso": [
@@ -4045,6 +4032,20 @@
       "isOsiApproved": true
     },
     {
+      "reference": "https://spdx.org/licenses/BSL-1.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/BSL-1.0.json",
+      "referenceNumber": 324,
+      "name": "Boost Software License 1.0",
+      "licenseId": "BSL-1.0",
+      "seeAlso": [
+        "http://www.boost.org/LICENSE_1_0.txt",
+        "https://opensource.org/licenses/BSL-1.0"
+      ],
+      "isOsiApproved": true,
+      "isFsfLibre": true
+    },
+    {
       "reference": "https://spdx.org/licenses/Libpng.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Libpng.json",
@@ -4193,22 +4194,10 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/libselinux-1.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/libselinux-1.0.json",
-      "referenceNumber": 337,
-      "name": "libselinux public domain notice",
-      "licenseId": "libselinux-1.0",
-      "seeAlso": [
-        "https://github.com/SELinuxProject/selinux/blob/master/libselinux/LICENSE"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/CECILL-1.1.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CECILL-1.1.json",
-      "referenceNumber": 338,
+      "referenceNumber": 337,
       "name": "CeCILL Free Software License Agreement v1.1",
       "licenseId": "CECILL-1.1",
       "seeAlso": [
@@ -4217,6 +4206,18 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/CECILL-2.1.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/CECILL-2.1.json",
+      "referenceNumber": 338,
+      "name": "CeCILL Free Software License Agreement v2.1",
+      "licenseId": "CECILL-2.1",
+      "seeAlso": [
+        "http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.html"
+      ],
+      "isOsiApproved": true
+    },
+    {
       "reference": "https://spdx.org/licenses/OGDL-Taiwan-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/OGDL-Taiwan-1.0.json",
@@ -4229,39 +4230,26 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/BSD-1-Clause.html",
+      "reference": "https://spdx.org/licenses/Abstyles.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/BSD-1-Clause.json",
+      "detailsUrl": "https://spdx.org/licenses/Abstyles.json",
       "referenceNumber": 340,
-      "name": "BSD 1-Clause License",
-      "licenseId": "BSD-1-Clause",
+      "name": "Abstyles License",
+      "licenseId": "Abstyles",
       "seeAlso": [
-        "https://svnweb.freebsd.org/base/head/include/ifaddrs.h?revision\u003d326823"
+        "https://fedoraproject.org/wiki/Licensing/Abstyles"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/BitTorrent-1.1.html",
+      "reference": "https://spdx.org/licenses/libselinux-1.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/BitTorrent-1.1.json",
+      "detailsUrl": "https://spdx.org/licenses/libselinux-1.0.json",
       "referenceNumber": 341,
-      "name": "BitTorrent Open Source License v1.1",
-      "licenseId": "BitTorrent-1.1",
+      "name": "libselinux public domain notice",
+      "licenseId": "libselinux-1.0",
       "seeAlso": [
-        "http://directory.fsf.org/wiki/License:BitTorrentOSL1.1"
-      ],
-      "isOsiApproved": false,
-      "isFsfLibre": true
-    },
-    {
-      "reference": "https://spdx.org/licenses/MIT-enna.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/MIT-enna.json",
-      "referenceNumber": 342,
-      "name": "enna License",
-      "licenseId": "MIT-enna",
-      "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/MIT#enna"
+        "https://github.com/SELinuxProject/selinux/blob/master/libselinux/LICENSE"
       ],
       "isOsiApproved": false
     },
@@ -4269,7 +4257,7 @@
       "reference": "https://spdx.org/licenses/ANTLR-PD.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/ANTLR-PD.json",
-      "referenceNumber": 343,
+      "referenceNumber": 342,
       "name": "ANTLR Software Rights Notice",
       "licenseId": "ANTLR-PD",
       "seeAlso": [
@@ -4281,7 +4269,7 @@
       "reference": "https://spdx.org/licenses/GPL-2.0-or-later.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/GPL-2.0-or-later.json",
-      "referenceNumber": 344,
+      "referenceNumber": 343,
       "name": "GNU General Public License v2.0 or later",
       "licenseId": "GPL-2.0-or-later",
       "seeAlso": [
@@ -4292,14 +4280,27 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/CC-BY-SA-3.0-AT.html",
+      "reference": "https://spdx.org/licenses/IPL-1.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CC-BY-SA-3.0-AT.json",
-      "referenceNumber": 345,
-      "name": "Creative Commons Attribution Share Alike 3.0 Austria",
-      "licenseId": "CC-BY-SA-3.0-AT",
+      "detailsUrl": "https://spdx.org/licenses/IPL-1.0.json",
+      "referenceNumber": 344,
+      "name": "IBM Public License v1.0",
+      "licenseId": "IPL-1.0",
       "seeAlso": [
-        "https://creativecommons.org/licenses/by-sa/3.0/at/legalcode"
+        "https://opensource.org/licenses/IPL-1.0"
+      ],
+      "isOsiApproved": true,
+      "isFsfLibre": true
+    },
+    {
+      "reference": "https://spdx.org/licenses/MIT-enna.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/MIT-enna.json",
+      "referenceNumber": 345,
+      "name": "enna License",
+      "licenseId": "MIT-enna",
+      "seeAlso": [
+        "https://fedoraproject.org/wiki/Licensing/MIT#enna"
       ],
       "isOsiApproved": false
     },
@@ -4316,17 +4317,16 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/OFL-1.1-RFN.html",
+      "reference": "https://spdx.org/licenses/CC-BY-SA-3.0-AT.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/OFL-1.1-RFN.json",
+      "detailsUrl": "https://spdx.org/licenses/CC-BY-SA-3.0-AT.json",
       "referenceNumber": 347,
-      "name": "SIL Open Font License 1.1 with Reserved Font Name",
-      "licenseId": "OFL-1.1-RFN",
+      "name": "Creative Commons Attribution Share Alike 3.0 Austria",
+      "licenseId": "CC-BY-SA-3.0-AT",
       "seeAlso": [
-        "http://scripts.sil.org/cms/scripts/page.php?item_id\u003dOFL_web",
-        "https://opensource.org/licenses/OFL-1.1"
+        "https://creativecommons.org/licenses/by-sa/3.0/at/legalcode"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": false
     },
     {
       "reference": "https://spdx.org/licenses/GPL-3.0-with-GCC-exception.html",
@@ -4341,17 +4341,16 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/IPL-1.0.html",
+      "reference": "https://spdx.org/licenses/BSD-1-Clause.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/IPL-1.0.json",
+      "detailsUrl": "https://spdx.org/licenses/BSD-1-Clause.json",
       "referenceNumber": 349,
-      "name": "IBM Public License v1.0",
-      "licenseId": "IPL-1.0",
+      "name": "BSD 1-Clause License",
+      "licenseId": "BSD-1-Clause",
       "seeAlso": [
-        "https://opensource.org/licenses/IPL-1.0"
+        "https://svnweb.freebsd.org/base/head/include/ifaddrs.h?revision\u003d326823"
       ],
-      "isOsiApproved": true,
-      "isFsfLibre": true
+      "isOsiApproved": true
     },
     {
       "reference": "https://spdx.org/licenses/NTP-0.html",
@@ -4391,10 +4390,23 @@
       "isFsfLibre": true
     },
     {
+      "reference": "https://spdx.org/licenses/OFL-1.1-RFN.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/OFL-1.1-RFN.json",
+      "referenceNumber": 353,
+      "name": "SIL Open Font License 1.1 with Reserved Font Name",
+      "licenseId": "OFL-1.1-RFN",
+      "seeAlso": [
+        "http://scripts.sil.org/cms/scripts/page.php?item_id\u003dOFL_web",
+        "https://opensource.org/licenses/OFL-1.1"
+      ],
+      "isOsiApproved": true
+    },
+    {
       "reference": "https://spdx.org/licenses/Watcom-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Watcom-1.0.json",
-      "referenceNumber": 353,
+      "referenceNumber": 354,
       "name": "Sybase Open Watcom Public License 1.0",
       "licenseId": "Watcom-1.0",
       "seeAlso": [
@@ -4403,18 +4415,6 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/FSFULLR.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/FSFULLR.json",
-      "referenceNumber": 354,
-      "name": "FSF Unlimited License (with License Retention)",
-      "licenseId": "FSFULLR",
-      "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/FSF_Unlimited_License#License_Retention_Variant"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/CC-BY-NC-SA-2.0-FR.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC-BY-NC-SA-2.0-FR.json",
@@ -4427,26 +4427,28 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/BSD-2-Clause.html",
+      "reference": "https://spdx.org/licenses/ODbL-1.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/BSD-2-Clause.json",
+      "detailsUrl": "https://spdx.org/licenses/ODbL-1.0.json",
       "referenceNumber": 356,
-      "name": "BSD 2-Clause \"Simplified\" License",
-      "licenseId": "BSD-2-Clause",
+      "name": "Open Data Commons Open Database License v1.0",
+      "licenseId": "ODbL-1.0",
       "seeAlso": [
-        "https://opensource.org/licenses/BSD-2-Clause"
+        "http://www.opendatacommons.org/licenses/odbl/1.0/",
+        "https://opendatacommons.org/licenses/odbl/1-0/"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": false,
+      "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/SSH-OpenSSH.html",
+      "reference": "https://spdx.org/licenses/FSFULLR.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/SSH-OpenSSH.json",
+      "detailsUrl": "https://spdx.org/licenses/FSFULLR.json",
       "referenceNumber": 357,
-      "name": "SSH OpenSSH license",
-      "licenseId": "SSH-OpenSSH",
+      "name": "FSF Unlimited License (with License Retention)",
+      "licenseId": "FSFULLR",
       "seeAlso": [
-        "https://github.com/openssh/openssh-portable/blob/1b11ea7c58cd5c59838b5fa574cd456d6047b2d4/LICENCE#L10"
+        "https://fedoraproject.org/wiki/Licensing/FSF_Unlimited_License#License_Retention_Variant"
       ],
       "isOsiApproved": false
     },
@@ -4463,31 +4465,28 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/ODbL-1.0.html",
+      "reference": "https://spdx.org/licenses/SSH-OpenSSH.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/ODbL-1.0.json",
+      "detailsUrl": "https://spdx.org/licenses/SSH-OpenSSH.json",
       "referenceNumber": 359,
-      "name": "Open Data Commons Open Database License v1.0",
-      "licenseId": "ODbL-1.0",
+      "name": "SSH OpenSSH license",
+      "licenseId": "SSH-OpenSSH",
       "seeAlso": [
-        "http://www.opendatacommons.org/licenses/odbl/1.0/",
-        "https://opendatacommons.org/licenses/odbl/1-0/"
+        "https://github.com/openssh/openssh-portable/blob/1b11ea7c58cd5c59838b5fa574cd456d6047b2d4/LICENCE#L10"
       ],
-      "isOsiApproved": false,
-      "isFsfLibre": true
+      "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/GFDL-1.3-only.html",
+      "reference": "https://spdx.org/licenses/BSD-2-Clause.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/GFDL-1.3-only.json",
+      "detailsUrl": "https://spdx.org/licenses/BSD-2-Clause.json",
       "referenceNumber": 360,
-      "name": "GNU Free Documentation License v1.3 only",
-      "licenseId": "GFDL-1.3-only",
+      "name": "BSD 2-Clause \"Simplified\" License",
+      "licenseId": "BSD-2-Clause",
       "seeAlso": [
-        "https://www.gnu.org/licenses/fdl-1.3.txt"
+        "https://opensource.org/licenses/BSD-2-Clause"
       ],
-      "isOsiApproved": false,
-      "isFsfLibre": true
+      "isOsiApproved": true
     },
     {
       "reference": "https://spdx.org/licenses/HPND.html",
@@ -4503,17 +4502,17 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/NASA-1.3.html",
+      "reference": "https://spdx.org/licenses/Zimbra-1.3.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/NASA-1.3.json",
+      "detailsUrl": "https://spdx.org/licenses/Zimbra-1.3.json",
       "referenceNumber": 362,
-      "name": "NASA Open Source Agreement 1.3",
-      "licenseId": "NASA-1.3",
+      "name": "Zimbra Public License v1.3",
+      "licenseId": "Zimbra-1.3",
       "seeAlso": [
-        "http://ti.arc.nasa.gov/opensource/nosa/",
-        "https://opensource.org/licenses/NASA-1.3"
+        "http://web.archive.org/web/20100302225219/http://www.zimbra.com/license/zimbra-public-license-1-3.html"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": false,
+      "isFsfLibre": true
     },
     {
       "reference": "https://spdx.org/licenses/Borceux.html",
@@ -4552,17 +4551,17 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CPAL-1.0.html",
+      "reference": "https://spdx.org/licenses/NASA-1.3.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CPAL-1.0.json",
+      "detailsUrl": "https://spdx.org/licenses/NASA-1.3.json",
       "referenceNumber": 366,
-      "name": "Common Public Attribution License 1.0",
-      "licenseId": "CPAL-1.0",
+      "name": "NASA Open Source Agreement 1.3",
+      "licenseId": "NASA-1.3",
       "seeAlso": [
-        "https://opensource.org/licenses/CPAL-1.0"
+        "http://ti.arc.nasa.gov/opensource/nosa/",
+        "https://opensource.org/licenses/NASA-1.3"
       ],
-      "isOsiApproved": true,
-      "isFsfLibre": true
+      "isOsiApproved": true
     },
     {
       "reference": "https://spdx.org/licenses/VOSTROM.html",
@@ -4577,16 +4576,18 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Abstyles.html",
+      "reference": "https://spdx.org/licenses/MIT-0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Abstyles.json",
+      "detailsUrl": "https://spdx.org/licenses/MIT-0.json",
       "referenceNumber": 368,
-      "name": "Abstyles License",
-      "licenseId": "Abstyles",
+      "name": "MIT No Attribution",
+      "licenseId": "MIT-0",
       "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing/Abstyles"
+        "https://github.com/aws/mit-0",
+        "https://romanrm.net/mit-zero",
+        "https://github.com/awsdocs/aws-cloud9-user-guide/blob/master/LICENSE-SAMPLECODE"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": true
     },
     {
       "reference": "https://spdx.org/licenses/ISC.html",
@@ -4641,18 +4642,17 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/MIT-0.html",
+      "reference": "https://spdx.org/licenses/NOSL.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/MIT-0.json",
+      "detailsUrl": "https://spdx.org/licenses/NOSL.json",
       "referenceNumber": 373,
-      "name": "MIT No Attribution",
-      "licenseId": "MIT-0",
+      "name": "Netizen Open Source License",
+      "licenseId": "NOSL",
       "seeAlso": [
-        "https://github.com/aws/mit-0",
-        "https://romanrm.net/mit-zero",
-        "https://github.com/awsdocs/aws-cloud9-user-guide/blob/master/LICENSE-SAMPLECODE"
+        "http://bits.netizen.com.au/licenses/NOSL/nosl.txt"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": false,
+      "isFsfLibre": true
     },
     {
       "reference": "https://spdx.org/licenses/SMLNJ.html",
@@ -4681,16 +4681,16 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/NOSL.html",
+      "reference": "https://spdx.org/licenses/CPAL-1.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/NOSL.json",
+      "detailsUrl": "https://spdx.org/licenses/CPAL-1.0.json",
       "referenceNumber": 376,
-      "name": "Netizen Open Source License",
-      "licenseId": "NOSL",
+      "name": "Common Public Attribution License 1.0",
+      "licenseId": "CPAL-1.0",
       "seeAlso": [
-        "http://bits.netizen.com.au/licenses/NOSL/nosl.txt"
+        "https://opensource.org/licenses/CPAL-1.0"
       ],
-      "isOsiApproved": false,
+      "isOsiApproved": true,
       "isFsfLibre": true
     },
     {
@@ -4783,36 +4783,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CDDL-1.1.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CDDL-1.1.json",
-      "referenceNumber": 384,
-      "name": "Common Development and Distribution License 1.1",
-      "licenseId": "CDDL-1.1",
-      "seeAlso": [
-        "http://glassfish.java.net/public/CDDL+GPL_1_1.html",
-        "https://javaee.github.io/glassfish/LICENSE"
-      ],
-      "isOsiApproved": false
-    },
-    {
-      "reference": "https://spdx.org/licenses/Zimbra-1.3.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Zimbra-1.3.json",
-      "referenceNumber": 385,
-      "name": "Zimbra Public License v1.3",
-      "licenseId": "Zimbra-1.3",
-      "seeAlso": [
-        "http://web.archive.org/web/20100302225219/http://www.zimbra.com/license/zimbra-public-license-1-3.html"
-      ],
-      "isOsiApproved": false,
-      "isFsfLibre": true
-    },
-    {
       "reference": "https://spdx.org/licenses/EUPL-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/EUPL-1.0.json",
-      "referenceNumber": 386,
+      "referenceNumber": 384,
       "name": "European Union Public License 1.0",
       "licenseId": "EUPL-1.0",
       "seeAlso": [
@@ -4822,17 +4796,42 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/Fair.html",
+      "reference": "https://spdx.org/licenses/CDDL-1.1.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/Fair.json",
-      "referenceNumber": 387,
-      "name": "Fair License",
-      "licenseId": "Fair",
+      "detailsUrl": "https://spdx.org/licenses/CDDL-1.1.json",
+      "referenceNumber": 385,
+      "name": "Common Development and Distribution License 1.1",
+      "licenseId": "CDDL-1.1",
       "seeAlso": [
-        "http://fairlicense.org/",
-        "https://opensource.org/licenses/Fair"
+        "http://glassfish.java.net/public/CDDL+GPL_1_1.html",
+        "https://javaee.github.io/glassfish/LICENSE"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": false
+    },
+    {
+      "reference": "https://spdx.org/licenses/GFDL-1.3-only.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/GFDL-1.3-only.json",
+      "referenceNumber": 386,
+      "name": "GNU Free Documentation License v1.3 only",
+      "licenseId": "GFDL-1.3-only",
+      "seeAlso": [
+        "https://www.gnu.org/licenses/fdl-1.3.txt"
+      ],
+      "isOsiApproved": false,
+      "isFsfLibre": true
+    },
+    {
+      "reference": "https://spdx.org/licenses/OLDAP-2.6.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/OLDAP-2.6.json",
+      "referenceNumber": 387,
+      "name": "Open LDAP Public License v2.6",
+      "licenseId": "OLDAP-2.6",
+      "seeAlso": [
+        "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d1cae062821881f41b73012ba816434897abf4205"
+      ],
+      "isOsiApproved": false
     },
     {
       "reference": "https://spdx.org/licenses/JSON.html",
@@ -4875,17 +4874,17 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/OPL-1.0.html",
+      "reference": "https://spdx.org/licenses/Fair.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/OPL-1.0.json",
+      "detailsUrl": "https://spdx.org/licenses/Fair.json",
       "referenceNumber": 391,
-      "name": "Open Public License v1.0",
-      "licenseId": "OPL-1.0",
+      "name": "Fair License",
+      "licenseId": "Fair",
       "seeAlso": [
-        "http://old.koalateam.com/jackaroo/OPL_1_0.TXT",
-        "https://fedoraproject.org/wiki/Licensing/Open_Public_License"
+        "http://fairlicense.org/",
+        "https://opensource.org/licenses/Fair"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": true
     },
     {
       "reference": "https://spdx.org/licenses/GPL-2.0-with-font-exception.html",
@@ -4977,14 +4976,15 @@
       "isOsiApproved": true
     },
     {
-      "reference": "https://spdx.org/licenses/OLDAP-2.6.html",
+      "reference": "https://spdx.org/licenses/OPL-1.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/OLDAP-2.6.json",
+      "detailsUrl": "https://spdx.org/licenses/OPL-1.0.json",
       "referenceNumber": 399,
-      "name": "Open LDAP Public License v2.6",
-      "licenseId": "OLDAP-2.6",
+      "name": "Open Public License v1.0",
+      "licenseId": "OPL-1.0",
       "seeAlso": [
-        "http://www.openldap.org/devel/gitweb.cgi?p\u003dopenldap.git;a\u003dblob;f\u003dLICENSE;hb\u003d1cae062821881f41b73012ba816434897abf4205"
+        "http://old.koalateam.com/jackaroo/OPL_1_0.TXT",
+        "https://fedoraproject.org/wiki/Licensing/Open_Public_License"
       ],
       "isOsiApproved": false
     },
@@ -5001,33 +5001,37 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/NCGL-UK-2.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/NCGL-UK-2.0.json",
-      "referenceNumber": 401,
-      "name": "Non-Commercial Government Licence",
-      "licenseId": "NCGL-UK-2.0",
-      "seeAlso": [
-        "http://www.nationalarchives.gov.uk/doc/non-commercial-government-licence/version/2/"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/QPL-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/QPL-1.0.json",
-      "referenceNumber": 402,
+      "referenceNumber": 401,
       "name": "Q Public License 1.0",
       "licenseId": "QPL-1.0",
       "seeAlso": [
         "http://doc.qt.nokia.com/3.3/license.html",
-        "https://opensource.org/licenses/QPL-1.0",
-        "https://doc.qt.io/archives/3.3/license.html"
+        "https://opensource.org/licenses/QPL-1.0"
       ],
       "isOsiApproved": true,
       "isFsfLibre": true
     },
     {
+      "reference": "https://spdx.org/licenses/EUPL-1.2.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/EUPL-1.2.json",
+      "referenceNumber": 402,
+      "name": "European Union Public License 1.2",
+      "licenseId": "EUPL-1.2",
+      "seeAlso": [
+        "https://joinup.ec.europa.eu/page/eupl-text-11-12",
+        "https://joinup.ec.europa.eu/sites/default/files/custom-page/attachment/eupl_v1.2_en.pdf",
+        "https://joinup.ec.europa.eu/sites/default/files/custom-page/attachment/2020-03/EUPL-1.2%20EN.txt",
+        "https://joinup.ec.europa.eu/sites/default/files/inline-files/EUPL%20v1_2%20EN(1).txt",
+        "http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri\u003dCELEX:32017D0863",
+        "https://opensource.org/licenses/EUPL-1.2"
+      ],
+      "isOsiApproved": true
+    },
+    {
       "reference": "https://spdx.org/licenses/GFDL-1.2-no-invariants-or-later.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/GFDL-1.2-no-invariants-or-later.json",
@@ -5040,27 +5044,34 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/EUPL-1.2.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/EUPL-1.2.json",
+      "reference": "https://spdx.org/licenses/eCos-2.0.html",
+      "isDeprecatedLicenseId": true,
+      "detailsUrl": "https://spdx.org/licenses/eCos-2.0.json",
       "referenceNumber": 404,
-      "name": "European Union Public License 1.2",
-      "licenseId": "EUPL-1.2",
+      "name": "eCos license version 2.0",
+      "licenseId": "eCos-2.0",
       "seeAlso": [
-        "https://joinup.ec.europa.eu/page/eupl-text-11-12",
-        "https://joinup.ec.europa.eu/sites/default/files/custom-page/attachment/eupl_v1.2_en.pdf",
-        "https://joinup.ec.europa.eu/sites/default/files/custom-page/attachment/2020-03/EUPL-1.2%20EN.txt",
-        "https://joinup.ec.europa.eu/sites/default/files/inline-files/EUPL%20v1_2%20EN(1).txt",
-        "http://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri\u003dCELEX:32017D0863",
-        "https://opensource.org/licenses/EUPL-1.2"
+        "https://www.gnu.org/licenses/ecos-license.html"
       ],
-      "isOsiApproved": true
+      "isOsiApproved": false
+    },
+    {
+      "reference": "https://spdx.org/licenses/NCGL-UK-2.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/NCGL-UK-2.0.json",
+      "referenceNumber": 405,
+      "name": "Non-Commercial Government Licence",
+      "licenseId": "NCGL-UK-2.0",
+      "seeAlso": [
+        "http://www.nationalarchives.gov.uk/doc/non-commercial-government-licence/version/2/"
+      ],
+      "isOsiApproved": false
     },
     {
       "reference": "https://spdx.org/licenses/Beerware.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Beerware.json",
-      "referenceNumber": 405,
+      "referenceNumber": 406,
       "name": "Beerware License",
       "licenseId": "Beerware",
       "seeAlso": [
@@ -5070,31 +5081,19 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/eCos-2.0.html",
-      "isDeprecatedLicenseId": true,
-      "detailsUrl": "https://spdx.org/licenses/eCos-2.0.json",
-      "referenceNumber": 406,
-      "name": "eCos license version 2.0",
-      "licenseId": "eCos-2.0",
+      "reference": "https://spdx.org/licenses/BSD-3-Clause-Open-MPI.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/BSD-3-Clause-Open-MPI.json",
+      "referenceNumber": 407,
+      "name": "BSD 3-Clause Open MPI variant",
+      "licenseId": "BSD-3-Clause-Open-MPI",
       "seeAlso": [
-        "https://www.gnu.org/licenses/ecos-license.html"
+        "https://www.open-mpi.org/community/license.php",
+        "http://www.netlib.org/lapack/LICENSE.txt"
       ],
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CAL-1.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CAL-1.0.json",
-      "referenceNumber": 407,
-      "name": "Cryptographic Autonomy License 1.0",
-      "licenseId": "CAL-1.0",
-      "seeAlso": [
-        "http://cryptographicautonomylicense.com/license-text.html",
-        "https://opensource.org/licenses/CAL-1.0"
-      ],
-      "isOsiApproved": true
-    },
-    {
       "reference": "https://spdx.org/licenses/GPL-2.0-with-bison-exception.html",
       "isDeprecatedLicenseId": true,
       "detailsUrl": "https://spdx.org/licenses/GPL-2.0-with-bison-exception.json",
@@ -5107,17 +5106,17 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/BSD-3-Clause-Open-MPI.html",
+      "reference": "https://spdx.org/licenses/CECILL-B.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/BSD-3-Clause-Open-MPI.json",
+      "detailsUrl": "https://spdx.org/licenses/CECILL-B.json",
       "referenceNumber": 409,
-      "name": "BSD 3-Clause Open MPI variant",
-      "licenseId": "BSD-3-Clause-Open-MPI",
+      "name": "CeCILL-B Free Software License Agreement",
+      "licenseId": "CECILL-B",
       "seeAlso": [
-        "https://www.open-mpi.org/community/license.php",
-        "http://www.netlib.org/lapack/LICENSE.txt"
+        "http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": false,
+      "isFsfLibre": true
     },
     {
       "reference": "https://spdx.org/licenses/GPL-2.0-with-autoconf-exception.html",
@@ -5132,23 +5131,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CECILL-B.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CECILL-B.json",
-      "referenceNumber": 411,
-      "name": "CeCILL-B Free Software License Agreement",
-      "licenseId": "CECILL-B",
-      "seeAlso": [
-        "http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html"
-      ],
-      "isOsiApproved": false,
-      "isFsfLibre": true
-    },
-    {
       "reference": "https://spdx.org/licenses/EPL-2.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/EPL-2.0.json",
-      "referenceNumber": 412,
+      "referenceNumber": 411,
       "name": "Eclipse Public License 2.0",
       "licenseId": "EPL-2.0",
       "seeAlso": [
@@ -5162,7 +5148,7 @@
       "reference": "https://spdx.org/licenses/MIT-feh.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/MIT-feh.json",
-      "referenceNumber": 413,
+      "referenceNumber": 412,
       "name": "feh License",
       "licenseId": "MIT-feh",
       "seeAlso": [
@@ -5174,7 +5160,7 @@
       "reference": "https://spdx.org/licenses/RPL-1.1.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/RPL-1.1.json",
-      "referenceNumber": 414,
+      "referenceNumber": 413,
       "name": "Reciprocal Public License 1.1",
       "licenseId": "RPL-1.1",
       "seeAlso": [
@@ -5183,6 +5169,18 @@
       "isOsiApproved": true
     },
     {
+      "reference": "https://spdx.org/licenses/CDLA-Permissive-1.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/CDLA-Permissive-1.0.json",
+      "referenceNumber": 414,
+      "name": "Community Data License Agreement Permissive 1.0",
+      "licenseId": "CDLA-Permissive-1.0",
+      "seeAlso": [
+        "https://cdla.io/permissive-1-0"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/Python-2.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Python-2.0.json",
@@ -5196,22 +5194,10 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/CDLA-Permissive-1.0.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CDLA-Permissive-1.0.json",
-      "referenceNumber": 416,
-      "name": "Community Data License Agreement Permissive 1.0",
-      "licenseId": "CDLA-Permissive-1.0",
-      "seeAlso": [
-        "https://cdla.io/permissive-1-0"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/MPL-1.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/MPL-1.0.json",
-      "referenceNumber": 417,
+      "referenceNumber": 416,
       "name": "Mozilla Public License 1.0",
       "licenseId": "MPL-1.0",
       "seeAlso": [
@@ -5221,6 +5207,19 @@
       "isOsiApproved": true
     },
     {
+      "reference": "https://spdx.org/licenses/GFDL-1.1-or-later.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/GFDL-1.1-or-later.json",
+      "referenceNumber": 417,
+      "name": "GNU Free Documentation License v1.1 or later",
+      "licenseId": "GFDL-1.1-or-later",
+      "seeAlso": [
+        "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt"
+      ],
+      "isOsiApproved": false,
+      "isFsfLibre": true
+    },
+    {
       "reference": "https://spdx.org/licenses/diffmark.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/diffmark.json",
@@ -5245,14 +5244,14 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/GFDL-1.1-or-later.html",
+      "reference": "https://spdx.org/licenses/OpenSSL.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/GFDL-1.1-or-later.json",
+      "detailsUrl": "https://spdx.org/licenses/OpenSSL.json",
       "referenceNumber": 420,
-      "name": "GNU Free Documentation License v1.1 or later",
-      "licenseId": "GFDL-1.1-or-later",
+      "name": "OpenSSL License",
+      "licenseId": "OpenSSL",
       "seeAlso": [
-        "https://www.gnu.org/licenses/old-licenses/fdl-1.1.txt"
+        "http://www.openssl.org/source/license.html"
       ],
       "isOsiApproved": false,
       "isFsfLibre": true
@@ -5283,14 +5282,14 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/OpenSSL.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/OpenSSL.json",
+      "reference": "https://spdx.org/licenses/AGPL-1.0.html",
+      "isDeprecatedLicenseId": true,
+      "detailsUrl": "https://spdx.org/licenses/AGPL-1.0.json",
       "referenceNumber": 423,
-      "name": "OpenSSL License",
-      "licenseId": "OpenSSL",
+      "name": "Affero General Public License v1.0",
+      "licenseId": "AGPL-1.0",
       "seeAlso": [
-        "http://www.openssl.org/source/license.html"
+        "http://www.affero.org/oagpl.html"
       ],
       "isOsiApproved": false,
       "isFsfLibre": true
@@ -5335,23 +5334,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/AGPL-1.0.html",
-      "isDeprecatedLicenseId": true,
-      "detailsUrl": "https://spdx.org/licenses/AGPL-1.0.json",
-      "referenceNumber": 427,
-      "name": "Affero General Public License v1.0",
-      "licenseId": "AGPL-1.0",
-      "seeAlso": [
-        "http://www.affero.org/oagpl.html"
-      ],
-      "isOsiApproved": false,
-      "isFsfLibre": true
-    },
-    {
       "reference": "https://spdx.org/licenses/Xnet.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Xnet.json",
-      "referenceNumber": 428,
+      "referenceNumber": 427,
       "name": "X.Net License",
       "licenseId": "Xnet",
       "seeAlso": [
@@ -5360,6 +5346,18 @@
       "isOsiApproved": true
     },
     {
+      "reference": "https://spdx.org/licenses/TU-Berlin-1.0.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/TU-Berlin-1.0.json",
+      "referenceNumber": 428,
+      "name": "Technische Universitaet Berlin License 1.0",
+      "licenseId": "TU-Berlin-1.0",
+      "seeAlso": [
+        "https://github.com/swh/ladspa/blob/7bf6f3799fdba70fda297c2d8fd9f526803d9680/gsm/COPYRIGHT"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/AGPL-3.0.html",
       "isDeprecatedLicenseId": true,
       "detailsUrl": "https://spdx.org/licenses/AGPL-3.0.json",
@@ -5374,16 +5372,17 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/TU-Berlin-1.0.html",
+      "reference": "https://spdx.org/licenses/CAL-1.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/TU-Berlin-1.0.json",
+      "detailsUrl": "https://spdx.org/licenses/CAL-1.0.json",
       "referenceNumber": 430,
-      "name": "Technische Universitaet Berlin License 1.0",
-      "licenseId": "TU-Berlin-1.0",
+      "name": "Cryptographic Autonomy License 1.0",
+      "licenseId": "CAL-1.0",
       "seeAlso": [
-        "https://github.com/swh/ladspa/blob/7bf6f3799fdba70fda297c2d8fd9f526803d9680/gsm/COPYRIGHT"
+        "http://cryptographicautonomylicense.com/license-text.html",
+        "https://opensource.org/licenses/CAL-1.0"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": true
     },
     {
       "reference": "https://spdx.org/licenses/AFL-3.0.html",
@@ -5400,16 +5399,16 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/APSL-2.0.html",
+      "reference": "https://spdx.org/licenses/CECILL-C.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/APSL-2.0.json",
+      "detailsUrl": "https://spdx.org/licenses/CECILL-C.json",
       "referenceNumber": 432,
-      "name": "Apple Public Source License 2.0",
-      "licenseId": "APSL-2.0",
+      "name": "CeCILL-C Free Software License Agreement",
+      "licenseId": "CECILL-C",
       "seeAlso": [
-        "http://www.opensource.apple.com/license/apsl/"
+        "http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html"
       ],
-      "isOsiApproved": true,
+      "isOsiApproved": false,
       "isFsfLibre": true
     },
     {
@@ -5425,23 +5424,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/CECILL-C.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/CECILL-C.json",
-      "referenceNumber": 434,
-      "name": "CeCILL-C Free Software License Agreement",
-      "licenseId": "CECILL-C",
-      "seeAlso": [
-        "http://www.cecill.info/licences/Licence_CeCILL-C_V1-en.html"
-      ],
-      "isOsiApproved": false,
-      "isFsfLibre": true
-    },
-    {
       "reference": "https://spdx.org/licenses/BSD-3-Clause-Clear.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/BSD-3-Clause-Clear.json",
-      "referenceNumber": 435,
+      "referenceNumber": 434,
       "name": "BSD 3-Clause Clear License",
       "licenseId": "BSD-3-Clause-Clear",
       "seeAlso": [
@@ -5451,6 +5437,18 @@
       "isFsfLibre": true
     },
     {
+      "reference": "https://spdx.org/licenses/BSD-3-Clause-Modification.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/BSD-3-Clause-Modification.json",
+      "referenceNumber": 435,
+      "name": "BSD 3-Clause Modification",
+      "licenseId": "BSD-3-Clause-Modification",
+      "seeAlso": [
+        "https://fedoraproject.org/wiki/Licensing:BSD#Modification_Variant"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/CC-BY-SA-2.0-UK.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CC-BY-SA-2.0-UK.json",
@@ -5511,22 +5509,10 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/BSD-3-Clause-Modification.html",
-      "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/BSD-3-Clause-Modification.json",
-      "referenceNumber": 441,
-      "name": "BSD 3-Clause Modification",
-      "licenseId": "BSD-3-Clause-Modification",
-      "seeAlso": [
-        "https://fedoraproject.org/wiki/Licensing:BSD#Modification_Variant"
-      ],
-      "isOsiApproved": false
-    },
-    {
       "reference": "https://spdx.org/licenses/Spencer-86.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/Spencer-86.json",
-      "referenceNumber": 442,
+      "referenceNumber": 441,
       "name": "Spencer License 86",
       "licenseId": "Spencer-86",
       "seeAlso": [
@@ -5535,6 +5521,18 @@
       "isOsiApproved": false
     },
     {
+      "reference": "https://spdx.org/licenses/OCCT-PL.html",
+      "isDeprecatedLicenseId": false,
+      "detailsUrl": "https://spdx.org/licenses/OCCT-PL.json",
+      "referenceNumber": 442,
+      "name": "Open CASCADE Technology Public License",
+      "licenseId": "OCCT-PL",
+      "seeAlso": [
+        "http://www.opencascade.com/content/occt-public-license"
+      ],
+      "isOsiApproved": false
+    },
+    {
       "reference": "https://spdx.org/licenses/CERN-OHL-S-2.0.html",
       "isDeprecatedLicenseId": false,
       "detailsUrl": "https://spdx.org/licenses/CERN-OHL-S-2.0.json",
@@ -5572,14 +5570,15 @@
       "isOsiApproved": false
     },
     {
-      "reference": "https://spdx.org/licenses/OCCT-PL.html",
+      "reference": "https://spdx.org/licenses/NIST-PD.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/OCCT-PL.json",
+      "detailsUrl": "https://spdx.org/licenses/NIST-PD.json",
       "referenceNumber": 446,
-      "name": "Open CASCADE Technology Public License",
-      "licenseId": "OCCT-PL",
+      "name": "NIST Public Domain Notice",
+      "licenseId": "NIST-PD",
       "seeAlso": [
-        "http://www.opencascade.com/content/occt-public-license"
+        "https://github.com/tcheneau/simpleRPL/blob/e645e69e38dd4e3ccfeceb2db8cba05b7c2e0cd3/LICENSE.txt",
+        "https://github.com/tcheneau/Routing/blob/f09f46fcfe636107f22f2c98348188a65a135d98/README.md"
       ],
       "isOsiApproved": false
     },
@@ -5597,17 +5596,17 @@
       "isFsfLibre": true
     },
     {
-      "reference": "https://spdx.org/licenses/NIST-PD.html",
+      "reference": "https://spdx.org/licenses/APSL-2.0.html",
       "isDeprecatedLicenseId": false,
-      "detailsUrl": "https://spdx.org/licenses/NIST-PD.json",
+      "detailsUrl": "https://spdx.org/licenses/APSL-2.0.json",
       "referenceNumber": 448,
-      "name": "NIST Public Domain Notice",
-      "licenseId": "NIST-PD",
+      "name": "Apple Public Source License 2.0",
+      "licenseId": "APSL-2.0",
       "seeAlso": [
-        "https://github.com/tcheneau/simpleRPL/blob/e645e69e38dd4e3ccfeceb2db8cba05b7c2e0cd3/LICENSE.txt",
-        "https://github.com/tcheneau/Routing/blob/f09f46fcfe636107f22f2c98348188a65a135d98/README.md"
+        "http://www.opensource.apple.com/license/apsl/"
       ],
-      "isOsiApproved": false
+      "isOsiApproved": true,
+      "isFsfLibre": true
     },
     {
       "reference": "https://spdx.org/licenses/Leptonica.html",
@@ -5934,5 +5933,5 @@
       "isOsiApproved": false
     }
   ],
-  "releaseDate": "2021-08-19"
+  "releaseDate": "2021-08-08"
 }
\ No newline at end of file
diff --git a/poky/meta/lib/buildstats.py b/poky/meta/lib/buildstats.py
index 8627ed3..c52b6c3 100644
--- a/poky/meta/lib/buildstats.py
+++ b/poky/meta/lib/buildstats.py
@@ -43,8 +43,8 @@
         # depends on the heartbeat event, which fires less often.
         self.min_seconds = 1
 
-        self.meminfo_regex = re.compile(b'^(MemTotal|MemFree|Buffers|Cached|SwapTotal|SwapFree):\s*(\d+)')
-        self.diskstats_regex = re.compile(b'^([hsv]d.|mtdblock\d|mmcblk\d|cciss/c\d+d\d+.*)$')
+        self.meminfo_regex = re.compile(rb'^(MemTotal|MemFree|Buffers|Cached|SwapTotal|SwapFree):\s*(\d+)')
+        self.diskstats_regex = re.compile(rb'^([hsv]d.|mtdblock\d|mmcblk\d|cciss/c\d+d\d+.*)$')
         self.diskstats_ltime = None
         self.diskstats_data = None
         self.stat_ltimes = None
diff --git a/poky/meta/lib/oe/spdx.py b/poky/meta/lib/oe/spdx.py
index 9814fbf..4416194 100644
--- a/poky/meta/lib/oe/spdx.py
+++ b/poky/meta/lib/oe/spdx.py
@@ -2,6 +2,18 @@
 # SPDX-License-Identifier: GPL-2.0-only
 #
 
+#
+# This library is intended to capture the JSON SPDX specification in a type
+# safe manner. It is not intended to encode any particular OE specific
+# behaviors, see the sbom.py for that.
+#
+# The documented SPDX spec document doesn't cover the JSON syntax for
+# particular configuration, which can make it hard to determine what the JSON
+# syntax should be. I've found it is actually much simpler to read the official
+# SPDX JSON schema which can be found here: https://github.com/spdx/spdx-spec
+# in schemas/spdx-schema.json
+#
+
 import hashlib
 import itertools
 import json
@@ -9,7 +21,16 @@
 SPDX_VERSION = "2.2"
 
 
+#
+# The following are the support classes that are used to implement SPDX object
+#
+
 class _Property(object):
+    """
+    A generic SPDX object property. The different types will derive from this
+    class
+    """
+
     def __init__(self, *, default=None):
         self.default = default
 
@@ -19,6 +40,10 @@
 
 
 class _String(_Property):
+    """
+    A scalar string property for an SPDX object
+    """
+
     def __init__(self, **kwargs):
         super().__init__(**kwargs)
 
@@ -39,6 +64,10 @@
 
 
 class _Object(_Property):
+    """
+    A scalar SPDX object property of a SPDX object
+    """
+
     def __init__(self, cls, **kwargs):
         super().__init__(**kwargs)
         self.cls = cls
@@ -62,6 +91,10 @@
 
 
 class _ListProperty(_Property):
+    """
+    A list of SPDX properties
+    """
+
     def __init__(self, prop, **kwargs):
         super().__init__(**kwargs)
         self.prop = prop
@@ -82,16 +115,28 @@
 
 
 class _StringList(_ListProperty):
+    """
+    A list of strings as a property for an SPDX object
+    """
+
     def __init__(self, **kwargs):
         super().__init__(_String(), **kwargs)
 
 
 class _ObjectList(_ListProperty):
+    """
+    A list of SPDX objects as a property for an SPDX object
+    """
+
     def __init__(self, cls, **kwargs):
         super().__init__(_Object(cls), **kwargs)
 
 
 class MetaSPDXObject(type):
+    """
+    A metaclass that allows properties (anything derived from a _Property
+    class) to be defined for a SPDX object
+    """
     def __new__(mcls, name, bases, attrs):
         attrs["_properties"] = {}
 
@@ -105,6 +150,9 @@
 
 
 class SPDXObject(metaclass=MetaSPDXObject):
+    """
+    The base SPDX object; all SPDX spec classes must derive from this class
+    """
     def __init__(self, **d):
         self._spdx = {}
 
@@ -122,6 +170,21 @@
             return
         raise KeyError("%r is not a valid SPDX property" % name)
 
+#
+# These are the SPDX objects implemented from the spec. The *only* properties
+# that can be added to these objects are ones directly specified in the SPDX
+# spec, however you may add helper functions to make operations easier.
+#
+# Defaults should *only* be specified if the SPDX spec says there is a certain
+# required value for a field (e.g. dataLicense), or if the field is mandatory
+# and has some sane "this field is unknown" (e.g. "NOASSERTION")
+#
+
+class SPDXAnnotation(SPDXObject):
+    annotationDate = _String()
+    annotationType = _String()
+    annotator = _String()
+    comment = _String()
 
 class SPDXChecksum(SPDXObject):
     algorithm = _String()
@@ -164,6 +227,7 @@
     packageVerificationCode = _Object(SPDXPackageVerificationCode)
     hasFiles = _StringList()
     packageFileName = _String()
+    annotations = _ObjectList(SPDXAnnotation)
 
 
 class SPDXFile(SPDXObject):
diff --git a/poky/meta/lib/oe/sstatesig.py b/poky/meta/lib/oe/sstatesig.py
index dd6b9de..0c3b458 100644
--- a/poky/meta/lib/oe/sstatesig.py
+++ b/poky/meta/lib/oe/sstatesig.py
@@ -108,7 +108,6 @@
         self.unlockedrecipes = (data.getVar("SIGGEN_UNLOCKED_RECIPES") or
                                 "").split()
         self.unlockedrecipes = { k: "" for k in self.unlockedrecipes }
-        self.buildarch = data.getVar('BUILD_ARCH')
         self._internal = False
         pass
 
@@ -147,13 +146,6 @@
         self.dump_lockedsigs(sigfile)
         return super(bb.siggen.SignatureGeneratorBasicHash, self).dump_sigs(dataCache, options)
 
-    def prep_taskhash(self, tid, deps, dataCaches):
-        super().prep_taskhash(tid, deps, dataCaches)
-        if hasattr(self, "extramethod"):
-            (mc, _, _, fn) = bb.runqueue.split_tid_mcfn(tid)
-            inherits = " ".join(dataCaches[mc].inherits[fn])
-            if inherits.find("/native.bbclass") != -1 or inherits.find("/cross.bbclass") != -1:
-                self.extramethod[tid] = ":" + self.buildarch
 
     def get_taskhash(self, tid, deps, dataCaches):
         if tid in self.lockedhashes:
@@ -478,6 +470,8 @@
     import stat
     import pwd
     import grp
+    import re
+    import fnmatch
 
     def update_hash(s):
         s = s.encode('utf-8')
@@ -487,6 +481,8 @@
 
     h = hashlib.sha256()
     prev_dir = os.getcwd()
+    corebase = d.getVar("COREBASE")
+    tmpdir = d.getVar("TMPDIR")
     include_owners = os.environ.get('PSEUDO_DISABLED') == '0'
     if "package_write_" in task or task == "package_qa":
         include_owners = False
@@ -497,8 +493,17 @@
         include_root = False
     extra_content = d.getVar('HASHEQUIV_HASH_VERSION')
 
+    filemaps = {}
+    for m in (d.getVar('SSTATE_HASHEQUIV_FILEMAP') or '').split():
+        entry = m.split(":")
+        if len(entry) != 3 or entry[0] != task:
+            continue
+        filemaps.setdefault(entry[1], [])
+        filemaps[entry[1]].append(entry[2])
+
     try:
         os.chdir(path)
+        basepath = os.path.normpath(path)
 
         update_hash("OEOuthashBasic\n")
         if extra_content:
@@ -580,8 +585,13 @@
                 else:
                     update_hash(" " * 9)
 
+                filterfile = False
+                for entry in filemaps:
+                    if fnmatch.fnmatch(path, entry):
+                        filterfile = True
+
                 update_hash(" ")
-                if stat.S_ISREG(s.st_mode):
+                if stat.S_ISREG(s.st_mode) and not filterfile:
                     update_hash("%10d" % s.st_size)
                 else:
                     update_hash(" " * 10)
@@ -590,9 +600,24 @@
                 fh = hashlib.sha256()
                 if stat.S_ISREG(s.st_mode):
                     # Hash file contents
-                    with open(path, 'rb') as d:
-                        for chunk in iter(lambda: d.read(4096), b""):
+                    if filterfile:
+                        # Need to ignore paths in crossscripts and postinst-useradd files.
+                        with open(path, 'rb') as d:
+                            chunk = d.read()
+                            chunk = chunk.replace(bytes(basepath, encoding='utf8'), b'')
+                            for entry in filemaps:
+                                if not fnmatch.fnmatch(path, entry):
+                                    continue
+                                for r in filemaps[entry]:
+                                    if r.startswith("regex-"):
+                                        chunk = re.sub(bytes(r[6:], encoding='utf8'), b'', chunk)
+                                    else:
+                                        chunk = chunk.replace(bytes(r, encoding='utf8'), b'')
                             fh.update(chunk)
+                    else:
+                        with open(path, 'rb') as d:
+                            for chunk in iter(lambda: d.read(4096), b""):
+                                fh.update(chunk)
                     update_hash(fh.hexdigest())
                 else:
                     update_hash(" " * len(fh.hexdigest()))
diff --git a/poky/meta/lib/oeqa/selftest/cases/bbtests.py b/poky/meta/lib/oeqa/selftest/cases/bbtests.py
index 8831de6..6562364 100644
--- a/poky/meta/lib/oeqa/selftest/cases/bbtests.py
+++ b/poky/meta/lib/oeqa/selftest/cases/bbtests.py
@@ -83,8 +83,10 @@
 
     def test_force_task_1(self):
         # test 1 from bug 5875
+        import uuid
         test_recipe = 'zlib'
-        test_data = "Microsoft Made No Profit From Anyone's Zunes Yo"
+        # Need to use uuid otherwise hash equivlance would change the workflow
+        test_data = "Microsoft Made No Profit From Anyone's Zunes Yo %s" % uuid.uuid1()
         bb_vars = get_bb_vars(['D', 'PKGDEST', 'mandir'], test_recipe)
         image_dir = bb_vars['D']
         pkgsplit_dir = bb_vars['PKGDEST']
diff --git a/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py b/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py
index 4fc3605..c809d7c 100644
--- a/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py
+++ b/poky/meta/lib/oeqa/selftest/cases/gotoolchain.py
@@ -43,6 +43,12 @@
 
     @classmethod
     def tearDownClass(cls):
+        # Go creates file which are readonly
+        for dirpath, dirnames, filenames in os.walk(cls.tmpdir_SDKQA):
+            for filename in filenames + dirnames:
+                f = os.path.join(dirpath, filename)
+                if not os.path.islink(f):
+                    os.chmod(f, 0o775)
         shutil.rmtree(cls.tmpdir_SDKQA, ignore_errors=True)
         super(oeGoToolchainSelfTest, cls).tearDownClass()
 
diff --git a/poky/meta/lib/oeqa/selftest/cases/tinfoil.py b/poky/meta/lib/oeqa/selftest/cases/tinfoil.py
index 5109280..8fd48bb 100644
--- a/poky/meta/lib/oeqa/selftest/cases/tinfoil.py
+++ b/poky/meta/lib/oeqa/selftest/cases/tinfoil.py
@@ -94,14 +94,13 @@
                 pass
 
             pattern = 'conf'
-            res = tinfoil.run_command('findFilesMatchingInDir', pattern, 'conf/machine')
+            res = tinfoil.run_command('testCookerCommandEvent', pattern)
             self.assertTrue(res)
 
             eventreceived = False
             commandcomplete = False
             start = time.time()
             # Wait for maximum 60s in total so we'd detect spurious heartbeat events for example
-            # The test is IO load sensitive too
             while (not (eventreceived == True and commandcomplete == True) 
                     and (time.time() - start < 60)):
                 # if we received both events (on let's say a good day), we are done  
@@ -111,7 +110,8 @@
                         commandcomplete = True
                     elif isinstance(event, bb.event.FilesMatchingFound):
                         self.assertEqual(pattern, event._pattern)
-                        self.assertIn('qemuarm.conf', event._matches)
+                        self.assertIn('A', event._matches)
+                        self.assertIn('B', event._matches)
                         eventreceived = True
                     elif isinstance(event, logging.LogRecord):
                         continue
diff --git a/poky/meta/lib/oeqa/selftest/cases/wic.py b/poky/meta/lib/oeqa/selftest/cases/wic.py
index dc7b9e6..5fc8e65 100644
--- a/poky/meta/lib/oeqa/selftest/cases/wic.py
+++ b/poky/meta/lib/oeqa/selftest/cases/wic.py
@@ -1158,6 +1158,35 @@
             out = glob(self.resultdir + "%s-*.direct" % wksname)
             self.assertEqual(1, len(out))
 
+    @only_for_arch(['i586', 'i686', 'x86_64'])
+    def test_efi_plugin_unified_kernel_image_qemu(self):
+        """Test efi plugin's Unified Kernel Image feature in qemu"""
+        config = 'IMAGE_FSTYPES = "wic"\n'\
+                 'INITRAMFS_IMAGE = "core-image-minimal-initramfs"\n'\
+                 'WKS_FILE = "test_efi_plugin.wks"\n'\
+                 'MACHINE_FEATURES:append = " efi"\n'
+        self.append_config(config)
+        self.assertEqual(0, bitbake('core-image-minimal core-image-minimal-initramfs ovmf').status)
+        self.remove_config(config)
+
+        with runqemu('core-image-minimal', ssh=False,
+                     runqemuparams='ovmf', image_fstype='wic') as qemu:
+            # Check that /boot has EFI bootx64.efi (required for EFI)
+            cmd = "ls /boot/EFI/BOOT/bootx64.efi | wc -l"
+            status, output = qemu.run_serial(cmd)
+            self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output))
+            self.assertEqual(output, '1')
+            # Check that /boot has EFI/Linux/linux.efi (required for Unified Kernel Images auto detection)
+            cmd = "ls /boot/EFI/Linux/linux.efi | wc -l"
+            status, output = qemu.run_serial(cmd)
+            self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output))
+            self.assertEqual(output, '1')
+            # Check that /boot doesn't have loader/entries/boot.conf (Unified Kernel Images are auto detected by the bootloader)
+            cmd = "ls /boot/loader/entries/boot.conf 2&>/dev/null | wc -l"
+            status, output = qemu.run_serial(cmd)
+            self.assertEqual(1, status, 'Failed to run command "%s": %s' % (cmd, output))
+            self.assertEqual(output, '0')
+
     def test_fs_types(self):
         """Test filesystem types for empty and not empty partitions"""
         img = 'core-image-minimal'
diff --git a/poky/meta/lib/oeqa/utils/buildproject.py b/poky/meta/lib/oeqa/utils/buildproject.py
index e6d80cc..dfb9661 100644
--- a/poky/meta/lib/oeqa/utils/buildproject.py
+++ b/poky/meta/lib/oeqa/utils/buildproject.py
@@ -18,6 +18,7 @@
     def __init__(self, uri, foldername=None, tmpdir=None, dl_dir=None):
         self.uri = uri
         self.archive = os.path.basename(uri)
+        self.tempdirobj = None
         if not tmpdir:
             self.tempdirobj = tempfile.TemporaryDirectory(prefix='buildproject-')
             tmpdir = self.tempdirobj.name
@@ -57,6 +58,8 @@
         return self._run('cd %s; make install %s' % (self.targetdir, install_args))
 
     def clean(self):
+        if self.tempdirobj:
+            self.tempdirobj.cleanup()
         if not self.needclean:
              return
         self._run('rm -rf %s' % self.targetdir)
diff --git a/poky/meta/lib/oeqa/utils/qemurunner.py b/poky/meta/lib/oeqa/utils/qemurunner.py
index d55248c..d961a9a 100644
--- a/poky/meta/lib/oeqa/utils/qemurunner.py
+++ b/poky/meta/lib/oeqa/utils/qemurunner.py
@@ -265,7 +265,7 @@
             r = os.fdopen(r)
             x = r.read()
             os.killpg(os.getpgid(self.runqemu.pid), signal.SIGTERM)
-            sys.exit(0)
+            os._exit(0)
 
         self.logger.debug("runqemu started, pid is %s" % self.runqemu.pid)
         self.logger.debug("waiting at most %s seconds for qemu pid (%s)" %
diff --git a/poky/meta/lib/oeqa/utils/targetbuild.py b/poky/meta/lib/oeqa/utils/targetbuild.py
index 1055810..09738ad 100644
--- a/poky/meta/lib/oeqa/utils/targetbuild.py
+++ b/poky/meta/lib/oeqa/utils/targetbuild.py
@@ -19,6 +19,7 @@
         self.d = d
         self.uri = uri
         self.archive = os.path.basename(uri)
+        self.tempdirobj = None
         if not tmpdir:
             tmpdir = self.d.getVar('WORKDIR')
             if not tmpdir:
@@ -71,9 +72,10 @@
         return self._run('cd %s; make install %s' % (self.targetdir, install_args))
 
     def clean(self):
+        if self.tempdirobj:
+            self.tempdirobj.cleanup()
         self._run('rm -rf %s' % self.targetdir)
         subprocess.check_call('rm -f %s' % self.localarchive, shell=True)
-        pass
 
 class TargetBuildProject(BuildProject):
 
diff --git a/poky/meta/recipes-connectivity/inetutils/inetutils/CVE-2021-40491.patch b/poky/meta/recipes-connectivity/inetutils/inetutils/CVE-2021-40491.patch
new file mode 100644
index 0000000..202488f
--- /dev/null
+++ b/poky/meta/recipes-connectivity/inetutils/inetutils/CVE-2021-40491.patch
@@ -0,0 +1,88 @@
+From 98ccabf68e5b3f0a177bd1925581753d10041448 Mon Sep 17 00:00:00 2001
+From: Simon Josefsson <simon@josefsson.org>
+Date: Wed, 1 Sep 2021 09:09:50 +0200
+Subject: [PATCH] ftp: check that PASV/LSPV addresses match.
+
+* NEWS: Mention change.
+* ftp/ftp.c (initconn): Validate returned addresses.
+
+CVE: CVE-2021-40491
+
+Upstream-Status: Backport
+[https://git.savannah.gnu.org/cgit/inetutils.git/commit/?id=58cb043b190fd04effdaea7c9403416b436e50dd]
+
+Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
+---
+ NEWS      |  9 +++++++++
+ ftp/ftp.c | 21 +++++++++++++++++++++
+ 2 files changed, 30 insertions(+)
+
+diff --git a/NEWS b/NEWS
+index 7c5e62c..bd9a4da 100644
+--- a/NEWS
++++ b/NEWS
+@@ -4,6 +4,15 @@ GNU inetutils NEWS -- history of user-visible changes.
+ 
+ ** ftp
+ 
++The ftp client now validate addresses returned by PASV/LSPV responses,
++to make sure they match the server address.  Reported by ZeddYu Lu in
++<https://lists.gnu.org/archive/html/bug-inetutils/2021-06/msg00002.html>.
++
++Thanks to Luke Mewburn <lukem@netbsd.org> for discussion and fix to
++NetBSD code, we used a similar solution.
++
++** ftp
++
+ Disable use of readline when environment variable TERM is unset or set
+ to "dumb" (caused problems with Emacs AngeFTP on MacOS).  Thanks to
+ Alex Bochannek for report, debugging and patch.
+diff --git a/ftp/ftp.c b/ftp/ftp.c
+index d21dbdd..7513539 100644
+--- a/ftp/ftp.c
++++ b/ftp/ftp.c
+@@ -1365,6 +1365,13 @@ initconn (void)
+ 		  uint32_t *pu32 = (uint32_t *) &data_addr_sa4->sin_addr.s_addr;
+ 		  pu32[0] = htonl ( (h[0] << 24) | (h[1] << 16) | (h[2] << 8) | h[3]);
+ 		}
++		if (data_addr_sa4->sin_addr.s_addr
++		    != ((struct sockaddr_in *) &hisctladdr)->sin_addr.s_addr)
++		  {
++		    printf ("Passive mode address mismatch.\n");
++		    (void) command ("ABOR");	/* Cancel any open connection.  */
++		    goto bad;
++		  }
+ 	    } /* LPSV IPv4 */
+ 	  else /* IPv6 */
+ 	    {
+@@ -1395,6 +1402,13 @@ initconn (void)
+ 		  pu32[2] = htonl ( (h[8] << 24) | (h[9] << 16) | (h[10] << 8) | h[11]);
+ 		  pu32[3] = htonl ( (h[12] << 24) | (h[13] << 16) | (h[14] << 8) | h[15]);
+ 		}
++		if (data_addr_sa6->sin6_addr.s6_addr
++		    != ((struct sockaddr_in6 *) &hisctladdr)->sin6_addr.s6_addr)
++		  {
++		    printf ("Passive mode address mismatch.\n");
++		    (void) command ("ABOR");	/* Cancel any open connection.  */
++		    goto bad;
++		  }
+ 	    } /* LPSV IPv6 */
+ 	}
+       else /* !EPSV && !LPSV */
+@@ -1415,6 +1429,13 @@ initconn (void)
+ 			 | ((a2 & 0xff) << 8) | (a3 & 0xff) );
+ 	      data_addr_sa4->sin_port =
+ 		  htons (((p0 & 0xff) << 8) | (p1 & 0xff));
++	      if (data_addr_sa4->sin_addr.s_addr
++		  != ((struct sockaddr_in *) &hisctladdr)->sin_addr.s_addr)
++		{
++		  printf ("Passive mode address mismatch.\n");
++		  (void) command ("ABOR");	/* Cancel any open connection.  */
++		  goto bad;
++		}
+ 	    } /* PASV */
+ 	  else
+ 	    {
+-- 
+2.17.1
+
diff --git a/poky/meta/recipes-connectivity/inetutils/inetutils_2.1.bb b/poky/meta/recipes-connectivity/inetutils/inetutils_2.1.bb
index 0cf73cd..45b88b1 100644
--- a/poky/meta/recipes-connectivity/inetutils/inetutils_2.1.bb
+++ b/poky/meta/recipes-connectivity/inetutils/inetutils_2.1.bb
@@ -21,6 +21,7 @@
            file://tftpd.xinetd.inetutils \
            file://inetutils-1.9-PATH_PROCNET_DEV.patch \
            file://inetutils-only-check-pam_appl.h-when-pam-enabled.patch \
+           file://CVE-2021-40491.patch \
 "
 
 inherit autotools gettext update-alternatives texinfo
diff --git a/poky/meta/recipes-core/ovmf/ovmf_git.bb b/poky/meta/recipes-core/ovmf/ovmf_git.bb
index 4caf258..5d54bad 100644
--- a/poky/meta/recipes-core/ovmf/ovmf_git.bb
+++ b/poky/meta/recipes-core/ovmf/ovmf_git.bb
@@ -10,7 +10,10 @@
 # compiling OVMF twice, so it is disabled by default. Distros
 # may change that default.
 PACKAGECONFIG ??= ""
+PACKAGECONFIG += "${@bb.utils.contains('MACHINE_FEATURES', 'tpm', 'tpm', '', d)}"
+PACKAGECONFIG += "${@bb.utils.contains('MACHINE_FEATURES', 'tpm2', 'tpm', '', d)}"
 PACKAGECONFIG[secureboot] = ",,,"
+PACKAGECONFIG[tpm] = "-D TPM_ENABLE=TRUE,-D TPM_ENABLE=FALSE,,"
 
 SRC_URI = "gitsm://github.com/tianocore/edk2.git;branch=master;protocol=https \
            file://0001-ovmf-update-path-to-native-BaseTools.patch \
@@ -186,7 +189,7 @@
 
     bbnote "Building without Secure Boot."
     rm -rf ${S}/Build/Ovmf$OVMF_DIR_SUFFIX
-    ${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b RELEASE -t ${FIXED_GCCVER}
+    ${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b RELEASE -t ${FIXED_GCCVER} ${PACKAGECONFIG_CONFARGS}
     ln ${build_dir}/FV/OVMF.fd ${WORKDIR}/ovmf/ovmf.fd
     ln ${build_dir}/FV/OVMF_CODE.fd ${WORKDIR}/ovmf/ovmf.code.fd
     ln ${build_dir}/FV/OVMF_VARS.fd ${WORKDIR}/ovmf/ovmf.vars.fd
@@ -196,7 +199,7 @@
         # Repeat build with the Secure Boot flags.
         bbnote "Building with Secure Boot."
         rm -rf ${S}/Build/Ovmf$OVMF_DIR_SUFFIX
-        ${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b RELEASE -t ${FIXED_GCCVER} ${OVMF_SECURE_BOOT_FLAGS}
+        ${S}/OvmfPkg/build.sh $PARALLEL_JOBS -a $OVMF_ARCH -b RELEASE -t ${FIXED_GCCVER} ${PACKAGECONFIG_CONFARGS} ${OVMF_SECURE_BOOT_FLAGS}
         ln ${build_dir}/FV/OVMF.fd ${WORKDIR}/ovmf/ovmf.secboot.fd
         ln ${build_dir}/FV/OVMF_CODE.fd ${WORKDIR}/ovmf/ovmf.secboot.code.fd
         ln ${build_dir}/${OVMF_ARCH}/EnrollDefaultKeys.efi ${WORKDIR}/ovmf/
diff --git a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
index 663a9cd..84eb46b 100644
--- a/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
+++ b/poky/meta/recipes-core/packagegroups/packagegroup-core-tools-profile.bb
@@ -36,6 +36,7 @@
 SYSTEMTAP:libc-musl = ""
 SYSTEMTAP:nios2 = ""
 SYSTEMTAP:riscv64 = ""
+SYSTEMTAP:riscv32 = ""
 
 LTTNGTOOLS = "lttng-tools"
 LTTNGTOOLS:arc = ""
diff --git a/poky/meta/recipes-core/util-linux/util-linux_2.37.2.bb b/poky/meta/recipes-core/util-linux/util-linux_2.37.2.bb
index 6f2808c..d609c30 100644
--- a/poky/meta/recipes-core/util-linux/util-linux_2.37.2.bb
+++ b/poky/meta/recipes-core/util-linux/util-linux_2.37.2.bb
@@ -37,12 +37,13 @@
                     continue
 
                 pkg = os.path.basename(os.readlink(file))
-                extras[pkg] = extras.get(pkg, '') + ' ' + file.replace(dvar, '', 1)
+                extras.setdefault(pkg, [])
+                extras[pkg].append(file.replace(dvar, '', 1))
 
     pn = d.getVar('PN')
     for pkg, links in extras.items():
         of = d.getVar('FILES:' + pn + '-' + pkg)
-        links = of + links
+        links = of + " " + " ".join(sorted(links))
         d.setVar('FILES:' + pn + '-' + pkg, links)
 }
 
diff --git a/poky/meta/recipes-devtools/elfutils/elfutils_0.185.bb b/poky/meta/recipes-devtools/elfutils/elfutils_0.185.bb
index 9ea4de8..f4769e3 100644
--- a/poky/meta/recipes-devtools/elfutils/elfutils_0.185.bb
+++ b/poky/meta/recipes-devtools/elfutils/elfutils_0.185.bb
@@ -34,7 +34,6 @@
 
 # remove at next version upgrade or when output changes
 PR = "r1"
-HASHEQUIV_HASH_VERSION .= ".2"
 
 inherit autotools gettext ptest pkgconfig
 
diff --git a/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc b/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc
index 6748d74..7104c98 100644
--- a/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc
+++ b/poky/meta/recipes-devtools/libtool/libtool-2.4.6.inc
@@ -24,6 +24,7 @@
            file://0001-Makefile.am-make-sure-autoheader-run-before-autoconf.patch \
            file://0001-Makefile.am-make-sure-autoheader-run-before-automake.patch \
            file://lto-prefix.patch \
+           file://debian-no_hostname.patch \
           "
 
 SRC_URI[md5sum] = "addf44b646ddb4e3919805aa88fa7c5e"
diff --git a/poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb b/poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb
index 95bbc87..fb40ce7 100644
--- a/poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb
+++ b/poky/meta/recipes-devtools/libtool/libtool_2.4.6.bb
@@ -1,6 +1,6 @@
 require libtool-${PV}.inc
 
-SRC_URI += "file://multilib.patch file://debian-no_hostname.patch"
+SRC_URI += "file://multilib.patch"
 
 RDEPENDS:${PN} += "bash"
 
diff --git a/poky/meta/recipes-devtools/perl/perl_5.34.0.bb b/poky/meta/recipes-devtools/perl/perl_5.34.0.bb
index 0e0fe7f..175db4e 100644
--- a/poky/meta/recipes-devtools/perl/perl_5.34.0.bb
+++ b/poky/meta/recipes-devtools/perl/perl_5.34.0.bb
@@ -385,3 +385,10 @@
        chmod 0755 ${SYSROOT_DESTDIR}${bindir}/nativeperl
        cat ${SYSROOT_DESTDIR}${bindir}/nativeperl
 }
+
+SSTATE_HASHEQUIV_FILEMAP = " \
+    populate_sysroot:*/lib*/perl5/*/*/Config_heavy.pl:${TMPDIR} \
+    populate_sysroot:*/lib*/perl5/*/*/Config_heavy.pl:${COREBASE} \
+    populate_sysroot:*/lib*/perl5/config.sh:${TMPDIR} \
+    populate_sysroot:*/lib*/perl5/config.sh:${COREBASE} \
+    "
diff --git a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
index a9ea8b4..7acb1d6 100644
--- a/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
+++ b/poky/meta/recipes-devtools/pseudo/pseudo_git.bb
@@ -13,7 +13,7 @@
     file://older-glibc-symbols.patch"
 SRC_URI[prebuilt.sha256sum] = "ed9f456856e9d86359f169f46a70ad7be4190d6040282b84c8d97b99072485aa"
 
-SRCREV = "21ff2fb690efbe57e7dd867c39aff36ab72a6ac5"
+SRCREV = "0cda3ba5f94aed8d50652a99ee9c502975aa2926"
 S = "${WORKDIR}/git"
 PV = "1.9.0+git${SRCPV}"
 
diff --git a/poky/meta/recipes-devtools/python/python3/reformat_sysconfig.py b/poky/meta/recipes-devtools/python/python3/reformat_sysconfig.py
index c416431..5e2b128 100644
--- a/poky/meta/recipes-devtools/python/python3/reformat_sysconfig.py
+++ b/poky/meta/recipes-devtools/python/python3/reformat_sysconfig.py
@@ -16,6 +16,6 @@
 with open(sys.argv[1], 'w') as f:
     for k in sorted(l.keys()):
         f.write('%s = ' % k)
-        pprint.pprint(l[k], stream=f, width=sys.maxsize)
+        pprint.pprint(l[k], stream=f, width=1)
         f.write('\n')
 
diff --git a/poky/meta/recipes-devtools/python/python3_3.9.6.bb b/poky/meta/recipes-devtools/python/python3_3.9.6.bb
index f04bfc3..8a638b1 100644
--- a/poky/meta/recipes-devtools/python/python3_3.9.6.bb
+++ b/poky/meta/recipes-devtools/python/python3_3.9.6.bb
@@ -161,6 +161,11 @@
 }
 
 do_install:append() {
+        for c in ${D}/${libdir}/python${PYTHON_MAJMIN}/_sysconfigdata*.py; do
+            python3 ${WORKDIR}/reformat_sysconfig.py $c
+        done
+        rm ${D}${libdir}/python${PYTHON_MAJMIN}/__pycache__/_sysconfigdata*.cpython*
+
         mkdir -p ${D}${libdir}/python-sysconfigdata
         sysconfigfile=`find ${D} -name _sysconfig*.py`
         cp $sysconfigfile ${D}${libdir}/python-sysconfigdata/_sysconfigdata.py
@@ -191,6 +196,14 @@
 }
 
 SSTATE_SCAN_FILES += "Makefile _sysconfigdata.py"
+SSTATE_HASHEQUIV_FILEMAP = " \
+    populate_sysroot:*/lib*/python3*/_sysconfigdata*.py:${TMPDIR} \
+    populate_sysroot:*/lib*/python3*/_sysconfigdata*.py:${COREBASE} \
+    populate_sysroot:*/lib*/python3*/config-*/Makefile:${TMPDIR} \
+    populate_sysroot:*/lib*/python3*/config-*/Makefile:${COREBASE} \
+    populate_sysroot:*/lib*/python-sysconfigdata/_sysconfigdata.py:${TMPDIR} \
+    populate_sysroot:*/lib*/python-sysconfigdata/_sysconfigdata.py:${COREBASE} \
+    "
 PACKAGE_PREPROCESS_FUNCS += "py_package_preprocess"
 
 py_package_preprocess () {
diff --git a/poky/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb b/poky/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb
index a0448a1..97b44ad 100644
--- a/poky/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb
+++ b/poky/meta/recipes-devtools/qemu/qemuwrapper-cross_1.0.bb
@@ -18,6 +18,7 @@
 
 	cat >> ${D}${bindir_crossscripts}/${MLPREFIX}qemuwrapper << EOF
 #!/bin/sh
+# Wrapper script to run binaries under qemu user-mode emulation
 set -x
 
 if [ ${@bb.utils.contains('MACHINE_FEATURES', 'qemu-usermode', 'True', 'False', d)} = False -a "${PN}" != "nativesdk-qemuwrapper-cross" ]; then
diff --git a/poky/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch b/poky/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch
new file mode 100644
index 0000000..79b1682
--- /dev/null
+++ b/poky/meta/recipes-devtools/rpm/files/0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch
@@ -0,0 +1,28 @@
+From 2d351c666f09cc1b9e368422653fb42ac8b86249 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Tue, 31 Aug 2021 10:37:05 +0200
+Subject: [PATCH] build/pack.c: do not insert payloadflags into .rpm metadata
+
+The flags look like '19T56' where 19 is the compression level
+(deterministic), and 56 is the amount of threads (varies from one
+host to the next and breaks reproducibility for .rpm).
+
+Upstream-Status: Inappropriate [oe-core specific]
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ build/pack.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/pack.c b/build/pack.c
+index 932cb213e..b45d0726f 100644
+--- a/build/pack.c
++++ b/build/pack.c
+@@ -328,7 +328,7 @@ static char *getIOFlags(Package pkg)
+ 	    headerPutString(pkg->header, RPMTAG_PAYLOADCOMPRESSOR, compr);
+ 	buf = xstrdup(rpmio_flags);
+ 	buf[s - rpmio_flags] = '\0';
+-	headerPutString(pkg->header, RPMTAG_PAYLOADFLAGS, buf+1);
++	headerPutString(pkg->header, RPMTAG_PAYLOADFLAGS, "");
+ 	free(buf);
+     }
+ exit:
diff --git a/poky/meta/recipes-devtools/rpm/rpm_4.16.1.3.bb b/poky/meta/recipes-devtools/rpm/rpm_4.16.1.3.bb
index 189da92..2ff9c2b 100644
--- a/poky/meta/recipes-devtools/rpm/rpm_4.16.1.3.bb
+++ b/poky/meta/recipes-devtools/rpm/rpm_4.16.1.3.bb
@@ -40,6 +40,7 @@
            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-tools-Add-error.h-for-non-glibc-case.patch \
+           file://0001-build-pack.c-do-not-insert-payloadflags-into-.rpm-me.patch \
            "
 
 PE = "1"
@@ -194,3 +195,8 @@
 	sed -i -e 's:--sysroot[^ ]*::g' \
 	    ${PKGD}/${libdir}/rpm/macros
 }
+
+SSTATE_HASHEQUIV_FILEMAP = " \
+    populate_sysroot:*/rpm/macros:${TMPDIR} \
+    populate_sysroot:*/rpm/macros:${COREBASE} \
+    "
diff --git a/poky/meta/recipes-devtools/ruby/ruby/0003-rdoc-build-reproducible-documentation.patch b/poky/meta/recipes-devtools/ruby/ruby/0003-rdoc-build-reproducible-documentation.patch
new file mode 100644
index 0000000..f92f0e1
--- /dev/null
+++ b/poky/meta/recipes-devtools/ruby/ruby/0003-rdoc-build-reproducible-documentation.patch
@@ -0,0 +1,35 @@
+From: Christian Hofstaedtler <zeha@debian.org>
+Date: Tue, 10 Oct 2017 15:04:34 -0300
+Subject: rdoc: build reproducible documentation
+
+- provide a fixed timestamp to the gzip compression
+
+Upstream-Status: Backport [debian]
+
+Signed-off-by: Antonio Terceiro <terceiro@debian.org>
+Signed-off-by: Christian Hofstaedtler <zeha@debian.org>
+---
+ lib/rdoc/generator/json_index.rb | 4 ++--
+ lib/rdoc/rdoc.rb                 | 2 +-
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+--- a/lib/rdoc/generator/json_index.rb
++++ b/lib/rdoc/generator/json_index.rb
+@@ -178,7 +178,7 @@
+     debug_msg "Writing gzipped search index to %s" % outfile
+
+     Zlib::GzipWriter.open(outfile) do |gz|
+-      gz.mtime = File.mtime(search_index_file)
++      gz.mtime = -1
+       gz.orig_name = search_index_file.basename.to_s
+       gz.write search_index
+       gz.close
+@@ -196,7 +196,7 @@
+         debug_msg "Writing gzipped file to %s" % outfile
+
+         Zlib::GzipWriter.open(outfile) do |gz|
+-          gz.mtime = File.mtime(dest)
++          gz.mtime = -1
+           gz.orig_name = dest.basename.to_s
+           gz.write data
+           gz.close
diff --git a/poky/meta/recipes-devtools/ruby/ruby/0004-lib-mkmf.rb-sort-list-of-object-files-in-generated-M.patch b/poky/meta/recipes-devtools/ruby/ruby/0004-lib-mkmf.rb-sort-list-of-object-files-in-generated-M.patch
new file mode 100644
index 0000000..e0aca0d
--- /dev/null
+++ b/poky/meta/recipes-devtools/ruby/ruby/0004-lib-mkmf.rb-sort-list-of-object-files-in-generated-M.patch
@@ -0,0 +1,28 @@
+From: Reiner Herrmann <reiner@reiner-h.de>
+Date: Tue, 10 Oct 2017 15:06:13 -0300
+Subject: lib/mkmf.rb: sort list of object files in generated Makefile
+
+Without sorting the list explicitly, its order is indeterministic,
+because readdir() is also not deterministic.
+When the list of object files varies between builds, they are linked
+in a different order, which results in an unreproducible build.
+
+Upstream-Status: Backport [debian]
+
+Signed-off-by: Antonio Terceiro <terceiro@debian.org>
+Signed-off-by: Reiner Herrmann <reiner@reiner-h.de>
+---
+ lib/mkmf.rb | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/lib/mkmf.rb
++++ b/lib/mkmf.rb
+@@ -2315,7 +2315,7 @@
+ LIBS = #{$LIBRUBYARG} #{$libs} #{$LIBS}
+ ORIG_SRCS = #{orig_srcs.collect(&File.method(:basename)).join(' ')}
+ SRCS = $(ORIG_SRCS) #{(srcs - orig_srcs).collect(&File.method(:basename)).join(' ')}
+-OBJS = #{$objs.join(" ")}
++OBJS = #{$objs.sort.join(" ")}
+ HDRS = #{hdrs.map{|h| '$(srcdir)/' + File.basename(h)}.join(' ')}
+ LOCAL_HDRS = #{$headers.join(' ')}
+ TARGET = #{target}
diff --git a/poky/meta/recipes-devtools/ruby/ruby/0005-Mark-Gemspec-reproducible-change-fixing-784225-too.patch b/poky/meta/recipes-devtools/ruby/ruby/0005-Mark-Gemspec-reproducible-change-fixing-784225-too.patch
new file mode 100644
index 0000000..b7faa58
--- /dev/null
+++ b/poky/meta/recipes-devtools/ruby/ruby/0005-Mark-Gemspec-reproducible-change-fixing-784225-too.patch
@@ -0,0 +1,28 @@
+From: Christian Hofstaedtler <zeha@debian.org>
+Date: Tue, 10 Oct 2017 15:07:11 -0300
+Subject: Mark Gemspec-reproducible change fixing #784225, too
+
+I think the UTC date change will fix the Multi-Arch not-same file issue,
+too.
+
+Upstream-Status: Backport [debian]
+
+Signed-off-by: Antonio Terceiro <terceiro@debian.org>
+Signed-off-by: Christian Hofstaedtler <zeha@debian.org>
+---
+ lib/rubygems/specification.rb | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/lib/rubygems/specification.rb
++++ b/lib/rubygems/specification.rb
+@@ -1695,7 +1695,9 @@
+                 raise(Gem::InvalidSpecificationException,
+                       "invalid date format in specification: #{date.inspect}")
+               end
+-            when Time, DateLike then
++            when Time then
++              Time.utc(date.utc.year, date.utc.month, date.utc.day)
++            when DateLike then
+               Time.utc(date.year, date.month, date.day)
+             else
+               TODAY
diff --git a/poky/meta/recipes-devtools/ruby/ruby/0006-Make-gemspecs-reproducible.patch b/poky/meta/recipes-devtools/ruby/ruby/0006-Make-gemspecs-reproducible.patch
new file mode 100644
index 0000000..504893b
--- /dev/null
+++ b/poky/meta/recipes-devtools/ruby/ruby/0006-Make-gemspecs-reproducible.patch
@@ -0,0 +1,67 @@
+From: Lucas Kanashiro <kanashiro@debian.org>
+Date: Fri, 1 Nov 2019 15:25:17 -0300
+Subject: Make gemspecs reproducible
+
+Without an explicit date, they will get the current date and make the
+build unreproducible
+
+Upstream-Status: Backport [debian]
+
+---
+ ext/bigdecimal/bigdecimal.gemspec | 1 +
+ ext/fiddle/fiddle.gemspec         | 1 +
+ ext/io/console/io-console.gemspec | 2 +-
+ lib/ipaddr.gemspec                | 1 +
+ lib/rdoc/rdoc.gemspec             | 1 +
+ 5 files changed, 5 insertions(+), 1 deletion(-)
+
+--- a/ext/bigdecimal/bigdecimal.gemspec
++++ b/ext/bigdecimal/bigdecimal.gemspec
+@@ -6,6 +6,7 @@
+   s.name          = "bigdecimal"
+   s.version       = bigdecimal_version
+   s.authors       = ["Kenta Murata", "Zachary Scott", "Shigeo Kobayashi"]
++  s.date          = RUBY_RELEASE_DATE
+   s.email         = ["mrkn@mrkn.jp"]
+
+   s.summary       = "Arbitrary-precision decimal floating-point number library."
+--- a/ext/fiddle/fiddle.gemspec
++++ b/ext/fiddle/fiddle.gemspec
+@@ -8,6 +8,7 @@
+ Gem::Specification.new do |spec|
+   spec.name          = "fiddle"
+   spec.version       = version_module::Fiddle::VERSION
++  spec.date          = RUBY_RELEASE_DATE
+   spec.authors       = ["Aaron Patterson", "SHIBATA Hiroshi"]
+   spec.email         = ["aaron@tenderlovemaking.com", "hsbt@ruby-lang.org"]
+
+--- a/ext/io/console/io-console.gemspec
++++ b/ext/io/console/io-console.gemspec
+@@ -4,6 +4,7 @@
+ Gem::Specification.new do |s|
+   s.name = "io-console"
+   s.version = _VERSION
++  s.date = RUBY_RELEASE_DATE
+   s.summary = "Console interface"
+   s.email = "nobu@ruby-lang.org"
+   s.description = "add console capabilities to IO instances."
+--- a/lib/ipaddr.gemspec
++++ b/lib/ipaddr.gemspec
+@@ -6,6 +6,7 @@
+ Gem::Specification.new do |spec|
+   spec.name          = "ipaddr"
+   spec.version       = "1.2.2"
++  spec.date          = RUBY_RELEASE_DATE
+   spec.authors       = ["Akinori MUSHA", "Hajimu UMEMOTO"]
+   spec.email         = ["knu@idaemons.org", "ume@mahoroba.org"]
+
+--- a/lib/rdoc/rdoc.gemspec
++++ b/lib/rdoc/rdoc.gemspec
+@@ -7,6 +7,7 @@
+
+ Gem::Specification.new do |s|
+   s.name = "rdoc"
++  s.date = RUBY_RELEASE_DATE
+   s.version = RDoc::VERSION
+
+   s.authors = [
diff --git a/poky/meta/recipes-devtools/ruby/ruby_3.0.2.bb b/poky/meta/recipes-devtools/ruby/ruby_3.0.2.bb
index 38e594a..2abf504 100644
--- a/poky/meta/recipes-devtools/ruby/ruby_3.0.2.bb
+++ b/poky/meta/recipes-devtools/ruby/ruby_3.0.2.bb
@@ -7,6 +7,10 @@
            file://run-ptest \
            file://0001-template-Makefile.in-do-not-write-host-cross-cc-item.patch \
            file://0002-template-Makefile.in-filter-out-f-prefix-map.patch \
+           file://0003-rdoc-build-reproducible-documentation.patch \
+           file://0004-lib-mkmf.rb-sort-list-of-object-files-in-generated-M.patch \
+           file://0005-Mark-Gemspec-reproducible-change-fixing-784225-too.patch \
+           file://0006-Make-gemspecs-reproducible.patch \
            "
 
 SRC_URI[sha256sum] = "5085dee0ad9f06996a8acec7ebea4a8735e6fac22f22e2d98c3f2bc3bef7e6f1"
diff --git a/poky/meta/recipes-devtools/strace/strace_5.13.bb b/poky/meta/recipes-devtools/strace/strace_5.14.bb
similarity index 95%
rename from poky/meta/recipes-devtools/strace/strace_5.13.bb
rename to poky/meta/recipes-devtools/strace/strace_5.14.bb
index 7d93f2d..02a4843 100644
--- a/poky/meta/recipes-devtools/strace/strace_5.13.bb
+++ b/poky/meta/recipes-devtools/strace/strace_5.14.bb
@@ -15,7 +15,7 @@
            file://uintptr_t.patch \
            file://0001-strace-fix-reproducibilty-issues.patch \
            "
-SRC_URI[sha256sum] = "5acc34888b9d510ad6ac915d4a8df08f51cf1ae920ea24649f6a4bb984d0b656"
+SRC_URI[sha256sum] = "901bee6db5e17debad4530dd9ffb4dc9a96c4a656edbe1c3141b7cb307b11e73"
 
 inherit autotools ptest
 
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 0dd18d7..62aa1b0 100644
--- a/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
+++ b/poky/meta/recipes-devtools/syslinux/syslinux_6.04-pre2.bb
@@ -28,7 +28,6 @@
 
 # remove at next version upgrade or when output changes
 PR = "r1"
-HASHEQUIV_HASH_VERSION .= ".1"
 
 RECIPE_NO_UPDATE_REASON = "6.04-pre3 is broken"
 UPSTREAM_CHECK_URI = "https://www.zytor.com/pub/syslinux/"
diff --git a/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am b/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am
index 7338df0..d12d3a4 100644
--- a/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am
+++ b/poky/meta/recipes-extended/bzip2/bzip2/Makefile.am
@@ -1,6 +1,6 @@
 
 lib_LTLIBRARIES = libbz2.la
-libbz2_la_LDFLAGS = -version-info 1:6:0
+libbz2_la_LDFLAGS = -version-info 1:8:0
 
 libbz2_la_SOURCES = blocksort.c  \
                     huffman.c    \
diff --git a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.68.0.bb b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.68.0.bb
index cf1349f..b1d3d8a 100644
--- a/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.68.0.bb
+++ b/poky/meta/recipes-gnome/gobject-introspection/gobject-introspection_1.68.0.bb
@@ -93,7 +93,7 @@
         # from the target sysroot.
         cat > ${B}/g-ir-scanner-wrapper << EOF
 #!/bin/sh
-# This prevents g-ir-scanner from writing cache data to $HOME
+# This prevents g-ir-scanner from writing cache data to user's HOME dir
 export GI_SCANNER_DISABLE_CACHE=1
 
 g-ir-scanner --lib-dirs-envvar=GIR_EXTRA_LIBS_PATH --use-binary-wrapper=${STAGING_BINDIR}/g-ir-scanner-qemuwrapper --use-ldd-wrapper=${STAGING_BINDIR}/g-ir-scanner-lddwrapper --add-include-path=${STAGING_DATADIR}/gir-1.0 --add-include-path=${STAGING_LIBDIR}/gir-1.0 "\$@"
diff --git a/poky/meta/recipes-graphics/glew/glew/notempdir.patch b/poky/meta/recipes-graphics/glew/glew/notempdir.patch
new file mode 100644
index 0000000..8d79ce0
--- /dev/null
+++ b/poky/meta/recipes-graphics/glew/glew/notempdir.patch
@@ -0,0 +1,19 @@
+We don't use the dist-* targets and hence DIST_DIR isn't used. The current code
+creates a new temp directory in /tmp/ for every invocation of make. Lets
+not do that.
+
+Upstream-Status: Pending [a revised version would be needed for upstream]
+Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
+
+Index: glew-2.2.0/Makefile
+===================================================================
+--- glew-2.2.0.orig/Makefile
++++ glew-2.2.0/Makefile
+@@ -56,7 +56,6 @@ DIST_SRC_ZIP ?= $(shell pwd)/$(DIST_NAME
+ DIST_SRC_TGZ ?= $(shell pwd)/$(DIST_NAME).tgz
+ DIST_WIN32   ?= $(shell pwd)/$(DIST_NAME)-win32.zip
+ 
+-DIST_DIR := $(shell mktemp -d /tmp/glew.XXXXXX)/$(DIST_NAME)
+ 
+ # To disable stripping of linked binaries either:
+ #   - use STRIP= on gmake command-line
diff --git a/poky/meta/recipes-graphics/glew/glew_2.2.0.bb b/poky/meta/recipes-graphics/glew/glew_2.2.0.bb
index 92b6083..d7a26a3 100644
--- a/poky/meta/recipes-graphics/glew/glew_2.2.0.bb
+++ b/poky/meta/recipes-graphics/glew/glew_2.2.0.bb
@@ -7,6 +7,7 @@
 
 SRC_URI = "${SOURCEFORGE_MIRROR}/project/glew/glew/${PV}/glew-${PV}.tgz \
            file://0001-Fix-build-race-in-Makefile.patch \
+           file://notempdir.patch \
            file://no-strip.patch"
 
 SRC_URI[md5sum] = "3579164bccaef09e36c0af7f4fd5c7c7"
diff --git a/poky/meta/recipes-graphics/mesa/mesa.inc b/poky/meta/recipes-graphics/mesa/mesa.inc
index 0a7a3ca..282671d 100644
--- a/poky/meta/recipes-graphics/mesa/mesa.inc
+++ b/poky/meta/recipes-graphics/mesa/mesa.inc
@@ -257,7 +257,7 @@
     import re
     dri_drivers_root = oe.path.join(d.getVar('PKGD'), d.getVar('libdir'), "dri")
     if os.path.isdir(dri_drivers_root):
-        dri_pkgs = os.listdir(dri_drivers_root)
+        dri_pkgs = sorted(os.listdir(dri_drivers_root))
         lib_name = d.expand("${MLPREFIX}mesa-megadriver")
         for p in dri_pkgs:
             m = re.match(r'^(.*)_dri\.so$', p)
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
index 0911787..f58b5ab 100644
--- a/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
+++ b/poky/meta/recipes-kernel/linux/linux-yocto-dev.bb
@@ -30,7 +30,7 @@
 SRCREV_machine ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
 SRCREV_meta ?= '${@oe.utils.conditional("PREFERRED_PROVIDER_virtual/kernel", "linux-yocto-dev", "${AUTOREV}", "29594404d7fe73cd80eaa4ee8c43dcc53970c60e", d)}'
 
-LINUX_VERSION ?= "5.14+"
+LINUX_VERSION ?= "5.15+"
 LINUX_VERSION_EXTENSION ?= "-yoctodev-${LINUX_KERNEL_TYPE}"
 PV = "${LINUX_VERSION}+git${SRCPV}"
 
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.13.bb b/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.13.bb
deleted file mode 100644
index 0b534c3..0000000
--- a/poky/meta/recipes-kernel/linux/linux-yocto-rt_5.13.bb
+++ /dev/null
@@ -1,45 +0,0 @@
-KBRANCH ?= "v5.13/standard/preempt-rt/base"
-
-require recipes-kernel/linux/linux-yocto.inc
-
-# Skip processing of this recipe if it is not explicitly specified as the
-# PREFERRED_PROVIDER for virtual/kernel. This avoids errors when trying
-# to build multiple virtual/kernel providers, e.g. as dependency of
-# core-image-rt-sdk, core-image-rt.
-python () {
-    if d.getVar("KERNEL_PACKAGE_NAME") == "kernel" and d.getVar("PREFERRED_PROVIDER_virtual/kernel") != "linux-yocto-rt":
-        raise bb.parse.SkipRecipe("Set PREFERRED_PROVIDER_virtual/kernel to linux-yocto-rt to enable it")
-}
-
-SRCREV_machine ?= "eaf308f87d26c526da01d90bfb3581e2f40e32e7"
-SRCREV_meta ?= "c38435a3cacf424fa686ecac9a95ef8349b83bb3"
-
-SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
-           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.13;destsuffix=${KMETA}"
-
-LINUX_VERSION ?= "5.13.15"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-
-DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
-DEPENDS += "openssl-native util-linux-native"
-
-PV = "${LINUX_VERSION}+git${SRCPV}"
-
-KMETA = "kernel-meta"
-KCONF_BSP_AUDIT_LEVEL = "1"
-
-LINUX_KERNEL_TYPE = "preempt-rt"
-
-COMPATIBLE_MACHINE = "(qemux86|qemux86-64|qemuarm|qemuarmv5|qemuarm64|qemuppc|qemumips)"
-
-KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
-
-# Functionality flags
-KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc features/taskstats/taskstats.scc"
-KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
-KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
-KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
-KERNEL_FEATURES:append = "${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.13.bb b/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.13.bb
deleted file mode 100644
index 5b71d75..0000000
--- a/poky/meta/recipes-kernel/linux/linux-yocto-tiny_5.13.bb
+++ /dev/null
@@ -1,32 +0,0 @@
-KBRANCH ?= "v5.13/standard/tiny/base"
-KBRANCH:qemuarm  ?= "v5.13/standard/tiny/arm-versatile-926ejs"
-
-LINUX_KERNEL_TYPE = "tiny"
-KCONFIG_MODE = "--allnoconfig"
-
-require recipes-kernel/linux/linux-yocto.inc
-
-LINUX_VERSION ?= "5.13.15"
-LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-
-DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
-DEPENDS += "openssl-native util-linux-native"
-
-KMETA = "kernel-meta"
-KCONF_BSP_AUDIT_LEVEL = "2"
-
-SRCREV_machine:qemuarm ?= "94f45ad50950df80adbf1a8e1bbc110abff5bbc4"
-SRCREV_machine ?= "3bd6397a9acc2cd13228c09097d61c8d1aa3bbdf"
-SRCREV_meta ?= "c38435a3cacf424fa686ecac9a95ef8349b83bb3"
-
-PV = "${LINUX_VERSION}+git${SRCPV}"
-
-SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;branch=${KBRANCH};name=machine \
-           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.13;destsuffix=${KMETA}"
-
-COMPATIBLE_MACHINE = "qemux86|qemux86-64|qemuarm|qemuarmv5"
-
-# Functionality flags
-KERNEL_FEATURES = ""
-
-KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
diff --git a/poky/meta/recipes-kernel/linux/linux-yocto_5.13.bb b/poky/meta/recipes-kernel/linux/linux-yocto_5.13.bb
deleted file mode 100644
index a17bddf..0000000
--- a/poky/meta/recipes-kernel/linux/linux-yocto_5.13.bb
+++ /dev/null
@@ -1,68 +0,0 @@
-KBRANCH ?= "v5.13/standard/base"
-
-require recipes-kernel/linux/linux-yocto.inc
-
-# board specific branches
-KBRANCH:qemuarm  ?= "v5.13/standard/arm-versatile-926ejs"
-KBRANCH:qemuarm64 ?= "v5.13/standard/qemuarm64"
-KBRANCH:qemumips ?= "v5.13/standard/mti-malta32"
-KBRANCH:qemuppc  ?= "v5.13/standard/qemuppc"
-KBRANCH:qemuriscv64  ?= "v5.13/standard/base"
-KBRANCH:qemuriscv32  ?= "v5.13/standard/base"
-KBRANCH:qemux86  ?= "v5.13/standard/base"
-KBRANCH:qemux86-64 ?= "v5.13/standard/base"
-KBRANCH:qemumips64 ?= "v5.13/standard/mti-malta64"
-
-SRCREV_machine:qemuarm ?= "482fd531f2e6ce11c2f2815b90e91452009f18ee"
-SRCREV_machine:qemuarm64 ?= "c75650fdc9635f92e0b04c0da0336141f1f8fa54"
-SRCREV_machine:qemumips ?= "f8be183487cb429e66e49a2cfd989847c9298a3e"
-SRCREV_machine:qemuppc ?= "e55911fc5834f4d5aa527f885cab0ab2a0dbb4b9"
-SRCREV_machine:qemuriscv64 ?= "7280c93f5599946db3add473eeb05b34c364938d"
-SRCREV_machine:qemuriscv32 ?= "7280c93f5599946db3add473eeb05b34c364938d"
-SRCREV_machine:qemux86 ?= "7280c93f5599946db3add473eeb05b34c364938d"
-SRCREV_machine:qemux86-64 ?= "7280c93f5599946db3add473eeb05b34c364938d"
-SRCREV_machine:qemumips64 ?= "07540093c1a8f876fc6f9410aecc3d7d417780ed"
-SRCREV_machine ?= "7280c93f5599946db3add473eeb05b34c364938d"
-SRCREV_meta ?= "c38435a3cacf424fa686ecac9a95ef8349b83bb3"
-
-# set your preferred provider of linux-yocto to 'linux-yocto-upstream', and you'll
-# get the <version>/base branch, which is pure upstream -stable, and the same
-# meta SRCREV as the linux-yocto-standard builds. Select your version using the
-# normal PREFERRED_VERSION settings.
-BBCLASSEXTEND = "devupstream:target"
-DEFAULT_PREFERENCE:class-devupstream = "-1"
-SRCREV_machine:class-devupstream ?= "b8c3cc76091b35ad6a3d31cfe152870a6467611f"
-PN:class-devupstream = "linux-yocto-upstream"
-KBRANCH:class-devupstream = "v5.13/base"
-
-# remap qemuarm to qemuarma15 for the 5.8 kernel
-# KMACHINE:qemuarm ?= "qemuarma15"
-
-SRC_URI = "git://git.yoctoproject.org/linux-yocto.git;name=machine;branch=${KBRANCH}; \
-           git://git.yoctoproject.org/yocto-kernel-cache;type=kmeta;name=meta;branch=yocto-5.13;destsuffix=${KMETA}"
-
-LIC_FILES_CHKSUM = "file://COPYING;md5=6bc538ed5bd9a7fc9398086aedcd7e46"
-LINUX_VERSION ?= "5.13.15"
-
-DEPENDS += "${@bb.utils.contains('ARCH', 'x86', 'elfutils-native', '', d)}"
-DEPENDS += "openssl-native util-linux-native"
-DEPENDS += "gmp-native"
-
-PV = "${LINUX_VERSION}+git${SRCPV}"
-
-KMETA = "kernel-meta"
-KCONF_BSP_AUDIT_LEVEL = "1"
-
-KERNEL_DEVICETREE:qemuarmv5 = "versatile-pb.dtb"
-
-COMPATIBLE_MACHINE = "qemuarm|qemuarmv5|qemuarm64|qemux86|qemuppc|qemuppc64|qemumips|qemumips64|qemux86-64|qemuriscv64|qemuriscv32"
-
-# Functionality flags
-KERNEL_EXTRA_FEATURES ?= "features/netfilter/netfilter.scc"
-KERNEL_FEATURES:append = " ${KERNEL_EXTRA_FEATURES}"
-KERNEL_FEATURES:append:qemuall=" cfg/virtio.scc features/drm-bochs/drm-bochs.scc"
-KERNEL_FEATURES:append:qemux86=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES:append:qemux86-64=" cfg/sound.scc cfg/paravirt_kvm.scc"
-KERNEL_FEATURES:append = " ${@bb.utils.contains("TUNE_FEATURES", "mx32", " cfg/x32.scc", "", d)}"
-KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/scsi/scsi-debug.scc", "", d)}"
-KERNEL_FEATURES:append = " ${@bb.utils.contains("DISTRO_FEATURES", "ptest", " features/gpio/mockup.scc", "", d)}"
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-cpu-hotplug-Remove-deprecated-CPU-hotplug-functi.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-cpu-hotplug-Remove-deprecated-CPU-hotplug-functi.patch
new file mode 100644
index 0000000..4e52e5f
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0001-fix-cpu-hotplug-Remove-deprecated-CPU-hotplug-functi.patch
@@ -0,0 +1,394 @@
+From 8be4c8a38ee1e297578e094a6e4c143ec5259aba Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 13 Sep 2021 12:00:38 -0400
+Subject: [PATCH 1/2] fix: cpu/hotplug: Remove deprecated CPU-hotplug
+ functions. (v5.15)
+
+The CPU-hotplug functions get|put_online_cpus() were deprecated in v4.13
+and removed in v5.15.
+
+See upstream commits :
+
+commit 8c854303ce0e38e5bbedd725ff39da7e235865d8
+Author: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
+Date:   Tue Aug 3 16:16:21 2021 +0200
+
+    cpu/hotplug: Remove deprecated CPU-hotplug functions.
+
+    No users in tree use the deprecated CPU-hotplug functions anymore.
+
+    Remove them.
+
+Introduced in v4.13 :
+
+  commit 8f553c498e1772cccb39a114da4a498d22992758
+  Author: Thomas Gleixner <tglx@linutronix.de>
+  Date:   Wed May 24 10:15:12 2017 +0200
+
+    cpu/hotplug: Provide cpus_read|write_[un]lock()
+
+    The counting 'rwsem' hackery of get|put_online_cpus() is going to be
+    replaced by percpu rwsem.
+
+    Rename the functions to make it clear that it's locking and not some
+    refcount style interface. These new functions will be used for the
+    preparatory patches which make the code ready for the percpu rwsem
+    conversion.
+
+    Rename all instances in the cpu hotplug code while at it.
+
+Upstream-Status: backport [https://git.lttng.org/?p=lttng-modules.git;a=commit;h=ffcc873470121ef1ebb110df3d9038a38d9cb7cb]
+
+Change-Id: I5a37cf5afc075a402b7347989fac637dfa60a1ed
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ include/wrapper/cpu.h                     | 44 +++++++++++++++++++++++
+ src/lib/ringbuffer/ring_buffer_backend.c  |  8 ++---
+ src/lib/ringbuffer/ring_buffer_frontend.c | 17 ++++-----
+ src/lib/ringbuffer/ring_buffer_iterator.c | 15 ++++----
+ src/lttng-context-perf-counters.c         | 11 +++---
+ src/lttng-statedump-impl.c                |  6 ++--
+ 6 files changed, 74 insertions(+), 27 deletions(-)
+ create mode 100644 include/wrapper/cpu.h
+
+diff --git a/include/wrapper/cpu.h b/include/wrapper/cpu.h
+new file mode 100644
+index 00000000..cbee1962
+--- /dev/null
++++ b/include/wrapper/cpu.h
+@@ -0,0 +1,44 @@
++/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
++ *
++ * wrapper/cpu.h
++ *
++ * Copyright (C) 2021 Michael Jeanson <mjeanson@efficios.com>
++ */
++
++#ifndef _LTTNG_WRAPPER_CPU_H
++#define _LTTNG_WRAPPER_CPU_H
++
++#include <linux/cpu.h>
++#include <lttng/kernel-version.h>
++
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0))
++
++static inline
++void lttng_cpus_read_lock(void)
++{
++	cpus_read_lock();
++}
++
++static inline
++void lttng_cpus_read_unlock(void)
++{
++	cpus_read_unlock();
++}
++
++#else /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0) */
++
++static inline
++void lttng_cpus_read_lock(void)
++{
++	get_online_cpus();
++}
++
++static inline
++void lttng_cpus_read_unlock(void)
++{
++	put_online_cpus();
++}
++
++#endif /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,13,0) */
++
++#endif /* _LTTNG_WRAPPER_CPU_H */
+diff --git a/src/lib/ringbuffer/ring_buffer_backend.c b/src/lib/ringbuffer/ring_buffer_backend.c
+index 26efb2bc..9a339be0 100644
+--- a/src/lib/ringbuffer/ring_buffer_backend.c
++++ b/src/lib/ringbuffer/ring_buffer_backend.c
+@@ -12,10 +12,10 @@
+ #include <linux/delay.h>
+ #include <linux/errno.h>
+ #include <linux/slab.h>
+-#include <linux/cpu.h>
+ #include <linux/mm.h>
+ #include <linux/vmalloc.h>
+ 
++#include <wrapper/cpu.h>
+ #include <wrapper/mm.h>
+ #include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_mappings() */
+ #include <ringbuffer/config.h>
+@@ -445,14 +445,14 @@ int channel_backend_init(struct channel_backend *chanb,
+ 			chanb->cpu_hp_notifier.priority = 5;
+ 			register_hotcpu_notifier(&chanb->cpu_hp_notifier);
+ 
+-			get_online_cpus();
++			lttng_cpus_read_lock();
+ 			for_each_online_cpu(i) {
+ 				ret = lib_ring_buffer_create(per_cpu_ptr(chanb->buf, i),
+ 							 chanb, i);
+ 				if (ret)
+ 					goto free_bufs;	/* cpu hotplug locked */
+ 			}
+-			put_online_cpus();
++			lttng_cpus_read_unlock();
+ #else
+ 			for_each_possible_cpu(i) {
+ 				ret = lib_ring_buffer_create(per_cpu_ptr(chanb->buf, i),
+@@ -485,7 +485,7 @@ free_bufs:
+ 		 */
+ #else /* #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
+ #ifdef CONFIG_HOTPLUG_CPU
+-		put_online_cpus();
++		lttng_cpus_read_unlock();
+ 		unregister_hotcpu_notifier(&chanb->cpu_hp_notifier);
+ #endif
+ #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
+diff --git a/src/lib/ringbuffer/ring_buffer_frontend.c b/src/lib/ringbuffer/ring_buffer_frontend.c
+index e9056118..87a575d0 100644
+--- a/src/lib/ringbuffer/ring_buffer_frontend.c
++++ b/src/lib/ringbuffer/ring_buffer_frontend.c
+@@ -48,6 +48,7 @@
+ #include <ringbuffer/iterator.h>
+ #include <ringbuffer/nohz.h>
+ #include <wrapper/atomic.h>
++#include <wrapper/cpu.h>
+ #include <wrapper/kref.h>
+ #include <wrapper/percpu-defs.h>
+ #include <wrapper/timer.h>
+@@ -724,7 +725,7 @@ static void channel_unregister_notifiers(struct lttng_kernel_ring_buffer_channel
+ 			int cpu;
+ 
+ #ifdef CONFIG_HOTPLUG_CPU
+-			get_online_cpus();
++			lttng_cpus_read_lock();
+ 			chan->cpu_hp_enable = 0;
+ 			for_each_online_cpu(cpu) {
+ 				struct lttng_kernel_ring_buffer *buf = per_cpu_ptr(chan->backend.buf,
+@@ -732,7 +733,7 @@ static void channel_unregister_notifiers(struct lttng_kernel_ring_buffer_channel
+ 				lib_ring_buffer_stop_switch_timer(buf);
+ 				lib_ring_buffer_stop_read_timer(buf);
+ 			}
+-			put_online_cpus();
++			lttng_cpus_read_unlock();
+ 			unregister_cpu_notifier(&chan->cpu_hp_notifier);
+ #else
+ 			for_each_possible_cpu(cpu) {
+@@ -772,14 +773,14 @@ void lib_ring_buffer_set_quiescent_channel(struct lttng_kernel_ring_buffer_chann
+ 	const struct lttng_kernel_ring_buffer_config *config = &chan->backend.config;
+ 
+ 	if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
+-		get_online_cpus();
++		lttng_cpus_read_lock();
+ 		for_each_channel_cpu(cpu, chan) {
+ 			struct lttng_kernel_ring_buffer *buf = per_cpu_ptr(chan->backend.buf,
+ 							      cpu);
+ 
+ 			lib_ring_buffer_set_quiescent(buf);
+ 		}
+-		put_online_cpus();
++		lttng_cpus_read_unlock();
+ 	} else {
+ 		struct lttng_kernel_ring_buffer *buf = chan->backend.buf;
+ 
+@@ -794,14 +795,14 @@ void lib_ring_buffer_clear_quiescent_channel(struct lttng_kernel_ring_buffer_cha
+ 	const struct lttng_kernel_ring_buffer_config *config = &chan->backend.config;
+ 
+ 	if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
+-		get_online_cpus();
++		lttng_cpus_read_lock();
+ 		for_each_channel_cpu(cpu, chan) {
+ 			struct lttng_kernel_ring_buffer *buf = per_cpu_ptr(chan->backend.buf,
+ 							      cpu);
+ 
+ 			lib_ring_buffer_clear_quiescent(buf);
+ 		}
+-		put_online_cpus();
++		lttng_cpus_read_unlock();
+ 	} else {
+ 		struct lttng_kernel_ring_buffer *buf = chan->backend.buf;
+ 
+@@ -899,7 +900,7 @@ struct lttng_kernel_ring_buffer_channel *channel_create(const struct lttng_kerne
+ 			chan->cpu_hp_notifier.priority = 6;
+ 			register_cpu_notifier(&chan->cpu_hp_notifier);
+ 
+-			get_online_cpus();
++			lttng_cpus_read_lock();
+ 			for_each_online_cpu(cpu) {
+ 				struct lttng_kernel_ring_buffer *buf = per_cpu_ptr(chan->backend.buf,
+ 								       cpu);
+@@ -909,7 +910,7 @@ struct lttng_kernel_ring_buffer_channel *channel_create(const struct lttng_kerne
+ 				spin_unlock(&per_cpu(ring_buffer_nohz_lock, cpu));
+ 			}
+ 			chan->cpu_hp_enable = 1;
+-			put_online_cpus();
++			lttng_cpus_read_unlock();
+ #else
+ 			for_each_possible_cpu(cpu) {
+ 				struct lttng_kernel_ring_buffer *buf = per_cpu_ptr(chan->backend.buf,
+diff --git a/src/lib/ringbuffer/ring_buffer_iterator.c b/src/lib/ringbuffer/ring_buffer_iterator.c
+index 25839af6..60c95ca6 100644
+--- a/src/lib/ringbuffer/ring_buffer_iterator.c
++++ b/src/lib/ringbuffer/ring_buffer_iterator.c
+@@ -10,6 +10,7 @@
+  */
+ 
+ #include <ringbuffer/iterator.h>
++#include <wrapper/cpu.h>
+ #include <wrapper/file.h>
+ #include <wrapper/uaccess.h>
+ #include <linux/jiffies.h>
+@@ -440,13 +441,13 @@ int channel_iterator_init(struct lttng_kernel_ring_buffer_channel *chan)
+ 			chan->hp_iter_notifier.priority = 10;
+ 			register_cpu_notifier(&chan->hp_iter_notifier);
+ 
+-			get_online_cpus();
++			lttng_cpus_read_lock();
+ 			for_each_online_cpu(cpu) {
+ 				buf = per_cpu_ptr(chan->backend.buf, cpu);
+ 				lib_ring_buffer_iterator_init(chan, buf);
+ 			}
+ 			chan->hp_iter_enable = 1;
+-			put_online_cpus();
++			lttng_cpus_read_unlock();
+ #else
+ 			for_each_possible_cpu(cpu) {
+ 				buf = per_cpu_ptr(chan->backend.buf, cpu);
+@@ -519,7 +520,7 @@ int channel_iterator_open(struct lttng_kernel_ring_buffer_channel *chan)
+ 	CHAN_WARN_ON(chan, config->output != RING_BUFFER_ITERATOR);
+ 
+ 	if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
+-		get_online_cpus();
++		lttng_cpus_read_lock();
+ 		/* Allow CPU hotplug to keep track of opened reader */
+ 		chan->iter.read_open = 1;
+ 		for_each_channel_cpu(cpu, chan) {
+@@ -529,7 +530,7 @@ int channel_iterator_open(struct lttng_kernel_ring_buffer_channel *chan)
+ 				goto error;
+ 			buf->iter.read_open = 1;
+ 		}
+-		put_online_cpus();
++		lttng_cpus_read_unlock();
+ 	} else {
+ 		buf = channel_get_ring_buffer(config, chan, 0);
+ 		ret = lib_ring_buffer_iterator_open(buf);
+@@ -538,7 +539,7 @@ int channel_iterator_open(struct lttng_kernel_ring_buffer_channel *chan)
+ error:
+ 	/* Error should always happen on CPU 0, hence no close is required. */
+ 	CHAN_WARN_ON(chan, cpu != 0);
+-	put_online_cpus();
++	lttng_cpus_read_unlock();
+ 	return ret;
+ }
+ EXPORT_SYMBOL_GPL(channel_iterator_open);
+@@ -550,7 +551,7 @@ void channel_iterator_release(struct lttng_kernel_ring_buffer_channel *chan)
+ 	int cpu;
+ 
+ 	if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) {
+-		get_online_cpus();
++		lttng_cpus_read_lock();
+ 		for_each_channel_cpu(cpu, chan) {
+ 			buf = channel_get_ring_buffer(config, chan, cpu);
+ 			if (buf->iter.read_open) {
+@@ -559,7 +560,7 @@ void channel_iterator_release(struct lttng_kernel_ring_buffer_channel *chan)
+ 			}
+ 		}
+ 		chan->iter.read_open = 0;
+-		put_online_cpus();
++		lttng_cpus_read_unlock();
+ 	} else {
+ 		buf = channel_get_ring_buffer(config, chan, 0);
+ 		lib_ring_buffer_iterator_release(buf);
+diff --git a/src/lttng-context-perf-counters.c b/src/lttng-context-perf-counters.c
+index b0227d47..372f05e0 100644
+--- a/src/lttng-context-perf-counters.c
++++ b/src/lttng-context-perf-counters.c
+@@ -16,6 +16,7 @@
+ #include <lttng/events.h>
+ #include <lttng/events-internal.h>
+ #include <ringbuffer/frontend_types.h>
++#include <wrapper/cpu.h>
+ #include <wrapper/vmalloc.h>
+ #include <wrapper/perf.h>
+ #include <lttng/tracer.h>
+@@ -97,10 +98,10 @@ void lttng_destroy_perf_counter_ctx_field(void *priv)
+ 	{
+ 		int cpu;
+ 
+-		get_online_cpus();
++		lttng_cpus_read_lock();
+ 		for_each_online_cpu(cpu)
+ 			perf_event_release_kernel(events[cpu]);
+-		put_online_cpus();
++		lttng_cpus_read_unlock();
+ #ifdef CONFIG_HOTPLUG_CPU
+ 		unregister_cpu_notifier(&perf_field->nb);
+ #endif
+@@ -304,7 +305,7 @@ int lttng_add_perf_counter_to_ctx(uint32_t type,
+ 		perf_field->nb.priority = 0;
+ 		register_cpu_notifier(&perf_field->nb);
+ #endif
+-		get_online_cpus();
++		lttng_cpus_read_lock();
+ 		for_each_online_cpu(cpu) {
+ 			events[cpu] = wrapper_perf_event_create_kernel_counter(attr,
+ 						cpu, NULL, overflow_callback);
+@@ -317,7 +318,7 @@ int lttng_add_perf_counter_to_ctx(uint32_t type,
+ 				goto counter_busy;
+ 			}
+ 		}
+-		put_online_cpus();
++		lttng_cpus_read_unlock();
+ 		perf_field->hp_enable = 1;
+ 	}
+ #endif /* #else #if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,10,0)) */
+@@ -351,7 +352,7 @@ counter_error:
+ 			if (events[cpu] && !IS_ERR(events[cpu]))
+ 				perf_event_release_kernel(events[cpu]);
+ 		}
+-		put_online_cpus();
++		lttng_cpus_read_unlock();
+ #ifdef CONFIG_HOTPLUG_CPU
+ 		unregister_cpu_notifier(&perf_field->nb);
+ #endif
+diff --git a/src/lttng-statedump-impl.c b/src/lttng-statedump-impl.c
+index 4dfbca0b..2b42783a 100644
+--- a/src/lttng-statedump-impl.c
++++ b/src/lttng-statedump-impl.c
+@@ -23,7 +23,6 @@
+ #include <linux/file.h>
+ #include <linux/interrupt.h>
+ #include <linux/irqnr.h>
+-#include <linux/cpu.h>
+ #include <linux/netdevice.h>
+ #include <linux/inetdevice.h>
+ #include <linux/mm.h>
+@@ -34,6 +33,7 @@
+ 
+ #include <lttng/events.h>
+ #include <lttng/tracer.h>
++#include <wrapper/cpu.h>
+ #include <wrapper/irqdesc.h>
+ #include <wrapper/fdtable.h>
+ #include <wrapper/namespace.h>
+@@ -770,7 +770,7 @@ int do_lttng_statedump(struct lttng_kernel_session *session)
+ 	 * is to guarantee that each CPU has been in a state where is was in
+ 	 * syscall mode (i.e. not in a trap, an IRQ or a soft IRQ).
+ 	 */
+-	get_online_cpus();
++	lttng_cpus_read_lock();
+ 	atomic_set(&kernel_threads_to_run, num_online_cpus());
+ 	for_each_online_cpu(cpu) {
+ 		INIT_DELAYED_WORK(&cpu_work[cpu], lttng_statedump_work_func);
+@@ -778,7 +778,7 @@ int do_lttng_statedump(struct lttng_kernel_session *session)
+ 	}
+ 	/* Wait for all threads to run */
+ 	__wait_event(statedump_wq, (atomic_read(&kernel_threads_to_run) == 0));
+-	put_online_cpus();
++	lttng_cpus_read_unlock();
+ 	/* Our work is done */
+ 	trace_lttng_statedump_end(session);
+ 	return 0;
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Revert-Makefile-Enable-Wimplicit-fallthrough-for.patch b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Revert-Makefile-Enable-Wimplicit-fallthrough-for.patch
new file mode 100644
index 0000000..5b5edc5
--- /dev/null
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules/0002-fix-Revert-Makefile-Enable-Wimplicit-fallthrough-for.patch
@@ -0,0 +1,829 @@
+From c570be0da77e963d77bac099d468bc0cd5f1bd63 Mon Sep 17 00:00:00 2001
+From: Michael Jeanson <mjeanson@efficios.com>
+Date: Mon, 13 Sep 2021 14:16:22 -0400
+Subject: [PATCH 2/2] fix: Revert "Makefile: Enable -Wimplicit-fallthrough for
+ Clang" (v5.15)
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Starting with v5.15, "-Wimplicit-fallthrough=5" was added to the build
+flags which requires the use of "__attribute__((__fallthrough__))" to
+annotate fallthrough case statements.
+
+See upstream commit by the man himself:
+
+  commit d936eb23874433caa3e3d841cfa16f5434b85dcf
+  Author: Linus Torvalds <torvalds@linux-foundation.org>
+  Date:   Thu Jul 15 18:05:31 2021 -0700
+
+    Revert "Makefile: Enable -Wimplicit-fallthrough for Clang"
+
+    This reverts commit b7eb335e26a9c7f258c96b3962c283c379d3ede0.
+
+    It turns out that the problem with the clang -Wimplicit-fallthrough
+    warning is not about the kernel source code, but about clang itself, and
+    that the warning is unusable until clang fixes its broken ways.
+
+    In particular, when you enable this warning for clang, you not only get
+    warnings about implicit fallthroughs.  You also get this:
+
+       warning: fallthrough annotation in unreachable code [-Wimplicit-fallthrough]
+
+    which is completely broken becasue it
+
+     (a) doesn't even tell you where the problem is (seriously: no line
+         numbers, no filename, no nothing).
+
+     (b) is fundamentally broken anyway, because there are perfectly valid
+         reasons to have a fallthrough statement even if it turns out that
+         it can perhaps not be reached.
+
+    In the kernel, an example of that second case is code in the scheduler:
+
+                    switch (state) {
+                    case cpuset:
+                            if (IS_ENABLED(CONFIG_CPUSETS)) {
+                                    cpuset_cpus_allowed_fallback(p);
+                                    state = possible;
+                                    break;
+                            }
+                            fallthrough;
+                    case possible:
+
+    where if CONFIG_CPUSETS is enabled you actually never hit the
+    fallthrough case at all.  But that in no way makes the fallthrough
+    wrong.
+
+    So the warning is completely broken, and enabling it for clang is a very
+    bad idea.
+
+    In the meantime, we can keep the gcc option enabled, and make the gcc
+    build use
+
+        -Wimplicit-fallthrough=5
+
+    which means that we will at least continue to require a proper
+    fallthrough statement, and that gcc won't silently accept the magic
+    comment versions. Because gcc does this all correctly, and while the odd
+    "=5" part is kind of obscure, it's documented in [1]:
+
+      "-Wimplicit-fallthrough=5 doesn’t recognize any comments as
+       fallthrough comments, only attributes disable the warning"
+
+    so if clang ever fixes its bad behavior we can try enabling it there again.
+
+Upstream-Status: backport [https://git.lttng.org/?p=lttng-modules.git;a=commit;h=c190d76e8c7b44d62b3651ab845b765c1b1f8104]
+
+Change-Id: Iea69849592fb69ac04fb9bb28efcd6b8dce8ba88
+Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
+Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+---
+ include/counter/counter-api.h         |   4 +-
+ include/lttng/events-internal.h       |  11 ++-
+ include/wrapper/compiler_attributes.h |  34 +++++++
+ src/lib/counter/counter.c             |  13 ++-
+ src/lttng-abi.c                       |  91 ++++++++++++------
+ src/lttng-bytecode-interpreter.c      |   4 +-
+ src/lttng-bytecode-specialize.c       |   5 +-
+ src/lttng-events.c                    | 129 +++++++++++++++++---------
+ src/lttng-string-utils.c              |   3 +-
+ src/probes/lttng-kretprobes.c         |   7 +-
+ 10 files changed, 215 insertions(+), 86 deletions(-)
+ create mode 100644 include/wrapper/compiler_attributes.h
+
+diff --git a/include/counter/counter-api.h b/include/counter/counter-api.h
+index fbc65818..c9f2b141 100644
+--- a/include/counter/counter-api.h
++++ b/include/counter/counter-api.h
+@@ -15,6 +15,7 @@
+ #include <linux/bitops.h>
+ #include <counter/counter.h>
+ #include <counter/counter-internal.h>
++#include <wrapper/compiler_attributes.h>
+ #include <wrapper/limits.h>
+ 
+ /*
+@@ -256,7 +257,8 @@ static __always_inline int lttng_counter_add(const struct lib_counter_config *co
+ 				    const size_t *dimension_indexes, int64_t v)
+ {
+ 	switch (config->alloc) {
+-	case COUNTER_ALLOC_PER_CPU:	/* Fallthrough */
++	case COUNTER_ALLOC_PER_CPU:
++		lttng_fallthrough;
+ 	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:
+ 		return __lttng_counter_add_percpu(config, counter, dimension_indexes, v);
+ 	case COUNTER_ALLOC_GLOBAL:
+diff --git a/include/lttng/events-internal.h b/include/lttng/events-internal.h
+index cd560de8..ca2190c4 100644
+--- a/include/lttng/events-internal.h
++++ b/include/lttng/events-internal.h
+@@ -8,6 +8,8 @@
+ #ifndef _LTTNG_EVENTS_INTERNAL_H
+ #define _LTTNG_EVENTS_INTERNAL_H
+ 
++#include <wrapper/compiler_attributes.h>
++
+ #include <lttng/events.h>
+ 
+ struct lttng_syscall_filter;
+@@ -561,9 +563,12 @@ static inline bool lttng_kernel_type_is_bytewise_integer(const struct lttng_kern
+ 	if (!type_integer)
+ 		return false;
+ 	switch (type_integer->size) {
+-	case 8:		/* Fall-through. */
+-	case 16:	/* Fall-through. */
+-	case 32:	/* Fall-through. */
++	case 8:
++		lttng_fallthrough;
++	case 16:
++		lttng_fallthrough;
++	case 32:
++		lttng_fallthrough;
+ 	case 64:
+ 		break;
+ 	default:
+diff --git a/include/wrapper/compiler_attributes.h b/include/wrapper/compiler_attributes.h
+new file mode 100644
+index 00000000..c2c96e76
+--- /dev/null
++++ b/include/wrapper/compiler_attributes.h
+@@ -0,0 +1,34 @@
++/* SPDX-License-Identifier: (GPL-2.0-only or LGPL-2.1-only)
++ *
++ * wrapper/compiler_attributes.h
++ *
++ * Copyright (C) 2021 Michael Jeanson <mjeanson@efficios.com>
++ */
++
++#ifndef _LTTNG_WRAPPER_COMPILER_ATTRIBUTES_H
++#define _LTTNG_WRAPPER_COMPILER_ATTRIBUTES_H
++
++#include <lttng/kernel-version.h>
++
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(4,20,0))
++#include <linux/compiler_attributes.h>
++#endif
++
++#if (LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,4,0))
++
++/*
++ * Use the kernel provided fallthrough attribute macro.
++ */
++#define lttng_fallthrough fallthrough
++
++#else /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,4,0) */
++
++/*
++ * Fallback to the comment for kernels pre 5.15 that don't build with
++ * '-Wimplicit-fallthrough=5'.
++ */
++#define lttng_fallthrough do {} while (0)  /* fallthrough */
++
++#endif /* LTTNG_LINUX_VERSION_CODE >= LTTNG_KERNEL_VERSION(5,4,0) */
++
++#endif /* _LTTNG_WRAPPER_COMPILER_ATTRIBUTES_H */
+diff --git a/src/lib/counter/counter.c b/src/lib/counter/counter.c
+index a4500a0e..bf038aac 100644
+--- a/src/lib/counter/counter.c
++++ b/src/lib/counter/counter.c
+@@ -11,6 +11,7 @@
+ #include <linux/cpumask.h>
+ #include <counter/counter.h>
+ #include <counter/counter-internal.h>
++#include <wrapper/compiler_attributes.h>
+ #include <wrapper/vmalloc.h>
+ #include <wrapper/limits.h>
+ 
+@@ -324,7 +325,8 @@ int lttng_counter_aggregate(const struct lib_counter_config *config,
+ 	*underflow = false;
+ 
+ 	switch (config->alloc) {
+-	case COUNTER_ALLOC_GLOBAL:	/* Fallthrough */
++	case COUNTER_ALLOC_GLOBAL:
++		lttng_fallthrough;
+ 	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:
+ 		/* Read global counter. */
+ 		ret = lttng_counter_read(config, counter, dimension_indexes,
+@@ -342,7 +344,8 @@ int lttng_counter_aggregate(const struct lib_counter_config *config,
+ 	switch (config->alloc) {
+ 	case COUNTER_ALLOC_GLOBAL:
+ 		break;
+-	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:	/* Fallthrough */
++	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:
++		lttng_fallthrough;
+ 	case COUNTER_ALLOC_PER_CPU:
+ 		//TODO: integrate with CPU hotplug and online cpus
+ 		for (cpu = 0; cpu < num_possible_cpus(); cpu++) {
+@@ -448,7 +451,8 @@ int lttng_counter_clear(const struct lib_counter_config *config,
+ 	int cpu, ret;
+ 
+ 	switch (config->alloc) {
+-	case COUNTER_ALLOC_GLOBAL:	/* Fallthrough */
++	case COUNTER_ALLOC_GLOBAL:
++		lttng_fallthrough;
+ 	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:
+ 		/* Clear global counter. */
+ 		ret = lttng_counter_clear_cpu(config, counter, dimension_indexes, -1);
+@@ -462,7 +466,8 @@ int lttng_counter_clear(const struct lib_counter_config *config,
+ 	switch (config->alloc) {
+ 	case COUNTER_ALLOC_GLOBAL:
+ 		break;
+-	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:	/* Fallthrough */
++	case COUNTER_ALLOC_PER_CPU | COUNTER_ALLOC_GLOBAL:
++		lttng_fallthrough;
+ 	case COUNTER_ALLOC_PER_CPU:
+ 		//TODO: integrate with CPU hotplug and online cpus
+ 		for (cpu = 0; cpu < num_possible_cpus(); cpu++) {
+diff --git a/src/lttng-abi.c b/src/lttng-abi.c
+index cc453894..eac1afd1 100644
+--- a/src/lttng-abi.c
++++ b/src/lttng-abi.c
+@@ -34,6 +34,7 @@
+ #include <ringbuffer/vfs.h>
+ #include <ringbuffer/backend.h>
+ #include <ringbuffer/frontend.h>
++#include <wrapper/compiler_attributes.h>
+ #include <wrapper/poll.h>
+ #include <wrapper/file.h>
+ #include <wrapper/kref.h>
+@@ -1332,7 +1333,8 @@ long lttng_metadata_ring_buffer_ioctl(struct file *filp,
+ 		 */
+ 		return -ENOSYS;
+ 	}
+-	case LTTNG_KERNEL_ABI_RING_BUFFER_FLUSH_EMPTY:	/* Fall-through. */
++	case LTTNG_KERNEL_ABI_RING_BUFFER_FLUSH_EMPTY:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_RING_BUFFER_FLUSH:
+ 	{
+ 		struct lttng_metadata_stream *stream = filp->private_data;
+@@ -1441,7 +1443,8 @@ long lttng_metadata_ring_buffer_compat_ioctl(struct file *filp,
+ 		 */
+ 		return -ENOSYS;
+ 	}
+-	case LTTNG_KERNEL_ABI_RING_BUFFER_FLUSH_EMPTY:	/* Fall-through. */
++	case LTTNG_KERNEL_ABI_RING_BUFFER_FLUSH_EMPTY:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_RING_BUFFER_FLUSH:
+ 	{
+ 		struct lttng_metadata_stream *stream = filp->private_data;
+@@ -1758,8 +1761,10 @@ int lttng_abi_validate_event_param(struct lttng_kernel_abi_event *event_param)
+ 	switch (event_param->instrumentation) {
+ 	case LTTNG_KERNEL_ABI_SYSCALL:
+ 		switch (event_param->u.syscall.entryexit) {
+-		case LTTNG_KERNEL_ABI_SYSCALL_ENTRY:	/* Fall-through */
+-		case LTTNG_KERNEL_ABI_SYSCALL_EXIT:		/* Fall-through */
++		case LTTNG_KERNEL_ABI_SYSCALL_ENTRY:
++			lttng_fallthrough;
++		case LTTNG_KERNEL_ABI_SYSCALL_EXIT:
++			lttng_fallthrough;
+ 		case LTTNG_KERNEL_ABI_SYSCALL_ENTRYEXIT:
+ 			break;
+ 		default:
+@@ -1783,20 +1788,26 @@ int lttng_abi_validate_event_param(struct lttng_kernel_abi_event *event_param)
+ 		switch (event_param->u.kretprobe.entryexit) {
+ 		case LTTNG_KERNEL_ABI_SYSCALL_ENTRYEXIT:
+ 			break;
+-		case LTTNG_KERNEL_ABI_SYSCALL_ENTRY:	/* Fall-through */
+-		case LTTNG_KERNEL_ABI_SYSCALL_EXIT:		/* Fall-through */
++		case LTTNG_KERNEL_ABI_SYSCALL_ENTRY:
++			lttng_fallthrough;
++		case LTTNG_KERNEL_ABI_SYSCALL_EXIT:
++			lttng_fallthrough;
+ 		default:
+ 			return -EINVAL;
+ 		}
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_TRACEPOINT:	/* Fall-through */
+-	case LTTNG_KERNEL_ABI_KPROBE:	/* Fall-through */
++	case LTTNG_KERNEL_ABI_TRACEPOINT:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_KPROBE:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_UPROBE:
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_FUNCTION:	/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		return -EINVAL;
+ 	}
+@@ -1830,18 +1841,23 @@ int lttng_abi_create_event(struct file *channel_file,
+ 	}
+ 
+ 	switch (event_param->instrumentation) {
+-	case LTTNG_KERNEL_ABI_TRACEPOINT:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_TRACEPOINT:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_SYSCALL:
+ 		fops = &lttng_event_recorder_enabler_fops;
+ 		break;
+-	case LTTNG_KERNEL_ABI_KPROBE:			/* Fall-through */
+-	case LTTNG_KERNEL_ABI_KRETPROBE:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_KPROBE:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_KRETPROBE:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_UPROBE:
+ 		fops = &lttng_event_recorder_event_fops;
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_FUNCTION:			/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:			/* Fall-through */
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		return -EINVAL;
+ 	}
+@@ -1867,7 +1883,8 @@ int lttng_abi_create_event(struct file *channel_file,
+ 		goto event_error;
+ 
+ 	switch (event_param->instrumentation) {
+-	case LTTNG_KERNEL_ABI_TRACEPOINT:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_TRACEPOINT:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_SYSCALL:
+ 	{
+ 		struct lttng_event_enabler *event_enabler;
+@@ -1887,8 +1904,10 @@ int lttng_abi_create_event(struct file *channel_file,
+ 		break;
+ 	}
+ 
+-	case LTTNG_KERNEL_ABI_KPROBE:			/* Fall-through */
+-	case LTTNG_KERNEL_ABI_KRETPROBE:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_KPROBE:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_KRETPROBE:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_UPROBE:
+ 	{
+ 		struct lttng_kernel_event_recorder *event;
+@@ -1908,8 +1927,10 @@ int lttng_abi_create_event(struct file *channel_file,
+ 		break;
+ 	}
+ 
+-	case LTTNG_KERNEL_ABI_FUNCTION:			/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:			/* Fall-through */
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		ret = -EINVAL;
+ 		goto event_error;
+@@ -2043,18 +2064,23 @@ int lttng_abi_create_event_notifier(struct file *event_notifier_group_file,
+ 	}
+ 
+ 	switch (event_notifier_param->event.instrumentation) {
+-	case LTTNG_KERNEL_ABI_TRACEPOINT:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_TRACEPOINT:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_SYSCALL:
+ 		fops = &lttng_event_notifier_enabler_fops;
+ 		break;
+-	case LTTNG_KERNEL_ABI_KPROBE:			/* Fall-through */
+-	case LTTNG_KERNEL_ABI_KRETPROBE:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_KPROBE:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_KRETPROBE:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_UPROBE:
+ 		fops = &lttng_event_notifier_event_fops;
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_FUNCTION:			/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:			/* Fall-through */
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		ret = -EINVAL;
+ 		goto inval_instr;
+@@ -2086,7 +2112,8 @@ int lttng_abi_create_event_notifier(struct file *event_notifier_group_file,
+ 		goto event_notifier_error;
+ 
+ 	switch (event_notifier_param->event.instrumentation) {
+-	case LTTNG_KERNEL_ABI_TRACEPOINT:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_TRACEPOINT:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_SYSCALL:
+ 	{
+ 		struct lttng_event_notifier_enabler *enabler;
+@@ -2110,8 +2137,10 @@ int lttng_abi_create_event_notifier(struct file *event_notifier_group_file,
+ 		break;
+ 	}
+ 
+-	case LTTNG_KERNEL_ABI_KPROBE:			/* Fall-through */
+-	case LTTNG_KERNEL_ABI_KRETPROBE:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_KPROBE:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_KRETPROBE:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_UPROBE:
+ 	{
+ 		struct lttng_kernel_event_notifier *event_notifier;
+@@ -2135,8 +2164,10 @@ int lttng_abi_create_event_notifier(struct file *event_notifier_group_file,
+ 		break;
+ 	}
+ 
+-	case LTTNG_KERNEL_ABI_FUNCTION:			/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:			/* Fall-through */
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		ret = -EINVAL;
+ 		goto event_notifier_error;
+diff --git a/src/lttng-bytecode-interpreter.c b/src/lttng-bytecode-interpreter.c
+index b46a23b7..a2a932c6 100644
+--- a/src/lttng-bytecode-interpreter.c
++++ b/src/lttng-bytecode-interpreter.c
+@@ -7,6 +7,7 @@
+  * Copyright (C) 2010-2016 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
+  */
+ 
++#include <wrapper/compiler_attributes.h>
+ #include <wrapper/uaccess.h>
+ #include <wrapper/objtool.h>
+ #include <wrapper/types.h>
+@@ -421,7 +422,8 @@ static int dynamic_get_index(struct lttng_kernel_probe_ctx *lttng_probe_ctx,
+ 		}
+ 		break;
+ 	case LOAD_ROOT_CONTEXT:
+-	case LOAD_ROOT_APP_CONTEXT:	/* Fall-through */
++		lttng_fallthrough;
++	case LOAD_ROOT_APP_CONTEXT:
+ 	{
+ 		ret = context_get_index(lttng_probe_ctx,
+ 				&stack_top->u.ptr,
+diff --git a/src/lttng-bytecode-specialize.c b/src/lttng-bytecode-specialize.c
+index c4b9d04b..f8b5f19d 100644
+--- a/src/lttng-bytecode-specialize.c
++++ b/src/lttng-bytecode-specialize.c
+@@ -8,6 +8,8 @@
+  */
+ 
+ #include <linux/slab.h>
++#include <wrapper/compiler_attributes.h>
++
+ #include <lttng/lttng-bytecode.h>
+ #include <lttng/align.h>
+ #include <lttng/events-internal.h>
+@@ -271,7 +273,8 @@ static int specialize_get_index(struct bytecode_runtime *runtime,
+ 		}
+ 		case OBJECT_TYPE_STRUCT:
+ 			/* Only generated by the specialize phase. */
+-		case OBJECT_TYPE_VARIANT:	/* Fall-through */
++		case OBJECT_TYPE_VARIANT:
++			lttng_fallthrough;
+ 		default:
+ 			printk(KERN_WARNING "LTTng: bytecode: Unexpected get index type %d",
+ 				(int) stack_top->load.object_type);
+diff --git a/src/lttng-events.c b/src/lttng-events.c
+index e785fe4d..230e3934 100644
+--- a/src/lttng-events.c
++++ b/src/lttng-events.c
+@@ -28,6 +28,7 @@
+ #include <linux/vmalloc.h>
+ #include <linux/dmi.h>
+ 
++#include <wrapper/compiler_attributes.h>
+ #include <wrapper/uuid.h>
+ #include <wrapper/vmalloc.h>	/* for wrapper_vmalloc_sync_mappings() */
+ #include <wrapper/random.h>
+@@ -659,12 +660,14 @@ int lttng_event_enable(struct lttng_kernel_event_common *event)
+ 		goto end;
+ 	}
+ 	switch (event->priv->instrumentation) {
+-	case LTTNG_KERNEL_ABI_TRACEPOINT:	/* Fall-through */
++	case LTTNG_KERNEL_ABI_TRACEPOINT:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_SYSCALL:
+ 		ret = -EINVAL;
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_KPROBE:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_KPROBE:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_UPROBE:
+ 		WRITE_ONCE(event->enabled, 1);
+ 		break;
+@@ -673,8 +676,10 @@ int lttng_event_enable(struct lttng_kernel_event_common *event)
+ 		ret = lttng_kretprobes_event_enable_state(event, 1);
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		WARN_ON_ONCE(1);
+ 		ret = -EINVAL;
+@@ -719,12 +724,14 @@ int lttng_event_disable(struct lttng_kernel_event_common *event)
+ 		goto end;
+ 	}
+ 	switch (event->priv->instrumentation) {
+-	case LTTNG_KERNEL_ABI_TRACEPOINT:	/* Fall-through */
++	case LTTNG_KERNEL_ABI_TRACEPOINT:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_SYSCALL:
+ 		ret = -EINVAL;
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_KPROBE:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_KPROBE:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_UPROBE:
+ 		WRITE_ONCE(event->enabled, 0);
+ 		break;
+@@ -733,8 +740,10 @@ int lttng_event_disable(struct lttng_kernel_event_common *event)
+ 		ret = lttng_kretprobes_event_enable_state(event, 0);
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		WARN_ON_ONCE(1);
+ 		ret = -EINVAL;
+@@ -873,15 +882,20 @@ struct lttng_kernel_event_recorder *_lttng_kernel_event_recorder_create(struct l
+ 		event_name = event_desc->event_name;
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_KPROBE:		/* Fall-through */
+-	case LTTNG_KERNEL_ABI_UPROBE:		/* Fall-through */
+-	case LTTNG_KERNEL_ABI_KRETPROBE:	/* Fall-through */
++	case LTTNG_KERNEL_ABI_KPROBE:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_UPROBE:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_KRETPROBE:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_SYSCALL:
+ 		event_name = event_param->name;
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		WARN_ON_ONCE(1);
+ 		ret = -EINVAL;
+@@ -1093,8 +1107,10 @@ struct lttng_kernel_event_recorder *_lttng_kernel_event_recorder_create(struct l
+ 		WARN_ON_ONCE(!ret);
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		WARN_ON_ONCE(1);
+ 		ret = -EINVAL;
+@@ -1141,15 +1157,20 @@ struct lttng_kernel_event_notifier *_lttng_event_notifier_create(
+ 		event_name = event_desc->event_name;
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_KPROBE:		/* Fall-through */
+-	case LTTNG_KERNEL_ABI_UPROBE:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_KPROBE:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_UPROBE:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_SYSCALL:
+ 		event_name = event_notifier_param->event.name;
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_KRETPROBE:	/* Fall-through */
+-	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_KRETPROBE:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		WARN_ON_ONCE(1);
+ 		ret = -EINVAL;
+@@ -1296,9 +1317,12 @@ struct lttng_kernel_event_notifier *_lttng_event_notifier_create(
+ 		WARN_ON_ONCE(!ret);
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_KRETPROBE:	/* Fall-through */
+-	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_KRETPROBE:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		WARN_ON_ONCE(1);
+ 		ret = -EINVAL;
+@@ -1423,14 +1447,18 @@ void register_event(struct lttng_kernel_event_recorder *event_recorder)
+ 		ret = lttng_syscall_filter_enable_event(event_recorder->chan, event_recorder);
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_KPROBE:		/* Fall-through */
+-	case LTTNG_KERNEL_ABI_UPROBE:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_KPROBE:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_UPROBE:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_KRETPROBE:
+ 		ret = 0;
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		WARN_ON_ONCE(1);
+ 	}
+@@ -1481,7 +1509,8 @@ int _lttng_event_unregister(struct lttng_kernel_event_recorder *event_recorder)
+ 		ret = 0;
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_FUNCTION:	/* Fall-through */
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
+ 	default:
+ 		WARN_ON_ONCE(1);
+ 	}
+@@ -1512,14 +1541,18 @@ void register_event_notifier(struct lttng_kernel_event_notifier *event_notifier)
+ 		ret = lttng_syscall_filter_enable_event_notifier(event_notifier);
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_KPROBE:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_KPROBE:
++		lttng_fallthrough;
+ 	case LTTNG_KERNEL_ABI_UPROBE:
+ 		ret = 0;
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_KRETPROBE:	/* Fall-through */
+-	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_KRETPROBE:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		WARN_ON_ONCE(1);
+ 	}
+@@ -1559,9 +1592,12 @@ int _lttng_event_notifier_unregister(
+ 		ret = lttng_syscall_filter_disable_event_notifier(event_notifier);
+ 		break;
+ 
+-	case LTTNG_KERNEL_ABI_KRETPROBE:	/* Fall-through */
+-	case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
+-	case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
++	case LTTNG_KERNEL_ABI_KRETPROBE:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_FUNCTION:
++		lttng_fallthrough;
++	case LTTNG_KERNEL_ABI_NOOP:
++		lttng_fallthrough;
+ 	default:
+ 		WARN_ON_ONCE(1);
+ 	}
+@@ -1614,8 +1650,10 @@ void _lttng_event_destroy(struct lttng_kernel_event_common *event)
+ 			lttng_uprobes_destroy_event_private(event_recorder);
+ 			break;
+ 
+-		case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
+-		case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
++		case LTTNG_KERNEL_ABI_FUNCTION:
++			lttng_fallthrough;
++		case LTTNG_KERNEL_ABI_NOOP:
++			lttng_fallthrough;
+ 		default:
+ 			WARN_ON_ONCE(1);
+ 		}
+@@ -1647,9 +1685,12 @@ void _lttng_event_destroy(struct lttng_kernel_event_common *event)
+ 			lttng_uprobes_destroy_event_notifier_private(event_notifier);
+ 			break;
+ 
+-		case LTTNG_KERNEL_ABI_KRETPROBE:	/* Fall-through */
+-		case LTTNG_KERNEL_ABI_FUNCTION:		/* Fall-through */
+-		case LTTNG_KERNEL_ABI_NOOP:		/* Fall-through */
++		case LTTNG_KERNEL_ABI_KRETPROBE:
++			lttng_fallthrough;
++		case LTTNG_KERNEL_ABI_FUNCTION:
++			lttng_fallthrough;
++		case LTTNG_KERNEL_ABI_NOOP:
++			lttng_fallthrough;
+ 		default:
+ 			WARN_ON_ONCE(1);
+ 		}
+@@ -2713,7 +2754,8 @@ void lttng_session_sync_event_enablers(struct lttng_kernel_session *session)
+ 		int nr_filters = 0;
+ 
+ 		switch (event_recorder_priv->parent.instrumentation) {
+-		case LTTNG_KERNEL_ABI_TRACEPOINT:	/* Fall-through */
++		case LTTNG_KERNEL_ABI_TRACEPOINT:
++			lttng_fallthrough;
+ 		case LTTNG_KERNEL_ABI_SYSCALL:
+ 			/* Enable events */
+ 			list_for_each_entry(enabler_ref,
+@@ -2807,7 +2849,8 @@ void lttng_event_notifier_group_sync_enablers(struct lttng_event_notifier_group
+ 		int nr_filters = 0, nr_captures = 0;
+ 
+ 		switch (event_notifier_priv->parent.instrumentation) {
+-		case LTTNG_KERNEL_ABI_TRACEPOINT:	/* Fall-through */
++		case LTTNG_KERNEL_ABI_TRACEPOINT:
++			lttng_fallthrough;
+ 		case LTTNG_KERNEL_ABI_SYSCALL:
+ 			/* Enable event_notifiers */
+ 			list_for_each_entry(enabler_ref,
+@@ -3877,7 +3920,7 @@ int print_escaped_ctf_string(struct lttng_kernel_session *session, const char *s
+ 			if (ret)
+ 				goto error;
+ 			/* We still print the current char */
+-			/* Fallthrough */
++			lttng_fallthrough;
+ 		default:
+ 			ret = lttng_metadata_printf(session, "%c", cur);
+ 			break;
+diff --git a/src/lttng-string-utils.c b/src/lttng-string-utils.c
+index d9447903..65946193 100644
+--- a/src/lttng-string-utils.c
++++ b/src/lttng-string-utils.c
+@@ -4,6 +4,7 @@
+  */
+ 
+ #include <linux/types.h>
++#include <wrapper/compiler_attributes.h>
+ 
+ #include <lttng/string-utils.h>
+ 
+@@ -302,7 +303,7 @@ retry:
+ 			p = pattern_get_char_at_cb(p_at,
+ 				pattern_get_char_at_cb_data);
+ 
+-			/* Fall-through. */
++			lttng_fallthrough;
+ 		default:
+ 			/*
+ 			 * Default case which will compare the escaped
+diff --git a/src/probes/lttng-kretprobes.c b/src/probes/lttng-kretprobes.c
+index 0fa6a1bf..1d0a5ecb 100644
+--- a/src/probes/lttng-kretprobes.c
++++ b/src/probes/lttng-kretprobes.c
+@@ -14,6 +14,7 @@
+ #include <lttng/events.h>
+ #include <lttng/events-internal.h>
+ #include <ringbuffer/frontend_types.h>
++#include <wrapper/compiler_attributes.h>
+ #include <wrapper/vmalloc.h>
+ #include <wrapper/irqflags.h>
+ #include <lttng/tracer.h>
+@@ -61,7 +62,8 @@ int _lttng_kretprobes_handler(struct kretprobe_instance *krpi,
+ 			return 0;
+ 		break;
+ 	}
+-	case LTTNG_KERNEL_EVENT_TYPE_NOTIFIER:	/* Fall-through. */
++	case LTTNG_KERNEL_EVENT_TYPE_NOTIFIER:
++		lttng_fallthrough;
+ 	default:
+ 		WARN_ON_ONCE(1);
+ 	}
+@@ -90,7 +92,8 @@ int _lttng_kretprobes_handler(struct kretprobe_instance *krpi,
+ 		chan->ops->event_commit(&ctx);
+ 		break;
+ 	}
+-	case LTTNG_KERNEL_EVENT_TYPE_NOTIFIER:	/* Fall-through. */
++	case LTTNG_KERNEL_EVENT_TYPE_NOTIFIER:
++		lttng_fallthrough;
+ 	default:
+ 		WARN_ON_ONCE(1);
+ 	}
+-- 
+2.19.1
+
diff --git a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.0.bb b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.0.bb
index 72d912e..6dfde8d 100644
--- a/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.0.bb
+++ b/poky/meta/recipes-kernel/lttng/lttng-modules_2.13.0.bb
@@ -9,7 +9,10 @@
 
 include lttng-platforms.inc
 
-SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2"
+SRC_URI = "https://lttng.org/files/${BPN}/${BPN}-${PV}.tar.bz2 \
+           file://0001-fix-cpu-hotplug-Remove-deprecated-CPU-hotplug-functi.patch \
+           file://0002-fix-Revert-Makefile-Enable-Wimplicit-fallthrough-for.patch \
+          "
 # Use :append here so that the patch is applied also when using devupstream
 SRC_URI:append = " file://0001-src-Kbuild-change-missing-CONFIG_TRACEPOINTS-to-warn.patch"
 
@@ -38,7 +41,7 @@
 DEFAULT_PREFERENCE:class-devupstream = "-1"
 SRC_URI:class-devupstream = "git://git.lttng.org/lttng-modules;branch=stable-2.13"
 
-SRCREV:class-devupstream = "f982b51a98a29cb4aaf607cb9bbf2b509d8e6933"
-PV:class-devupstream = "2.13.0-rc2+git${SRCPV}"
+SRCREV:class-devupstream = "c570be0da77e963d77bac099d468bc0cd5f1bd63"
+PV:class-devupstream = "2.13.0+git${SRCPV}"
 S:class-devupstream = "${WORKDIR}/git"
 SRCREV_FORMAT ?= "lttng_git"
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2021-38171.patch b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2021-38171.patch
new file mode 100644
index 0000000..d82f3a4
--- /dev/null
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg/fix-CVE-2021-38171.patch
@@ -0,0 +1,42 @@
+CVE: CVE-2021-38171
+Upstream-Status: Backport
+Signed-off-by: Kiran Surendran <kiran.surendran@windriver.com>
+
+From fb993619d1035fa9646506925ea70fb122038999 Mon Sep 17 00:00:00 2001
+From: maryam ebrahimzadeh <me22bee@outlook.com>
+Date: Wed, 4 Aug 2021 16:15:18 -0400
+Subject: [PATCH] avformat/adtsenc: return value check for init_get_bits in
+ adts_decode_extradata
+
+As the second argument for init_get_bits (buf) can be crafted, a return value check for this function call is necessary.
+'buf' is  part of  'AVPacket pkt'.
+replace init_get_bits with init_get_bits8.
+
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+(cherry picked from commit 9ffa49496d1aae4cbbb387aac28a9e061a6ab0a6)
+Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
+---
+ libavformat/adtsenc.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/libavformat/adtsenc.c b/libavformat/adtsenc.c
+index 3595cb3bb2..c35a12a628 100644
+--- a/libavformat/adtsenc.c
++++ b/libavformat/adtsenc.c
+@@ -51,9 +51,11 @@ static int adts_decode_extradata(AVFormatContext *s, ADTSContext *adts, const ui
+     GetBitContext gb;
+     PutBitContext pb;
+     MPEG4AudioConfig m4ac;
+-    int off;
++    int off, ret;
+ 
+-    init_get_bits(&gb, buf, size * 8);
++    ret = init_get_bits8(&gb, buf, size);
++    if (ret < 0)
++        return ret;
+     off = avpriv_mpeg4audio_get_config2(&m4ac, buf, size, 1, s);
+     if (off < 0)
+         return off;
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb
index fc1834c..0c6af65 100644
--- a/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb
+++ b/poky/meta/recipes-multimedia/ffmpeg/ffmpeg_4.4.bb
@@ -31,7 +31,8 @@
            file://fix-CVE-2020-22021.patch \
            file://fix-CVE-2020-22033-CVE-2020-22019.patch \
            file://fix-CVE-2021-33815.patch \
-           "
+           file://fix-CVE-2021-38171.patch \ 
+          "
 SRC_URI[sha256sum] = "06b10a183ce5371f915c6bb15b7b1fffbe046e8275099c96affc29e17645d909"
 
 # Build fails when thumb is enabled: https://bugzilla.yoctoproject.org/show_bug.cgi?id=7717
diff --git a/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0/shared_version_info.patch b/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0/shared_version_info.patch
new file mode 100644
index 0000000..b42d564
--- /dev/null
+++ b/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0/shared_version_info.patch
@@ -0,0 +1,13 @@
+Index: libsamplerate-0.1.8/configure.ac
+===================================================================
+--- libsamplerate-0.1.8.orig/configure.ac
++++ libsamplerate-0.1.8/configure.ac
+@@ -53,7 +53,7 @@ AC_PROG_LN_S
+ #  6. If any interfaces have been removed since the last public release, then set age
+ #     to 0.
+ 
+-SHARED_VERSION_INFO="1:8:1"
++SHARED_VERSION_INFO="1:9:1"
+ 
+ 
+ 
diff --git a/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.9.bb b/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.9.bb
index 6dfc42b..8345d68 100644
--- a/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.9.bb
+++ b/poky/meta/recipes-multimedia/libsamplerate/libsamplerate0_0.1.9.bb
@@ -10,6 +10,7 @@
 
 SRC_URI = "http://www.mega-nerd.com/SRC/libsamplerate-${PV}.tar.gz \
            file://0001-configure.ac-improve-alsa-handling.patch \
+           file://shared_version_info.patch \
 "
 
 SRC_URI[md5sum] = "2b78ae9fe63b36b9fbb6267fad93f259"
diff --git a/poky/meta/recipes-support/gnupg/gnupg_2.3.1.bb b/poky/meta/recipes-support/gnupg/gnupg_2.3.1.bb
index b8b0314..411ea95 100644
--- a/poky/meta/recipes-support/gnupg/gnupg_2.3.1.bb
+++ b/poky/meta/recipes-support/gnupg/gnupg_2.3.1.bb
@@ -31,6 +31,7 @@
 		--with-zlib=${STAGING_LIBDIR}/.. \
 		--with-bzip2=${STAGING_LIBDIR}/.. \
 		--with-readline=${STAGING_LIBDIR}/.. \
+		--with-mailprog=${sbindir}/sendmail \
 		--enable-gpg-is-gpg2 \
                "
 
diff --git a/poky/meta/recipes-support/libevent/libevent/0003-test-mark-util-monotonic_prc_fallback-as-retriable.patch b/poky/meta/recipes-support/libevent/libevent/0003-test-mark-util-monotonic_prc_fallback-as-retriable.patch
new file mode 100644
index 0000000..8a2c789
--- /dev/null
+++ b/poky/meta/recipes-support/libevent/libevent/0003-test-mark-util-monotonic_prc_fallback-as-retriable.patch
@@ -0,0 +1,28 @@
+From d01a57a998798da977c470f3b8d6a457c1adb144 Mon Sep 17 00:00:00 2001
+From: Azat Khuzhin <azat@libevent.org>
+Date: Sun, 19 Sep 2021 00:57:31 +0300
+Subject: [PATCH] test: mark util/monotonic_prc_fallback as retriable
+
+Refs: #1193
+
+Upstream-status: Backported
+---
+ test/regress_util.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/test/regress_util.c b/test/regress_util.c
+index 45caa2700a40..a9e80db20149 100644
+--- a/test/regress_util.c
++++ b/test/regress_util.c
+@@ -1672,7 +1672,7 @@ struct testcase_t util_testcases[] = {
+ 	{ "monotonic_res_fallback", test_evutil_monotonic_res, TT_OFF_BY_DEFAULT, &basic_setup, (void*)"fallback" },
+ 	{ "monotonic_prc", test_evutil_monotonic_prc, 0, &basic_setup, (void*)"" },
+ 	{ "monotonic_prc_precise", test_evutil_monotonic_prc, TT_RETRIABLE, &basic_setup, (void*)"precise" },
+-	{ "monotonic_prc_fallback", test_evutil_monotonic_prc, 0, &basic_setup, (void*)"fallback" },
++	{ "monotonic_prc_fallback", test_evutil_monotonic_prc, TT_RETRIABLE, &basic_setup, (void*)"fallback" },
+ 	{ "date_rfc1123", test_evutil_date_rfc1123, 0, NULL, NULL },
+ 	{ "evutil_v4addr_is_local", test_evutil_v4addr_is_local, 0, NULL, NULL },
+ 	{ "evutil_v6addr_is_local", test_evutil_v6addr_is_local, 0, NULL, NULL },
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch b/poky/meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch
new file mode 100644
index 0000000..ae7db0b
--- /dev/null
+++ b/poky/meta/recipes-support/libevent/libevent/0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch
@@ -0,0 +1,81 @@
+From 36ebd92fa53c0097f1e2f9ec5aa5b5c6ec1b411d Mon Sep 17 00:00:00 2001
+From: Thomas Perrot <thomas.perrot@bootlin.com>
+Date: Wed, 29 Sep 2021 13:50:35 +0200
+Subject: [PATCH] test: retriable tests are marked failed only when all
+ attempts have failed
+
+Fixes: #1193
+
+Upstream-status: Pending
+
+Signed-off-by: Thomas Perrot <thomas.perrot@bootlin.com>
+---
+ test/tinytest.c | 13 ++++++-------
+ test/tinytest.h |  2 +-
+ 2 files changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/test/tinytest.c b/test/tinytest.c
+index 85dfe74a720e..bf2882418eb6 100644
+--- a/test/tinytest.c
++++ b/test/tinytest.c
+@@ -310,7 +310,8 @@ testcase_run_forked_(const struct testgroup_t *group,
+ 
+ int
+ testcase_run_one(const struct testgroup_t *group,
+-		 const struct testcase_t *testcase)
++		 const struct testcase_t *testcase,
++		 const int test_attempts)
+ {
+ 	enum outcome outcome;
+ 
+@@ -348,7 +349,7 @@ testcase_run_one(const struct testgroup_t *group,
+ 		if (opt_verbosity>0 && !opt_forked)
+ 			puts("SKIPPED");
+ 	} else {
+-		if (!opt_forked)
++		if (!opt_forked && (testcase->flags & TT_RETRIABLE) && !test_attempts)
+ 			printf("\n  [%s FAILED]\n", testcase->name);
+ 	}
+ 
+@@ -525,22 +526,20 @@ tinytest_main(int c, const char **v, struct testgroup_t *groups)
+ 		struct testgroup_t *group = &groups[i];
+ 		for (j = 0; group->cases[j].name; ++j) {
+ 			struct testcase_t *testcase = &group->cases[j];
+-			int test_attempts = 3;
++			int test_attempts = (testcase->flags & TT_RETRIABLE) ? 3: 1;
+ 			int test_ret_err;
+ 
+ 			if (!(testcase->flags & TT_ENABLED_))
+ 				continue;
+ 
+ 			for (;;) {
+-				test_ret_err = testcase_run_one(group, testcase);
++				test_ret_err = testcase_run_one(group, testcase, test_attempts);
+ 
+ 				if (test_ret_err == OK)
+ 					break;
+-				if (!(testcase->flags & TT_RETRIABLE))
++				if (!--test_attempts)
+ 					break;
+ 				printf("\n  [RETRYING %s (%i)]\n", testcase->name, test_attempts);
+-				if (!test_attempts--)
+-					break;
+ 			}
+ 
+ 			switch (test_ret_err) {
+diff --git a/test/tinytest.h b/test/tinytest.h
+index d321dd467542..c276b5339331 100644
+--- a/test/tinytest.h
++++ b/test/tinytest.h
+@@ -92,7 +92,7 @@ char *tinytest_format_hex_(const void *, unsigned long);
+ 	tinytest_set_flag_(groups, named, 1, TT_SKIP)
+ 
+ /** Run a single testcase in a single group. */
+-int testcase_run_one(const struct testgroup_t *,const struct testcase_t *);
++int testcase_run_one(const struct testgroup_t *,const struct testcase_t *, const int test_attempts);
+ 
+ void tinytest_set_aliases(const struct testlist_alias_t *aliases);
+ 
+-- 
+2.31.1
+
diff --git a/poky/meta/recipes-support/libevent/libevent/run-ptest b/poky/meta/recipes-support/libevent/libevent/run-ptest
index d3b5e79..ef4260d 100644
--- a/poky/meta/recipes-support/libevent/libevent/run-ptest
+++ b/poky/meta/recipes-support/libevent/libevent/run-ptest
@@ -1,14 +1,14 @@
 #!/bin/sh
 
 # run-ptest - 'ptest' test infrastructure shell script that
-#   wraps the libevent test scripts 
+#   wraps the libevent test scripts
 #
 # Trevor Gamblin <trevor.gamblin@windriver.com>
 ###############################################################
 LIBEVENTLIB=@libdir@/libevent
 LOG="${LIBEVENTLIB}/ptest/libevent_ptest_$(date +%Y%m%d-%H%M%S).log"
 
-cd ${LIBEVENTLIB}/ptest 
+cd ${LIBEVENTLIB}/ptest
 
 # Run only the libevent "regress" test. All other test scripts in the
 # libevent "test" folder are related to performance, e.g. read/write
@@ -16,9 +16,9 @@
 # in the ptest log.
 ./test/regress 2>&1| sed -e '/TESTS/d' -e '/tests/d' -e '/OK/ s/^/PASS: / ; /FAILED/ s/^/FAIL: / ; /SKIPPED/ s/^/SKIP: / ; /DISABLED/ s/^/SKIP: /' | cut -f1,2 -d ':' | tee -a ${LOG}
 
-passed=`grep PASS ${LOG}|wc -l`
-failed=`grep FAIL ${LOG}|wc -l`
-skipped=`grep -E SKIP ${LOG}|wc -l`
+passed=`grep PASS: ${LOG}|wc -l`
+failed=`grep FAIL: ${LOG}|wc -l`
+skipped=`grep -E SKIP: ${LOG}|wc -l`
 all=$((passed + failed + skipped))
 
 (   echo "=== Test Summary ==="
diff --git a/poky/meta/recipes-support/libevent/libevent_2.1.12.bb b/poky/meta/recipes-support/libevent/libevent_2.1.12.bb
index 4b419ea..e26e8a9 100644
--- a/poky/meta/recipes-support/libevent/libevent_2.1.12.bb
+++ b/poky/meta/recipes-support/libevent/libevent_2.1.12.bb
@@ -16,6 +16,8 @@
            file://run-ptest \
            file://0001-test-regress_dns.c-patch-out-tests-that-require-a-wo.patch \
            file://0002-test-regress.h-Increase-default-timeval-tolerance-50.patch \
+           file://0003-test-mark-util-monotonic_prc_fallback-as-retriable.patch \
+           file://0004-test-retriable-tests-are-marked-failed-only-when-all-a.patch \
            "
 
 SRC_URI[sha256sum] = "92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb"
@@ -56,7 +58,7 @@
 	do
 		install -m 0755 $file ${D}${PTEST_PATH}/test
 	done
-        
+
         # handle multilib
         sed -i s:@libdir@:${libdir}:g ${D}${PTEST_PATH}/run-ptest
 }
diff --git a/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb b/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.2.bb
similarity index 93%
rename from poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb
rename to poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.2.bb
index c6a1ab1..1d3c24a 100644
--- a/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.1.bb
+++ b/poky/meta/recipes-support/ptest-runner/ptest-runner_2.4.2.bb
@@ -7,7 +7,7 @@
 LICENSE = "GPLv2+"
 LIC_FILES_CHKSUM = "file://LICENSE;md5=751419260aa954499f7abaabaa882bbe"
 
-SRCREV = "cce0edb4282ee081d043030bfdf29f3e4052f86c"
+SRCREV = "bcb82804daa8f725b6add259dcef2067e61a75aa"
 PV .= "+git${SRCPV}"
 
 SRC_URI = "git://git.yoctoproject.org/ptest-runner2 \
diff --git a/poky/meta/recipes-support/vim/files/CVE-2021-3778.patch b/poky/meta/recipes-support/vim/files/CVE-2021-3778.patch
new file mode 100644
index 0000000..769a7a0
--- /dev/null
+++ b/poky/meta/recipes-support/vim/files/CVE-2021-3778.patch
@@ -0,0 +1,46 @@
+From eb41373c8c88b0789e5cf04669d6116f9a199264 Mon Sep 17 00:00:00 2001
+From: Minjae Kim <flowergom@gmail.com>
+Date: Sun, 26 Sep 2021 23:48:00 +0000
+Subject: [PATCH] patch 8.2.3409: reading beyond end of line with invalid utf-8
+ character
+
+Problem: Reading beyond end of line with invalid utf-8 character.
+Solution: Check for NUL when advancing.
+
+Upstream-Status: Accepted [https://github.com/vim/vim/commit/65b605665997fad54ef39a93199e305af2fe4d7f]
+CVE: CVE-2021-3778
+Signed-off-by: Minjae Kim <flowergom@gmail.com>
+---
+ src/regexp_nfa.c                 | 3 ++-
+ src/testdir/test_regexp_utf8.vim | 7 +++++++
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+Index: git/src/regexp_nfa.c
+===================================================================
+--- git.orig/src/regexp_nfa.c
++++ git/src/regexp_nfa.c
+@@ -5455,7 +5455,8 @@ find_match_text(colnr_T startcol, int re
+ 		match = FALSE;
+ 		break;
+ 	    }
+-	    len2 += MB_CHAR2LEN(c2);
++	    len2 += enc_utf8 ? utf_ptr2len(rex.line + col + len2)
++                                                           : MB_CHAR2LEN(c2);
+ 	}
+ 	if (match
+ 		// check that no composing char follows
+Index: git/src/testdir/test_regexp_utf8.vim
+===================================================================
+--- git.orig/src/testdir/test_regexp_utf8.vim
++++ git/src/testdir/test_regexp_utf8.vim
+@@ -215,3 +215,10 @@ func Test_optmatch_toolong()
+   set re=0
+ endfunc
+ 
++func Test_match_invalid_byte()
++  call writefile(0z630a.765d30aa0a.2e0a.790a.4030, 'Xinvalid')
++  new
++  source Xinvalid
++  bwipe!
++  call delete('Xinvalid')
++endfunc
diff --git a/poky/meta/recipes-support/vim/vim.inc b/poky/meta/recipes-support/vim/vim.inc
index 7e9225f..db1e9ca 100644
--- a/poky/meta/recipes-support/vim/vim.inc
+++ b/poky/meta/recipes-support/vim/vim.inc
@@ -18,6 +18,7 @@
            file://no-path-adjust.patch \
            file://racefix.patch \
            file://b7081e135a16091c93f6f5f7525a5c58fb7ca9f9.patch \
+          file://CVE-2021-3778.patch \
 "
 
 SRCREV = "98056533b96b6b5d8849641de93185dd7bcadc44"
diff --git a/poky/scripts/lib/scriptutils.py b/poky/scripts/lib/scriptutils.py
index f92255d..3164171 100644
--- a/poky/scripts/lib/scriptutils.py
+++ b/poky/scripts/lib/scriptutils.py
@@ -215,7 +215,8 @@
                 pathvars = ['T', 'RECIPE_SYSROOT', 'RECIPE_SYSROOT_NATIVE']
                 for pathvar in pathvars:
                     path = rd.getVar(pathvar)
-                    shutil.rmtree(path)
+                    if os.path.exists(path):
+                        shutil.rmtree(path)
         finally:
             if fetchrecipe:
                 try:
diff --git a/poky/scripts/lib/wic/plugins/imager/direct.py b/poky/scripts/lib/wic/plugins/imager/direct.py
index 9d10ec0..495518f 100644
--- a/poky/scripts/lib/wic/plugins/imager/direct.py
+++ b/poky/scripts/lib/wic/plugins/imager/direct.py
@@ -117,7 +117,7 @@
         updated = False
         for part in self.parts:
             if not part.realnum or not part.mountpoint \
-               or part.mountpoint == "/":
+               or part.mountpoint == "/" or not part.mountpoint.startswith('/'):
                 continue
 
             if part.use_uuid:
diff --git a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
index cdc7254..0391aeb 100644
--- a/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
+++ b/poky/scripts/lib/wic/plugins/source/bootimg-efi.py
@@ -12,6 +12,7 @@
 
 import logging
 import os
+import tempfile
 import shutil
 import re
 
@@ -119,12 +120,13 @@
         bootloader = creator.ks.bootloader
 
         loader_conf = ""
-        loader_conf += "default boot\n"
+        if source_params.get('create-unified-kernel-image') != "true":
+            loader_conf += "default boot\n"
         loader_conf += "timeout %d\n" % bootloader.timeout
 
         initrd = source_params.get('initrd')
 
-        if initrd:
+        if initrd and source_params.get('create-unified-kernel-image') != "true":
             # obviously we need to have a common common deploy var
             bootimg_dir = get_bitbake_var("DEPLOY_DIR_IMAGE")
             if not bootimg_dir:
@@ -183,11 +185,12 @@
                 for rd in initrds:
                     boot_conf += "initrd /%s\n" % rd
 
-        logger.debug("Writing systemd-boot config "
-                     "%s/hdd/boot/loader/entries/boot.conf", cr_workdir)
-        cfg = open("%s/hdd/boot/loader/entries/boot.conf" % cr_workdir, "w")
-        cfg.write(boot_conf)
-        cfg.close()
+        if source_params.get('create-unified-kernel-image') != "true":
+            logger.debug("Writing systemd-boot config "
+                         "%s/hdd/boot/loader/entries/boot.conf", cr_workdir)
+            cfg = open("%s/hdd/boot/loader/entries/boot.conf" % cr_workdir, "w")
+            cfg.write(boot_conf)
+            cfg.close()
 
 
     @classmethod
@@ -288,9 +291,60 @@
                 kernel = "%s-%s.bin" % \
                     (get_bitbake_var("KERNEL_IMAGETYPE"), get_bitbake_var("INITRAMFS_LINK_NAME"))
 
-        install_cmd = "install -m 0644 %s/%s %s/%s" % \
-            (staging_kernel_dir, kernel, hdddir, kernel)
-        exec_cmd(install_cmd)
+        if source_params.get('create-unified-kernel-image') == "true":
+            initrd = source_params.get('initrd')
+            if not initrd:
+                raise WicError("initrd= must be specified when create-unified-kernel-image=true, exiting")
+
+            deploy_dir = get_bitbake_var("DEPLOY_DIR_IMAGE")
+            efi_stub = glob("%s/%s" % (deploy_dir, "linux*.efi.stub"))
+            if len(efi_stub) == 0:
+                raise WicError("Unified Kernel Image EFI stub not found, exiting")
+            efi_stub = efi_stub[0]
+
+            with tempfile.TemporaryDirectory() as tmp_dir:
+                label = source_params.get('label')
+                label_conf = "root=%s" % creator.rootdev
+                if label:
+                    label_conf = "LABEL=%s" % label
+
+                bootloader = creator.ks.bootloader
+                cmdline = open("%s/cmdline" % tmp_dir, "w")
+                cmdline.write("%s %s" % (label_conf, bootloader.append))
+                cmdline.close()
+
+                initrds = initrd.split(';')
+                initrd = open("%s/initrd" % tmp_dir, "wb")
+                for f in initrds:
+                    with open("%s/%s" % (deploy_dir, f), 'rb') as in_file:
+                        shutil.copyfileobj(in_file, initrd)
+                initrd.close()
+
+                # Searched by systemd-boot:
+                # https://systemd.io/BOOT_LOADER_SPECIFICATION/#type-2-efi-unified-kernel-images
+                install_cmd = "install -d %s/EFI/Linux" % hdddir
+                exec_cmd(install_cmd)
+
+                staging_dir_host = get_bitbake_var("STAGING_DIR_HOST")
+
+                # https://www.freedesktop.org/software/systemd/man/systemd-stub.html
+                objcopy_cmd = "objcopy \
+                    --add-section .osrel=%s --change-section-vma .osrel=0x20000 \
+                    --add-section .cmdline=%s --change-section-vma .cmdline=0x30000 \
+                    --add-section .linux=%s --change-section-vma .linux=0x2000000 \
+                    --add-section .initrd=%s --change-section-vma .initrd=0x3000000 \
+                    %s %s" % \
+                    ("%s/usr/lib/os-release" % staging_dir_host,
+                    cmdline.name,
+                    "%s/%s" % (staging_kernel_dir, kernel),
+                    initrd.name,
+                    efi_stub,
+                    "%s/EFI/Linux/linux.efi" % hdddir)
+                exec_cmd(objcopy_cmd)
+        else:
+            install_cmd = "install -m 0644 %s/%s %s/%s" % \
+                (staging_kernel_dir, kernel, hdddir, kernel)
+            exec_cmd(install_cmd)
 
         if get_bitbake_var("IMAGE_EFI_BOOT_FILES"):
             for src_path, dst_path in cls.install_task: